1、引言
在一个桥接的局域网里,为了增强可靠性,必然要建立一个冗余的路径,网段会用冗余的网桥连接。但是,在一个透明桥桥接的网络里,存在冗余的路径就能建立一个桥回路,桥回路对于一个局域网是致命的。它会带来如下问题:
A.广播风暴
B.同一帧的多份拷贝
C.不稳定的MAC地址表
因此,在交换网络中必须有一个机制来阻止回路。
2、生成树协议
生成树协议就是IT界中常用的机制.生成树协议是一种桥嵌套协议,在IEEE 802.1d规范里定义,可以用来消除桥回路。它的工作原理是这样的:生成树协议定义了一个数据包,叫做桥协议数据单元BPDU(Bridge Protocol Data Unit)。网桥用BPDU来相互通信,并用BPDU的相关机能来动态选择根桥和备份桥。但是因为从中心桥到任何网段只有一个路径存在,所以桥回路被消除。
在一个生成树环境里,桥不会立即开始转发功能,它们必须首先选择一个桥为根桥,然后建立一个指定路径。在一个网络里边拥有最低桥ID的将变成一个根桥,全部的生成树网络里面只有一个根桥。根桥的主要职责是定期发送配置信息,然后这种配置信息将会被所有的指定桥发送。这在生成树网络里面是一种机制,一旦网络结构发生变化,网络状态将会重新配置。
当选定根桥之后,在转发数据包之前,它们必须决定每一个网段的指定桥,运用生成树的这种算法,根桥每隔2秒钟从它所有的端口发送BPDU包,BPDU包被所有的桥从它们的根端口复制过来,根端口是接根桥的那些桥端口。BPDU包括的信息叫做端口的COST,网络管理员分配端口的COST到所有的桥端口,当根桥发送BPDU的时候,根桥设置它的端口值为零。然后沿着这条路径,下一个桥增加它的配置端口COST为一个值,这个值是它接收和转发数据包到下一个网段的值。这样每一个桥都增加它的端口的COST值为它所接收的BPDU的包的COST值,所有的桥都检测它们的端口的COST值,拥有最低端口的COST值的桥就变为了指定的桥。拥有比较高端口COST值的桥置它的端口进入阻塞状态,变为了备份桥。在阻塞状态,一个桥停止了转发,但是它会继续接收和处理BPDU数据包。
IEEE 802.1D规范包括了生成树算法(Spanning Tree Algorithm,STA),这是一种确保转发循环永远不会发生的机制。 STA使用网桥协议数据单元(Bridge Protocol Data Units,BPDU),自动配置网桥上处于转发或阻塞状态的独立端口。BPDU是网桥发送到一个已保存的多播MAC地址(对于以太网,这个地址是01-80-C2-00-00-00)的消息,所有透明网桥都会侦听该地址。在阻塞状态下,端口不会获悉或转发已接收到的帧。STA的最终结果是一个无循环的桥接环境,不管局域网网段拓扑结构是否改变,这个环境总是一直存在。生成树算法,决定了网络链路故障恢复时间,最少不低于15秒。
生成树的状态:
运行生成树协议的交换机上的端口,总是处于下面五个状态中的一个:
阻塞:所有端口以阻塞状态启动以防止回路,由生成树确定哪个端口切换为转发状态,处于阻塞状态的端口不转发数据帧但可接受BPDU。
监听:不转发数据帧,但检测BPDU(临时状态)。
学习:不转发数据帧,但学习MAC地址表(临时状态)。
转发:可以传送和接受数据数据帧。
禁用:通常由于端口故障或交换机配置错误引起.
3、Supreme-Ring协议
Supreme-Ring协议是在工业以太网使用的冗余机制。Supreme-Ring协议和生成树协议有点相似,Supreme-Ring协议也定义了一种数据包,称为HELLO包,又称为WD包(Watch Dog Packets)。交换机之间用HELLO包通信,在主交换机上动态选择主链路和备份链路。但是因为从中心桥到任何网段只有一个路径存在,所以桥回路被消除。
在工业冗余环网网络环境里,交换机不会立即开始转发功能,主交换机(Local)由手动指定,选择主链路和备份链路建立一个指定路径,由Supreme-Ring协议自动指定。一个工业冗余环网网络里面只能有一个主交换机(Local)。主交换机(Local)会定期发送配置信息,这种配置信息将会被所有的从交换机(Remote)发送。一旦网络结构发生变化,网络状态将会重新配置。
当指定主交换机(Local)之后,在转发数据包之前,所有端口都以阻塞方式启动。运用Supreme-Ring算法,主交换机(Local)选择最低COST值的端口作为主链路,另一条COST值高的端口作为备份链路。备份链路不转发数据,只接收和处理HELLO包,处于热备(Hot Standby)状态。从交换机(Remote)没有主链路和备份链路的区别。Supreme-Ring协议是一种简洁高效的冗余协议,能够保证环网在链路故障时,在300ms之内恢复网络通信。
Supreme-Ring的状态:
运行Supreme-Ring协议的交换机上的端口,总是处于下面四个状态中的一个:
阻塞:所有端口以阻塞状态启动以防止回路,处于阻塞状态的端口不转发数据帧但可接受HELLO包。
热备:不转发数据帧,但学习MAC地址表,在主链路故障时,在300ms之内,立刻进入转发状态。
转发:可以传送和接受数据数据帧。
禁用:通常由于端口故障或交换机配置错误引起。
4、结束语
工业网络环境需要快速反应冗余机制,生成树协议的15秒恢复时间,不能满足工业环境要求。只有采用Supreme-Ring协议才是工业网络环境的最佳冗余机制。