Nsupdate in production only; removed CIDR part from user.peers ip addresses

master
wgapi Cloud9 2021-10-22 01:29:43 -06:00
parent a0e5f38f0f
commit 66c62fc8c9
3 changed files with 31 additions and 27 deletions

View File

@ -49,10 +49,10 @@ module.exports = async (req, res) => {
// Find next available host part // Find next available host part
const used_ipv4_hosts = user.peers const used_ipv4_hosts = user.peers
.map((host) => host.ipv4).map((found_ipv4) => .map((host) => host.ipv4).map((found_ipv4) =>
found_ipv4.toString().split('.')[3].split('/')[0]) found_ipv4.toString().split('.')[3])
const used_ipv6_hosts = user.peers const used_ipv6_hosts = user.peers
.map((host) => host.ipv6).map((found_ipv6) => .map((host) => host.ipv6).map((found_ipv6) =>
found_ipv6.toString().split(':')[3].split('/')[0]) found_ipv6.toString().split(':')[3])
let host = 1 let host = 1
while ([...used_ipv4_hosts,...used_ipv6_hosts].includes(host.toString())) host++ while ([...used_ipv4_hosts,...used_ipv6_hosts].includes(host.toString())) host++
@ -118,18 +118,20 @@ AllowedIPs = ${ipv4_addr}/32, ${ipv6_addr}/128`
} }
// Update nameserver // Update nameserver
const domain = `${new_hostname}.${user.name}.${env.TLD}.` if (env.ENV==='prod') {
try { const domain = `${new_hostname}.${user.name}.${env.TLD}.`
await helper.nsUpdate(dns_key, env.DNS_MASTER, try {
`update add ${domain} ${env.DNS_TTL} A ${ipv4_addr} await helper.nsUpdate(dns_key, env.DNS_MASTER,
update add ${domain} ${env.DNS_TTL} AAAA ${ipv6_addr} `update add ${domain} ${env.DNS_TTL} A ${ipv4_addr}
update add *.${domain} ${env.DNS_TTL} CNAME ${domain}`) update add ${domain} ${env.DNS_TTL} AAAA ${ipv6_addr}
update add *.${domain} ${env.DNS_TTL} CNAME ${domain}`)
}
catch (err) {
console.error(`Failed to add ns record.`)
if (err) console.error(err)
}
console.log(`Updated nameserver to add ${domain}.`)
} }
catch (err) {
console.error(`Failed to add ns record.`)
if (err) console.error(err)
}
console.log(`Updated nameserver to add ${domain}.`)
// Generate user config // Generate user config
const listen_port = Math.floor(50000 + Math.random() * 10000) const listen_port = Math.floor(50000 + Math.random() * 10000)

View File

@ -129,18 +129,20 @@ module.exports = async (req, res) => {
} }
// Delete domains from nameserver // Delete domains from nameserver
try { if (env.ENV==='prod') {
await helper.nsUpdate(dns_key, env.DNS_MASTER, try {
`update delete ${peer_name}. A await helper.nsUpdate(dns_key, env.DNS_MASTER,
update delete ${peer_name}. AAAA `update delete ${peer_name}. A
update delete *.${peer_name}. CNAME`) update delete ${peer_name}. AAAA
update delete *.${peer_name}. CNAME`)
}
catch (err) {
console.error(`Failed to delete ns record`)
if (err) console.error(err)
return res.sendStatus(500)
}
console.log(`Updated nameserver to delete ${peer_name}.`)
} }
catch (err) {
console.error(`Failed to delete ns record`)
if (err) console.error(err)
return res.sendStatus(500)
}
console.log(`Updated nameserver to delete ${peer_name}.`)
return res.sendStatus(200) return res.sendStatus(200)

View File

@ -38,8 +38,8 @@ module.exports = {
} }
else if (line.includes('AllowedIPs = ')) { else if (line.includes('AllowedIPs = ')) {
const ips = line.split('=')[1].split(', ') const ips = line.split('=')[1].split(', ')
userpeer_obj.ipv4 = ips.filter( (ip) => ip.includes(env.IPV4_NET) )[0].trim() userpeer_obj.ipv4 = ips.filter( (ip) => ip.includes(env.IPV4_NET) )[0].trim().split('/')[0]
userpeer_obj.ipv6 = ips.filter( (ip) => ip.includes(env.IPV6_NET) )[0].trim() userpeer_obj.ipv6 = ips.filter( (ip) => ip.includes(env.IPV6_NET) )[0].trim().split('/')[0]
} }
} }
found_hosts.push(userpeer_obj) found_hosts.push(userpeer_obj)
@ -110,7 +110,7 @@ module.exports = {
}) })
nsupdate.on('exit', (status) => { nsupdate.on('exit', (status) => {
console.log(`nsupdate exited with status: ${status}`) console.log(`nsupdate exited with status: ${status}`)
if (status===0) reject(errors) if (status!==0) reject(errors)
else resolve() else resolve()
}) })