dns/domains/030-burble.dn42.js
Simon Marsh 05827a0423
Some checks failed
continuous-integration/drone/push Build is failing
add factorio
2024-02-18 14:36:33 +00: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.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.'),
// 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-lon4.burble.dn42.'),
CNAME('factorio', 'factorio.nl-ams3.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-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