Skip to content

ytti/netcrawl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Stars

Watchers

Forks

Packages

No packages published

Languages