diff options
author | Joachim Tingvold <joachim@tingvold.com> | 2015-03-21 22:48:32 +0100 |
---|---|---|
committer | Joachim Tingvold <joachim@tingvold.com> | 2015-03-21 22:48:32 +0100 |
commit | 6669f020b17779cc6767a30ca2e7c51de766b9b8 (patch) | |
tree | f15349365fd6d905a49b64cbd6ab19bb27f8451b /tools/generate-rowdns.pl | |
parent | fe80e0a56b3b67699a6117b010e6d5c81e8391ba (diff) |
Spring cleaning for TG15.
Preparing for DHCP6. Cleanup of old files.
Diffstat (limited to 'tools/generate-rowdns.pl')
-rwxr-xr-x | tools/generate-rowdns.pl | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/tools/generate-rowdns.pl b/tools/generate-rowdns.pl new file mode 100755 index 0000000..157d43b --- /dev/null +++ b/tools/generate-rowdns.pl @@ -0,0 +1,77 @@ +#!/usr/bin/perl +use strict; + +BEGIN { + require "include/config.pm"; + eval { + require "include/config.local.pm"; + }; +} + +use Net::IP; +use Getopt::Long; + +my ($delete); + +if (@ARGV > 0) { + GetOptions( + 'del|delete' => \$delete, + ) +} + +print "server $nms::config::pri_v4\n"; + +while (<STDIN>) +{ + my ( $sysname, $distro, $ponum, $cidr, $ipaddr, $gwaddr, $v6addr, @ports ) = split; + + + my $ip = new Net::IP($ipaddr); + + my $v4gw = new Net::IP($gwaddr); + + ( my $gw6 = $v6addr ) =~ s/\/.*//; + my $v6gw = new Net::IP($gw6); + + my $fqdn = $sysname . "." . $nms::config::tgname . ".gathering.org."; + my $sw_fqdn = $sysname . "-sw." . $fqdn; + my $text_info = $distro . " - " . join(' + ', @ports) . ", po" . $ponum . ", gwaddr " . $gwaddr; + + # A-record to the switch + print "prereq nxdomain sw." . $fqdn . "\n" unless $delete; + print "update add sw." . $fqdn . " \t 3600 IN A \t " . $ipaddr . "\n" unless $delete; + print "update delete sw." . $fqdn . " \t IN A\n" if $delete; + print "send\n"; + + # PTR to the switch + print "prereq nxdomain " . $ip->reverse_ip() . "\n" unless $delete; + print "update add " . $ip->reverse_ip() . " \t 3600 IN PTR \t sw." . $fqdn . "\n" unless $delete; + print "update delete " . $ip->reverse_ip() . " \t IN PTR\n" if $delete; + print "send\n"; + + # TXT-record with details + print "update delete sw." . $fqdn . " IN TXT\n" unless $delete; + print "update add sw." . $fqdn . " \t 3600 IN TXT \t \"" . $text_info . "\"\n" unless $delete; + print "update delete sw." . $fqdn . " \t IN TXT\n" if $delete; + print "send\n"; + + # A and AAAA-record to the gateway/router + print "prereq nxrrset gw." . $fqdn . " IN A\n" unless $delete; + print "update add gw." . $fqdn . " \t 3600 IN A \t " . $gwaddr . "\n" unless $delete; + print "update delete gw." . $fqdn . " \t IN A\n" if $delete; + print "send\n"; + print "prereq nxrrset gw." . $fqdn . " IN AAAA\n" unless $delete; + print "update add gw." . $fqdn . " \t 3600 IN AAAA \t " . $gw6 . "\n" unless $delete; + print "update delete gw." . $fqdn . " \t IN AAAA\n" if $delete; + print "send\n"; + + # PTR to the gateway/router + print "prereq nxdomain " . $v4gw->reverse_ip() . "\n" unless $delete; + print "update add " . $v4gw->reverse_ip() . " \t 3600 IN PTR \t gw." . $fqdn . "\n" unless $delete; + print "update delete " . $v4gw->reverse_ip() . " \t IN PTR\n" if $delete; + print "send\n"; + print "prereq nxdomain " . $v6gw->reverse_ip() . "\n" unless $delete; + print "update add " . $v6gw->reverse_ip() . " \t 3600 IN PTR \t gw." . $fqdn . "\n" unless $delete; + print "update delete " . $v6gw->reverse_ip() . " \t IN PTR\n" if $delete; + print "send\n"; +} |