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

问题描述

想要获取路由器之间的连接信息,这个连接信息,就是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被版主删除

时间: 2024-10-31 22:27:38

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

C#获取路由器外网IP,MAC地址的实现代码_C#教程

C#实现的获取路由器MAC地址,路由器外网地址.对于要获取路由器MAC地址,一定需要知道路由器web管理系统的用户名和密码.至于获取路由器的外网IP地址,可以不需要知道路由器web管理系统的用户名和密码,但是需要有一个代理页面获取客户端公网ip地址的,这样C#请求此页面即可获取到路由器公网ip地址.如 //getip.ashx 测试路由为水星 MR804,水星 MR808,都可以成功重启路由和获取到路由器MAC和外网IP地址 源代码 using System.Text; using System

双路由器连接设置

  一.路由器设置和计算机设置 1)路由器设置Ⅰ,见下图. 2)路由器设置Ⅱ,见下图: 更改WAN 口地址,更改LAN 口地址,更改DHCP 地址范围. 要点:路由器设置的WAN 口为动态IP 以便从第一个路由器那里获得IP 地址,更改它自己的IP 地址和DHCP 到另一个网段去使之与第一个路由器不在同一个网段. 二.路由器连接 这里用普通的直连网线连接路由器Ⅰ的任意一个LNA 口至路由器Ⅱ的WAN 口即可.见下图: 三.路由器连接方式说明 此种方式路由器Ⅱ做路由器使用,路由器可看成是一台电脑,

ios-IOS的SQLite查询数据,如果没有对应数据的话,应该怎么获取到这个信息

问题描述 IOS的SQLite查询数据,如果没有对应数据的话,应该怎么获取到这个信息 RT,求解. 我是用本地的数据库,数据都是已经固定了的,根据编号显示数据,如果数据中没有编号,我想设置弹出一个提示,但是我不知道怎么获取查不到数据的这个信息 解决方案 select count(*) from table where 条件 返回0表示没有数据

路由器怎么与路由器连接

  一些网友提问到路由器怎么与路由器连接,怎么样设置才能正常的使用呢?下面就来和大家讲解下如何操作. 现在正式开始讲路由器连接路由器的两种方式.两台路由器的各自的ip设置方法和步骤. 一些家庭或者是某些公司有多台电脑上网或互连需要用到路由这个就不解释为什么了,为什么还要接路由呢? 某个地方需要多装一台或几台电脑,做在墙上的网口只有一个;电脑需要搬位置了;拉线的长度超过100米.好吧其实这些加个交换机就完事了,还不用设置不用担心ip冲突,可是家用级的交换机跟家用级的路由器相差那几十块,再说现在很多

thernet-android中如何获取获取以太网连接状态

问题描述 android中如何获取获取以太网连接状态 有什么方法可以获取当前以太网是否连接的状态,已知现在EthernetManager类无法在应用层直接调用,那么有没有其他方法可以获取以太网是否连接的状态 解决方案 // 当网络变化的时候系统会发出一个广播 Broadcast,只要在程序中注册一个广播接收器 BroadcastReceiver,并在 IntentFilter 中添加相应的过滤,这样一旦网络有变化,程序就能监听到public static final String CONNECT

获取MYSQL表信息

    6.8 其他主题    本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容:    ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果.    ■ 如何处理很难插入到查询中的数据.    ■ 如何处理图形数据.    ■ 如何获得表结构的信息.    ■ 常见的MySQL程序设计错误及如何避免.    6.8.1在结果集上执行计算    迄今为止,我们集中而主要地使用了结果集元数据来打印行数据,但很明显,除打印之

使用Ado.net获取数据库架构信息

ado|架构|数据|数据库 使用Ado.net获取数据库架构信息 秋 枫 2004-7-3 在开发的时候有时需要获取数据库架构信息来得到数据库的一些其他信息,比如存储过程.视图.表.字段的类型.备注说明等.通过OleDb.NET数据提供程序可以比较简洁的实现这一点. 一.OleDbConnection的GetOleDbSchemaTable方法 在Ado.net的对象模型的该对象充当了与数据源之间的连接,通过Connection对象来连接数据库或者从数据库断开以释放宝贵的资源.这里我们需要用到的

数据库连接-JDBC如何获取当前连接的ID

问题描述 JDBC如何获取当前连接的ID 通过jdbc连接db2,想在程序中获取当前数据库连接在数据库服务器中的标示信息.如图请大神指点!!! 解决方案 可否换个思路来解决问题,你要这个id的用途是做什么? 解决方案二: 可否换个思路来解决问题,你要这个id的用途是做什么?

url没有错 却一直提示 无法获取JDBC连接 为什么

问题描述 url没有错 却一直提示 无法获取JDBC连接 为什么 ![ 解决方案 看看有没有少驱动包! 解决方案二: 你仔细看看那个错误的信息,是没有这个驱动程序吧. 你看看jar包有没 解决方案三: 最大可能是jtds的jar没有或者位置不对,检查一下jar包 解决方案四: 检查一下JAR吧,看看有没有少驱动包!!! 解决方案五: http://blog.csdn.net/stewen_001/article/details/19553173/ 看看这篇博文, 我觉得应该是你的sqlserve