基于SNMP的网络拓扑发现_第1页
基于SNMP的网络拓扑发现_第2页
基于SNMP的网络拓扑发现_第3页
基于SNMP的网络拓扑发现_第4页
基于SNMP的网络拓扑发现_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于SNMP的网络拓扑发现一、SNMP简介SNMP〔SimpleNetworkManagementProtocol,简单网络管理协议〕是一种基于TCP/IP协议的互连网管理协议。SNMP诞生于1988年,当时只想把它作为一个短期的网络管理框架,临时用于管理连接到Internet上的设备。但随着SNMP的开展和大量应用,其使用范围已大为扩展,超出了Internet的范围。SNMP逐渐作为一种标准的协议在网络管理领域得到了普遍的接受和支持,成为了事实上的国际标准。SNMP采用“管理进程/代理进程〞模型来监视和控制各种可管理网络设备。其核心思想是在每个网络节点上设置一个管理信息库MIB〔ManageInformationBase〕,由节点上的代理负责维护,管理进程通过应用层协议对这些信息库进行访问。图3.1说明了SNMP网络管理框架的一般体系结构,它由四个主要部件构成,分别是:通信网络、网络协议、网络管理进程和被管网络实体。图3.1简单网络管理协议〔SNMP〕体系结构二、基于SNMP协议的网络层拓扑发现SNMP已经成为网络管理的标准,为网络拓扑自动发现带来了巨大的方便,同时也大大提高了网络拓扑发现的速度。图3.2网络拓扑结构模型 网络层拓扑发现算法的任务就是发现被管网络中的子网、路由器以及它们之间的连接关系。图3.2是网络拓扑结构的一个模型。其中,各子网通过各自的路由器与其他子网通信,它们都连接到路由器的一个端口上。路由器的一个端口可以连接一个子网,也可以同其他路由器相连。当子网内的某一机器向别的子网发送数据时,数据包首先到达本子网的缺省路由器,缺省路由器检测数据包中的目的地址,根据其路由表确定该目的地址是否在与自己相连的子网中。如果是,那么把数据包直接发往目的地,否那么转发给路由表中规定的下一个路由器,下一个路由器再进行类似处理,依次类推,数据包将最终到达目的地。可见,通过分析路由器上的路由表,就可以知道网络层的拓扑结构。2.1网络层拓扑发现用到的MIB组MIB-II(RFC-1213)是标准的SNMPMIB,所有的路由器都必须实现它。拓扑发现程序为了具有通用性的特点,必然选择MIB-II作为拓扑发现工具。MIB-II由很多不同的组组成,本节的拓扑发现算法用到的组包括:system,interfaces,和ip。下面详细介绍这三个组中包含的对象。1)System组 该组内包含七个对象,分别为:sysDescr、sysObjectID、sysUpTime、sysContact、sysName、sysLocation和sysServices。其中sysDescr描述了设备的相关信息,一般包括厂商,型号等。SysObjectID唯一标识特定厂商的特定类型设备,比方sysObjectID为..45,那么可以判断该设备为思科公司生产的型号为cisco6506的交换机。SysUptime表示设备从最近一次启动开始正常运行的时间。SysContact由网络管理员设定,一般设为网络管理员的联系方式。SysName为设备的名字,算法中会用这个对象来判断不同的IP地址是否属于同一个设备。SysLocation由网络管理员设定,一般设为设备所在地点。SysServices表示了该设备所能提供的效劳。2)Interfaces组该组包含两个对象ifNumber和ifTable。其中,ifNumber对象表示该设备所具有的接口数量。该组的另一个元素ifTable是一张表,表内的每一个字段都是某一个接口的一个属性,包括接口索引(ifindex),接口类型(ifType),接口速度(ifSpeed)和接口物理地址(ifPhysAddress)等。3)IP组该组的元素较多,其中有三个表对拓扑发现来说比拟重要,分别是ipAddrTable,ipRouteTable和ipNetToMediaTable。通过表ipAddrTable,可以找到被管设备所有的IP地址,同时结合interfaces组的ifTable表,可以把接口和其IP地址一一对应起来。网络层的拓扑发现算法主要就是利用表ipRouteTable来判断网络层的拓扑结构的。子网与路由器以及路由器和路由器的关系都能从路由表中得出来。该表中对应拓扑发现的对象列举如下:IpRouteDest:路由的目的地址。如为.0,说明该路由为缺省路由。通往同一个目的地的路由可能有多个,路由的选择依赖于所使用的路由协议。IpRouteNextHop:路由的下一跳路由器地址。ipRouteMask:路由目的地的子网掩码。提取IP数据包中的目的地地址,与ipRouteMask进行按位“与〞运算,得到的结果与ipRouteDest比拟,如相同那么应选择该路由。如果ipRouteDest为.0,那么规定ipRouteMask也为。ipRouteType:路由的类型,为整型类型。其意义如表3.1所示:表3.1ipRouteType值及其意义ipRouteType值意义Other(1)其他Invalid(2)非法Direct(3)该路由目的地址为路由器直接连接的子网Indirect(4)远程路由,目的地址为远程的主机、网络或子网2.2基于SNMP的网络层对象发现在详细讨论拓扑发现算法之前,首先对算法中涉及到的一些问题进行说明。1〕默认网关的发现首先,访问拓扑发现程序所在计算机的SNMPMIBII中的ipRouteTable,如果发现有ipRouteDest值为.0的记录,那么说明程序所在的计算机设置了默认网关,该记录的ipRouteNextHop值即为默认网关的地址。检查默认网关的ipForwarding值。如果为1,那么说明该默认网关确实是路由设备,否那么不是。2)子网的发现遍历路由器MIBII的IP管理组中管理对象ipRouteDest下的所有对象,以每个路由目的网络号为索引,查询ipRouteType字段的值。假设该值为3〔direct〕,那么说明这条路由为直接路由,假设该值为4〔indirect〕,那么为间接路由。间接路由说明在通往目的网络或目的主机的路径上还要经过其它路由器,而直接路由说明目的网络或目的主机与该路由设备直接相连,这样就得到了与路由器直接相连的网络号。再以这组网络号中的每个为索引,查询其路由掩码〔ipRouteMask〕。根据路由掩码,就可以确定这组网络中每一个的IP地址范围。例如,路由器的IP地址为,且路由器支持SNMP协议。利用SNMP协议可以得到以下与路由器直接相连的子网,如图3.3所示。图3.3与网关直连的子网3)其他路由设备的发现对于除了默认网关之外的路由设备,查询默认网关MIBII的IP管理组路由表中类型为间接路由的路由表项,得到路由的下一跳地址〔ipRouteNextHop〕。下一跳地址给出了与该网关相连的路由设备,仍可以利用上面的方法搜索这个设备的路由表。这样,该方法可以搜索出多个路由设备,并要求将它们所存储的路由表信息进行整合,得到更大的网络拓扑。4)网络层的连接对象网络层拓扑主要反映子网和路由器之间的连接关系。子网和路由器的连接关系可以在发现与路由器直接相连的子网时得到,路由器和路由器的连接关系可以通过路由表中的ipRouteNextHop得到。2.3基于SNMP的网络层拓扑发现算法描述网络层拓扑发现算法用伪代码描述如下:CGatewaygw=GetDefaultGateway〔〕;//得到默认网关If〔gw确实是路由设备〕 把该设备添加到RouteList链表的末尾;for〔RouteList中的每一个路由器CurrentRouter〕 //遍历该路由器的路由表,提取路由器和子网信息{ for(CurrentRouter的路由表的每一项) { if(ipRouteType为direct) { if(ipRouteMask为55) 〔1〕 {把IpRouteNextHop所代表的路由器添加到RouteList尾部,同时保证链表中的路由器不重复;〔2〕把当前路由器CurrentRouter和IpRouteNextHop代表的路由器之间的链接添加到链表LinkList中; } else {把ipRouteDest和ipRouteMask所代表的子网添加到SubnetList中去;把该子网与当前路由器CurrentRouter之间的连接添加到LinkList中; }}if(ipRouteType为indirect){把IpRouteNextHop所代表的路由器添加到RouteList尾部,同时保证链表中的路由器不重复;把当前路由器CurrentRouter和IpRouteNextHop代表的路由器之间的链接添加到链表LinkList中;} }}在〔1〕处,如果ipRouteMask为55,那么该路由为到主机的路由。也就是说,以该路由的ipRouteNextHop为地址的路由器和当前路由器通过一根电缆直接连接。在〔2〕处判断不同的IP地址是否属于同一台路由器时,可以首先查询ip管理组的ipAddrTable的所有IP地址,然后看当前的IP地址是否也在列表当中,如果在就是同一台路由设备,否那么不是。三、基于SNMP协议的链路层拓扑发现算法在大多数情况下,仅仅发现网络层的拓扑结构是不够的,还需要发现链路层的拓扑结构,即子网内的设备及其连接关系。子网内的设备包括主机、交换机、打印机、集线器等等。连接关系不但包括设备之间的连接,还包括其他设备和交换机端口之间的连接关系以及交换机端口之间的连接关系。虽然局域网的拓扑信息对于网络管理非常重要,但是该信息却很难得到。大局部网络管理工具仅仅依赖网络层的拓扑发现和网络管理员手工添加二层的网络设备,比方交换机等,没有提供链路层的拓扑发现。Cisco,Intel以及其它硬件提供商虽然设计了它们自己的拓扑发现协议,但是这些对于大型,异构的网络没有任何用处。局域网拓扑发现的复杂性在于以太交换机硬件的内在透明性:网络用户感觉不到网络中交换设备的存在。这些交换机设备仅仅在执行生成树协议(Spanningtreeprotocol)时才和邻居设备交换信息,况且这种协议也不是在所有环境下都使用。交换机能保存的唯一状态是它的转发数据库,它的作用是把收到的数据包转发到适当的端口上去。这些信息对于局域网的拓扑发现来说是足够的,并且可以通过SNMP的标准MIB来访问。局域网中,交换机的连接关系确定了整个局域网拓扑结构的布局,所以,发现局域网络拓扑首先要发现交换机之间的连接关系。3.1交换机互联关系的发现图3.4为链路层的网络模型图,其中的节点包括交换机和主机。交换机通过它们的端口相连,主机通过局域网或者集线器和交换机的端口相连。由网桥〔交换〕设备组成的局域网中的设备可以被划分为网桥集合B和端点集合E。如图3.4所示,B={A,B,C,D}。E={W,X,Y,Z}。当今的以太网通常是交换式的,交换机通过不同的端口把网络中的其它各种设备连接起来。以太局域网中还包括:集线器〔图3.4中与A相连〕,该设备用来把几台主机连接在交换机的同一个端口上;共享网段〔图3.4中和C相连〕;哑交换机,即不支持SNMP的交换机〔图3.4中和B相连〕。交换机和其它交换机以及网段之间的连接不应该出现环路,即使物理上有环路,交换机也会利用生成树算法〔spanningtreeprotocol〕在所有连接中选择一个无环路的子集。一旦拓扑结构确定,交换机就通过监听每个端口的数据包学习网络中设备的位置信息。当一个新节点发出的数据经过交换机的一个端口时,交换时机把该数据包的源地址加到与该端口对应的列表中。在这以后,当交换机收到一个发往该地址的数据包时,它会自动把这个数据包转发到对应端口上。这些对应关系组成了交换机的转发数据库。在转发数据库中,交换机的每一个端口都对应着多个设备的物理地址,称这些物理地址所对应设备的集合为该端口的转发集。对于交换机C,用FxC来标识交换机C的端口x的转发集。在图3.4中,F1C={A,B,D,W,X,Z}。该集合随着网络拓扑的变化而变化,同时由于记录有生存时间,所以该集合还随着时间而变化。当该集合中包含该端口下连接的所有设备时,该集合称为完整的,F1BBCADYZWX3142121221主机交换机哑交换机集线器图3.4链路层网络模型图1)直接连接定理发现局域网络拓扑首先要发现交换机之间的连接关系。当两个不同的节点互相连接,并且在它们之间不存在任何其它设备时,称该连接为直接连接。当两个不同的节点通过中间其它设备连接在一起时,称该连接为间接连接。直接连接是间接连接的一种特殊情况。如果一个数据包从交换机A的端口x发出,然后中途未经过任何其它网络设备而到达交换机B的端口y,称交换机A的端口x和交换机B的端口y之间有直接连接;如果中途需要经过其它的网络设备才能到达,那么称A交换机的端口x和交换机B的端口y之间存在间接连接。例如,在图3.4中,交换机A和B通过端口1和4直接连接。A的端口1和C的端口1之间存在间接连接。如果能判断两个交换机的不同端口之间是否有直接连接,就可以得出网络中交换机的互联关系,下一步发现交换机和主机的连接关系也变的相对容易了。由图3.4可以观察到,如果F1B和F1C都是完整的,即F1C={A,B,W,X,D,Z},F1B={C,Y}。得到,F1B∩F1C=ф,F1B∪F1C=N(N为全集,即图3.4中所有设备的集合)。这并不是偶然的,因为如果两个交换机的不同端口x,y直接连接,中间没有任何其它设备,那么以相连处为中线,网络中的设备可以划分成两局部,一局部在端口x所对的一侧,即FxA,另一局部在端口y所对的一侧,即FyB。所以,FxA∪直接连接定理[6]:如果FxA和FyB都是完整的,那么交换机A的端口x和交换机B的端口y直接相连的充要条件是FxA∩FyB=ф且FxA∪FyB=N。根据直接连接定理,可以遍历局域网中交换机的转发数据库〔FDB〕,对不同交换机端口的转发集作“并〞操作,如果结果为全集且“交〞操作的结果为空,那么这两个端口就是直接连接的。但是,直接连接方法最大的缺陷就是要求交换机端口的转发集是完整的。当网络的规模很大时候,获得完整的转发集几乎是不可能的。在一个拥有上百,甚至上千个节点的网络中,某个时刻总会有一些节点因为软件或者硬件的原因而处在非活动状态。这时候,相应的交换机端口的转发集就不会是完整的,上述方法就不适用了。2)间接连接定理为了克服这个缺点,参考文献[7]中提出了一种能够利用非完整的转发集就能判断交换机直接连接的方法。该方法的根本思想是,利用反证法,排除不可能的连接关系。图3.5是一个利用反证法来判断交换机之间连接的例子。假设交换机A和B通过某两个端口间接连接,然后判断该连接是否和交换机A、B的FDB中已有信息相矛盾。如果找不到矛盾,那么这个连接是可能存在的;如果矛盾,那么这条连接是肯定不存在的。在图3.5中,交换机A和交换机B的连接关系可能有六种,如图3.6所示。AAB12321{Z}{Y}{X}{Y,Z}{X}图3.5交换机A和B通过不同的端口连接例如假设交换机A的端口1和交换机B的端口1间接相连,如图3.6的第一种情况所示。如前文所述,以太局域网中交换机连接成一个树状结构,不存在环路。所以,此时的网络可以分成三局部。第一局部是交换机A的端口2和3所连接的设备;第二局部是交换机B的端口2所连接的设备;第三局部是交换机A、交换机B,以及位于二者中间的设备。实际上,第一局部是F2A∪F3A,第二局部是F2B,这两局部不应该有交集。但是,〔F2A∪F3A〕∩F2B≠ф利用这种方法来判断交换机之间的连接关系并不需要交换机端口的转发集是完整的,只要所有的信息能够排除掉所有不存在的连接关系就足够了。参考文献[7]中给出了可以利用该方法得出交换机连接关系的最小要求,称之为间接连接定理。间接连接定理:只要满足以下3个条件之一,就可以确定交换机A和B通过x和y端口间接相连。设交换机A在x端口上学习到的MAC地址的集合为FxA。1.FxA和FyB中同时存在着对方的MAC地址;2.FxA中存在B的MAC地址,并且A上存在一个端口k〔k≠x〕,使得FyB∩FkA≠ф;3.在B上存在两个端口i,j,使得FxA∩FiB≠ф且FxA∩FjB≠ф,并且A上存在端口k〔k≠x〕,使得FkA∩FyB≠ф。图3.6交换机A与B的六种可能的连接关系由于交换机之间很少通信,所以条件1和2中要求的交换机A的FxA中存在B的MAC地址很难满足,可以利用IP欺骗的方法尽量地使条件满足。具体做法是:对于子网中的每个交换机Si,利用IP欺骗方法,以Si的IP地址为源地址,向子网中的其他交换机发送ICMPECHO消息。在Si收到回应后,将导致Si的FDB中保存有其他交换机的MAC地址。3)基于间接连接确定直接连接根据子网内交换机之间的间接连接关系,就可以确定交换机之间的直接连接关系。设子网内的所有交换机构成的集合为G。根据STP协议,交换机之间将构成一棵树。任选其中一个交换机Si为根,假设Si通过n个端口与其他交换机构成间接连接,那么可以将G-{Si}构成一个划分Πi,划分中包含n个元素,每个元素是与Si的某个端口p相间接连接的交换机的集合,设为Gp。在Gp中任选一个交换机Sj,那么Sj必然通过某个端口q与Si的端口p间接连接,如果Sj不通过端口q与Gp中的其他交换机间接连接,那么可以判定Sj通过端口q与Si的端口p直接连接。3.2算法的具体描述基于SNMP的链路层拓扑发现算法主要任务是发现以太网的子网中设备以及连接关系。本文所描述的算法以给定的子网号和掩码地址作为输入,以交换机对象链表pSwList,网段对象链表pSegList,打印机对象链表pPrtList和2层连接对象链表pL2ConnList为算法的输出。给定子网的拓扑信息全部包含在上述的三个链表中。1〕算法的第一局部首先根据子网地址和子网掩码计算出子网的范围,然后扫描该范围内的所有IP地址,并通过.3节所给出的方法判断设备的类型以及其它信息。该过程用伪代码表示如下:for〔子网范围内的每一个地址ipAddr〕{ if〔存在某个设备的IP地址为ipAddr〕 { deviceType=getTypeofDevice〔ipAddr〕; if〔deviceType==switch〕 生成交换机对象,添加到pSwList链表中; elseif〔deviceType==printer〕 生成打印机对象,添加到pPtrList链表中; else 生成主机对象,添加到pHostList中; } }2)找到子网内所有主机的MAC地址。3)遍历子网中所有的交换机,下载交换机的FDB表。同时为交换机的每个端口生成一个相应的网段对象SegNode,该网段中包含对应端口转发集中的所有在本子网范围内的主机。4〕基于每个交换机的FDB表,利用.1所描述的方法计算交换机之间的连接关系。5〕重新调整子网内的所有网段。对有直接连接的两个端口对应的网段作“与〞操作,如果结果为空,那么删除这两个网段;如果非空,那么删除原来的两个网段,生成一个新的网段,该网段内的主机为“与〞操作的结果。6〕把网段和交换机的连接关系构造成对象,添加到2层连接对象链表L2ConnList中。在算法的第〔2〕步,之所以要找到物理地址是因为交换机FDB中的地址是MAC地址,在为主机划分网段时,要用到这些MAC地址。找到主机MAC地址的方法有两种。第一种是利用主机的MIBII中的inferfaces组中的ifPhysAddress对象,另一种是利用与该子网相连的路由器中的ipNetToMediaTable来找到该子网内的所有主机的MAC地址。但是后者并不能保障找到所有的主机的MAC地址,但是它能找到那些不支持SNMP主机的MAC地址。4小结本节按照不同层次描述了基于SNMP的拓扑发现方法。在网络层,主要利用MIBII的IP组中的路由表来发现网络中的路由器和子网的连接关系;在链路层,主要利用网桥MIB〔BridgeMib〕来发现交换机和交换机直接的连接关系。SNMP标准协议是拓扑发现的一个重要工具,正是SNMP的存在,才使得耗时巨大的拓扑发现过程的变得迅速快捷。附录AXML文件格式定义<?xmlversion="1.0"encoding="UTF-8"?><xs:schemaxmlns:xs=":///2001/XMLSchema"elementFormDefault="qualified"attributeFormDefault="unqualified"> <xs:elementname="Internet"type="InternetType"><xs:annotation> <xs:documentation>Commentdescribingyourrootelement</xs:documentation> </xs:annotation> </xs:element> <xs:complexTypename="InternetType"> <xs:sequence> <xs:elementname="subnetList"type="subnetListType"/> <xs:elementname="l3ConnList"type="l3ConnListType"/><xs:elementname="gwList"type="gwListType"/> </xs:sequence> </xs:complexType> <xs:complexTypename="gwListType"> <xs:annotation> <xs:documentation>thegatewaylist</xs:documentation> </xs:annotation> <xs:sequence> <xs:elementname="gwNode"type="gwNodeType"/> </xs:sequence> </xs:complexType> <xs:complexTypename="gwNodeType"> <xs:annotation> <xs:documentation>gatewaynode</xs:documentation> </xs:annotation> <xs:sequence> <xs:elementname="ObjectInstance"type="xs:string"/> <xs:elementname="ObjectFatherInstance"type="xs:string"/> <xs:elementname="gwName"type="xs:string"/> <xs:elementname="gwAddr"type="xs:string"/> <xs:elementname="RInterface"type="RInterfaceType"minOccurs="0"maxOccurs="unbounded"/> <xs:elementname="age"type="xs:integer"/> </xs:sequence> </xs:complexType> <xs:complexTypename="subnetNodeType"> <xs:sequence> <xs:elementname="objectinstance"type="xs:string"/> <xs:elementname="objectfatherinstance"type="xs:string"/> <xs:elementname="subnetAddr"type="xs:string"/> <xs:elementname="subnetMask"type="xs:string"/> <xs:elementname="age"type="xs:integer"/> <xs:elementname="swNode"type="swNodeType"maxOccurs="unbounded"/> <xs:elementname="L2ConNode"type="l2ConNodeType"maxOccurs="unbounded"/> <xs:elementname="segNode"type="segNodeType"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexTypename="subnetListType"> <xs:sequence> <xs:elementname="subnetNode"type="subnetNodeType"/> </xs:sequence> </xs:complexType> <xs:complexTypename="l3ConnListType"> <xs:annotation> <xs:documentation>connectionobjectinnetworklayer</xs:documentation> </xs:annotation> <xs:sequence> <xs:elementname="ObjectInstance"type="xs:string"/> <xs:elementname="ObjectFatherInstance"type="xs:string"/> <xs:elementname="sourceInstance"type="xs:string"/> <xs:elementname="linkName"type="xs:string"/> <xs:elementname="linkType"type="xs:integer"/> <xs:elementname="age"type="xs:integer"/> </xs:sequence> </xs:complexType> <xs:complexTypename="swNodeType"> <xs:sequence> <xs:elementname="objectinstance"type="xs:string"/> <xs:elementname="objectfatherinstance"type="xs:string"/> <xs:elementname="swName"type="xs:string"/> <xs:elementname="swAddr"type="xs:string"/> <xs:elementname="commuStr"type="xs:string"/> <xs:elementname="age"type="xs:integer"/> <xs:elementname="SInterface"type="SInterfaceType"minOccurs="0"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexTypename="SInterfaceType"> <xs:sequence> <xs:elementname="objectinstance"type="xs:string"/> <xs:elementname="objectfatherinstance"type="xs:string"/> <xs:elementname="Mac"type="xs:string"/> <xs:elementname="ifType"type="xs:integer"/> <xs:elementname="ifIndex"type="xs:integer"/> <xs:elementname="age"type="xs:integer"/> </xs:sequence> </xs:complexType> <xs:complexTypename="l2ConNodeType"> <xs:annotation> <xs:documentation>connectionobjectinlinklayer</xs:documentation> </xs:annotation> <xs:sequence> <xs:elementname="objectinstance"type="xs:string"/> <xs:elementname="objectfatherinstance"type="xs:string"/> <xs:elementname="sourceInstance"type="xs:string"/> <xs:elementname="destInstance"type="xs:string"/> <xs:elementname="age"type="xs:integer"/> </xs:sequence> </xs:complexType> <xs:complexTypename="segNodeType"> <xs:sequence> <xs:elementname="objectinstance"type="xs:string"/> <xs:elementname="objectfatherinstance"type="xs:string"/> <xs:elementname="swName"type="xs:string"/> <xs:elementname="hostNode"type="hostNodeType"maxOccurs="unbounded"/> <xs:elementname="age"type="xs:integer"/> </xs:sequence> </xs:complexType> <xs:complexTypename="hostNodeType"> <xs:sequence> <xs:elementname="objectinstance"type="xs:string"/> <xs:elementname="objectfatherinstance"type="xs:string"/> <xs:elementname="hostAddr"type="xs:string"/> <xs:elementname="hostMask"type="xs:string"/> <xs:elementname="hostOperateSysType"type="xs:string"/> <xs:elementname="age"type="xs:integer"/> <xs:elementname="netCard"type="netCardType"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexTypename="RInterfaceType"> <xs:sequence> <xs:elementname="objectinstance"type="xs:string"/> <xs:elementname="objectfatherinstance"type="xs:string"/> <xs:elementname="ifIndex"type="xs:integer"/> <xs:elementname="ifType"type="xs:integer"/> <xs:elementname="age"type="xs:integer"/> <xs:elementname="ipAddr"type="ipAddrType"minOccurs="0"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexTypename="ipAddrType"> <xs:sequence> <xs:elementname="addr"type="xs:string"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexTypename="netCardType"> <xs:sequence> <xs:elementname="objectinstance"type="xs:string"/> <xs:elementname="objectfatherinstance"type="xs:string"/> <xs:elementname="IPAddr"type="xs:string"/> <xs:elementname="MAC"type="xs:string"/> <xs:elementname="age"type="xs:integer"/> </xs:sequence> </xs:complexType></xs:schema>附录B相关SNMPMIB表结构及其说明C.1ipAddrTableipAddrTableOBJECT–TYPESYNTAXSEQUENCEOFipAddrEntryipAddrEntry::=SEQUENCE{ ipAdEntAddrIpAddress,ipAdEntIfIndexINTEGER,ipAdEntNetMaskIpAddress,ipAdEnBcastAddrINTEGER...}说明如下:ipAdEntAddr:设备的一个IP地址。ipAdEntIfIndex:该IP地址所属物理接口的索引,可根据此值来判断该IP地址所属的物理接口。ipAdEntNetMask:该IP地址对应的掩码。ipAdEnBcastAddr:该IP地址对应的播送地址。 通过表ipAddrTable,可以找到被管设备所有的IP地址,同时结合interfaces组的ifTable表,可以把接口和其IP地址一一对应起来。C.2ipRouteTableipRouteTableOBJECT-TYPESYNTAXSEQUENCEOFipRouteEntryIpRouteEntry::=SEQUENCE{ipRouteDest IpAddress,ipRouteIfIndex INTEGER,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论