郭 琪
(南京邮电大学自动化学院,江苏 南京)
1996年千兆以太网上市,仍然使用CSMA/CD协议与已有的以太网兼容,使得以太网在局域网的领域里,更具有竞争力。随着以太网的发展,大量基于二层的网络组网方式出现,网络上的设备如交换机,路由器,集线器等基础设施,应用环境也越来越复杂。在这种情况下,利用虚拟局域网VLAN(Virtual Local Area Network)技术,可以将网络划分为多个逻辑子网,起到隔离冲突域与广播域的作用。但是,同属于一个VLAN的网络中,交互式的链路出现环路,会导致广播风暴的产生、帧的重复复制、交换机地址表不稳定,引起网络通讯受阻,系统反应迟缓,并最终导致网络瘫痪。所以,环路检测机制尤为重要。
在二层交换中,通过MAC(Media Access Control)地址寻址来进行报文的转发。二层设备的MAC地址学习是通过对报文源MAC地址的学习来进行的。当端口收到一个未知源MAC地址的报文,会将这个MAC地址存入 FDB(Forwarding Data Base)地址表项中,其中包括端口号、源MAC地址、VLAN ID等。在正常的老化时间内,设备没有改地址的报文传输,则该地址表项就会被删除。另一种情况,如果已经学习的源MAC地址,但是源端口不一致则更新地址表。因此,当链路上存在环路时,经过一段时间,所有的MAC地址都移动到了存在环回的端口上,形成广播风暴,导致二层网络瘫痪。
单端口环路检测机制通过在设备的端口上发送一种特殊的报文,并检测是否能从发送端口接收回来,以此来确定这个端口上是否有环回的情况。因为网络处于一个随时随地都在变化的过程,所以端口检测不是一次性完成的动作,而是需要在每隔一定的时间进行一次检测,来确定开启环路检测的端口上是否存在环回以及已存在的环回是否已经消失的情况。显然,环路检测是通过设备的CPU来进行报文的收发,因此CPU对于所收到的报文,通过报文检测与识别的过程,来确定是否是本CPU发出的报文以及是哪个端口发送的报文。交换机的发送的检测报文中含有三个参数:第一,源MAC地址为本交换的的MAC地址(每个交换机的MAC地址是唯一的);第二,发送端口的端口号,用以判断是否于接收此报文的端口一致;第三,VLAN号,与端口在交换机上使能环路检测的VLAN号一一对应。当端口发出和收到的报文中这三个参数完全相同,即可确定该端口存在环路。通过软件控制使端口暂时受控关闭,待端口环回消失,再重新使能该端口。
单端口环路检测的缺陷在于,只能检测一个端口的下连接网络是否有环路,若交换机两个端口互联或者两个端口通过网络形成互联,则无法检测出来。基于这种考虑,提出交换机扩展端口环路检测机制。
扩展端口环路检测机制设定有两个端口,在这两个端口上可能发生单端口的环回,也可能发生通过网络互联或者直连的情况。设定两个端口,分别称为主端口和从端口,其中对这两个单端口上的环路检测原理不变,即分别从这两个端口持续每隔5s(缺省值,实际取值范围1s~300s)发一次检测报文,报文中包括以下三个参数,源MAC地址为本交换机的MAC地址,发送端口的端口号,以及VLAN号。若在这两个端口的任何一个收到了本端口发出的检测报文,即以上三个参数完全相同,则使端口处于受控的状态,状态持续5min(缺省值,实际取值范围1min~10min)直到单端口环回消失,再重新使能该端口。如果主端口收到了从端口发出的检测报文,或者从端口收到了主端口发送的检测报文,即报文的源MAC地址为本交换机的MAC地址,主端口收到报文的端口号为从端口的端口号,从端口收到报文的端口号为主端口的端口号,且VLAN号一致。说明主从端口直接或间接互联形成环路,则使主端口处于受控关闭状态,关闭的时间设定为5min(缺省值,实际取值范围1min~10min)。受控状态结束口,重新发检测报文,若仍存在环回,则主端口继续受控关闭,环回消失,则使能主端口。
在交换机的端口1,端口2开启扩展的环路检测功能,端口1为主端口,端口2为从端口,检测报文的发送间隔为5s,每次若检测到有环路产生,则主端口受控的时间为5min。在端口1插自环水晶头,则交换机阻塞端口1,端口2无变化;在端口2插自环水晶头,则交换机阻塞端口2,端口1无变化;将端口1,端口2同时插自环水晶头,交换机将两个端口全部阻塞。
采用如图1所示的网络拓扑结构,交换机1开启环路检测功能,端口1为主端口,端口2为从端口,检测报文的发送间隔为5s,每次若检测到有环路产生,则主端口受控的时间为5min。其余交换机未开启环路检测功能,且所有端口均属于vlan100,这样认为形成一个环路。交换机1检测到了端口1和端口2之间有环路,并使主端口处于受控状态,环路消失。在开启环路检测的交换机1上显示环路检测的状态如图2所示。交换机检测到有环网,并将主端口1处于受控状态,此时,环路消失,从端口2显示无环网。
图1 环路检测的第一种网络拓扑结构
本文介绍了一种扩展的环路检测方法,通过交换机的CPU来识别交换机的两个端口之间是否形成环网,属于单端口检测功能的扩展,弥补了单端口检测仅仅能检测到一个端口上有环网的情况,有效地防止了广播风暴的产生。
[1] 唐勇.交换机端口环路检测功能的有效性研究[J].重庆工商大学学报(自然科学版),2010,27(3),15-18.
[2] 米利波,谭立伟.以太局域网中广播风暴的分析与预防[J].渝西学院学报(自然科学版),2002,1(3)53-56.
[3] 杨茹.以太网络环境的广播风暴的防治[J].黑龙江工程学院学报(自然科学版),2006,20(04),45-48.
[4] 张应辉.路由器交换机原理及应用[M].北京:科学出版社,2006.
[5] 马颖.VLAN技术及其在校园网中的应用[J].郑州铁路职业技术学院学报,2004,16(3),63-66.
[6] 梅红岭.VLAN技术及应用[J].计算机周刊,1999,(17),22-23.
[7] 高林,马永强,李辉,唐六华.VLAN的局限性及其发展[J].通信与信息技术,2005,(01),31-33.
[8] 王钧,杨善林.VLAN技术在网络中的应用[J]电脑与信息技术,2000,(02),1-3.
[9] 虞琦.Packet over SDH和VLAN[J].电信网技术,2000,(05),36-41.