X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=config%2Fmake-dhcpd.pl;h=3da7111372d9d43ec784ddc34ceeac09b62bd3de;hb=40d6c7e02855fa3bb3cf35805efe853051c88ea5;hp=2a2e2a35e502700dacc40e63919be26767e25718;hpb=c88ac877f3a12ae16d1b5ab7aab1943eb89ab825;p=nms diff --git a/config/make-dhcpd.pl b/config/make-dhcpd.pl index 2a2e2a3..3da7111 100755 --- a/config/make-dhcpd.pl +++ b/config/make-dhcpd.pl @@ -1,63 +1,54 @@ #! /usr/bin/perl -w use strict; -# les inn nettnavn -my %netnames = (); -my %netmasks = (); +my $date = `date --rfc-2822`; +chomp $date; + my @nets = (); open NAMES, "switches.txt" or die "switches.txt: $!"; while () { chomp; - /194\.0\.(\d+\.\d+)\s+(\d+)\s+(\S+)/ or next; - $netmasks{$1} = $2; - $netnames{$1} = $3; - push @nets, $1; + /87\.76\.(\d+\.\d+)\s+(\d+)\s+(\S+)/ or next; + push @nets, { + net => $1, + netmask => $2, + name => $3 + }; } print <<"EOF"; -# Autogenerated by make-dhcpd.pl. Do not edit manually! +# Autogenerated by make-dhcpd.pl at $date. Do not edit manually! -option domain-name "tg06.gathering.org"; -option domain-name-servers 194.0.254.2; +option domain-name "tg07.gathering.org"; +option domain-name-servers 87.76.254.2, 87.76.255.2; -# ddns-update-style none; -ddns-update-style interim; +# Netboot FTW +next-server 87.76.255.18; +filename "/pxelinux.0"; -# extra logging for option 82 -if exists agent.circuit-id -{ - log ( - info, - concat ( - "option-82 info for ", binary-to-ascii (16, 8, ":", hardware), - ": interface ", binary-to-ascii (10, 8, "/", suffix ( option agent.circuit-id, 2)), - ", VLAN ", binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)), - ", switch '", substring( option agent.remote-id, 2, 6), - "', port-name '", substring ( option agent.circuit-id, 2, extract-int ( substring ( option agent.circuit-id, 3, 1 ), 8 ) ), - "'" - ) - ); -} +ddns-update-style interim; +omapi-port 7911; # dnssec-keygen -a HMAC-MD5 -b 128 -n HOST DHCP_UPDATER key DHCP_UPDATER { algorithm HMAC-MD5.SIG-ALG.REG.INT; - secret 5Yz1azvh7mE0IRGffTvtKg==; + secret F388UOhaIIKHRH9TDE5PTA==; } default-lease-time 14400; max-lease-time 28800; # Tele-nett -subnet 194.0.254.0 netmask 255.255.255.0 { +subnet 87.76.254.0 netmask 255.255.255.0 { } # Server-nett -subnet 194.0.255.0 netmask 255.255.255.0 { +subnet 87.76.255.0 netmask 255.255.255.0 { + range 87.76.255.240 87.76.255.254; } -zone 0.194.in-addr.arpa. { +zone 76.87.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; } @@ -65,96 +56,44 @@ zone 0.194.in-addr.arpa. { EOF for my $net (@nets) { - my $domain = $netnames{$net}; + my $domain = $net->{name}; my ($netmask, $numpc); - if ($netmasks{$net} == 24) { + if ($net->{netmask} == 24) { $netmask = "255.255.255.0"; $numpc = 256; - } elsif ($netmasks{$net} == 25) { + } elsif ($net->{netmask} == 25) { $netmask = "255.255.255.128"; $numpc = 128; - } elsif ($netmasks{$net} == 26) { + } elsif ($net->{netmask} == 26) { $netmask = "255.255.255.192"; $numpc = 64; } else { - die "Unknown netmask /$netmasks{$net}"; + die "Unknown netmask /" . $net->{netmask}; } - $net =~ /(\d+)\.(\d+)/ or die "Unknown net $net"; + $net->{net} =~ /(\d+)\.(\d+)/ or die "Unknown net $net"; my ($majorsubnet,$minorsubnet) = ($1,$2); - - my $gw = "194.0.$majorsubnet." . ($minorsubnet + 1); - my $rangestart = "194.0.$majorsubnet." . ($minorsubnet + 10); - my $rangeend = "194.0.$majorsubnet." . ($minorsubnet + $numpc - 2); - - if ($domain =~ /^split:(.*)/) { - my @domains = split /,/, $1; - for my $d (@domains) { - print <<"EOF"; -zone $d.tg06.gathering.org. { - primary 127.0.0.1; - key DHCP_UPDATER; -} -EOF - } - print <<"EOF"; -subnet 194.0.$net netmask $netmask { - authoritative; - option routers $gw; -EOF - my $numpc_sub = int($numpc / scalar(@domains)); - for my $d (@domains) { - print <<"EOF"; - class "$d" { - match if substring ( option agent.circuit-id, 2, extract-int ( substring ( option agent.circuit-id, 3, 1 ), 8 ) ) = "$d"; - } -EOF - } - - my $i = 0; - for my $d (@domains) { - my $rangestart = "194.0.$majorsubnet." . ($minorsubnet + $i * $numpc_sub + 10); - my $rangeend = "194.0.$majorsubnet." . ($minorsubnet + $i * $numpc_sub + $numpc_sub - 2); - - print <<"EOF"; - pool { - allow members of "$d"; - range $rangestart $rangeend; - option domain-name "$d.tg06.gathering.org"; - ddns-domainname "$.tg06.gathering.org"; - ignore client-updates; - } -EOF - ++$i; - } - } else { - print <<"EOF"; -zone $domain.tg06.gathering.org. { + # FIXME: Should use Net::CIDR + my $gw = "87.76.$majorsubnet." . ($minorsubnet + 1); + my $rangestart = "87.76.$majorsubnet." . ($minorsubnet + 10); + my $rangeend = "87.76.$majorsubnet." . ($minorsubnet + $numpc - 2); + + print <<"EOF"; +zone $domain.tg07.gathering.org. { primary 127.0.0.1; key DHCP_UPDATER; } -subnet 194.0.$net netmask $netmask { +subnet 87.76.$net->{net} netmask $netmask { authoritative; option routers $gw; range $rangestart $rangeend; - option domain-name "$domain.tg06.gathering.org"; - ddns-domainname "$domain.tg06.gathering.org"; + option domain-name "$domain.tg07.gathering.org"; + ddns-domainname "$domain.tg07.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 194.0.254.89; -# } -#EOF - } - - print "}\n"; } +