dns: parametrised the config
This commit is contained in:
parent
c42b13b990
commit
9618d87c67
1 changed files with 52 additions and 48 deletions
|
@ -5,6 +5,57 @@ let
|
||||||
# reads that date to a string (will need to be fixed in 2038)
|
# reads that date to a string (will need to be fixed in 2038)
|
||||||
current_date = toString builtins.currentTime;
|
current_date = toString builtins.currentTime;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
get_config_file = (domain:
|
||||||
|
''
|
||||||
|
$TTL 60 ; 1 minute
|
||||||
|
; hostmaster@${domain} is an email address that recieves stuff related to dns
|
||||||
|
@ IN SOA ${cfg.own.nameserver}.${domain}. hostmaster.${domain}. (
|
||||||
|
; Serial (YYYYMMDDCC) this has to be updated for each time the record is updated
|
||||||
|
${current_date}
|
||||||
|
600 ; Refresh (10 minutes)
|
||||||
|
300 ; Retry (5 minutes)
|
||||||
|
604800 ; Expire (1 week)
|
||||||
|
3600 ; Minimum (1 hour)
|
||||||
|
)
|
||||||
|
|
||||||
|
@ NS ns1.${domain}.
|
||||||
|
@ NS ns2.${domain}.
|
||||||
|
; @ stands for teh root domain so teh A record below is where ${domain} points to
|
||||||
|
@ A 193.1.99.76
|
||||||
|
;@ MX 5 ${domain}.
|
||||||
|
|
||||||
|
; can have multiple mailserves
|
||||||
|
;@ MX 20 mail2.${domain}.
|
||||||
|
|
||||||
|
|
||||||
|
; ------------------------------------------
|
||||||
|
; Server Names
|
||||||
|
; ------------------------------------------
|
||||||
|
|
||||||
|
; External addresses
|
||||||
|
; ------------------------------------------
|
||||||
|
${lib.strings.concatMapStrings (x: x + "\n") cfg.records.external}
|
||||||
|
|
||||||
|
|
||||||
|
; this is fixed for now
|
||||||
|
wintermute A 193.1.101.148
|
||||||
|
|
||||||
|
|
||||||
|
; internal addresses
|
||||||
|
; ------------------------------------------
|
||||||
|
; May come back to this idea in teh future
|
||||||
|
; agentjones.int A 172.20.20.1
|
||||||
|
|
||||||
|
|
||||||
|
; cname's
|
||||||
|
; ------------------------------------------
|
||||||
|
${lib.strings.concatMapStrings (x: x + "\n") cfg.records.cname}
|
||||||
|
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
skynet_dns = {
|
skynet_dns = {
|
||||||
|
@ -238,54 +289,7 @@ in {
|
||||||
# The UNIX file mode bits
|
# The UNIX file mode bits
|
||||||
mode = "0644";
|
mode = "0644";
|
||||||
|
|
||||||
|
text = get_config_file "skynet.ie";
|
||||||
text =
|
|
||||||
''
|
|
||||||
$TTL 60 ; 1 minute
|
|
||||||
; hostmaster@skynet.ie is an email address that recieves stuff related to dns
|
|
||||||
@ IN SOA ${cfg.own.nameserver}.skynet.ie. hostmaster.skynet.ie. (
|
|
||||||
; Serial (YYYYMMDDCC) this has to be updated for each time the record is updated
|
|
||||||
${current_date}
|
|
||||||
600 ; Refresh (10 minutes)
|
|
||||||
300 ; Retry (5 minutes)
|
|
||||||
604800 ; Expire (1 week)
|
|
||||||
3600 ; Minimum (1 hour)
|
|
||||||
)
|
|
||||||
|
|
||||||
@ NS ns1.skynet.ie.
|
|
||||||
@ NS ns2.skynet.ie.
|
|
||||||
; @ stands for teh root domain so teh A record below is where skynet.ie points to
|
|
||||||
@ A 193.1.99.76
|
|
||||||
;@ MX 5 mail.skynet.ie.
|
|
||||||
|
|
||||||
; can have multiple mailserves
|
|
||||||
;@ MX 20 mail2.skynet.ie.
|
|
||||||
|
|
||||||
|
|
||||||
; ------------------------------------------
|
|
||||||
; Server Names
|
|
||||||
; ------------------------------------------
|
|
||||||
|
|
||||||
; External addresses
|
|
||||||
; ------------------------------------------
|
|
||||||
${lib.strings.concatMapStrings (x: x + "\n") cfg.records.external}
|
|
||||||
|
|
||||||
|
|
||||||
; this is fixed for now
|
|
||||||
wintermute A 193.1.101.148
|
|
||||||
|
|
||||||
|
|
||||||
; internal addresses
|
|
||||||
; ------------------------------------------
|
|
||||||
; May come back to this idea in teh future
|
|
||||||
; agentjones.int A 172.20.20.1
|
|
||||||
|
|
||||||
|
|
||||||
; cname's
|
|
||||||
; ------------------------------------------
|
|
||||||
${lib.strings.concatMapStrings (x: x + "\n") cfg.records.cname}
|
|
||||||
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue