]> git.sesse.net Git - nms/commitdiff
Added make-named.pl from TG05.
authorSteinar H. Gunderson <sesse@samfundet.no>
Sun, 9 Apr 2006 19:29:56 +0000 (19:29 +0000)
committerSteinar H. Gunderson <sesse@samfundet.no>
Sun, 9 Apr 2006 19:29:56 +0000 (19:29 +0000)
config/make-named.pl [new file with mode: 0755]

diff --git a/config/make-named.pl b/config/make-named.pl
new file mode 100755 (executable)
index 0000000..e8d8780
--- /dev/null
@@ -0,0 +1,107 @@
+#! /usr/bin/perl -w
+use strict;
+
+# les inn nettnavn
+my %netnames = ();
+my %netmasks = ();
+my @nets = ();
+open NAMES, "switches.txt"
+or die "switches.txt: $!";
+while (<NAMES>) {
+       chomp;
+       /81\.162\.(\d+\.\d+)\s+(\d+)\s+(\S+)/ or next;
+       $netmasks{$1} = $2;
+       $netnames{$1} = $3;
+       push @nets, $1;
+}
+
+print <<"EOF";
+// Autogenerated by make-named.pl. Do not edit manually! 
+
+options {
+        directory "/etc/bind";
+       allow-query { any; };
+       allow-transfer { 194.19.3.20; 81.162.254.76; }; 
+       auth-nxdomain no;
+       recursion yes;
+
+       forwarders { 194.19.2.11; 194.19.3.11; }; 
+       forward only;
+};
+
+zone "." { type hint; file "db.root"; };
+
+zone "0.0.127.in-addr.arpa" {
+       type master;
+       file "0.0.127.in-addr.arpa";
+       notify no;
+};
+
+zone "tg05.gathering.org" {
+       type master;
+       file "tg05.gathering.org";
+       notify yes;
+       allow-transfer { 81.162.254.76; };
+};
+zone "www.gathering.org" {
+       type master;
+       file "www.gathering.org";
+       notify yes;
+       allow-transfer { 81.162.254.76; };
+};
+
+// serversubnett
+zone "254.162.81.in-addr.arpa" {
+       type master;
+       file "254.162.81.in-addr.arpa";
+       notify yes;
+       allow-transfer { 81.162.254.76; 193.0.0.0/22; };
+};
+
+zone "162.81.in-addr.arpa" {
+       type master;
+       allow-update { key DHCP_UPDATER; };
+       notify yes;
+       file "dynamic/162.81.in-addr.arpa";     
+       allow-transfer { 194.19.3.20; 81.162.254.76; 193.0.0.0/22; };
+};
+
+key DHCP_UPDATER {
+       algorithm HMAC-MD5.SIG-ALG.REG.INT;
+       secret removed;
+};
+
+EOF
+
+for my $net (@nets) {
+       my $domain = $netnames{$net};
+
+       my ($netmask, $numpc);
+       if ($netmasks{$net} == 24) {
+              $netmask = "255.255.255.0";
+              $numpc = 256;
+       } elsif ($netmasks{$net} == 25) {
+              $netmask = "255.255.255.128";
+              $numpc = 128;
+       } elsif ($netmasks{$net} == 26) {
+              $netmask = "255.255.255.192";
+              $numpc = 64;
+       } else {
+              die "Unknown netmask /$netmasks{$net}";
+       }
+
+       $net =~ /(\d+)\.(\d+)/ or die "Unknown net $net";
+       my ($majorsubnet,$minorsubnet) = ($1,$2);
+
+       my $gw = "82.162.$majorsubnet." . ($minorsubnet + 1);
+
+       print <<"EOF";
+zone "$domain.tg05.gathering.org" {
+       type master;
+       allow-update { key DHCP_UPDATER; };
+       notify yes;
+       file "dynamic/$domain.tg05.gathering.org";
+       allow-transfer { 194.19.3.20; 81.162.254.76; };
+};
+EOF
+}