dns/domains/030-burble.dn42.js
Simon Marsh eb31a4b67d
All checks were successful
continuous-integration/drone/push Build is passing
move minio alias
2023-04-22 16:07:52 +01:00

192 lines
6.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');
// 172.20.129.6 was wiki but not now used
service('rproxy', 'fd42:4242:2601:acf0::1', '172.20.129.7');
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');
// services 172.20.129.10 -> 172.20.129.29 are unassigned
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');
D_EXTEND(
domain,
// ixp interface for shell.fr-nte2
AAAA('lgp-ixp.fr-nte2', 'fde0:93fa:7a0:2:0:fcde:3b49:2')
)
// internal anycasts
service('rpki', 'fd42:4242:2601:ac10::1');
service('dns64', 'fd42:4242:2601:ac53::64');
service('wiki.service', 'fd42:4242:2601:ac00::10:1');
service('dn42regsrv', 'fd42:4242:2601:ac00::20:1');
service('dns-slave', 'fd42:4242:2601:ac00::53:1');
service('consul.service', 'fd42:4242:2601:acf0::10:1');
service('vault.service', 'fd42:4242:2601:acf0::20:1');
service('acme', 'fd42:4242:2601:acf0::30:1');
service('etcd', 'fd42:4242:2601:acf0::50:1');
service('ldap', 'fd42:4242:2601:acf0::60:1');
service('nats', 'fd42:4242:2601:acf0::70:1');
// proxied services
proxied('explorer');
proxied('glass');
proxied('lg');
proxied('wiki');
proxied('lounge');
proxied('alertmanager');
proxied('monitor');
proxied('grafana');
proxied('consul');
proxied('vault');
proxied('paste');
proxied('tasks');
proxied('n8n');
proxied('wdev');
proxied('mkdev');
proxied('gdev');
proxied('ldap-admin');
proxied('svc');
proxied('jcr');
proxied('scrutiny');
proxied('dialup');
proxied('clicker');
proxied('send');
proxied('minio');
// docker services
D_EXTEND(
domain,
CNAME('ci', 'docker.tier2.fr-par2.burble.dn42.'),
CNAME('sshwifty', 'docker.tier1.de-fra1.burble.dn42.'),
CNAME('uptime', 'docker.tier1.ch-zur1.burble.dn42.')
);
// other service cnames
D_EXTEND(
domain,
// 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.'),
// local service aliases
CNAME('wiki.fr', 'nginx.de-fra1.burble.dn42.'),
CNAME('wiki.ca', 'nginx.ca-bhs2.burble.dn42.'),
// host aliases
CNAME('repo', 'repo.tier2.fr-par2.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.ca-bhs2', 4, 1, '3e08e7e4f261211d23ea92a4dd4fa210c1cedfd9'),
SSHFP('shell.ca-bhs2', 4, 2, 'aeace90bd0ecb5cd10243ce96660437ed179276a94ab654f3fd927154ef21e01'),
SSHFP('shell.fr-nte2', 4, 1, 'edbc49824a13e4ed3ff5de622860fe58de26ddb1'),
SSHFP('shell.fr-nte2', 4, 2, '496536b9f8bb5b7df8ba8c7957cad6cc1df64b5a7f83e8b56d77b1f432c9b186'),
SSHFP('shell.fr-par1', 4, 1, '423759776aff4266c04bae3eb11fc9fbe6ea3233'),
SSHFP('shell.fr-par1', 4, 2, '1e943ab27c77659723b15c4da9ffb3b337ed1dad043f7d26ec85a80d7df6b368'),
SSHFP('shell.us-lax1', 4, 1, '5f54213ac99ad0b26e5464b0a2184ffbaa871499'),
SSHFP('shell.us-lax1', 4, 2, '3d1e527ad16062dc5ed77231828bab9d0882edefb8b473e5335893bad10f0bf3'),
// dn42.dev mail
MX('mail-dn42dev', 10, 'mail-dn42dev.tier2.de-fra1.burble.dn42.'),
MX('mail-dn42dev', 10, 'mail-dn42dev.tier2.ca-bhs2.burble.dn42.'),
// speedtest
CNAME('speedtest.fr-par1', 'nginx.fr-par1.burble.dn42.'),
CNAME('speedtest.ca-bhs2', 'nginx.ca-bhs2.burble.dn42.'),
CNAME('speedtest.us-lax1', 'nginx.us-lax1.burble.dn42.'),
// 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'),
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')
);
//////////////////////////////////////////////////////////////////////////
// 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