or die "switches.txt: $!";
while (<NAMES>) {
chomp;
- /81\.162\.(\d+\.\d+)\s+(\d+)\s+(\S+)/ or next;
+ /194\.0\.(\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;
+option domain-name "tg06.gathering.org";
+option domain-name-servers 194.0.254.2;
+# ddns-update-style none;
ddns-update-style interim;
+# 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 ) ),
+ "'"
+ )
+ );
+}
+
+# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST DHCP_UPDATER
key DHCP_UPDATER {
algorithm HMAC-MD5.SIG-ALG.REG.INT;
- secret removed;
+ secret 5Yz1azvh7mE0IRGffTvtKg==;
}
default-lease-time 14400;
max-lease-time 28800;
-# Servernett
-subnet 81.162.254.0 netmask 255.255.255.192 {
+# Tele-nett
+subnet 194.0.254.0 netmask 255.255.255.0 {
}
-subnet 81.162.254.64 netmask 255.255.255.192 {
+
+# Server-nett
+subnet 194.0.255.0 netmask 255.255.255.0 {
}
-zone 162.81.in-addr.arpa. {
+zone 0.194.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATER;
}
$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);
+ my $gw = "194.0.$majorsubnet." . ($minorsubnet + 1);
+ my $rangestart = "194.0.$majorsubnet." . ($minorsubnet + 10);
+ my $rangeend = "194.0.$majorsubnet." . ($minorsubnet + $numpc - 2);
- print <<"EOF";
-zone $domain.tg05.gathering.org. {
+ 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;
}
-subnet 81.162.$net netmask $netmask {
+EOF
+ }
+ print <<"EOF";
+subnet 194.0.$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
+ 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
+ }
- # 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;
+ 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. {
+ primary 127.0.0.1;
+ key DHCP_UPDATER;
+}
+subnet 194.0.$net netmask $netmask {
+ authoritative;
+ option routers $gw;
+
+ range $rangestart $rangeend;
+ option domain-name "$domain.tg06.gathering.org";
+ ddns-domainname "$domain.tg06.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";