问题描述
想要获取路由器之间的连接信息,这个连接信息,就是A路由器的哪个接口(ifIndex)到B路由器的哪个接口(ifIndex),我理解就是两个接口ID分别对应两个IP地址。查过好多资料,大致都一个思路,查询路由表信息,主要就是获取ipRouteTable里面的ipRouteNextHop,如果正常默认配置路由器是没有问题的,不过我们所在的楼层的所有路由器和三层交换机的默认网关(ipRouteNextHop的值)都是一个虚拟网关,这个虚拟网关是由两台路由器虚拟出来的,当然它也不支持SNMP,这样就导致了我通过获取ipRouteNextHop不能完成所有路由设备连接信息的获取。难道就只有这一种办法了吗,想问问做过这方面的朋友,还有没有其他方案,百分感谢!
解决方案
本帖最后由 zyx_down 于 2011-01-10 10:18:41 编辑
解决方案二:
人家做虚拟网关的目的是什么呢,呵呵~你用pathping或者tracert命令在命令行下试试,随便一个外网的域名~查一下跃点
解决方案三:
难道说设置了虚拟网关就不能发现设备间连接信息了吗
解决方案四:
人家把一些命令过滤掉那有什么办法呢~pathping一下,就可以看的清清楚楚了路由确定过程当tcp/ip需要向某个ip地址发起通信时,它会对路由表进行评估,以确定如何发送数据包。评估过程如下:tcp/ip使用需要通信的目的ip地址和路由表中每一个路由项的网络掩码进行相与计算,如果相与后的结果匹配对应路由项的网络地址,则记录下此路由项;当计算完路由表中所有的路由项后,tcp/ip选择记录下的路由项中的最长匹配路由(网络掩码中具有最多“1”位的路由项)来和此目的ip地址进行通信。如果存在多个最长匹配路由,那么选择具有最低跃点数的路由项;如果存在多个具有最低跃点数的最长匹配路由,那么:如果是发送响应数据包,并且数据包的源ip地址是某个最长匹配路由的接口的ip地址,那么选择此最长匹配路由;其他情况下均根据最长匹配路由所对应的网络接口在网络连接的高级设置中的绑定优先级来决定,如下图所示: 网关和接口确定过程在确定使用的路由项后,网关和接口通过以下方式确定:如果路由项中的网关地址为空或者为本地计算机上的某个网络接口,那么在发送数据包时:通过路由项中对应的网络接口发送;源ip地址为此网络接口的ip地址;源mac地址为此网络接口的mac地址;目的ip地址为接收此数据包的目的主机的ip地址;目的mac地址为接收此数据包的目的主机的mac地址;如果路由项中的网关地址并不属于本地计算机上的任何网络接口,那么在发送数据包时:通过路由项中对应的网络接口发送;源ip地址为路由项中对应网络接口的ip地址;源mac地址路由项中对应网络接口的mac地址;目的ip地址为接收此数据包的目的主机的ip地址;目的mac地址为网关的mac地址;
解决方案五:
该回复于2011-01-11 11:28:03被版主删除
解决方案六:
你说的这个方案不适用于SNMP吧,看得我迷迷糊糊的。我现在必须通过SNMP协议来获取,用了SNMP4j,MIB库用到了RFC1213,不是通过pathping或者tracert等命令来获取。呵呵。是不是还涉及到其他MIB库,比如IF-MIB、IP-MIB等,我看过了没有直接的答案。跟网管讨论了下,了解到虚拟网关是用来做备份的,只有路由器的每个接口都会配置IP,交换机不一定的。。。
解决方案七:
该回复于2011-01-12 14:48:33被版主删除