]> git.sesse.net Git - nms/blob - clients/zyxelng.pl
e41f6578dba08d016ae93be1d764ce39cb6f7795
[nms] / clients / zyxelng.pl
1 #!/usr/bin/perl -w
2 #
3 #
4
5 use strict;
6 use lib '../include';
7
8 use Data::Dumper;
9
10 use nms qw(switch_connect switch_exec);
11 #use ios;
12
13 #my $t = nms::ios_connect('62.148.36.12', 'c', 'c', 'c');
14
15 #print STDERR "No such network 192.168.1.0\n" if nms::ios_getroute($t, "192.168.1.0") == 0;
16
17 #nms::ios_close($t);
18
19 my $oldip;
20 my $newip;
21 if ($#ARGV < 1) {
22         die "Foo $#ARGV";
23 }
24
25 $oldip = $ARGV[0];
26 $newip = $ARGV[1];
27
28 my $one = 0;
29
30 my $switchip;
31 #$switchip = "87.76.250.226" if $one;
32 #$switchip = "192.168.2.150" if $one;
33 #$switchip = "192.168.1.1" unless $one;
34 $switchip = $oldip;
35 my $switch = switch_connect($switchip)
36         or die "Could not connect to $switchip";
37
38 my $cmds1 = <<EOF
39 sys hostname es-3024
40 ip igmpsnoop enable
41
42 sys sw vlan type 802.1q
43 sys sw vlan1q svlan setentry MNGT 248 25 fixed tag
44 sys sw vlan1q svlan active 248
45 sys sw vlan1q svlan setentry e01-1sw 1 25 fixed untag
46
47 sys sw vlan1q svlan setentry MNGT 248 1 forbidden tag
48 sys sw vlan1q svlan setentry MNGT 248 2 forbidden tag
49 sys sw vlan1q svlan setentry MNGT 248 3 forbidden tag
50 sys sw vlan1q svlan setentry MNGT 248 4 forbidden tag
51 sys sw vlan1q svlan setentry MNGT 248 5 forbidden tag
52 sys sw vlan1q svlan setentry MNGT 248 6 forbidden tag
53 sys sw vlan1q svlan setentry MNGT 248 7 forbidden tag
54 sys sw vlan1q svlan setentry MNGT 248 8 forbidden tag
55 sys sw vlan1q svlan setentry MNGT 248 9 forbidden tag
56 sys sw vlan1q svlan setentry MNGT 248 10 forbidden tag
57 sys sw vlan1q svlan setentry MNGT 248 11 forbidden tag
58 sys sw vlan1q svlan setentry MNGT 248 12 forbidden tag
59 sys sw vlan1q svlan setentry MNGT 248 13 forbidden tag
60 sys sw vlan1q svlan setentry MNGT 248 14 forbidden tag
61 sys sw vlan1q svlan setentry MNGT 248 15 forbidden tag
62 sys sw vlan1q svlan setentry MNGT 248 16 forbidden tag
63 sys sw vlan1q svlan setentry MNGT 248 17 forbidden tag
64 sys sw vlan1q svlan setentry MNGT 248 18 forbidden tag
65 sys sw vlan1q svlan setentry MNGT 248 19 forbidden tag
66 sys sw vlan1q svlan setentry MNGT 248 20 forbidden tag
67 sys sw vlan1q svlan setentry MNGT 248 21 forbidden tag
68 sys sw vlan1q svlan setentry MNGT 248 22 forbidden tag
69 sys sw vlan1q svlan setentry MNGT 248 23 forbidden tag
70 sys sw vlan1q svlan setentry MNGT 248 24 forbidden tag
71 EOF
72 ;
73 #
74 foreach (split(/\n+/, $cmds1)) {
75         print "Sending: '$_'\n";
76         switch_exec($_, $switch);
77 }
78
79 my $cmd;
80 #$cmd = "ip ifconfig swif0 192.168.1.1/24" if $one;
81 #$cmd = "ip ifconfig swif0 192.168.2.150/24" unless $one;
82 $cmd = "ip ifconfig swif0 $newip/30";
83
84 print "Sending '$cmd'\n";
85 my $pid = fork();
86 if ($pid == 0) {
87         print "Sending ifconfig.. $cmd\n";
88         switch_exec($cmd, $switch);
89         exit 0;
90 } else {
91         #switch_exec($cmd, $switch, 1);
92         print "Sleeping...\n";
93         sleep 1;
94 }
95 $switch->close();
96
97 #print "Reconnecting... ";
98 ##$switchip = "192.168.1.1" if $one;
99 ##$switchip = "192.168.2.150" unless $one;
100 #$switchip = $newip;
101 #autoflush STDOUT 1;
102 #print "Connecting to: $switchip...\n";
103 #my $i = 1;
104 #while(1) {
105 #       $switch = switch_connect($switchip);
106 #       
107 #       #print (defined($switch)? $switch : "foo") ." <---- switch\n";
108 #       if (defined($switch) || $switch) {
109 #               last;
110 #       }
111 #       printf("Waited $i seconds...\r");
112 #       $i++;
113 #       sleep 1;
114 #}
115 #print "\n";
116
117 #print $switch."\n";
118 #$cmd = "sys sw vlan1q svlan cpu 248";
119 #print "Sending '$cmd'\n";
120 #print "XXX: No we did not...";
121 #print Dumper($switch->cmd("ip ifconfig"));
122 #print Dumper($switch->cmd("ip route status"));
123 #switch_exec($cmd, $switch, 1);
124