Network topology mapping sounds simple until you have 500 devices spread across 3 datacenters and 12 regional offices. Suddenly you need automated discovery, because manually drawing connections is madness. This guide explains what tools actually do topology mapping, how they discover relationships, and which ones are worth your time.
Topology mapping automatically discovers which devices connect to which, then visualizes those relationships. Instead of a list of 500 routers with no context, you see a diagram:
ISP Border Router (1.1.1.1)
└─ Regional Router 1 (1.1.2.1)
├─ Access Switch 1 (1.1.2.10)
│ ├─ PoE Switch (1.1.2.20)
│ └─ WiFi AP (1.1.2.30)
└─ OLT (1.1.2.40)
├─ ONT Customer 1 (1.1.3.1)
└─ ONT Customer 2 (1.1.3.2)
This hierarchy helps operations teams understand failure scope. If the OLT goes down, you immediately see which customers lose service.
LLDP is the open standard for advertising device identity to neighbors. It works on Ethernet layer 2—even if IP routing is broken, LLDP still talks.
How it works:
LLDP OIDs for SNMP polling:
# Neighbor table (which devices connect to which ports)
lldpRemoteChassisId 1.0.8802.1.1.2.1.3.2.0
lldpRemotePortDesc 1.0.8802.1.1.2.1.3.7.1.3
lldpRemoteSystemName 1.0.8802.1.1.2.1.3.3.0
Enable LLDP on MikroTik:
/interface ethernet switch set all lldp=yes
/snmp set enabled=yes
Pros:
Cons:
CDP is Cisco’s proprietary version of LLDP. It’s older and less reliable, but still widely used on legacy Cisco equipment.
Enable CDP on Cisco:
Switch(config)# cdp run
Switch(config)# interface GigabitEthernet 1/0/1
Switch(config-if)# cdp enable
vs LLDP:
If you have choice, always pick LLDP.
ARP tables don’t show direct physical links, but they show which devices have recently communicated on the same network segment. By analyzing ARP neighbors across all devices, you can infer which segments are connected.
How it works:
1.3.6.1.2.1.3.1.1Pros:
Cons:
Some tools (NetBox, Zabbix) walk the device’s own interface table to find connected ports, then cross-reference with ARP tables. Manual, but effective for custom topologies.
# Get all interfaces and neighbors
snmpwalk -v 2c -c public DEVICE 1.3.6.1.2.1.31.1.1.1
Tools like Nautobot and NetBox have APIs that let you programmatically register devices and connections. You control the topology; discovery is secondary.
Discovery method: SNMP neighbor polling, manual topology editor
Topology features:
Limitations:
Best for: ISPs who want The Dude’s visual interface without Windows pain.
# YAD topology via web UI: Add Device → Set neighbors manually or import YAML
Discovery method: LLDP/CDP walk + ARP correlation
Topology features:
Example LLDP discovery:
# LibreNMS auto-discovers this on every poll:
Device1 port eth0 → Device2 port eth1
Device2 port eth2 → Device3 port eth3
# Builds topology: Device1 ←→ Device2 ←→ Device3
Best for: ISPs with 100–2000 devices who need accurate L2 maps.
Discovery method: Template-based, ARP correlations, custom scripts
Topology features:
Limitations:
Best for: Large enterprises with complex multi-site layouts who want status overlays.
Discovery method: API + manual DCIM (Data Center Inventory Management)
Topology features:
Limitations:
Best for: Large enterprises with Ansible infrastructure who want single source of truth.
Discovery method: Service discovery (Kubernetes, static files, API)
Topology features:
Best for: Cloud-native environments, not ISP networks.
| Method | Coverage | Accuracy | Latency | Overhead |
|---|---|---|---|---|
| LLDP | L2 neighbors only | 99%+ | 30 seconds | Low (~200 bytes/min) |
| CDP | Cisco only | 95% | 60 seconds | Medium (~500 bytes/min) |
| ARP | Passive, segment-based | 70% | Minutes | None (existing traffic) |
| Manual | Any topology | 100% | N/A | High (human time) |
You’re an ISP with 50 customer locations. Each has a CPE device (MikroTik hEX or similar). You want to know which CPE connects to which regional hub.
# On each Regional Hub (MikroTik RB4011):
/interface ethernet switch set all lldp=yes
/snmp set enabled=yes community=public
# On each Customer CPE (MikroTik hEX):
/interface ethernet switch set all lldp=yes
/snmp set enabled=yes community=public_customer
docker run -d \
-e DB_HOST=mysql \
-e DB_NAME=librenms \
-e DB_USER=librenms \
-e DB_PASS=PASSWORD \
-p 8080:80 \
librenms/librenms
Via web UI: Add all 50 hubs + 50 CPEs. LibreNMS polls SNMP and builds LLDP map.
LibreNMS automatically discovers:
You get a visual map with zero manual topology entry.
Symptom: “LibreNMS sees devices but no topology.”
Fix: Check /interface ethernet switch lldp on MikroTik, show lldp on Cisco.
LibreNMS uses SNMP v3 for security; your devices only support v1/v2c. Fix: Configure v2c on your devices, set LibreNMS community string.
Often due to unmanaged switches (no SNMP, no LLDP). Unmanaged switches are invisible. Fix: Replace with managed switches, or use ARP-based discovery as fallback.
If you have 5000 devices, a full topology graph is useless (can’t read it). Fix: Filter by site, device type, or VLAN. Use hierarchical layouts instead of flat graphs.
For ISPs and MSPs:
LLDP is your friend. Enable it everywhere, and your monitoring tool will thank you.
Deploy YAD with topology mapping → yetanotherdude.io
Single binary, drag-drop editor, SNMP discovery included.