思科交换机 – 通过SNMP查找父/上行链路

有没有人有任何想法通过SNMP映射基于思科的networking? 我有SNMP访问所有的交换机(显然),以及所有主机名的列表。 从这里,我需要能够build立一个networking地图(或至lessfind哪个开关是另一个交换机的父母)。 SNMP几乎是唯一的select,因为CLIlogin被诠释了。

我可以通过SNMP获得CDP邻居,但我不太清楚如何确定他们来自哪个接口,或者哪个接口是上行链路。

我最初的样本是360个设备,之后我必须处理剩下的1,900个。 它是IOS和CatOS的混合,从2948的运行8.3(2)GLX到3750的运行12.2。

任何build议将不胜感激。

Cisco CDP mib OID包括cdpInterfaceIfIndex,它应该映射到本地物理接口。 (ifmib)

build立“上行链路”可能会非常棘手,但是有时您可以根据相对stream量比来推断,有时可以从生成树推断哪些设备是其他设备的“上游”。

另外考虑这是一个机会来标准化命名约定,使其更加明显的位置在一个设备的层次结构。 (“访问”,“分布”,“核心”使用思科讲话 – 您的层次可能会略有不同)

你应该看看Netdisco 。 它正是你所要求的。

通过使用CDP,没有简单的方法来区分“上行链路”和“下行链路到交换机上行链路”,这纯粹是“本地知识”。 如果您拥有完整的CDP信息,则应该有另一端的数据(设备型号,设备主机名和一个IP,通常是设备的pipe理IP)。

通过将LAN路由器端口的MAC地址与MAC转发数据库相关联,您应该能够确定面向本地默认网关的端口(端口)。 我相信MAC fdb是通过SNMP公开的。

在过去,我使用python程序telnet到设备上,抓取“sh cdp neighbor”的输出做粗略的操作,发现它很可行。