Skip to content
Raphaël B edited this page Aug 17, 2015 · 7 revisions

Network Miner

Network Miner generates a network map by sending SNMP requests (LLDP/CDP/EDP).

D3.js display

Table of contents:

Installation

  • LLDP, EDP or CDP need to be enabled on your SNMP devices.

  • You need a web server with the php snmp plugin/package enabled.

  • Clone this repository into your sites location (e.g. /var/www/) :

git clone https://github.com/tux-00/network_miner.git

  • Download dependencies :

cd network_miner

bower install

Check bower.io website for more informations about Bower.

  • Edit data_mining.php and set the first hostname (or ip address) to scan at this line:

$FIRST_DEVICE = 'test';

and the dig level at this line (second parameter):

recursive_search($FIRST_DEVICE, 1);

  • Run index.php in your web browser.

Dependencies

The following libs are needed to run Network Miner.

Use bower install to install dependencies.

Files

Four files are important.

Test files

You can test Network Miner without the appropriate environment.

To test Network Miner, you need first to copy the content of a json example data file (located in test/data/) to your data directory.

Once the file is copied you need to comment these lines to avoid the scan and the overwrite of the data on snmp_data.json:

recursive_search($FIRST_DEVICE, 1);

file_put_contents('./data/snmp_data.json', json_encode(array('nodes' => $nodes, 
 'links' => $links)),
 LOCK_EX);

JSON data faker

If you want to submit data for testing purpose you can use the json_data_faker.py Python 2.7 script to fake every device names in your JSON file.

To use this script you need to install faker module with pip install fake-factory.

Just put the script at your json files location and execute it: python json_data_faker.py.

The script will scan the current folder, find the json files and replace device names.

Technical details

Cisco Discovery Protocol (CDP):

The Cisco Discovery Protocol (CDP) is a proprietary Data Link Layer protocol developed by Cisco Systems. It is used to share information about other directly connected Cisco equipment, such as the operating system version and IP address.

Extreme Discovery Protocol (EDP):

EDP is a vendor proprietary protocol from Extreme Networks. It is used to send information like system MAC, device name or VLAN information to neighboring Extreme devices.

JSON data structure:

{
    "nodes":[
        {
            "name":"eswexample",
            "group":0
        },
        {
            "name":"eswtest",
            "group":0
        }
    ],
    "links":[
        {
            "source":1,
            "target":0
        },
        {
            "source":2,
            "target":0
        }
    ]
}

Roadmap

  • Get SNMP informations from a specific device
  • Autorefresh map data
  • Save maps as PDF, PNG ...
  • Icinga plugin
Clone this wiki locally