network topology on the switch some interface not success to establish peernode
-
When performing network topology on the switch, the results of lldp and fdb are obtained at the same time, resulting in a conflict and failure to establish the peernode.
[color=#1f1f1f][size=5][font=Verdana, Arial, Helvetica, sans-serif]In the following log record, I found that two record is[/font][/size][/color]2024.10.16 23:13:55.965 *D* [topology.link ] LinkLayerNeighbors::isDuplicate: inconsistent data: FDB(ifLocal=2 remote=76050/5) FDB(ifLocal=41 remote=76040/5)
2024.10.16 23:13:55.965 *D* [topology.link ] LinkLayerNeighbors::isDuplicate: inconsistent data: FDB(ifLocal=2 remote=76050/5) FDB(ifLocal=42 remote=76048/5)[color=#1f1f1f][size=5][font=Verdana, Arial, Helvetica, sans-serif]As a result, I was supposed to find 5 but then I only found 2.[/font][/size][/color]The netxms I use is 5.0.8 and the switch is dlink dgs-1510-52
Other switches of the same type Also having the same issue. The switches are connected to computers and operating systems with the same hardware specifications.
I would like to ask what is the reason for this result, which makes me very confused. I've found that this issue may not be limited to a certain type of network switch.2024.10.16 23:13:51.088 *D* [topology.fdb ] GetSwitchForwardingDatabase(sw-203-dlink [47278]): 165 entries read from dot1qTpFdbTable
2024.10.16 23:13:51.177 *D* [topology.fdb ] GetSwitchForwardingDatabase(sw-203-dlink [47278]): 0 entries read from dot1dTpFdbTable
2024.10.16 23:13:51.177 *D* [poll.topology ] Switch forwarding database retrieved for node sw-203-dlink [47278]
2024.10.16 23:13:51.177 *D* [topology.link ] BuildLinkLayerNeighborList(sw-203-dlink [47278]): building link level topology
2024.10.16 23:13:51.177 *D* [topology.driver ] Collecting topology information from driver DLINK for node sw-203-dlink [47278]
2024.10.16 23:13:51.177 *D* [topology.driver ] Driver for node sw-203-dlink [47278] cannot provide link layer topology information
2024.10.16 23:13:51.177 *D* [topology.lldp ] Collecting LLDP topology information for node sw-203-dlink [47278]
2024.10.16 23:13:55.690 *D* [topology.lldp ] 5 entries in LLDP-MIB connection database for node sw-203-dlink [47278]
2024.10.16 23:13:55.690 *D* [topology.lldp ] Finished collecting LLDP topology information for node sw-203-dlink [47278]
2024.10.16 23:13:55.965 *D* [poll.topology ] Node::addHostConnections(sw-203-dlink [47278]): FDB retrieved
2024.10.16 23:13:55.965 *D* [poll.topology ] Node::addHostConnections(sw-203-dlink [47278]): found single MAC A0:36:BC:5B:19:A7 on interface eth1/0/2
2024.10.16 23:13:55.965 *D* [poll.topology ] Node::addHostConnections(sw-203-dlink [47278]): found remote interface ethernet 2 [76051]
2024.10.16 23:13:55.965 *D* [poll.topology ] Node::addHostConnections(sw-203-dlink [47278]): found single MAC A0:36:BC:5B:18:1C on interface eth1/0/3
2024.10.16 23:13:55.965 *D* [poll.topology ] Node::addHostConnections(sw-203-dlink [47278]): found remote interface ethernet [75986]
2024.10.16 23:13:55.965 *D* [poll.topology ] Node::addHostConnections(sw-203-dlink [47278]): found single MAC A0:36:BC:5B:18:D9 on interface eth1/0/41
2024.10.16 23:13:55.965 *D* [poll.topology ] Node::addHostConnections(sw-203-dlink [47278]): found remote interface ethernet 2 [76041]
2024.10.16 23:13:55.965 *D* [topology.link ] LinkLayerNeighbors::isDuplicate: inconsistent data: FDB(ifLocal=2 remote=76050/5) FDB(ifLocal=41 remote=76040/5)
2024.10.16 23:13:55.965 *D* [poll.topology ] Node::addHostConnections(sw-203-dlink [47278]): found single MAC A0:36:BC:5B:1A:E0 on interface eth1/0/42
2024.10.16 23:13:55.965 *D* [poll.topology ] Node::addHostConnections(sw-203-dlink [47278]): found remote interface ethernet 2 [76049]
2024.10.16 23:13:55.965 *D* [topology.link ] LinkLayerNeighbors::isDuplicate: inconsistent data: FDB(ifLocal=2 remote=76050/5) FDB(ifLocal=42 remote=76048/5)
2024.10.16 23:13:55.965 *D* [topology.link ] BuildLinkLayerNeighborList(sw-203-dlink [47278]): 2 connections found -
nodeid 76050 have a interface(objectId=76051) ifindex=5 mac address A0:36:BC:5B:19:A7 is physical link on the sw-203-dlink(dgs-1510-52) switch eth1/0/2
nodeid 76040 have a interface(objectId=76041) ifindex=5 mac address A0:36:BC:5B:18:D9 is physical link on the sw-203-dlink(dgs-1510-52) switch eth1/0/41
nodeid 76048 have a interface(objectId=76049) ifindex=5 mac address A0:36:BC:5B:1A:E0 is physical link on the sw-203-dlink(dgs-1510-52) switch eth1/0/42my nodeid 76050 76040 76048 's operation The operating systems are completely cloned. Only the hardware information is slightly different, such as the network card mac address and ip.
in netxms i use topology sw-203-dlink switch forwarding database list result ,It is also consistent with the actual interface between the computer and the switch.so i search in source code
In lln.cpp I find I saw the relevant code belowAlso, I have also directly queried the lldp of the switch and I get this result
Name/OID: .1.0.8802.1.1.2.1.4.1.1.7.306145956.42.9; Value (OctetString): A0-36-BC-5B-1A-E0
Name/OID: .1.0.8802.1.1.2.1.4.1.1.7.306145970.41.17; Value (OctetString): A0-36-BC-5B-18-D9
Name/OID: .1.0.8802.1.1.2.1.4.1.1.7.306146123.2.15; Value (OctetString): A0-36-BC-5B-19-A7The information on lldp also confirms that the node is on the correct interface.
so,Is it possible that some misjudgment or mistake occurred here?/**
* Check if given information is duplicate
*/
bool LinkLayerNeighbors::isDuplicate(const LL_NEIGHBOR_INFO& info)
{
for(int i = 0; i < m_connections.size(); i++)
{
LL_NEIGHBOR_INFO *n = m_connections.get(i);
if (n->ifLocal == info.ifLocal)
{
if ((n->ifRemote != info.ifRemote) || (n->objectId != info.objectId))
{
nxlog_debug_tag(DEBUG_TAG_TOPO_LINK, 5, _T("LinkLayerNeighbors::isDuplicate: inconsistent data: %s(ifLocal=%d remote=%d/%d) %s(ifLocal=%d remote=%d/%d)"),
GetLinkLayerProtocolName(n->protocol), n->ifLocal, n->objectId, n->ifRemote,
GetLinkLayerProtocolName(info.protocol), info.ifLocal, info.objectId, info.ifRemote);
}
return true;
}
if (n->ifRemote == info.ifRemote)
{
if ((n->ifLocal != info.ifLocal) || (n->objectId != info.objectId))
{
nxlog_debug_tag(DEBUG_TAG_TOPO_LINK, 5, _T("LinkLayerNeighbors::isDuplicate: inconsistent data: %s(ifLocal=%d remote=%d/%d) %s(ifLocal=%d remote=%d/%d)"),
GetLinkLayerProtocolName(n->protocol), n->ifLocal, n->objectId, n->ifRemote,
GetLinkLayerProtocolName(info.protocol), info.ifLocal, info.objectId, info.ifRemote);
}
return true;
}
}
return false;
}
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login