#! /usr/bin/perl
open PATCHLIST, "<patchlist.txt"
or die "patchlist.txt: $!";
-my %distros = ();
+my %vlans = ();
+my %ports = ();
while (<PATCHLIST>) {
chomp;
my $ip;
if ($switch == 1) {
- $ip = "87.76." . ($row - 1) . "1";
+ $ip = "87.76." . ($row) . ".1";
} elsif ($switch == 2) {
- $ip = "87.76." . ($row - 1) . "65";
+ $ip = "87.76." . ($row) . ".65";
} elsif ($switch == 3) {
- $ip = "87.76." . ($row - 1) . "129";
+ $ip = "87.76." . ($row) . ".129";
} elsif ($switch == 4) {
- $ip = "87.76." . $row . "1";
+ $ip = "87.76." . ($row + 1) . ".1";
} elsif ($switch == 5) {
- $ip = "87.76." . $row . "65";
+ $ip = "87.76." . ($row + 1) . ".65";
} elsif ($switch == 6) {
- $ip = "87.76." . $row . "129";
+ $ip = "87.76." . ($row + 1) . ".129";
}
my $vlan = "$row$switch";
+ my $ipv6 = sprintf "F%02u%u", $row, $switch;
- $distros{$distro} .= <<"EOF";
+ $vlans{$distro} .= <<"EOF";
vlan $vlan
name $name
!
+EOF
+
+ $ports{$distro} .= <<"EOF";
default interface vlan $vlan
-interface $vlan
+interface vlan $vlan
description $name
ip address $ip 255.255.255.192
ip directed-broadcast 10
ip helper-address 87.76.254.2
no ip proxy-arp
+ ip access-group great-wall-of-tg in
+ ipv6 address 2001:16D8:FFFF:${ipv6}::1/64
+ ip igmp version 2
+ ip pim sparse-mode
no shutdown
+ exit
!
-
default interface $port
interface $port
description $name
spanning-tree portfast
spanning-tree bpduguard enable
- ip igmp snooping
storm-control broadcast level 2
no shutdown
-
+ exit
+!
EOF
}
-for my $distro (keys %distros) {
+for my $distro (keys %vlans) {
open DISTRO, ">$distro-config"
or die "$distro-config: $!";
- print DISTRO $distros{$distro};
+ print DISTRO $vlans{$distro};
+ print DISTRO $ports{$distro};
+ print DISTRO "end\n";
close DISTRO;
}