网络安全管理中拓扑发现方法研究

2013-06-04 07:09刘坤
科技致富向导 2013年10期
关键词:网络拓扑交换机端口

刘坤

【摘 要】为了提高网络拓扑发现的准确性,提出多层的拓扑发现方法。该方法从网络层和数据链路层分别进行拓扑分析,先找出网络的逻辑拓扑,然后在此基础上将数据链路层的交换设备加入到逻辑拓扑结构中去,进而形成完整的网络拓扑。通过该方法设计的原型系统验证,其能够无遗漏的发现数据链层交换机与其它设备的链接关系。

【关键词】拓扑发现;SNMP;地址转发表;端口信息表

0.引言

随着网络规模的不断增大,网络设备逐渐多样化,其结构也呈现了复杂化的趋势,要实现对网络的有效管理,其前提是要了解网络的状态,通常网络管理系统首先要实现网络的拓扑发现,在正确、完整的网络拓扑基础上可以通过SNMP(简单网络管理协议)等网络管理协议实现对网络的有效管理,因此研究网络拓扑发现对于计算机网络的有效管理具有重要作用。

当前的网络拓扑发现主要集中在两个层次上,即网络层的拓扑发现以及数据链路层的拓扑发现。网络层拓扑发现相对比较成熟,发现过程中一般不会出现设备和链路的遗漏,基于SNMP协议的MIB-2信息库查询是其主要方法,文献[1,2]中采用该方法,这也是当前商业网络管理软件所广泛采用的一种方法;数据链路层的拓扑发现机制主要用来发现网桥类设备,当前主要是用来发现交换机在网络上的拓扑状况,文献[3,4,5]提出了基于地址转发表(AFT)的数据链路层拓扑发现算法,但算法要求所有交换机的地址转发表是完整的,如果地址转发表不完整将会出现拓扑部分链路遗漏的情况。

1.网络层拓扑发现方法

根据网络结构的不同,网络拓扑发现方法也有所区别,当前商业网络管理软件广泛采用的拓扑发现机制是利用ICMP配合SNMP协议的综合网络拓扑发现方法,ICMP协议可以发现网络中存在的设备,SNMP协议可以通过MIB-2功能组读取的方法获得网络中相关节点的重要控制信息,比如路由表,进而完成网络拓扑发现的功能。以下对拓扑发现领域的常见方法进行总结。

1.1 ICMP协议发现设备

ICMP协议的设备发现类似Ping命令完成的功能,ICMP协议通过发送请求报文ICMP_ECHO和应答报文ICMP_ECHOREPLY可以达到判断目标主机连接是否正常的目的。请求和应答报文是相互配合工作的。当源主机向目标主机发送了ICMP_ECHO数据包后,它等候目标主机的应答,目标主机在收到一个ICMP_ECHO数据包后,将交换源主机IP地址和目的主机IP地址后将收到的ICMP_ECHO数据包中的数据部分原封不动地封装在自己的ICMP_ECHOREPLY数据包中,然后将该数据包反馈给发送ICMP_ECHO数据报的主机。接收方收到ICMP_ECHOREPLY数据包后进行校验,如果校验正确,发送主机认为目标主机连通正常,很显然ICMP是设备发现的一种高效方法?

1.2 SNMP协议发现设备间的连接关系

在大部分商业软件中都通过SNMP协议进行拓扑的发现,比如SNMPc管理站软件、HP OpenView等软件。在SNMP管理架构下,每一个被管理设备都关联一个MIB-2数据库,其存储着代理的网络对象信息,管理站是通过对代理MIB-2库中相关对象的读取和写入来实现有效的网络监视和网络控制功能。要实现拓扑发现,可以通过读取MIB-2中记录拓扑信息的相关对象(比如路由表、接口表、地址表等)构建网络拓扑结构,不但能发现设备的存在状态,还能发现网络层以上设备的互联关系。

1.3 ARP协议发现局域网内部设备

ARP协议能够在局域网中对IP地址和物理地址进行解析,依靠的是计算机维护的一张ARP表,记录了IP地址和物理地址的对应关系。因为ARP表中记录的都是最近活动的主机IP地址和物理地址的对应关系,因此,能够及时发现局域网的设备情况。但该发现设备的方法依赖局域网内部的ARP表,所以应用范围有限,一般仅仅作为网络拓扑发现局域网的一个辅助方法使用。

