第八章二层协议标准
——生成树,组播协议与链路聚合 目标:
了解STP协议的产生背景和处理流程。
了解STP的使用方法。
了解组播协议标准,了解IGMP护理流程及使用场合。
了解链路聚合的作用及实现方式。
一、生成树协议
1、网桥循环和网桥循环和生成树协议
如果在网间网的任何两个LAN之间存在多条网桥路径或LAN路径,网桥就会失效,因为网间网中并没有提供网桥对网桥协议,如下图所示:
ͼ1 网桥循环示意图
在上图中,假定主机A向主机B发送一个数据包,两个网桥同时接收到这个数据包,并且都正确地知道主机A位于网络2中。但是不幸的是,在主机B同时收到两份一样的主机A的数据包后,两个网桥又一次从它们对网络1的端口上接收到数据包,因为在广播级LAN中所有的主机接收所有的消息。
在这种情况下,二层交换将改变各自的路由表以指明主机A在网络1中,如果这样的话,当主机B向主机A发送数据包时,两个网桥接收到此数据包后,又会将其丢弃,因为它们的路由表中指明主机A位于网络1中,而实际上主机A 位于网络2中。这样主机A将永远收不到网络1上主机发给它的数据。
除了类似于上面所描述的基本连接问题之外,广播级消息在具有循环的网络中传递可能会导致更为严重的网络问题。如图11的循环连接,假定主机A的初始数据包是一个广播级数据包,两个网桥将会无休止地转发这个数据包,这样会占用所有可能获取的网络带宽,导致网络阻塞。
具有循环连接的网络拓扑结构可能是有用的,如用户为保证两个网段不会因为一条路径失效而中断,特意在这两个网段间搭建多条路径,这样可以提高网络拓扑结构上的灵活性,从而提高了这个网络的容错能力。当然,网间网中的多重路径也可能是用户无意识配置造成的。
为解决网络间存在的回路问题,提出了生成树算法。
2、生成树算法
生成树算法(Spanning Tree Algorithm)最初是由DEC公司开发成功的,其主要目标是提高网络循环连接的可用性,同时消除网络循环连接带来的破坏性。DEC的生成树算法后来由IEEE 802进行了一定的修改,发表在IEEE 802.1d 协议说明中。DEC的生成树算法与IEEE 802.1d算法并不相同,而且它们也互不兼容。
STA算法通过将导致循环连接的网桥端口(如果处于活动状态)设置成阻塞状态,这样就可以指定网络拓扑中没有回路的存在。在任何时候主数据链路失效时处于阻塞状态的网桥都可以被激活,于是为网间网提供了一条新的路径。
STA算法采用了图论中的结论作为在网络拓扑中建立没有循环路径的子网的理论依据。图论中有如下结论:对于任意由节点和连接节点对的边组成的连通图,就会构成一棵由边组成的生成树,生成树保持了原图的连通性,但并不增加循环。如下图,(D:知道网桥,R:根桥),
LAN X
LAN V
ͼ1 生成树示意图
图2说明了生成树算法是如何消除连接循环的过程。STA算法要求每一个网桥都有一个唯一的标识符,通常标识符由网桥的MAC地址与网桥的优先级组成(在网桥中各个项目的ID数越小,其优先级越高),同时,每一个网桥内的每一个端口也有唯一的标识符,通常是由端口号与该端口优先级组成。最后,每一个网桥端口与一个路径值联系起来,路径值表示通过该端口将数据桢传递到LAN的代价。一般路径值=1000/相连的LAN的速度,所以,与该端口相连的LAN 的速度越大,则该端口的路径值越小。
生成树的计算过程为:
选择根桥,通常根桥就是具有最低网桥标识符的网桥,在图2中网桥1是根桥。
决定所有除根桥以外的网桥的根端口,根端口就是通过它达到根桥时,路径值最小,达到根桥的最小路径值称为根路径值。
决定指定网桥和指定网桥的指定端口,指定网桥就是每一个LAN中提供最小根路径值的网桥,每一个LAN中的指定网桥是唯一能够为当前LAN转发和接收
数据桢的网桥。每一个LAN的指定端口是连接LAN到指定网桥使用的端口。
在某些情况下,两个或多个网桥可能具有相同的根路径值,在这种情况下使用网桥标识符来决定谁是指定桥。例如图3中,网桥4和网桥5到达网桥1(根桥)的路径值均为10,这种情况就根据网桥ID来选择,于是网桥4的LAN V 端口而不是网桥5的LAN V端口被选择为知道端口。图13是运行STA算法后的网络:
图中实线表示活动端口,虚线表示阻塞端口。
使用这样的选择过程,任意网桥与任意网段之间的关系只会是单向连接的,即从某一个网桥
LAN 1
LAN 4
进行生成树算法后的网络
达到某一个网段只存在唯一的路径,这样就消除了两个LAN构成的连接循环。STA算法同样能消除多个LAN构成的连接循环,同样保持了整个网络拓扑关系的连通性。对于不允许参加生成树协议的端口,将被设置为阻塞(blocking)状态,而当其它端口出现故障,重新配置生成树时,该端口有可能从blocking 状态进入forwarding状态,重新参加生成树。
当开启网桥的电源或者检测到网络的拓扑结构发生变化时,生成树的计算过程就会开始。生成树的计算过程需要生成树网桥之间的通讯来配合,生成树计算过程通过配置消息或称网桥协议数据单元(BPDU)来完成。配置消息中包含有假定为根桥的网桥和发送网桥达到根桥的路径值等,配置信息中同时还包含发送端的网桥标识符和发送端的端口标识符。以及包含在配置消息中的信息所经过的时间。
网桥以一定的时间间隔交换配置消息,如果某一网桥失效将引起网络拓扑结构发生改变,相邻的网桥在一定时间内就会检测到配置消息的空缺,并重新初始化生成树的计算过程。
所有二层交换有关网络拓扑结构的决定都是由二层交换自己进行的,配置消息仅仅在相邻网桥之间交换。整个网络拓扑结构中没有授权的中央网桥或者专门用于管理的网桥。
3、生成树的使用:
生成树协议最主要的应用是为了避免局域网中的网络环回,解决成环以太网网络的“广播风暴”问题,从某种意义上说是一种网络保护技术,可以消除由于失误或者意外带来的循环连接。STP也提供了为网络提供备份连接的可能,可与SDH保护配合构成以太环网的双重保护。新型以太单板支持符合IEEE 802.1d 标准的生成树协议STP及802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。
但是,由于协议机制本身的局限,STP保护速度慢(即使是1s的收敛速度也无法满足电信级的要求),如果在城域网内部运用STP技术,用户网络的动荡会引起运营商网络的动荡而,且SDH网络本身有比较完善的保护机制,所以城域运营网络可以对外支持STP,提供一定的网络保护功能。
图 1 STP协议应用示例
如上图:启动生成树协议后,导致循环连接的网桥端口(如果处于活动状态)将被设置成阻塞状态,这样就可以指定网络拓扑中没有回路的存在。当环网中原有的以太路由发生故障,即主数据链路失效时,处于阻塞状态的网桥被激活,