TOPONET: network topology tool

Copyright © 2008 Stanislav Sinyagin <ssinyagin@k-open.com>

This package is distributed under GNU General Public License.

The development has been sponsored by Sunrise Communications AG.

The Toponet software provides the following features:

The source code is available from SVN repository at Sourceforge.net.

INSTALLATION

1. Install Jifty from CPAN (www.jifty.org)

2. Install prerequisites from CPAN:
    Digest::MD5
    Net::Telnet
    Net::Netmask
    Net::SNMP
    JUNOS::Device

3. Patch JUNOS::Access module
   http://rt.cpan.org/Public/Bug/Display.html?id=32246

   (usually somewhere in /usr/lib/perl5/site_perl/5.8.8/JUNOS/Access.pm)
   Remove the lines around line 315:
    # If something bad happens kill this process off...
    $SIG{INT} = $SIG{__DIE__} = $SIG{HUP} = $SIG{TERM} =
       sub { kill 9, $pid; exit };

4. Unpack Toponet archive somewhere (do not run Makefile.PL or "make install").

5. Create a database (presumably MySQL) and a DB user.

6. Change your directory to Toponet directory

7. Edit etc/site_config.yml and enter the database parameters and optionally
   the blacklist of system names that will be excluded from inventoty:

---
framework:
  Database:
    Database: toponet
    Driver: mysql
    Host: localhost
    Password: 'SECRET'
    User: 'toponet'
  LogLevel: INFO
application:
  Toponet:
    Inventory:
      Blacklist: ^...\d\d(a|(vhg))\d\d$


8. Create the database tables:

   ./bin/jifty schema --setup

9. See the Jifty manuals for installing the application into your Apache.

USAGE

Currently only IS-IS topology discovery is implemented. The software supports
Cisco IOS and Juniper JunOS and ERX devices.

To the moment only Telnet access is supported.

1. Add the default access class

  ./bin/accessclass --add --login=USER --password=SECRET --community=SECRET

2. Add a seed node to the topology

  ./bin/add_seednode --hostname=NYC01PE01 --addr=172.168.155.111

  The hostname should be exactly the same as shown on the device prompt in
  a telnet session.

3. Run the discovery

  ./bin/run_discovery 2>&1 | tee trace.log

  If no errors seen, the discovery should finish smoothly.

4. Run the hardware inventory

  ./bin/run_inventory 2>&1 | tee trace.log

5. Navigate the topology in Web UI.


6. Install the cronjobs:

0 1 * * * /usr/local/Toponet/bin/clean_changelog
0 7 * * * /usr/local/Toponet/bin/run_discovery >/tmp/toponet_discovery 2>&1
0 8 * * * /usr/local/Toponet/bin/run_inventory >/tmp/toponet_inventory 2>&1
*/5 * * * * /usr/local/Toponet/bin/process_trace_requests >/tmp/toponet_trace 2>&1