Skip to content

Commit

Permalink
Merge pull request #37289 from disassembler/dnsdist
Browse files Browse the repository at this point in the history
nixos/dnsdist: init module
  • Loading branch information
xeji committed Jun 13, 2018
2 parents 0b475d3 + f515ca6 commit bffc59b
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 1 deletion.
1 change: 1 addition & 0 deletions nixos/modules/module-list.nix
Expand Up @@ -473,6 +473,7 @@
./services/networking/dnschain.nix
./services/networking/dnscrypt-proxy.nix
./services/networking/dnscrypt-wrapper.nix
./services/networking/dnsdist.nix
./services/networking/dnsmasq.nix
./services/networking/ejabberd.nix
./services/networking/fakeroute.nix
Expand Down
61 changes: 61 additions & 0 deletions nixos/modules/services/networking/dnsdist.nix
@@ -0,0 +1,61 @@
{ config, lib, pkgs, ... }:

with lib;

let
cfg = config.services.dnsdist;
configFile = pkgs.writeText "dndist.conf" ''
setLocal('${cfg.listenAddress}:${toString cfg.listenPort}')
${cfg.extraConfig}
'';
in {
options = {
services.dnsdist = {
enable = mkEnableOption "dnsdist domain name server";

listenAddress = mkOption {
type = types.str;
description = "Listen IP Address";
default = "0.0.0.0";
};
listenPort = mkOption {
type = types.int;
description = "Listen port";
default = 53;
};

extraConfig = mkOption {
type = types.lines;
default = ''
'';
description = ''
Extra lines to be added verbatim to dnsdist.conf.
'';
};
};
};

config = mkIf config.services.dnsdist.enable {
systemd.services.dnsdist = {
description = "dnsdist load balancer";
wantedBy = [ "multi-user.target" ];
after = ["network.target"];

serviceConfig = {
Restart="on-failure";
RestartSec="1";
DynamicUser = true;
StartLimitInterval="0";
PrivateTmp=true;
PrivateDevices=true;
CapabilityBoundingSet="CAP_NET_BIND_SERVICE CAP_SETGID CAP_SETUID";
ExecStart = "${pkgs.dnsdist}/bin/dnsdist --supervised --disable-syslog --config ${configFile}";
ProtectSystem="full";
ProtectHome=true;
RestrictAddressFamilies="AF_UNIX AF_INET AF_INET6";
LimitNOFILE="16384";
TasksMax="8192";
};
};
};
}
2 changes: 1 addition & 1 deletion pkgs/servers/dns/powerdns/default.nix
Expand Up @@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
platforms = platforms.linux;
# cannot find postgresql libs on macos x
license = licenses.gpl2;
maintainers = [ maintainers.mic92 ];
maintainers = with maintainers; [ mic92 disassembler ];
};
}

0 comments on commit bffc59b

Please sign in to comment.