SNMP获取路由器连接信息求解(当ipRouteNextHop地址为虚拟路由时)

简单好用 2011-01-10 09:54:04
想要获取路由器之间的连接信息,这个连接信息,就是A路由器的哪个接口(ifIndex)到B路由器的哪个接口(ifIndex),我理解就是两个接口ID分别对应两个IP地址。



查过好多资料,大致都一个思路,查询路由表信息,主要就是获取ipRouteTable里面的ipRouteNextHop,如果正常默认配置路由器是没有问题的,不过我们所在的楼层的所有路由器和三层交换机的默认网关(ipRouteNextHop的值)都是一个虚拟网关,这个虚拟网关是由两台路由器虚拟出来的,当然它也不支持SNMP,这样就导致了我通过获取ipRouteNextHop不能完成所有路由设备连接信息的获取。

难道就只有这一种办法了吗,想问问做过这方面的朋友,还有没有其他方案,百分感谢!
...全文
584 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
简单好用 2011-01-12
  • 打赏
  • 举报
回复
你说的这个方案不适用于SNMP吧,看得我迷迷糊糊的。我现在必须通过SNMP协议来获取,用了 SNMP4j ,MIB库用到了 RFC1213 ,不是通过pathping 或者 tracert 等命令来获取。呵呵。是不是还涉及到其他MIB库,比如 IF-MIB、IP-MIB等,我看过了没有直接的答案。跟网管讨论了下,了解到虚拟网关是用来做备份的,只有路由器的每个接口都会配置IP,交换机不一定的。。。
0轰隆隆0 2011-01-11
  • 打赏
  • 举报
回复
人家把一些命令过滤掉那有什么办法呢~

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
  • 打赏
  • 举报
回复
难道说设置了虚拟网关就不能发现设备间连接信息了吗
0轰隆隆0 2011-01-10
  • 打赏
  • 举报
回复
人家做虚拟网关的目的是什么呢,呵呵~

你用pathping或者tracert命令在命令行下试试,随便一个外网的域名~ 查一下跃点

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