2.数据链路层的拓扑发现方法

定理1:如果:SA(s1,i1)USA(s2,i2)=SaII并且SA(s1,i1)∩SA(s2,i2)=?,则 IF(s1,i1)和IF(s2,i2)中间是直接相连接的关系。

在定理1中,交换机s的第i号端口为IF(s,i);交换机s的地址转发表中通过其i号端口IF(s,i)数据帧的源物理地址的集合表示为SA(s1,i1);子网中所有交换机的集合为SaII。

证明:这里使用反证法,假如,IF(s1,i1)和IF(s2,i2)中间不是直接相连接的关系,则在IF(s1,i1)和IF(s2,i2)之间必然还存在其它设备m,假设该设备的物理地址为Am,根据地址转发表的生成规则可知:Am∈SA(s1,i1)并且Am∈SA(s2,i2),很显然此时:SA(s1,i1)∩SA(s2,i2)=Am,这与SA(s1,i1)∩SA(s2,i2)=?矛盾,因此可以判断定理一成立。

定理2:如果路由器r和交换机s之间直接互相连接,当且仅当其互联端口IF(s,i)没有出现其它交换机的物理地址并且SA(s,i)中包含路由器r的物理地址。

证明:首先进行充分性证明,如果路由器r和交换机s之间直接互相连接,则路由器r的物理地址必然出现在SA(s,i),另外,因为路由器将子网阻隔,其它的交换机的物理地址不可能经过互联端口IF(s,i),得证。

然后进行必要性证明,SA(s,i)中包含路由器r的物理地址说明路由器r位于端口IF(s,i)的子网中,但IF(s,i)端口所连接的子网中未出现其它交换机物理地址,因此路由器r和端口IF(s,i)直接互联,得证。

要根据定理1和定理2判断数据链路层的链接关系首先必须获得交换机的地址端口表,也就是说,要对以太网中端口的物理地址进行统计,这可以通过交换机的地址转发表获取相关信息,并进一步得到网络数据链路层的拓扑状况。交换机MIB对应的标准是Bridge-MIB。在Bridge-MIB中定义了dot1dTpFdbAddress(OID:1.3.6.1.2.1.17.4.3.1.1)来存放地址交换机的地址转发表,其对应的端口存放在端口信息表dot1dTpFdbPort(OID:1.3.6.1.2.1.17.4.3.1.2)上。通过查询dot1dTpFdbAddress和dot1dTpFdbPort便可以找到发现交换机MAC的端口。

3.总结

要对计算机网络实现有效管理,首先必须知道网络的拓扑情况,要发现网络的拓扑可以从网络层协议发现,也可以从数据链路层发现,网络层能够有效的发现网络的逻辑拓扑,但不能发现数据链路层设备的链接关系,文中所采用的网络拓扑发现方法综合了网络层和数据链路层的拓扑发现方法,能够发现常见的三种拓扑关系:其一,网络中路由器之间的链路关系;其二,网络中路由器和交换机的连接关系;其三,网络中交换机和交换机的链接关系。这三种关系基本包含了当前常见网络的设备互联关系。

【参考文献】

[1]邓泽林,张立芳,刘翌南,等.基于SNMP协议的网络拓扑发现算法[J].长沙理工大学学报:自然科学版,2007,4(4):68-72.

[2]杨安义,朱华清,王继龙.一种改进的基于 SNMP 的网络拓扑发现算法及实现[J].计算机应用,2009,27(10):2412-2419.

[3]郑海,张国清.物理网络拓扑发现算法的研究[J]. 计算机研究与发展,2002,39(3):264-268.

[4]孙延涛,吴志美,石志强.基于地址转发表的交换式以太网拓扑发现[J].软件学报,2006,17(12):2565-2576.

[5]阴国富,一种分布式无线传感器网络跨层移动通信技术研究 [J].计算机应用研究,2012(9):2330-2335.

猜你喜欢
网络拓扑交换机端口
一种端口故障的解决方案
浅谈交换机CAN基本配置
电网运行风险评估与辅助决策系统的应用
自动化控制系统设计方法探索
数据中心网络拓扑结构研究
一种FC网络管理软件的设计
罗克韦尔发布Strat ix 5410分布式交换机
为程序或设备在路由器上打开端口
信息网络中交换机的分类和功能
DHCP Snooping模式的部署