100 lines
2.2 KiB
Nix
100 lines
2.2 KiB
Nix
# Shared configuration for the main PVV domains; pvv.ntnu.no and pvv.org (defined in ./zones/), mainly
|
|
# - E-mail configuration (MX, SRV, mail aliases)
|
|
# - Forward records generated from the ./hosts.nix file
|
|
# - Various SRV records
|
|
|
|
{ dns, lib, ... }:
|
|
|
|
with dns.lib.combinators;
|
|
let
|
|
pvvHostRecords = import ./pvv-host-forwards.nix { inherit dns lib; };
|
|
in
|
|
{
|
|
useOrigin = true; # Don't output fully qualified names
|
|
|
|
TTL = 60 * 60;
|
|
|
|
SOA = {
|
|
nameServer = "dvask.pvv.ntnu.no.";
|
|
adminEmail = "drift@pvv.ntnu.no";
|
|
serial = 1970010101; # Placeholder, replaced in deploy step
|
|
};
|
|
|
|
NS = [
|
|
"dvask.pvv.ntnu.no."
|
|
"nn.unintett.no."
|
|
];
|
|
|
|
MX = [
|
|
{
|
|
preference = 10;
|
|
exchange = "microbel.pvv.ntnu.no.";
|
|
}
|
|
];
|
|
|
|
# TODO - Re-add priority/weight?
|
|
SRV =
|
|
let
|
|
tcp = "tcp";
|
|
udp = "udp";
|
|
mkSrv = service: proto: port: target: {
|
|
inherit
|
|
service
|
|
proto
|
|
port
|
|
target
|
|
;
|
|
};
|
|
in
|
|
[
|
|
(mkSrv "minecraft" tcp 25565 "innovation")
|
|
(mkSrv "kerberos" tcp 88 "balduzius")
|
|
(mkSrv "kerberos" udp 88 "balduzius")
|
|
(mkSrv "kpasswd" udp 464 "balduzius")
|
|
(mkSrv "kerberos-adm" tcp 749 "balduzius")
|
|
(mkSrv "kerberos-adm" udp 749 "balduzius")
|
|
(mkSrv "http" tcp 80 "bekkalokk")
|
|
(mkSrv "https" tcp 443 "bekkalokk")
|
|
];
|
|
|
|
A = pvvHostRecords.bekkalokk.A;
|
|
AAAA = pvvHostRecords.bekkalokk.AAAA;
|
|
TXT = [
|
|
(with spf; soft [ "mx" ])
|
|
];
|
|
|
|
subdomains = pvvHostRecords // {
|
|
# Special services:
|
|
_kerberos.TXT = [ "PVV.NTNU.NO" ];
|
|
minecraft = {
|
|
inherit (pvvHostRecords.bekkalokk) A AAAA;
|
|
SRV = [
|
|
{
|
|
service = "minecraft";
|
|
proto = "tcp";
|
|
port = 25565;
|
|
target = "innovation";
|
|
}
|
|
];
|
|
};
|
|
|
|
# E-mail:
|
|
_dmarc.TXT = [ "v=DMARC1; p=quarantine; fo=1;" ]; # TODO - Use dns.nix DMARC generator
|
|
drift.CNAME = [ "mail" ];
|
|
imap.CNAME = [ "mail" ];
|
|
mailhost.CNAME = [ "mail" ];
|
|
pop.CNAME = [ "mail" ];
|
|
smtp.CNAME = [ "mail" ];
|
|
|
|
list = {
|
|
A = pvvHostRecords.microbel.A;
|
|
MX = [
|
|
{
|
|
preference = 10;
|
|
exchange = "microbel.pvv.ntnu.no.";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|