设为首页 收藏本站
查看: 2003|回复: 0

基于SNMP的cisco网络环境中设备定位

[复制链接]

尚未签到

发表于 2015-5-24 09:26:17 | 显示全部楼层 |阅读模式
背景知识:
    1.三层设备的arp表存储IP和MAC的对应关系。
               2.二层设备的转发桥接表中存储MAC和转发端口对应关系。
               3.CDP(Cisco Discovery Protocol)是思科设备之间发现相邻设备的链路层协议。
               4.三层交换机的二层模块中的转发表以cam表实现,如 show cam dynamic
5.在划分VLAN 的情况下,思科设备上转发表内容要根据Community String Indexing 方法获取。
1.根据IP地址得到所对应的MAC地址:
通过查看系统的ARP缓存表可以找出某IP所对应的MAC,查找ipNetToMediaPhyAddress(OID: 1.3.6.1.2.1.4.22.1),可以得到如下结果,例:
OID: 1.3.6.1.2.1.4.22.1.2.8.127.0.0.2 type: snmp.SNMPOctetString value:   (hex: 00 06 28 67 05 00 )

OID: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.1 type: snmp.SNMPOctetString value:   (hex: 00 02 b9 b2 4c 0a )

OID: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.4 type: snmp.SNMPOctetString value:   (hex: 00 08 74 9c bd a7 )

OID: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.5 type: snmp.SNMPOctetString value:   (hex: 00 e0 4c 10 3a d7 )

OID: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.34 type: snmp.SNMPOctetString value:   (hex: 00 0a e6 64 10 4b )

OID: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.38 type: snmp.SNMPOctetString value:   (hex: 00 e0 4c 3c 11 02 )

OID: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.75 type: snmp.SNMPOctetString value:   (hex: 00 50 22 88 29 f2 )

OID: 1.3.6.1.2.1.4.22.1.2.10.10.1.3.82 type: snmp.SNMPOctetString value:   (hex: 00 d0 f8 0c bc b8 )


可以看到ipNetToMediaPhyAddress.10.10.1.3.4这样一个oid,这里紧跟在ipNetToMediaPhyAddress后面的10是指10.1.3.4的转发端口索引。这样就可以根据这一项得出10.1.3.4的MAC地址是00:08:9c:bd:a7。    
  2.查找该三层设备MIB表中的cdpCacheAddress(OID: 1.3.6.1.4.1.9.9.23.1.2.1.1.4),如下表示:
OID: 1.3.6.1.4.1.9.9.23.1.2.1.1.4.10.145 type: snmp.SNMPOctetString value: 括c_ (hex: c0 a8 63 02 )


这里c0 a8 63 02 是IP地址的16进制表示,转成十进制是192.168.99.2。三层设备的IP是192.168.99.1。这个IP地址的表示类型可以根据cdpCacheAddressType确定。CdpCacheAddress后面的10是指ifIndex。  3.查找192.168.99.2上面的桥接表。先要得到该设备上的vlan列表,查找vtpVlanIfIndex(OID: 1.3.6.1.4.1.9.9.46.1.3.1.1.18),例如:
OID: 1.3.6.1.4.1.9.9.46.1.3.1.1.18.1.1 type: snmp.SNMPInteger value: 6

OID: 1.3.6.1.4.1.9.9.46.1.3.1.1.18.1.2 type: snmp.SNMPInteger value: 17

OID: 1.3.6.1.4.1.9.9.46.1.3.1.1.18.1.3 type: snmp.SNMPInteger value: 18


OID 部分最后一位是指vlan号,OID值是指IfIndex。可以从中得到该设备上的所有vlan号。  4.查找桥接转发表。查找dot1dTpFdbAddress(OID:1.3.6.1.2.1.17.4.3.1.1),在这里,需要用到Community String Indexing,思科设备的转发表对每个vlan是不一样的。这时候共同体名为community@vlank号,如:public@1,public@2,public@3等,默认情况下取来的是public@1地的转发表。此时需在对每个vlan的转发表进行查找,直到找到10.1.3.4的mac地址,例如:
OID: 1.3.6.1.2.1.17.4.3.1.1.0.2.253.21.123.10 type: snmp.SNMPOctetString value:   (hex: 00 02 fd 15 7b 0a )

OID: 1.3.6.1.2.1.17.4.3.1.1.0.5.59.18.64.136 type: snmp.SNMPOctetString value:   (hex: 00 05 3b 12 40 88 )

OID: 1.3.6.1.2.1.17.4.3.1.1.0.5.59.18.65.215 type: snmp.SNMPOctetString value:   (hex: 00 05 3b 12 41 d7 )

OID: 1.3.6.1.2.1.17.4.3.1.1.0.5.59.18.110.148 type: snmp.SNMPOctetString value:   (hex: 00 05 3b 12 6e 94 )

OID: 1.3.6.1.2.1.17.4.3.1.1.0.8.116.156.189.167 type: snmp.SNMPOctetString value:   (hex: 00 08 74 9c bd a7 )

  跟在dot1dTpFdbAddress后面的是mac地址的十进制表示,查到mac地址所在行后,再查找dot1dTpFdbPort(OID: 1.3.6.1.2.1.17.4.3.1.2),例如:
OID: 1.3.6.1.2.1.17.4.3.1.2.0.2.185.178.76.10 type: snmp.SNMPInteger value: 833

OID: 1.3.6.1.2.1.17.4.3.1.2.0.2.253.21.123.10 type: snmp.SNMPInteger value: 2

OID: 1.3.6.1.2.1.17.4.3.1.2.0.5.59.18.64.136 type: snmp.SNMPInteger value: 2

OID: 1.3.6.1.2.1.17.4.3.1.2.0.8.116.156.189.167 type: SNMP.SNMPInteger value: 2


这里是dot1dTpFdbPort加上由上所得到的mac地址的十进制查找到桥接端口,再根据这个端口查到其端口索引,查找dot1dBasePortIfIndex(OID:1.3.6.1.2.1.17.4.1.2),例如:
OID: 1.3.6.1.2.1.17.1.4.1.2.1 type: snmp.SNMPInteger value: 4

OID: 1.3.6.1.2.1.17.1.4.1.2.2 type: snmp.SNMPInteger value: 5

OID: 1.3.6.1.2.1.17.1.4.1.2.65 type: snmp.SNMPInteger value: 11

OID: 1.3.6.1.2.1.17.1.4.1.2.66 type: snmp.SNMPInteger value: 12

OID: 1.3.6.1.2.1.17.1.4.1.2.67 type: snmp.SNMPInteger value: 13


从上面可以看出,桥接端口对应的端口索引IfIndex是5。根据这个端口可以很容易得到端口名,端口描述等。
5.根据CDP得到指定端口索引下连的交换机IP。  用2中和方法,cdpCacheAddress加上端口索引可以得到下接的网络设备。如果没找到下端网络设备,那么下接的可能就已经是所要查的主机,也有可能是不支持CDP协议的设备,定位互此终止。如果能够得到下连设备的IP地址,那么可以根据此IP重复3以下的查找过程,直到找不到下连设备。这里还可以从cdpCacheDevicePort中得到下连设备连接该设备的端口。有利于形成完整的链接关系

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-70015-1-1.html 上篇帖子: CISCO总裁钱伯斯 下篇帖子: Cisco路由器IOS映像恢复及升级方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表