summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/networking/bind.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/networking/bind.nix')
-rw-r--r--nixos/modules/services/networking/bind.nix36
1 files changed, 34 insertions, 2 deletions
diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix
index faad88635759..e507e8ce9eeb 100644
--- a/nixos/modules/services/networking/bind.nix
+++ b/nixos/modules/services/networking/bind.nix
@@ -8,6 +8,35 @@ let
bindUser = "named";
+ bindZoneOptions = {
+ name = mkOption {
+ type = types.str;
+ description = "Name of the zone.";
+ };
+ master = mkOption {
+ description = "Master=false means slave server";
+ type = types.bool;
+ };
+ file = mkOption {
+ type = types.either types.str types.path;
+ description = "Zone file resource records contain columns of data, separated by whitespace, that define the record.";
+ };
+ masters = mkOption {
+ type = types.listOf types.str;
+ description = "List of servers for inclusion in stub and secondary zones.";
+ };
+ slaves = mkOption {
+ type = types.listOf types.str;
+ description = "Addresses who may request zone transfers.";
+ default = [];
+ };
+ extraConfig = mkOption {
+ type = types.str;
+ description = "Extra zone config to be appended at the end of the zone section.";
+ default = "";
+ };
+ };
+
confFile = pkgs.writeText "named.conf"
''
include "/etc/bind/rndc.key";
@@ -72,6 +101,7 @@ in
cacheNetworks = mkOption {
default = ["127.0.0.0/24"];
+ type = types.listOf types.str;
description = "
What networks are allowed to use us as a resolver. Note
that this is for recursive queries -- all networks are
@@ -83,6 +113,7 @@ in
blockedNetworks = mkOption {
default = [];
+ type = types.listOf types.str;
description = "
What networks are just blocked.
";
@@ -90,6 +121,7 @@ in
ipv4Only = mkOption {
default = false;
+ type = types.bool;
description = "
Only use ipv4, even if the host supports ipv6.
";
@@ -97,6 +129,7 @@ in
forwarders = mkOption {
default = config.networking.nameservers;
+ type = types.listOf types.str;
description = "
List of servers we should forward requests to.
";
@@ -120,10 +153,9 @@ in
zones = mkOption {
default = [];
+ type = types.listOf (types.submodule [ { options = bindZoneOptions; } ]);
description = "
List of zones we claim authority over.
- master=false means slave server; slaves means addresses
- who may request zone transfer.
";
example = [{
name = "example.com";