dns/domains/030-burble.dn42.js
Simon Marsh 139c07d7d2
All checks were successful
continuous-integration/drone/push Build is passing
Add de-nue1 and remove a bunch of dead services following nomad migration
2023-11-23 11:45:01 +00:00

192 lines
7.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.us-nyc2', 'fd42:4242:2601:101d:216:3eff:fefc:722', '172.20.129.26');
service('shell.us-lax1', 'fd42:4242:2601:100a:216:3eff:fe5c:30b2', '172.20.129.27');
service('shell.fr-par1', 'fd42:4242:2601:1016:216:3eff:fe01:2f1f', '172.20.129.28');
service('shell.ca-bhs2', 'fd42:4242:2601:100d:216:3eff:fed7:2ceb', '172.20.129.30');
// 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('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-fra1.burble.dn42.'),
CNAME('mail', 'mail.tier2.uk-lon4.burble.dn42.'),
// host aliases
CNAME('repo', 'repo.tier2.fr-par1.burble.dn42.'),
CNAME('borg', 'borg.tier2.fr-par2.burble.dn42.'),
// grc SSHFP
SSHFP('grc', 4, 1, 'ff61153c18334e89df3b4b4e4696306eeb5ffe9c'),
SSHFP('grc', 4, 2, 'c3a2470309cb1e6fba252231a6504a096ffd8b6f92442493f762e7512c515e76'),
// shell servers SSHFP
SSHFP('shell.us-nyc2', 4, 1, 'f72242c44f4cd3a734f51e8923c962a54894fad2'),
SSHFP('shell.us-nyc2', 4, 2, 'ad2ddbb2cb7435ec796ac83ed52ea55c1fde71e01f101ac5225d2626139b3d5f'),
SSHFP('shell.ca-bhs2', 4, 1, '7588864eb1671c566a6ef6693429fd9602b5ea3a'),
SSHFP('shell.ca-bhs2', 4, 2, 'b0df1cd91e178e6145998c5e2c588f708b2f6ff49b158abcc6e04c8b7ed240fb'),
SSHFP('shell.fr-par1', 4, 1, 'c7646462dc6a4652aa4bb5fea1c150a6bfffb0ff'),
SSHFP('shell.fr-par1', 4, 2, '3055c3839ca6c51eef5d0aa7e1b2ba4747465063ab04e6330fd2b2ee377f31e8'),
SSHFP('shell.us-lax1', 4, 1, '845e037ac07088a250ade9e190d0dc23baf42ad4'),
SSHFP('shell.us-lax1', 4, 2, '9ef63f071aeac1081a72eda5bdbca5ecd612a8678c893331c2e87f583ac90465'),
// 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-lon4', 'fd42:180:3de0:110:92ac:47ff:fe36:8769'),
AAAA('docker.regsvcs.uk-lon4', '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