dns/domains/030-burble.dn42.js
Simon Marsh 73b50be94e
All checks were successful
continuous-integration/drone/push Build is passing
Update dns-dns64.fr-par1
2023-12-21 16:10:42 +00:00

221 lines
8.5 KiB
JavaScript

//////////////////////////////////////////////////////////////////////////
// define domains
domain='burble.dn42';
pdns_domain(domain);
//////////////////////////////////////////////////////////////////////////
// special records
D_EXTEND(
domain,
TXT('canary', "It's Alive!", TTL(1))
);
//////////////////////////////////////////////////////////////////////////
// services
// IPv4 service names
service('ns1', 'fd42:4242:2601:ac53::1', '172.20.129.1');
service('dns', 'fd42:4242:2601:ac53::53', '172.20.129.2');
service('@', 'fd42:4242:2601:ac80::1', '172.20.129.3');
service('grc', 'fd42:4242:2601:ac12::1', '172.20.129.4');
service('pingable', 'fd42:4242:2601:ac05::1', '172.20.129.5');
service('nats', 'fd42:4242:2601:ac06::1', '172.20.129.6');
// 7 was rproxy
service('whois', 'fd42:4242:2601:ac43::1', '172.20.129.8');
service('asterisk.fr-par1', 'fd42:4242:2601:36:216:3eff:fe8f:6211', '172.20.129.9');
service('shell', 'fd42:4242:2601:ac22::1', '172.20.129.10');
// 11 was envoy
service('traefik', 'fd42:4242:2601:ac82::1', '172.20.129.12');
service('traefik-eu', 'fd42:4242:2601:ac83::1', '172.20.129.13');
service('traefik-na', 'fd42:4242:2601:ac84::1', '172.20.129.14');
// services 172.20.129.15 -> 172.20.129.25 are unassigned
service('shell.de', 'fd42:4242:2601:100b:216:3eff:fe32:1a21', '172.20.129.24');
service('shell.uk', 'fd42:4242:2601:1004:216:3eff:fe91:b943', '172.20.129.25');
service('shell.fr', 'fd42:4242:2601:1016:216:3eff:fe01:2f1f', '172.20.129.28');
service('shell.nyc', 'fd42:4242:2601:101d:216:3eff:fef2:e559', '172.20.129.26');
service('shell.lax', 'fd42:4242:2601:1018:216:3eff:feaa:7249', '172.20.129.27');
// shell aliases
D_EXTEND(
domain,
CNAME('shell.uk-lon1', 'shell.uk.burble.dn42.'),
CNAME('shell.uk-lon2', 'shell.uk.burble.dn42.'),
CNAME('shell.uk-lon3', 'shell.uk.burble.dn42.'),
CNAME('shell.uk-lon4', 'shell.uk.burble.dn42.'),
CNAME('shell.uk-lon5', 'shell.uk.burble.dn42.'),
CNAME('shell.fr-par1', 'shell.fr.burble.dn42.'),
CNAME('shell.de-fra1', 'shell.de.burble.dn42.'),
CNAME('shell.de-fra2', 'shell.de.burble.dn42.'),
CNAME('shell.de-fra3', 'shell.de.burble.dn42.'),
CNAME('shell.de-nue1', 'shell.de.burble.dn42.'),
CNAME('shell.us-nyc1', 'shell.nyc.burble.dn42.'),
CNAME('shell.us-nyc2', 'shell.nyc.burble.dn42.'),
CNAME('shell.us-nyc3', 'shell.nyc.burble.dn42.'),
CNAME('shell.us-lax1', 'shell.lax.burble.dn42.'),
CNAME('shell.us-lax2', 'shell.lax.burble.dn42.')
);
// internal anycasts
service('rpki', 'fd42:4242:2601:ac10::1');
service('dns64', 'fd42:4242:2601:ac53::64');
service('dns-slave', 'fd42:4242:2601:ac00::53:1');
service('dns-secondary', 'fd42:4242:2601:acf0::50:1');
service('ldap', 'fd42:4242:2601:acf0::60:1');
service('traefik-tier2', 'fd42:4242:2601:acf0::70:1');
service('traefik-eu-tier2', 'fd42:4242:2601:acf0::75:1');
service('traefik-na-tier2', 'fd42:4242:2601:acf0::76:1');
// nomad container services
D_EXTEND(
domain,
// global anycast
CNAME('wiki', 'traefik.burble.dn42.'),
CNAME('explorer', 'traefik.burble.dn42.'),
CNAME('clicker', 'traefik.burble.dn42.'),
CNAME('anycast', 'traefik.burble.dn42.'),
CNAME('invidious', 'traefik.burble.dn42.'),
CNAME('grafana', 'traefik.burble.dn42.'),
CNAME('glass', 'traefik.burble.dn42.'),
CNAME('lg', 'traefik.burble.dn42.'),
CNAME('lounge', 'traefik.burble.dn42.'),
CNAME('paste', 'traefik.burble.dn42.'),
CNAME('whoami', 'traefik.burble.dn42.'),
CNAME('minio', 'traefik.burble.dn42.'),
CNAME('s3', 'traefik.burble.dn42.'),
CNAME('acme', 'traefik.burble.dn42.'),
CNAME('svc', 'traefik.burble.dn42.'),
CNAME('speedtest', 'traefik.burble.dn42.'),
// eu services
CNAME('wiki-sync-uk-lon4', 'traefik-eu.burble.dn42.'),
CNAME('wiki-sync-de-fra1', 'traefik-eu.burble.dn42.'),
// na services
CNAME('wiki-sync-us-lax1', 'traefik-na.burble.dn42.'),
CNAME('wiki-sync-us-nyc1', 'traefik-na.burble.dn42.'),
// internal services
CNAME('ci', 'traefik-tier2.burble.dn42.'),
CNAME('ldap-admin', 'traefik-tier2.burble.dn42.'),
CNAME('nomad', 'traefik-tier2.burble.dn42.'),
CNAME('portainer', 'traefik-tier2.burble.dn42.'),
CNAME('prometheus', 'traefik-tier2.burble.dn42.'),
CNAME('prometheus-ingest', 'traefik-tier2.burble.dn42.'),
CNAME('vault', 'traefik-tier2.burble.dn42.'),
CNAME('wdev', 'traefik-tier2.burble.dn42.'),
// special cases
CNAME('dialup', 'traefik-t1.fr-par1.burble.dn42.')
);
// other service cnames
D_EXTEND(
domain,
// temporary
CNAME('new-nats', 'nats.burble.dn42.'),
// evpn subdomain
NS('evpn', 'ns.de-fra1.evpn.burble.dn42.'),
NS('evpn', 'ns.ca-bhs2.evpn.burble.dn42.'),
AAAA('ns.de-fra1.evpn', 'fd42:4242:2601:331:72e8:bff:fe58:b51b'),
AAAA('ns.ca-bhs2.evpn', 'fd42:4242:2601:32d:72e8:bff:fe58:b51b'),
// DS('evpn', 46501,13,2,'ba25a8ee27c9fcc9595b60aab43aad60fd30fad073861159e157e7edf7239fc0'),
// global service aliases
CNAME('www', 'burble.dn42.'),
CNAME('git', 'git.de-fra2.burble.dn42.'),
CNAME('mail', 'mail.tier2.uk-lon4.burble.dn42.'),
// grc SSHFP
SSHFP('grc', 4, 1, 'ff61153c18334e89df3b4b4e4696306eeb5ffe9c'),
SSHFP('grc', 4, 2, 'c3a2470309cb1e6fba252231a6504a096ffd8b6f92442493f762e7512c515e76'),
// shell servers SSHFP
SSHFP('shell.fr', 4, 1, 'c7646462dc6a4652aa4bb5fea1c150a6bfffb0ff'),
SSHFP('shell.fr', 4, 2, '3055c3839ca6c51eef5d0aa7e1b2ba4747465063ab04e6330fd2b2ee377f31e8'),
SSHFP('shell.de', 4, 1, '90d3a5810445962dd61e4ab519cf6db5324acbf7'),
SSHFP('shell.de', 4, 2, '571bfbfb9fb82a1df2ed2cc2674a28d664cceafb41831fb31e4d046d18b68a4a'),
SSHFP('shell.uk', 4, 1, '15bc254e2230b5b65573a984efacfb9a4e9b1e75'),
SSHFP('shell.uk', 4, 2, '4bc991b6921f76258e8fbb169d3ccaf59cc2e0226629d72503392bb12a20b948'),
SSHFP('shell.lax', 4, 1, 'a2b64481dd553fdbdad0043947d522b44f4596d7'),
SSHFP('shell.lax', 4, 2, 'bc799ff93121617c7350efa0208df48d2fe0c59d24e5463b87e639edf5769ee4'),
SSHFP('shell.nyc', 4, 1, '648ad2189daabef5b4071765d505a025c8fd252f'),
SSHFP('shell.nyc', 4, 2, '0deeac374c6eba49ca16f70af4ccc2f8c8b27424ea074ba5971debc1e04f93cc'),
// registry docker alias
AAAA('docker.registry.ca-bhs2', 'fd42:180:3de0:100:42e6:9ff:fe09:bfc0'),
// ping challenge starting address
AAAA('ping', 'fd42:4242:2601:31f0::1'),
// voip and modem dialup
CNAME('sip', 'asterisk.fr-par1.burble.dn42.'),
CNAME('voip', 'asterisk.fr-par1.burble.dn42.'),
A('svcs.voip', '192.168.20.10'),
A('asterisk.voip', '192.168.20.11'),
A('sol.voip', '192.168.20.13'),
A('pap2t.voip', '192.168.20.20'),
A('gstream.voip', '192.168.20.21'),
A('proxy.voip', '192.168.20.200'),
// burble.dn42 registry services
AAAA('gitea.regsvcs.uk-lon5', 'fd42:180:3de0:110:92ac:47ff:fe36:8769'),
AAAA('docker.regsvcs.uk-lon5', 'fd42:180:3de0:110:f2f9:d9ff:fea5:14ff')
);
//////////////////////////////////////////////////////////////////////////
// hosts
D_EXTEND(
domain,
// dmz special config
AAAA('dmz.uk-lon1', '2a04:92c5:2:1::1'),
AAAA('dmz.de-fra1', '2a0d:5941:1:17c::4e2a'),
AAAA('dmz.ca-bhs2', '2607:5300:120:81a::1')
);
// main nodes
nodes.forEach(function(n) {
var hex = (n[4] + 32).toString(16);
var ip4 = (n[5] == 'undefined' ? undefined : n[5]);
// main IP
host(n[0],'fd42:4242:2601:'+hex+'::1', ip4);
// subnet IPs
host('tier1.'+n[0], 'fd42:4242:2601:'+hex+'::1');
host('tier2.'+n[0], 'fd42:4242:2601:'+hex+'02::1');
// create dn42-xxx CNAME for dn42 nodes
if (n[3] == 'true') {
D_EXTEND(domain,CNAME('dn42-'+n[0], n[0]+'.burble.dn42.'));
}
});
// containers and VMs
virtual.forEach(function(v) {
host(v[0], v[1], v[2]);
});
//////////////////////////////////////////////////////////////////////////
// end of file