Table of Contents
Netdisco Pooling
Preface
Pooling of managed device in Netdisco is based on several different data sources. Based on collected data Netdisco is able to create topology of managed infrastructure.
Netdisco is using this pooling data sources:
- ARP table of the managed device (SNMP polling is used)
- MAC table of managed device (SNMP polling is used)
- LLDP / CDP/ … discovery of neighbors of managed device (SNMP polling is used)
- NetBIOS discovery of the topology (NetBIOS protocol is used)
Pooled data
Main functionality of Netdisco is to collecting information related to the Infrastructure topology with help of SNMP requests for data related to ARP, MAC, and LLDP/CDP information.
On another hand Netdisco is collecting as well additional information related to the Interface like speed and duplex. According to this Netdisco is able to provide you as well Speed/Duplex mismatch errors.
Netdisc is able to collect information related to:
- List of Interfaces related to the device
- Interface description
- SNMP Contact for device
- SNMP Location of device
- Interface speed / duplex
- Device vendor
- Device model
- Device OS version
- Vlan information
- Device uptime
- ARP, MAC table information from devices
- LLDP / CDP information
- Device Module information
- …
Pooling management
Periodical pooling of discovered devices is handled like standard “cron” job. According to this it is possible to customize this pooling.
[root@Netdisco ~]# crontab -u netdisco -l # Netdisco - crontab # This is the crontab for the netdisco user # Output is found in /data/netdisco/logs # $Id$ #MAILTO=max PATH=/bin:/usr/bin:/usr/local/bin # -- Weekly -- # Walk network for new devices once a week (Wed @ 14:00) 0 14 * * 3 /usr/local/netdisco/netdisco -b -r 127.0.0.1 # -- Daily -- # Backup at 1am every day 0 1 * * * /usr/local/netdisco/netdisco -b -B # Restart admin panel daemon nightly 0 2 * * * /usr/local/netdisco/netdisco -b -p restart # Refresh Graph every day 0 3 * * * /usr/local/netdisco/netdisco -b -g 2>&1 # Refresh Devices at 9:00 every day 0 9 * * * /usr/local/netdisco/netdisco -b -R # -- Hourly -- # Arp Nip every hour on the half hour 30 * * * * /usr/local/netdisco/netdisco -b -a # Save configs every hour on the hour (only necessary if network includes # devices that do not permanently save SNMP changes, such as Cisco IOS) #0 * * * * /usr/local/netdisco/netdisco -b -j 61 # Mac Suck every 2 hours 0 */2 * * * /usr/local/netdisco/netdisco -b -m # Grab NetBios Info from Nodes three times a day 0 8,13,21 * * * /usr/local/netdisco/netdisco -b -w
Pooling configuration
SNMP read / write string
To be able to use SNMP protocol for device pooling at Netdisco, we will need to configure at least SNMP read community string that will be used for SNMP polling.
In the case that we would like to use interface management that is provided at Netdisco we will need to configure as well SNMP write community string of our managed devices.
/usr/local/netdisco/netdisco.conf community = public,public2,public3 # SNMP v1 &v2, Read only SNMP strings community_rw = private1,private2,private3 # SNMP v2 , Read / Write SNMP strings v3_users = netdisco # SNMP v3 , Read only user v3_users_rw = netdisco # SNMP v3 , Read / Write user v3_user = netdisco:auth,enc:SHA:disconet:AES:disconet # snmpver = 2 # Prefered SNMP version
As you can see:
- SNMP community strings are using “,” as a separator
- Netdisco is not using configuration per device but during the discovery of the device it is using all available SNMP community strings
- Netdisco is SNMP v3 ready. Any way most of the admins are still using SNMP v2.
- SNMP Read string is mandatory
- SNMP Read / Write string is optional not mandatory
Load management
It is possible to specify how many parallel processes can run in same time.
/usr/local/netdisco/netdisco.conf # Enable parallel mode. Set to the number of processes you would like to run simultaneously. # If not running parallel mode, consider decreasing timeout values to lower walk times # # You may need to increase the number of connections in postgresql.conf # See max_connections here : http://www.postgresql.org/docs/8.2/static/runtime-config-connection.html # # And you may need to increase kernel shared memory space for Postgres # See http://www.postgresql.org/docs/8.2/static/kernel-resources.html for details max_procs = 10
Infrastructure Discovery
When you are starting discovery of your infrastructure you have several options:
1.) Discovery with providing one Device IP. In this case Netdisco will try to discover all neighbors of this device and start to poll them. After this device is discovered Netdisco will try to do same discovery for all neighbors of this device. This is nice possibility of topology discovery, but it can take too long.
2.) Discovery of exact one device. This is probably the most used way of discovering of the infrastructure, as you can exact specify a device that need to be discovered.
3.) Discovery based on list of devices provided as a file. This is as well really handy in case that you are going to do integration of Netdisco with another tools.
Discover network starting from device
[root@Netdisco ~]# /usr/local/netdisco/netdisco -r <Device_IP>
Discover single device
[root@Netdisco ~]# /usr/local/netdisco/netdisco -d <Device_IP>
Discover List of devices
[root@Netdisco ~]# /usr/local/netdisco/netdisco -F <File_with_IP's>
Infrastructure Pooling
Pooling of ARP cache
[root@Netdisco ~]# /usr/local/netdisco/netdisco -a # This will pool all managed devices at Netdisco [root@Netdisco ~]# /usr/local/netdisco/netdisco -A <DEVCE> # This will poll information from only one device
Pooling of CDP / LLDP
[root@Netdisco ~]# /usr/local/netdisco/netdisco -r <DEVCE> # This will poll all devices that are connected # to the polled device (based on CDP/ LLDP information) [root@Netdisco ~]# /usr/local/netdisco/netdisco -R # This will pool all managed devices at Netdisco [root@Netdisco ~]# /usr/local/netdisco/netdisco -d <DEVCE> # This will poll information from only one device
Pooling of MAC cache
[root@Netdisco ~]# /usr/local/netdisco/netdisco -m # This will pool all managed devices at Netdisco [root@Netdisco ~]# /usr/local/netdisco/netdisco -M <DEVCE> # This will poll information from only one device
Pooling of NetBios
[root@Netdisco ~]# /usr/local/netdisco/netdisco -w # This will pool all managed devices at Netdisco [root@Netdisco ~]# /usr/local/netdisco/netdisco -W <DEVCE> # This will poll information from only one device
Infrastructure Remove
Remove one device
[root@Netdisco ~]# /usr/local/netdisco/netdisco -E <device>
Remove all devices from subnet
[root@Netdisco ~]# /usr/local/netdisco/netdisco --expire-nodes-subnet <IP>/<MASK> # Remove all devices from the subnet (example 10.0.0.0/8)
Netdisco Help
[root@Netdisco netdisco]# /usr/local/netdisco/netdisco --help Netdisco - Network Discovery and Management (1.3.2) netdisco [Options] Command(s) Options: -b --batchmode Batch Mode - Redirect stdout to log files -C --configfile file Specify path to config file -n --nodestoo Delete nodes when using --expiredevice -N --newonly For --discoverall and --discoverfile -P --port port Restrict --expirenodes to a single port -V --archive Archive instead of deleting in --expirenodes -D --debug DEBUG - Copious output -L --nologging DEBUG - No logging -S --dumpsql DEBUG - Dump SQL commands Network Commands: -r --discoverall device Discover network starting from device -F --discoverfile file Discover/Refresh devices from file -T --topofile Import Topology info from topofile -R --refresh Refresh all Devices -m --macwalk Macsuck whole network -a --arpwalk Arpnip whole network -w --nbtwalk Nbtwalk whole network Device Commands: -d --discover device Refresh single device -M --macsuck device Macsuck single device -A --arpnip device Arpnip single device -W --nbtstat node Nbtstat single node -E --expiredevice device Delete device -e --expirenodes device Delete/Archive nodes on a device --expire-nodes-subnet subnet Runs --expirenodes for all devices in a subnet -I --expireips Expire IPs not seen on switch ports -i --changeip old new Change IP address of device and its nodes Administration: -B --backup Backups data and runs database cleanup -g --graph Create network map files -j --saveconfigs minutes Saves configs on devices modified by jobs -k --cleanalias Deletes devices listed as aliases of another -K --cleannodes Clean out nodes listed on uplink ports -O --oui Import oui.txt into Netdisco -p (start,stop,status,restart) Admin Daemon Control -u [user] [pw] [port] [admin] Add/Change User -v --version Version info for Netdisco components