200 likes | 441 Views
第 13 章 冗余交换链路与生成树协议. 3. 3. 13.1 交换机中的冗余链路. 1. 3. 13.2 生成树协议概述. 2. 13.3 STP. Contents. 13.1.1 冗余备份链路. 在交换网络中,由于单点(单链路)故障容易导致系统瘫痪,因此引入备 份链路。但冗余链路又会造成网络环路,当交换网络中出现环路时,会产 生广播风暴、多帧复制和 MAC 地址表不稳定等现象,如图 13-1 、 13-2 、 13- 3 所示。.
E N D
3 3 13.1交换机中的冗余链路 1 3 13.2 生成树协议概述 2 13.3 STP Contents
13.1.1 冗余备份链路 在交换网络中,由于单点(单链路)故障容易导致系统瘫痪,因此引入备 份链路。但冗余链路又会造成网络环路,当交换网络中出现环路时,会产 生广播风暴、多帧复制和MAC地址表不稳定等现象,如图13-1、13-2、13- 3所示。 在局域网中很多的网络协议都采用广播方式进行管理和操作,广播采用广播帧来发送和传递信息,广播帧是向局域网中所有主机,因此容易产生碰撞,为缓解碰撞又要重传更多的数据包,从而耗尽网络带宽,使网络瘫痪。
当一台主机收到某个数据帧的多个副本时,使网络协议无从选择,不知选用哪个数据帧。当一台主机收到某个数据帧的多个副本时,使网络协议无从选择,不知选用哪个数据帧。 图13-3中MAC地址表不稳定的产生过程如下。 主机X发送一单点帧给路由器Y 路由器Y的MAC地址还没有被交换机A和B学习到 交换机A和B都学习到主机X的MAC地址对应端口0 到路由器Y的数据帧在交换机A和B上会泛洪处理 交换机A和B都错误学习到主机X的MAC地址对应端口 1 在多帧复制时,也会导致MAC地址表的多次刷新,这种持续的更新、刷新过程会严重耗用内存资源,影响交换机的交换能力,降低网络的运行效率,严重时耗尽网络资源、导致网络瘫痪。 在实际交换网络中,还会产生多重回路,如图13-4所示。
解决环路的最初思路是,当主要链路正常时,断开备份链路;当主要链路出现故障时,就自动启用备份链路,于是产生了生成树协议。解决环路的最初思路是,当主要链路正常时,断开备份链路;当主要链路出现故障时,就自动启用备份链路,于是产生了生成树协议。 由于网络规模越来越大,传输的数据量更大,需要的带宽更多,充分利用冗余链路,而不是阻止备份链路、使负载均衡,成为更加关注的内容。 在交换式的网络中实现冗余的方式主要有两种:生成树协议和链路捆绑技术。其中生成树协议是一个纯二层协议,链路捆绑技术既可在二层接口上也可在三层接口上使用。
13.1.2二层聚合链路 1.二层链路聚合的基本概念 把多个二层物理链接捆绑在一起形成一个简单的逻辑链接,这个逻辑链接我们称之为链路聚合,这些二层物理端口捆绑在一起称为一个聚合口aggregate port(简称AP)。 AP是链路带宽扩展的一个重要途径,符合IEEE 802.3ad标准。它可以把多个端口的带宽叠加起来使用,形成一个带宽更大的逻辑端口,同时当AP中的一条成员链路断开时,系统会将该链路的流量分配到AP中的其他有效链路上去,实现负载均衡和链路冗余。 Aggregate port(AG)可以根据报文的源MAC地址、目的MAC地址或IP地址进行流量平衡,即把流量平均地分配到AG组成员链路中去。 当接入层和汇聚之间创建了一条由三个百兆组成的AP链路时,在用户侧接入层交换机上,来自不同的用户主机数据,源MAC地址不同,因此二层AP基于源MAC地址进行多链路负载均衡方式。而在汇聚层交换机上发往用户数据帧的源MAC地址只有一个,就是本身的SVI接口MAC。因此二层AP基于目的MAC地址进行多链路负载均衡方式。 链路聚合的注意点: (1)聚合端口的速度必须一致 (2)聚合端口必须属于同一个VLAN (3)聚合端口使用的传输介质相同 (4)聚合端口必须属于同一层次,并与AP也要在同一层次 Company Name
13.1.3 三层聚合链路 1.三层链路聚合技术及配置 三层链路的AP和二层链路AP技术其本质相同,都是通过捆绑多条链路形成一个逻辑端口来增加带宽,保证冗余和负载分担的目的。三层链路冗余技术较二层链路冗余技术丰富得多,配合各种路由协议可以轻松实现三层链路冗余和负载均衡。 建立三层AP首先应手动建立汇聚端口,并将其设置为三层接口(no switchport)。如果直接将交换机端口加入的话,会出现接口类型不匹配,命令无法执行的错误。 注意:建立三层AP需要首先手动建立汇聚端口,并将其设置为三层接口。如果直接将交换机端口加入的话,会出现接口类型不匹配,命令无法执行的错误。 2.基于OSPF的三层链路冗余技术 基于OSPF的三层链路冗余技术在大型园区网络中使用广泛。对两台核心交换设备分别有两条出口(分别接两台路由器)冗余备份的网络中,可在核心设备的两条上行链路上做负载均衡。但如果在出口路由器上需要做NAT转换,负载均衡就很难实现。但可通过调整cost的值实现链路冗余和负载分担。 对两台核心交换设备有一条出口(接一台路由器)的拓扑结构中,不需要通过人工调整cost值来实现流量分担。只需要更改OSPF的参考带宽,由OSPF自动实现负载均衡功能。
13.2 生成树协议概述 生成树协议同其他协议一样,是随着网络的不断发展而不断更新换代的,生成树协议的发展过程分为三代: 第一代生成树协议:STP/RSTP 第二代生成树协议:PVST/PVST+ 第三代生成树协议:MISTP/MSTP cisco在802.1d基础上增加了几个私有的增强协议:portfast、uplinkfast、backbonefast,其目的都在于加快收敛速度。 Port Fast特性指连接工作站或服务器的端口无需经过监听和学习状态,直接从堵塞状态进入转发状态,从而节约了30秒(转发延迟)的时间。 uplinkfast是用在接入层、有阻断端口的交换机上,当它连接到主干交换机上的主链路有故障时能立即切换到备份链路上,而不需要30秒或50秒(转发延迟)的时间。 backbonefast用在主干交换机之间,并要求所有交换机都启动backbonefast。当主干交换机之间的链路发生故障时,用20秒(节约了30秒)就切换到备份链路上。
13.2.1 生成树协议的种类 1.基本STP 基本STP协议规范为IEEE 802.1d,STP 基本思路是阻断一些交换机接口,构建一棵没有环路的转发树。 STP 利用 BPDU(Bridge Protocol Data Unit)和其他交换机进行通信, BPDU 中有根桥 ID、路径代价、端口 ID 等几个关键的字段。 为了在网络中形成一个没有环路的拓扑,网络中的交换机要进行三种选举:(1)选举根桥。 (2)选取根端口。 (3)选取指定端口。交换机中的接口只有是根端口或指定端口,才能转发数据,其它接口都处于阻塞状态。 当网络的拓扑发生变化时,网络会从一个状态向另一个状态过渡,重新打开或阻断某些接口。 交换机的端口要经过几种状态: 禁用(Disable)、阻塞(Blocking)、监听状态(Listening)、学习状态(Learning)、最后是转发状态(Forwarding)。
2.RSTP RSTP 的协议规范为IEEE 802.1w,它是为了减少STP收敛时间而修订的新的协议。在RSTP中,接口的角色有四种:根端口、指定端口、备份端口、替代端口。接口的状态只有三种:丢弃(Discarding)、学习状态(Learning)、转发状态(Forwarding)。接口还分为:边界接口、点到点接口、共享接口。 3.PVST 当网络上有多个 VLAN 时,PVST(Per Vlan STP)会为每个 VLAN 构建一棵 STP 树。这样的好处是可以独立地为每个 VLAN 控制哪些接口要转发数据,从而实现负载平衡。缺点是如果VLAN 数量很多,会给交换机带来沉重的负担。Cisco 交换机默认的模式就是 PVST。 4.MSTP MSTP的协议规范为IEEE 802.1s,在PVST中交换机为每个VLAN都构建一棵STP树,随着网络规模的增加,VLAN的数量也在不断增多,会给交换机带来很大负载、占用大量带宽。MSTP是把多个VLAN映射到一个STP实例上,即为每个实例建立一棵STP树,从而减少了STP树的数量,它与STP、PVST兼容。锐捷交换机默认的模式就是MSTP。
网桥号 BPDU 根端口 指定网桥 根网桥 非指定端口 指定端口 生成树协议的基本概念 生成树协议有以下基本术语: Company Name
1.BPDU(网桥协议数据单元) 网桥协议数据单元(BPDU),是STP中的“hello数据包”,每隔一定的时间间隔(2秒,可配置)发送,它在网桥之间交换信息。STP就是通过在交换机之间周期发送网桥协议数据单元(BPDU)来发现网络上的环路,并通过阻塞有关端口来断开环路的。 网桥协议数据单元主要包括以下字段:Protocol ID,Version,Message Type,Flag,Root ID(根网桥ID),Cost of Path(路径开销),Bridge ID(网桥ID),Port ID(端口ID),计时器包括:Message Age、Maximum Time、Hello Time、Forward Delay(传输延迟)。其作用为: Protocol ID(2字节)和Version(1字节)是STP相关的信息和版本号,通常固定为0。Message Type(1字节):分为两种类型,配置BPDU 和拓扑变更通告BPDU。 Flag(1字节):与拓扑变更通告相关的状态和信息。Root ID(8字节):根网桥号由2字节优先级和6字节MAC组成。Cost of Path:路径开销是从交换机到根桥的方向累计的花费值。Bridge ID:发送自己的网桥ID。Port ID:发送自己的端口ID,端口ID由1字节端口优先级和1字节端口ID组成。Maximum Time:当一段时间未收到任何BPDU,生存期达到Max Age时,网桥则认为该端口连接的链路发生故障,默认20秒。Hello Time:发送BPDU的周期,默认为2秒,Forward Delay:BPDU全网传输延迟,默认15秒。
2.网桥号 网桥号(Bridge ID)用于标识网络中的每一台交换机,它由两部分组成,2字节优先级和6字节MAC组成。优先级从0-65535,缺省为32768。 3.根网桥 具有最小网桥号的交换机将被选举为根网桥,根网桥的所有端口都不会阻塞,并都处于转发状态。 4.指定网桥 对交换机连接的每一个网段,都要选出一个指定网桥,指定网桥到根网桥的累计路径花费最小,由指定网桥收发本网段的数据包。 5.根端口 整个网络中只有一个根网桥,根网桥上的端口都是指定端口,而不是根端口,而在非根网桥上,需要选择一个根端口。根端口是指从交换机到根网桥累计路径花费最小的端口,交换机通过根端口与根网桥通信。根端口(RP)设为转发状态。 6.指定端口 每个非根网桥为每个连接的网段选出一个指定端口,一个网段的指定端口指该网段到根网桥累计路径花费最小的端口,根网桥上的端口都是指定端口。指定端口(DP)设为转发状态。 7.非指定端口 除了根端口和指定端口之外的其他端口称为非指定端口,非指定端口将处于阻塞状态,不转发任何用户数据。
13.3 STP STP起源于DEC公司的“网桥到网桥”协议,后来,IEEE 802委员会制定了生成树协议的规范802.1d。其作用是,在冗余链路中,解决网络环路问题。STP通过生成树算法(SPA)生成一个没有环路的网络,当主要链路出现故障时,能够自动切换到备份链路,保证网络的正常通信。 STP通过从软件层面修改网络物理拓扑结构,构建一个无环路的逻辑转发拓扑结构,提高了网络的稳定性和减少网络故障的发生率。 TEXT TEXT TEXT TEXT 13.3.1 STP中的选择原则 1.根网桥的选举原则 在全网范围内选举网桥号(Bridge ID)最小的交换机为根网桥,网桥号由交换机优先级和Mac地址组合而成,从而可通过改变交换机的优先级别来改变根网桥的选举。 选举步骤如下: (1)所有交换机首先都认为自己是根; (2)从自己的所有可用端口发送“配置BPDU”,其中包含自己的网桥号,并作为根; (3)当收到其他网桥发来的“配置BPDU”时,检查对方交换机的网桥号,若比自己小,则不再声称自己是根了(不再发送BPDU了); (4)当所有交换机都这样操作后,只有网络中最小网桥号的交换机还在继续发送BPDU,因此它就成为根网桥了。
2.最短路径的选择 (1)首先比较路径开销 比较本交换机到达根网桥的路径开销,选择开销最小的路径 (2)其次比较网桥号 如果路径开销相同,则比较发送BPDU交换机的网桥号(Bridge ID) (3)其三,比较发送者端口号(Port ID) ① 如果发送者网桥号相同,即同一台交换机,则比较发送者交换机的Port ID ② Port ID:端口号由1字节端口优先级和1字节端口ID组成 ③ 端口默认的优先级为128 (4)最后,比较接收者的端口号(Port ID) ① 如不同链路发送者的Bridge ID一致(即同一台交换机),那比较接收者的Port ID 3.选举根端口和指定端口 如图13-5所示,一旦选好了最短路径,就选好了根端口和指定端口。
4.生成树的工作过程 (1)首先进行根桥的选举。每台交换机通过向邻居发送BPDU,选出网桥ID最小的网桥作为网络中的根桥。 (2)确定根端口和指定端口。计算出非根桥的交换机到根桥的最小路径开销,找出根端口(最小的发送方网桥ID)和指定端口(最小的端口ID)。 (3)阻塞非根网桥上非指定端口。阻塞非根网桥上非指定端口以裁剪冗余的环路,构造一个无环的拓扑结构。这个无环的拓扑结构是一棵树,根桥作为树干,没裁剪的活动链路作为向外辐射的树枝。在处于稳定状态的网络中,BPDU从根桥沿着无环的树枝传送到网络的各个网段。 5.生成树操作规则 每个网络只有一个根桥,根桥上的接口都是指定口 每个非根桥只有一个根端口 每个段只有一个指定端口,其它接口为非指定口 指定端口转发数据,非指定端口不转发数据
13.3.2 STP端口的状态 生成树经过一段时间(默认值是50秒左右)稳定之后,所有端口要么进入转发状态,要么进入阻塞状态。 图13-6显示了生成树端口状态的转换过程,它指出了网络中的每台交换机在刚加电启动时,每个端口都要经历生成树的四个状态:阻塞、侦听、学习、转发。在能够转发用户的数据包之前,端口最多要等50秒时间,20秒阻塞时间(Max Age)、加15秒侦听延迟时间(Forward Delay )、加15秒学习延迟时间(Forward Delay )。
(1)阻塞状态Blocking。刚开始,交换机的所有端口均处于阻塞状态。在阻塞状态,能接收和发送BPDU,不学习MAC地址,不转发数据帧。此状态最长时间为20秒。(1)阻塞状态Blocking。刚开始,交换机的所有端口均处于阻塞状态。在阻塞状态,能接收和发送BPDU,不学习MAC地址,不转发数据帧。此状态最长时间为20秒。 (2)侦听状态Listening。在侦听状态,能接收和发送BPDU,不学习MAC地址,不转发数据帧,但交换机向其他交换机通告该端口,参与选举根端口或指定端口。根端口和指定端口将转入到学习状态;既不是根端口也不是指定端口的成为非指定端口,将退回到阻塞状态,此状态最长持续时间为15秒。 (3)学习状态Learning。在学习状态,接收BPDU,接收数据帧,从中学习MAC地址,建立MAC地址表,但仍不能转发数据帧。 (4)转发状态Forwarding。在转发状态,正常转发数据帧。 (5)无效状态。无效状态不是正常的STP状态,当一个接口处于无外接链路、被管理性关闭时,暂时处于无效状态,并向阻塞状态过渡。通常,在一个大中型网络中,整个网络拓扑稳定为一个树型结构大约需要50 秒,因而STP的收敛时间过长。
13.3.3 生成树的重新计算 在Switch A和Switch C之间的连线没有断开时, Switch A的f0/24 、f0/1端口为指定端口;Switch C的 f0/1端口为根端口,f0/2端口为非指定端口,处于阻塞 状态。当Switch A和Switch C之间的连线断开后, 拓扑结构发生改变,生成树重新开始计算 如图13-7所示,Switch C的f0/2端口从非指定端口改变为根端口,生成树为Switch A→Switch B→Switch C。