dns/domains/030-burble.dn42.js
Simon Marsh 53f2b69a4c
All checks were successful
continuous-integration/drone/push Build is passing
tmp
2024-09-14 10:54:03 +01:00

219 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:1015: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-eu.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-lon1', 'traefik-eu.burble.dn42.'),
CNAME('wiki-sync-de-fra1', 'traefik-eu.burble.dn42.'),
CNAME('wiki-test', '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 case
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-lon1.burble.dn42.'),
// grc SSHFP
SSHFP('grc', 4, 1, 'ff61153c18334e89df3b4b4e4696306eeb5ffe9c'),
SSHFP('grc', 4, 2, 'c3a2470309cb1e6fba252231a6504a096ffd8b6f92442493f762e7512c515e76'),
// shell servers SSHFP
SSHFP('shell.fr', 4, 1, '4b50210e34d8aa3b2ff3ac1143186410c4ac2c86'),
SSHFP('shell.fr', 4, 2, '660e30eaf12dd3bf83888b1e56d459d49b89abe3a5244f65f80ef988b397bbb4'),
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-lon1', 'fd42:180:3de0:110:92ac:47ff:fe36:8769'),
AAAA('docker.regsvcs.uk-lon1', '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