////////////////////////////////////////////////////////////////////////// // 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, '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