Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
lib
 
 
 
 
 
 
 
 
 
 

Netcrawl

Given snmp community and single device, crawls the network via discovering LLDP/CDP neighbours, while producing list or dot file (for graphviz digraphs)

Install

% gem install netcrawl

Use

% netcrawl --graphiz router.example.com

Command line

Usage: netcrawl [options] hostname
    -g, --graphviz       dot output use 'dot -Tpng -o map.png map.dot'
    -l, --list           list nodes
    -j, --json           json output
    -y, --yaml           yaml output
    -a, --hash           hash/associative array output
    -r, --resolve        resolve addresses to names
    -p, --purge          remove peers not in configured CIDR
    -c, --community      SNMP community to use
    -d, --debug          turn debugging on
    -h, --help           Display this help message.

  • graphiz - graphis (dot) output
  • list - list nodes found
  • json - json output
  • yaml - yaml output
  • hash - ruby hash output
  • resolve - resolve IP addresses
  • purge - remove non-cidr matching peers from output
  • community - sets snmp community
  • debug - turn on debugging

Config

---
use:
- LLDP
- CDP
poll:
- 192.0.2.0/24
snmp:
  community: public
  timeout: 1
  retries: 2
  bulkrows: 35
dot:
  bothlinks: true
  color:
  - - cpe
    - gold
  - - -sw
    - blue
  - - -pe
    - red
  - - ' -p'
    - yellow
dns:
  afi: 
log: STDERR
debug: false
namemap:
- - -re\d+
  - ''
- - (.*(?<!as23456.net)$)
  - \1.as23456.net
  • use - methods to use for crawling
  • poll - cidrs to allow snmp for
  • snmp community - snmp community to use
  • snmp timout - snmp timout in seconds
  • snmp retries - snmp retries count
  • snmp bulkrows - snmp row count for bulkget
  • dot bothlinks - show a-b and b-a link
  • dot color - regexp to color, first hit used
  • dns afi - ipv4/ipv6 or nil
  • log - STDERR/STDOUT or file
  • debug - debugging
  • namemap - map (LLDP) name to FQDN (JunOS does not give domain)

Library use

require 'netcrawl' output = NetCrawl.new.crawl('192.0.2.1').to_hash

About

LLDP/CDP crawler

Resources

Packages

No packages published

Languages