////////////////////////////////////////////////////////////////////////// // 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'); // 6 was nats // 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'); service('traefik-v2', 'fd42:4242:2601:ac81::1', '172.20.129.11'); 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.20 are unassigned service('shell.ca-bhs1', 'fd42:4242:2601:100c:72ef:f1ff:febb:d521', '172.20.129.21'); service('shell.us-ash1', 'fd42:4242:2601:1017:72ef:f1ff:febb:d521', '172.20.129.22'); service('shell.fr-rbx1', 'fd42:4242:2601:1006:72ef:f1ff:febb:d521', '172.20.129.23'); 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-par1', 'fd42:4242:2601:1016:216:3eff:fe01:2f1f', '172.20.129.28'); service('shell.us-nyc2', 'fd42:4242:2601:101d:72ef:f1ff:febb:d521', '172.20.129.26'); service('shell.us-lax2', 'fd42:4242:2601:1018:72ef:f1ff:febb:d521', '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', 'shell.fr-rbx1.burble.dn42.'), CNAME('shell.de-fra1', 'shell.de.burble.dn42.'), CNAME('shell.de-fra2', 'shell.de.burble.dn42.'), CNAME('shell.us-nyc1', 'shell.us-nyc2.burble.dn42.'), CNAME('shell.nyc', 'shell.us-nyc2.burble.dn42.'), CNAME('shell.us-nyc3', 'shell.us-nyc2.burble.dn42.'), CNAME('shell.us-lax1', 'shell.us-lax2.burble.dn42.'), CNAME('shell.lax', 'shell.us-lax2.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'); service('traefik-infra', 'fd42:4242:2601:acf0::80: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('prometheus', 'traefik-tier2.burble.dn42.'), CNAME('prometheus-ingest', 'traefik-tier2.burble.dn42.'), CNAME('vault', 'traefik-tier2.burble.dn42.'), // elburb.dn42 infra services AAAA('v2', 'fd8f:a4c9:1c03:ac80::1'), AAAA('n2', 'fd8f:a4c9:1c03:ac80::1'), // special case CNAME('dialup', 'traefik-t1.fr-par1.burble.dn42.') ); // other service cnames D_EXTEND( domain, // 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.us-ash1', 4, 1, '2e590911563cdcc3fca077b4548ef67b8d3ca97b'), SSHFP('shell.us-ash1', 4, 2, 'ea72725a12aa3a11c4d3eb84414c46406f5dadc7c32f0d1d02fdcd0d40fbc33d'), SSHFP('shell.ca-bhs1', 4, 1, 'fe8e75f43281156e7547055d4e0e5a2a94d5040e'), SSHFP('shell.ca-bhs1', 4, 2, '6be11571ff9d602bc949766122915ab60cd578dd4e07741606cf9b9da6687c4c'), SSHFP('shell.fr-rbx1', 4, 1, '6cdc52bc0e712f8e6e3f61a9be61c25b58b3e242'), SSHFP('shell.fr-rbx1', 4, 2, 'c6c58e8b6ee0ef37a3f508ec88b3baa69189cdfaae6cb6a0e2fb05305cf0a501'), SSHFP('shell.fr-par1', 4, 1, '4b50210e34d8aa3b2ff3ac1143186410c4ac2c86'), SSHFP('shell.fr-par1', 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.us-lax2', 4, 1, 'c26bdb21b107225c3fea48b18ec606ac268f8074'), SSHFP('shell.us-lax2', 4, 2, '8a78da2b1c21ba9993db310e8af92ab91b34ce28abfa7a07fac056d52d7d5e7a'), SSHFP('shell.us-nyc2', 4, 1, '9f2b004f6617b4262d27d7cf56619b4988aeb0ed'), SSHFP('shell.us-nyc2', 4, 2, '4df8b1f39fa01d69c9fd69c4ffb633b52230d7420339e61242311b703977c30c'), // 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