]> git.sesse.net Git - nms/blob - clients/zyxelng.pl
Some zyxelng-magic, set a new ip and add the config to the zyxel, no saving.
[nms] / clients / zyxelng.pl
1 #!/usr/bin/perl -w
2 #
3 #
4
5 use strict;
6 use lib '../include';
7
8 use nms qw(switch_connect switch_exec);
9 use ios;
10
11 #my $t = nms::ios_connect('62.148.36.12', 'c', 'c', 'c');
12
13 #print STDERR "No such network 192.168.1.0\n" if nms::ios_getroute($t, "192.168.1.0") == 0;
14
15 #nms::ios_close($t);
16
17 my $one = 1;
18
19 my $switchip;
20 $switchip = "87.76.250.226" if $one;
21 #$switchip = "192.168.2.150" if $one;
22 $switchip = "192.168.1.1" unless $one;
23 my $switch = switch_connect($switchip);
24
25 my $cmds1 = <<EOF
26 sys hostname es-3024
27 ip igmpsnoop enable
28
29 sys sw vlan type 802.1q
30 sys sw vlan1q svlan setentry MNGT 248 25 fixed tag
31 sys sw vlan1q svlan active 248
32 sys sw vlan1q svlan setentry e01-1sw 1 25 fixed untag
33
34 sys sw vlan1q svlan setentry MNGT 248 1 forbidden tag
35 sys sw vlan1q svlan setentry MNGT 248 2 forbidden tag
36 sys sw vlan1q svlan setentry MNGT 248 3 forbidden tag
37 sys sw vlan1q svlan setentry MNGT 248 4 forbidden tag
38 sys sw vlan1q svlan setentry MNGT 248 5 forbidden tag
39 sys sw vlan1q svlan setentry MNGT 248 6 forbidden tag
40 sys sw vlan1q svlan setentry MNGT 248 7 forbidden tag
41 sys sw vlan1q svlan setentry MNGT 248 8 forbidden tag
42 sys sw vlan1q svlan setentry MNGT 248 9 forbidden tag
43 sys sw vlan1q svlan setentry MNGT 248 10 forbidden tag
44 sys sw vlan1q svlan setentry MNGT 248 11 forbidden tag
45 sys sw vlan1q svlan setentry MNGT 248 12 forbidden tag
46 sys sw vlan1q svlan setentry MNGT 248 13 forbidden tag
47 sys sw vlan1q svlan setentry MNGT 248 14 forbidden tag
48 sys sw vlan1q svlan setentry MNGT 248 15 forbidden tag
49 sys sw vlan1q svlan setentry MNGT 248 16 forbidden tag
50 sys sw vlan1q svlan setentry MNGT 248 17 forbidden tag
51 sys sw vlan1q svlan setentry MNGT 248 18 forbidden tag
52 sys sw vlan1q svlan setentry MNGT 248 19 forbidden tag
53 sys sw vlan1q svlan setentry MNGT 248 20 forbidden tag
54 sys sw vlan1q svlan setentry MNGT 248 21 forbidden tag
55 sys sw vlan1q svlan setentry MNGT 248 22 forbidden tag
56 sys sw vlan1q svlan setentry MNGT 248 23 forbidden tag
57 sys sw vlan1q svlan setentry MNGT 248 24 forbidden tag
58 EOF
59 ;
60 #
61 foreach (split(/\n+/, $cmds1)) {
62         print "Sending: '$_'\n";
63         switch_exec($_, $switch);
64 }
65 $switch->close();
66
67 my $cmd;
68 $cmd = "ip ifconfig swif0 192.168.1.1/24" if $one;
69 $cmd = "ip ifconfig swif0 192.168.2.150/24" unless $one;
70 print "Sending '$cmd'\n";
71 my $pid = fork();
72 if ($pid == 0) {
73         switch_exec($cmd, $switch);
74         exit 0;
75 } else {
76         print "Sleeping...\n";
77         sleep 1;
78 }
79 $switch->close();
80 print "Reconnecting... ";
81 $switchip = "192.168.1.1" if $one;
82 $switchip = "192.168.2.150" unless $one;
83 do {
84         print "Connecting to: $switchip\n";
85         $switch = switch_connect($switchip);
86         
87         print (defined($switch)? $switch : "foo") ." <---- switch\n";
88         if (defined($switch) || $switch) {
89                 last;
90         }
91         print ".";
92         sleep 1;
93 } while (1);
94 print "\n";
95
96 print $switch."\n";
97 $cmd = "sys sw vlan1q svlan cpu 248";
98 print "Sending '$cmd'\n";
99 switch_exec($cmd, $switch, 1);
100