From ff83c67935bd1537bc0555b2c2e8eaf8963f8412 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sun, 9 Apr 2006 18:44:50 +0000 Subject: [PATCH] Added make-dhcpd.pl from TG05. --- config/make-dhcpd.pl | 98 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100755 config/make-dhcpd.pl diff --git a/config/make-dhcpd.pl b/config/make-dhcpd.pl new file mode 100755 index 0000000..9ca1edf --- /dev/null +++ b/config/make-dhcpd.pl @@ -0,0 +1,98 @@ +#! /usr/bin/perl -w +use strict; + +# les inn nettnavn +my %netnames = (); +my %netmasks = (); +my @nets = (); +open NAMES, "switches.txt" + or die "switches.txt: $!"; +while () { + 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-dhcpd.pl. Do not edit manually! + +option domain-name "tg05.gathering.org"; +option domain-name-servers 81.162.254.2, 81.162.254.76; + +ddns-update-style interim; + +key DHCP_UPDATER { + algorithm HMAC-MD5.SIG-ALG.REG.INT; + secret removed; +} + +default-lease-time 14400; +max-lease-time 28800; + +# Servernett +subnet 81.162.254.0 netmask 255.255.255.192 { +} +subnet 81.162.254.64 netmask 255.255.255.192 { +} + +zone 162.81.in-addr.arpa. { + primary 127.0.0.1; + key DHCP_UPDATER; +} + +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 = "81.162.$majorsubnet." . ($minorsubnet + 1); + my $rangestart = "81.162.$majorsubnet." . ($minorsubnet + 10); + my $rangeend = "81.162.$majorsubnet." . ($minorsubnet + $numpc - 2); + + print <<"EOF"; +zone $domain.tg05.gathering.org. { + primary 127.0.0.1; + key DHCP_UPDATER; +} +subnet 81.162.$net netmask $netmask { + authoritative; + range $rangestart $rangeend; + option routers $gw; + + option domain-name "$domain.tg05.gathering.org"; + ddns-domainname "$domain.tg05.gathering.org"; + ignore client-updates; +EOF + + # hack for sesse =) + if ($net eq '250.0') { + print <<"EOF"; + host trofast { + hardware ethernet 00:0e:0c:36:a7:66; + filename "/pxelinux.0"; + next-server 81.162.254.89; + } +EOF + } + + print "}\n"; +} -- 2.39.2