以太网物理拓扑发现方法研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以太网物理拓扑发现方法研究
摘要:随着计算机网络应用的蓬勃发展,以太网变得越来越复杂,为了方便管理,拓扑自动发现变得越来越重要。物理拓扑主要是对链路层和物理层的设备的发现,设备间的连接关系。该文提出一种用于获取物理拓扑的方法。
关键词:以太网;物理拓扑;自动发现;snmp;mib
中图分类号:tp393 文献标识码:a 文章编号:1009-3044(2013)03-0493-04
1 概述
随着计算机网络技术和应用的迅猛发展,网络变得庞大而复杂。单纯依靠人工来绘制拓扑图将变得越来越难。因此,为了能科学有效的管理网络,网络拓扑自动发现变得尤为重要并具有现实意义。网络拓扑又分为逻辑拓扑和物理拓扑,逻辑拓扑主要是对网络层设备的发现以及其逻辑关系的确定;物理拓扑主要是对链路层和物理层的设备的发现,设备间的连接关系,如交换机之间的连接以及主机和交换机的连接。对于网络管理,逻辑拓扑是不够的,要通过物理拓扑来查看网内的设备连接关系。目前获得物理拓扑的技术还不很成熟,本文重点讨论用于获取物理拓扑的方法。
2 研究现状
目前实现的物理拓扑发现方法大致有以下几种方法:基于snmp
协议来采集拓扑数据;基于bridge-mib中的地址转发表来确定设备间的连接关系、;基于stp协议来确定;基于cisco的cdp协议
来发现邻居设备(针对cisco设备)。以上方法,在一定程度上能够完成物理拓扑的发现,但是存在以下缺点:对于地址转发表的要求较高,地址转发表应保持完整;并不是所有的交换机都提供stp mib;只有cisco的设备才能使用cdp协议,不适合网络中交换机的多样化的需求;并且snmp协议对设备的mib信息进行读取操作时有一定延时,对于一定规模的网络,总延时会比较大。
3 改进的物理拓扑发现方法
本文提出了一种改进的物理拓扑发现方法,这种方法是基于snmp、mib来实现的。物理拓扑发现经过以下步骤:节点发现、连接关系计算。现在详细叙述各个模块的实现
3.1节点发现模块的实现
该模块用于发现局域网内所有活动的节点。通常有两种方法:一是通过路由器的mib中的ipnettomediaphysaddress信息获得活动的节点的ip地址;另一个是使用ping工具,通过将管理机的ip 地址与子网掩码与运算得出该网段内所有可用的ip地址,逐个进行ping操作,能够ping通的则是活动的主机。这两种方法都存在各自的优点和缺点。
下面主要介绍第一种方法的过程:
1)开始发现;
2)获取网管主机ip以及子网掩码;
3)获取网管主机网关地址;
4)访问网关路由器ipnettomediaphysaddre;
5)将活动的ip加入到activenode队列;
6)activenode是否为空(如果为空直接结束,否则转7));7)取出一个队头节点,访问该节点的mib库(sysservices);8)sysservices==2 (如果为真,到9),为假跳到10);
9)将节点加入到switch集合中(list);
10)将节点加入到terminalnode队列;
11)跳转到6)。
3.2 连接关系的计算
为了说明方便,这里定义几个概念、表示符号、相关的数据库:叶节点:不具有转发功能的节点称为叶节点,如终端主机、服务器、管理终端等。
交换机端口:一个交换机具有多个物理接口,用sij交换机si 的j端口
转发模式集合:交换机具有多个端口,有的端口可以转发多个不同的mac,有的仅能转发单一的mac,用ui(端口,转发的mac)来表示i交换机能转发单一mac的集合。用mi来表示i交换机能转发非单一mac的集合
用{r}表示与交换机直接相连的路由器的接口的mac
终端主机的mac:用{t}表示终端主机的mac
以下就是使用snmp获取地址转发表的具体步骤:
1)设定snmp请求pdu,绑定dot1dtpfdaddress(其oid为
1.3.6.1.
2.1.17.4.
3.1.1)这样,收到的应答中能够解析出交换机
能够转发的mac,格式形如:
1.3.6.1.
2.1.17.4.
3.1.1.0.0.12.7.172.8 = hex: 00 00 0c 07 ac 08
2)根据交换机能够转发的mac得到转发该mac的桥端口:设定snmp请求pdu并绑定dot1dtpfdbport(其oid为
1.3.6.1.
2.1.17.4.
3.1.2),收到的应答中能够解析出以转发的mac 相对应的桥端口。格式形如:
1.3.6.1.
2.1.17.4.
3.1.2.0.0.12.7.172.8 = 13
3)根据得到的桥端口号能够得到与该桥端口相对应的交换机端口号:设定snmp请求pdu并绑定dot1dbaseportifindex(其oid 为1.3.6.1.2.1.17.1.4.1.2),收到的应答中能够解析出与桥端口相对应的交换机的端口号。格式形如:1.3.6.1.2.1.17.1.4.1.2.13 = 2
4)根据以上步骤完成了地址转发表的读取并格式化,最终的格式为[交换机端口,转发的mac]。
下面针对几种典型的拓扑来说明如何确定连接关系
交换机和路由器相连,并连着终端主机。此时交换机的单一转发集合u中,转发的mac应包含{r}、{t},这种情况下很容易确定连接关系以及相应的连接端口。
如图1,交换机s1的单一转发集合u1中应包含{r}、{t1},由此即可推断交换机s1与路由器相连且有终端主机(叶节点)与之相连,非单一转发集合m1中应包含{t2}、{t3},由此可以推断交换