]> git.sesse.net Git - nms/blob - clients/ciscong.pl
The cisco part is starting to work.
[nms] / clients / ciscong.pl
1 #!/usr/bin/perl
2 #
3 #
4
5 use warnings;
6 use strict;
7
8 use lib '../include';
9
10 use Net::Telnet::Cisco;
11 use Net::Ping;
12
13 use Data::Dumper;
14
15
16 BEGIN {
17         require "../include/config.pm";
18         eval {
19                 require "../include/config.local.pm";
20         };
21 }
22
23 sub ios_getroute {
24         my ($t, $net) = @_;
25
26         $t->cmd("show ip route".($net ? " $net" : '')) or return 0;;
27         
28         return 1;
29 }
30
31 my $ios_server = "noc-gw.net.tg07.gathering.org";
32 my $vlannumber = 16;
33
34 #my $ios = nms::ios_connect($ios_server, $nms::config::ios_user, $nms::config::ios_pass)
35 #       or die "Unable to connect to cisco";
36
37 my $ios = Net::Telnet::Cisco->new(Host => $ios_server,
38                                   Errmode => 'return',
39                                   Prompt => '/[^\s\(]+(\([^\(]\)){0,1}[#>]/');
40 $ios->login($nms::config::ios_user, $nms::config::ios_pass);
41 $ios->enable;
42
43 #nms::ios_enable($ios);
44 #$ios->cmd();
45 #nms::ios_getroute($ios, "192.168.1.0");
46 #$ios->cmd("");
47
48 #nms::ios_close($ios);
49
50 # Disable paging
51 $ios->cmd("terminal length 0");
52
53 #my @routes = $ios->cmd("show ip route");
54
55 die "Already routed up 192.168.1.0/24" if (ios_getroute($ios, "192.168.1.0") == 1);
56
57
58
59 $ios->cmd("conf t");
60 $ios->cmd("int vlan $vlannumber");
61 $ios->cmd("ip add 192.168.1.254 255.255.255.0 secondary");
62 $ios->cmd("exit");
63 $ios->cmd("exit");
64
65 my $zyxeloldip = "192.168.1.1";
66
67 ### Do things
68 ## ZyxelNG connect
69
70
71 my $p = Net::Ping->new();
72 printf "Waiting for zyxel to come up...\n";
73 while (1) {
74         last if $p->ping($zyxeloldip);
75         print "pinging...\n";
76         sleep 1;
77 }
78 print "Zyxel is alive..\n";
79 $p->close();
80
81 system("perl ./zyxelng.pl 192.168.1.1 192.168.2.1");
82
83 ####
84
85 $ios->cmd("conf t");
86 $ios->cmd("int vlan $vlannumber");
87 $ios->cmd("no ip add 192.168.1.254 255.255.255.0 secondary");
88 $ios->cmd("exit");
89 $ios->cmd("exit");
90
91 $ios->close();
92
93