diff options
Diffstat (limited to 'tools/make-reverse4-files.pl')
-rwxr-xr-x | tools/make-reverse4-files.pl | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/tools/make-reverse4-files.pl b/tools/make-reverse4-files.pl deleted file mode 100755 index bbb2d7c..0000000 --- a/tools/make-reverse4-files.pl +++ /dev/null @@ -1,153 +0,0 @@ -#!/usr/bin/perl -I /root/tgmanage -use strict; - -BEGIN { - require "include/config.pm"; - eval { - require "include/config.local.pm"; - }; -} - - -use Net::IP; -use Net::IP qw(:PROC); - -# FIXME: THIS IS NOT APPRORPIATE! -my $serial = `date +%Y%m%d01`; -chomp $serial; -# FIXME - -unless ( (($#ARGV == 0 ) || ( $#ARGV == 1)) - && (( $ARGV[0] eq "master" ) || ( $ARGV[0] eq "slave" )) ) -{ - print STDERR "Invalid usage!\n$0 <master|slave> [basedir]\n"; - exit 1; -} - -my $role = $ARGV[0]; - -my $base = "/etc"; -$base = $ARGV[1] if $#ARGV == 1; -$base .= "/" if not $base =~ m/\/$/ and not $base eq ""; - - -my $bind_base = $base . "bind/"; -my $dhcpd_base = $base . "dhcp/"; - -my $dhcp_revzones_file = $dhcpd_base . "revzones.conf"; -my $bind_pri_revzones_file = $bind_base . "named.reverse4.conf"; -my $bind_sec_revzones_file = $bind_base . "named.slave-reverse4.conf"; - -my $tgname = $nms::config::tgname; - -my $pri_hostname = $nms::config::pri_hostname; -my $pri_v4 = $nms::config::pri_v4; -my $pri_v6 = $nms::config::pri_v6; - -my $sec_hostname = $nms::config::sec_hostname; -my $sec_v4 = $nms::config::sec_v4; -my $sec_v6 = $nms::config::sec_v6; - -my $ext_xfer = $nms::config::ext_xfer; - -my $ddns_key = $nms::config::ddns_key; - -my $ddns_to = $nms::config::ddns_to; - -my $base_ipv4 = new Net::IP( $nms::config::base_ipv4net ); -my ($p_oct, $s_oct, $t_oct) = ($nms::config::base_ipv4net =~ m/^(\d+)\.(\d+)\.(\d+)\..*/); - -$pri_v4 =~ m/^(\d+)\.(\d+)\.(\d+)\.(\d+).*/; -my ( $pp_oct, $ps_oct, $pt_oct, $pf_oct) = ( $1, $2, $3, $4 ); -$sec_v4 =~ m/^(\d+)\.(\d+)\.(\d+)\.(\d+).*/; -my ( $sp_oct, $ss_oct, $st_oct, $sf_oct) = ( $1, $2, $3, $4 ); - -if ( $role eq "master" ) -{ - open DFILE, ">" . $dhcp_revzones_file or die $!; - open NFILE, ">" . $bind_pri_revzones_file or die $!; -} -elsif ( $role eq "slave" ) -{ - open SFILE, ">" . $bind_sec_revzones_file or die $!; -} -else -{ - die ("WTF, role is neither 'master' or 'slave'"); -} - -while (1) -{ - - my $block = $p_oct . "." . $s_oct . "." . $t_oct . ".0/24"; - my $current = new Net::IP( $block ) or die ("new Net::IP failed for " . $block); - - my $rev_zone = $t_oct . "." . $s_oct . "." . $p_oct . ".in-addr.arpa"; - - if ( $role eq "master" ) - { - # Generating IPv4-related reverse-stuff for - # both bind9 and dhcp on master. - - print DFILE "zone " . $rev_zone . " { primary " . $ddns_to . "; key DHCP_UPDATER; }\n"; - - print NFILE "zone \"". $rev_zone ."\" {\n"; - print NFILE " type master;\n"; - print NFILE " allow-update { key DHCP_UPDATER; };\n"; - print NFILE " notify yes;\n"; - print NFILE " allow-transfer { $sec_v4; $ext_xfer; $nms::config::noc_nett; };\n"; - print NFILE " file \"reverse/". $rev_zone .".zone\";\n"; - print NFILE "};\n\n"; - - my $zfilename = $bind_base . "reverse/" . $rev_zone . ".zone"; - open ZFILE, ">", $zfilename; - - print ZFILE "; " . $zfilename . "\n"; - print ZFILE <<"EOF"; -; Base reverse zones are updated from dhcpd -- DO NOT TOUCH! -\$TTL 3600 -@ IN SOA $pri_hostname.$tgname.gathering.org. abuse.gathering.org. ( - $serial ; serial - 3600 ; refresh - 1800 ; retry - 608400 ; expire - 3600 ) ; minimum and default TTL - - IN NS $pri_hostname.$tgname.gathering.org. - IN NS $sec_hostname.$tgname.gathering.org. - -\$ORIGIN $rev_zone. -EOF - if ( ($pt_oct == $t_oct) && ($ps_oct == $s_oct) ) - { - print ZFILE $pf_oct . " IN PTR $pri_hostname.$tgname.gathering.org.\n"; - } - if ( ($st_oct == $t_oct) && ($ss_oct == $s_oct) ) - { - print ZFILE $sf_oct . " IN PTR $sec_hostname.$tgname.gathering.org.\n"; - } - } - else - { - # AKA "if not master", as in "is slave". - # A lot less work: update the named.slave-reverse4.conf file.. - print SFILE "zone \"". $rev_zone ."\" {\n"; - print SFILE " type slave;\n"; - print SFILE " notify no;\n"; - print SFILE " file \"slave/". $rev_zone .".cache\";\n"; - print SFILE " masters { bootstrap; };\n"; - print SFILE " allow-transfer { $ext_xfer; $nms::config::noc_nett; };\n"; - print SFILE "};\n\n"; - } - - if ( $current->last_int() == $base_ipv4->last_int() ) - { - print STDERR "Reached last IP network. Finished\n"; - last; - } - $t_oct++; -} -# Close all files, even those that have never been opened ;) -close DFILE; -close NFILE; -close SFILE; |