#! /usr/bin/perl
open PATCHLIST, "<patchlist.txt"
or die "patchlist.txt: $!";
-my %distros = ();
+my %vlans = ();
+my %ports = ();
while (<PATCHLIST>) {
chomp;
}
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 directed-broadcast 101
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 <<"EOF";
+access-list 101 remark ip directed broadcast
+access-list 101 permit ip any any dscp cs7
+EOF
+ print DISTRO $vlans{$distro};
+ print DISTRO $ports{$distro};
print DISTRO "end\n";
close DISTRO;
}