aboutsummaryrefslogtreecommitdiffstats
path: root/bootstrap/make-reverse4-files.pl
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap/make-reverse4-files.pl')
-rwxr-xr-xbootstrap/make-reverse4-files.pl160
1 files changed, 0 insertions, 160 deletions
diff --git a/bootstrap/make-reverse4-files.pl b/bootstrap/make-reverse4-files.pl
deleted file mode 100755
index 88f7a37..0000000
--- a/bootstrap/make-reverse4-files.pl
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/perl -I /root/tgmanage
-use strict;
-use Net::IP;
-use POSIX qw(strftime);
-
-BEGIN {
- require "include/config.pm";
- eval {
- require "include/config.local.pm";
- };
-}
-
-my $serial = strftime("%Y%m%d", localtime(time())) . "01";
-
-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 . "v4-revzones.conf";
-my $bind_pri_revzones_file = $bind_base . "named.reverse4.conf";
-my $bind_sec_revzones_file = $bind_base . "named.slave-reverse4.conf";
-
-my $base_ipv4 = Net::IP->new($nms::config::base_ipv4net) or die ("base_v4 fail");
-my ($p_oct, $s_oct, $t_oct) = ($nms::config::base_ipv4net =~ m/^(\d+)\.(\d+)\.(\d+)\..*/);
-my ($pp_oct, $ps_oct, $pt_oct, $pf_oct) = ($nms::config::pri_v4 =~ m/^(\d+)\.(\d+)\.(\d+)\.(\d+).*/);
-my ($sp_oct, $ss_oct, $st_oct, $sf_oct) = ($nms::config::sec_v4 =~ m/^(\d+)\.(\d+)\.(\d+)\.(\d+).*/);
-my $block;
-
-if ( $role eq "master" )
-{
- open DFILE, ">" . $dhcp_revzones_file or die $!;
- open NFILE, ">" . $bind_pri_revzones_file or die $!;
-}
-elsif ( $role eq "slave" )
-{
- open DFILE, ">" . $dhcp_revzones_file or die $!;
- open SFILE, ">" . $bind_sec_revzones_file or die $!;
-}
-else
-{
- die ("WTF, role is neither 'master' or 'slave'");
-}
-
-sub add_zone{
- my $ptr_zone = Net::IP->new("$p_oct.$s_oct.$t_oct.0/24") or die ("dhcp_reverse fail");
- my $dhcp_ptr = $ptr_zone->reverse_ip();
- (my $bind_ptr = $dhcp_ptr) =~ s/\.$//;
-
- if ( $role eq "master" )
- {
- # Generating IPv4-related reverse-stuff for
- # both bind9 and dhcp on master.
-
- print DFILE <<"EOF";
-zone $dhcp_ptr {
- primary $nms::config::ddns_to;
- key DHCP_UPDATER;
-}
-EOF
-
- print NFILE <<"EOF";
-// $block
-zone "$bind_ptr" {
- type master;
- allow-update { key DHCP_UPDATER; };
- notify yes;
- allow-transfer { ns-xfr; ext-xfr; };
- file "reverse/$bind_ptr.zone";
-};
-
-EOF
-
- my $zfilename = $bind_base . "reverse/" . $bind_ptr . ".zone";
- open ZFILE, ">", $zfilename;
-
- print ZFILE <<"EOF";
-; $zfilename
-; $block
-; Base reverse zones are updated from dhcpd -- DO NOT TOUCH!
-\$TTL 3600
-@ IN SOA $nms::config::pri_hostname.$nms::config::tgname.gathering.org. abuse.gathering.org. (
- $serial ; serial
- 3600 ; refresh
- 1800 ; retry
- 608400 ; expire
- 3600 ) ; minimum and default TTL
-
- IN NS $nms::config::pri_hostname.$nms::config::tgname.gathering.org.
- IN NS $nms::config::sec_hostname.$nms::config::tgname.gathering.org.
-
-\$ORIGIN $bind_ptr.
-EOF
-
- # add reverse if DNS-servers belong to zone
- if ( ($pt_oct == $t_oct) && ($ps_oct == $s_oct) )
- {
- print ZFILE $pf_oct . " IN PTR $nms::config::pri_hostname.$nms::config::tgname.gathering.org.\n";
- }
- if ( ($st_oct == $t_oct) && ($ss_oct == $s_oct) )
- {
- print ZFILE $sf_oct . " IN PTR $nms::config::sec_hostname.$nms::config::tgname.gathering.org.\n";
- }
- }
- else
- {
- # if not master, aka slave
- print SFILE <<"EOF";
-// $block
-zone "$bind_ptr" {
- type slave;
- notify no;
- file "slave/$bind_ptr.cache";
- masters { master_ns; };
- allow-transfer { ns-xfr; ext-xfr; };
-};
-
-EOF
- }
-}
-
-# for each /24 in the primary v4-net
-while (1){
- $block = $p_oct . "." . $s_oct . "." . $t_oct . ".0/24";
- my $current = Net::IP->new($block) or die ("Net::IP failed for " . $block);
-
- add_zone();
-
- if ( $current->last_int() == $base_ipv4->last_int() )
- {
- print STDERR "Reached last IP network. Finished.\n";
- last;
- }
- $t_oct++;
-}
-
-# for each specially defined /24
-foreach my $special_net (@nms::config::extra_nets){
- # a.b.c.d/24
- $block = $special_net;
- $base_ipv4 = Net::IP->new($special_net) or die ("base_v4 fail");
- ($p_oct, $s_oct, $t_oct) = ($special_net =~ m/^(\d+)\.(\d+)\.(\d+)\..*/);
-
- add_zone();
-}
-
-# Close all files, even those that have never been opened ;)
-close DFILE;
-close NFILE;
-close SFILE;