1、引言
在一个桥接的局域网里,为了增强可靠性,必然要建立一个冗余的路径,网段会用冗余的网桥连接。但是,在一个透明桥桥接的网络里,存在冗余的路径就能建立一个桥回路,桥回路对于一个局域网是致命的。它会带来如下问题:
a.广播风暴
b.同一帧的多份拷贝
c.不稳定的mac地址表
因此,在交换网络中必须有一个机制来阻止回路。
2、生成树协议
生成树协议就是it界中常用的机制.生成树协议是一种桥嵌套协议,在ieee802.1d规范里定义,可以用来消除桥回路。它的工作原理是这样的:生成树协议定义了一个数据包,叫做桥协议数据单元bpdu(bridgeprotocoldataunit)。网桥用bpdu来相互通信,并用bpdu的相关机能来动态选择根桥和备份桥。但是因为从中心桥到任何网段只有一个路径存在,所以桥回路被消除。
在一个生成树环境里,桥不会立即开始转发功能,它们必须首先选择一个桥为根桥,然后建立一个指定路径。在一个网络里边拥有最低桥id的将变成一个根桥,全部的生成树网络里面只有一个根桥。根桥的主要职责是定期发送配置信息,然后这种配置信息将会被所有的指定桥发送。这在生成树网络里面是一种机制,一旦网络结构发生变化,网络状态将会重新配置。
当选定根桥之后,在转发数据包之前,它们必须决定每一个网段的指定桥,运用生成树的这种算法,根桥每隔2秒钟从它所有的端口发送bpdu包,bpdu包被所有的桥从它们的根端口复制过来,根端口是接根桥的那些桥端口。bpdu包括的信息叫做端口的cost,网络管理员分配端口的cost到所有的桥端口,当根桥发送bpdu的时候,根桥设置它的端口值为零。然后沿着这条路径,下一个桥增加它的配置端口cost为一个值,这个值是它接收和转发数据包到下一个网段的值。这样每一个桥都增加它的端口的cost值为它所接收的bpdu的包的cost值,所有的桥都检测它们的端口的cost值,拥有最低端口的cost值的桥就变为了指定的桥。拥有比较高端口cost值的桥置它的端口进入阻塞状态,变为了备份桥。在阻塞状态,一个桥停止了转发,但是它会继续接收和处理bpdu数据包。
ieee802.1d规范包括了生成树算法(spanningtreealgorithm,sta),这是一种确保转发循环永远不会发生的机制。sta使用网桥协议数据单元(bridgeprotocoldataunits,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包(watchdogpackets)。交换机之间用hello包通信,在主交换机上动态选择主链路和备份链路。但是因为从中心桥到任何网段只有一个路径存在,所以桥回路被消除。
在工业冗余环网网络环境里,交换机不会立即开始转发功能,主交换机(local)由手动指定,选择主链路和备份链路建立一个指定路径,由supreme-ring协议自动指定。一个工业冗余环网网络里面只能有一个主交换机(local)。主交换机(local)会定期发送配置信息,这种配置信息将会被所有的从交换机(remote)发送。一旦网络结构发生变化,网络状态将会重新配置。
当指定主交换机(local)之后,在转发数据包之前,所有端口都以阻塞方式启动。运用supreme-ring算法,主交换机(local)选择最低cost值的端口作为主链路,另一条cost值高的端口作为备份链路。备份链路不转发数据,只接收和处理hello包,处于热备(hotstandby)状态。从交换机(remote)没有主链路和备份链路的区别。supreme-ring协议是一种简洁高效的冗余协议,能够保证环网在链路故障时,在300ms之内恢复网络通信。
supreme-ring的状态:
运行supreme-ring协议的交换机上的端口,总是处于下面四个状态中的一个:
阻塞:所有端口以阻塞状态启动以防止回路,处于阻塞状态的端口不转发数据帧但可接受hello包。
热备:不转发数据帧,但学习mac地址表,在主链路故障时,在300ms之内,立刻进入转发状态。
转发:可以传送和接受数据数据帧。
禁用:通常由于端口故障或交换机配置错误引起。
4、结束语
工业网络环境需要快速反应冗余机制,生成树协议的15秒恢复时间,不能满足工业环境要求。只有采用supreme-ring协议才是工业网络环境的最佳冗余机制。