第5章链路及设备的冗余管理 在网络拓扑结构中,关键设备之间由于受物理带宽的限制可能会产生通信瓶颈,可以通 过两个设备之间的多条物理链路捆绑在一起形成逻辑链路,增大带宽。 网络设备之间的多点连接,能够形成冗余路径,以保障正常通信,但是这种冗余路径 会在网络中形成环路,造成严重的广播风暴,可以通过生成树协议来避免网络中环路的 产生。 关键网络设备的单点故障,会造成业务中断,可以通过虚拟路由冗余协议(Virtual RouterRedundancyProtocol,VRRP)形成关键设备的热备份。 5.链路聚合 1 1.链路聚合概述 5.1 为了增加交换机或路由器之间设备的链路带宽,通常把两台设备之间的多条物理链路 捆绑在一起形成一个高带宽的逻辑链路,如图5-1所示。这种方式称为链路聚合(Link Aggregation), 又称端口聚集(PortTrunking)、端口捆绑(Bonding)技术。 图5-1 交换机间链路聚合 链路聚合是把网络设备的多个物理端口带宽叠加,使多个低带宽物理端口捆绑成一条 高带宽逻辑链路,同时通过几个端口共同传输数据形成链路的负载均衡,聚合而成的逻辑端 口称为聚合端口(AggregatePort,AP )。 当逻辑链路中的部分物理链路断开时,系统会自动将断开链路的流量分配到逻辑链路 的其他有效物理链路上,但是一条成员链路收到的广播或组播报文,将不会被转发到其他成 员链路上。这种链路聚合的方式既可以通过流量均衡避免链路出现拥塞现象,也可以防止 由于单条链路速率过低而出现延时现象。在不增加更多成本的前提下,既实现了网络的高 速性,又能保证链路的负载分担和冗余性,提供更高的连接可靠性。 在图5-1中,将4条1000Mb/s的千兆以太网链路用链路聚合技术组合成一个逻辑高 速链路,这条逻辑链路在全双工状态下能够达到8000Mb/s的带宽,聚合内部的4条物理链 路共同完成数据的收发,逻辑链路中只要还存在能正常工作的物理链路,整个传输链路就不 会失效。 IEEE802.ad标准定义了如何将两个以上的物理端口组合为高带宽的逻辑链路,以实 3 现负载共享、负载平衡以及提供更好的弹性。 交换机与路由器配置教程 链路聚合具有如下一些优点。 (1)提高链路可用性。 链路聚合中,链路成员之间互相动态备份,当某一成员链路中断时,其他链路能够分担 该成员的流量,切换过程在链路聚合内部快速实现,与其他链路无关。 (2)增加链路带宽。 通过多个物理端口的捆绑,增加了链路的带宽,提高了链路的传输速率,并通过流量负 载平衡,实现流量分担。 (3)易于实现、高性价比 。 3a 只要支持IEEE802.d标准的设备,都可以实现链路聚合,用比较经济的手段,实现高 速带宽的能力。 配置链路聚合功能时,成为聚合端口的成员必须具备以下相同的属性。 (1)端口均为全双工模式。 (2)端口类型必须相同,比如同为以太网口或同为光纤口。 (3)端口同为Aces 端口并且属于同一个VLAN,或者同为Trunk端口,属于不同 NativeVLAN的端口不能构成AP 。 1.流量平衡 5.2 聚合端口可以根据数据帧的源MAC地址、目的MAC地址、源MAC地址+目的MAC 地址、源IP地址、目的IP地址以及源IP地址+目的IP地址等方式把流量平均地分配到各 成员链路中。 源MAC地址流量平衡是根据数据帧的源MAC地址把流量分配到聚合端口的各成员 链路中。不同源MAC地址的流量,转发的成员链路不同,源MAC地址相同的流量,将从 同一个成员链路中转发。 目的MAC地址流量平衡是根据数据帧的目的MAC地址把流量分配到聚合端口的各 成员链路中。相同目的MAC地址的流量,从同一个成员链路转发,不同目的MAC地址的 流量,将从不同的成员链路中转发。 源MAC地址+目的MAC地址流量平衡是根据数据帧的源MAC地址和目的MAC 地址把流量分配到聚合端口的各成员链路中。具有不同的源MAC地址+目的MAC地址 的数据帧可能被分配到同一个聚合端口的成员链路中。 源IP地址或目的IP地址流量平衡是根据数据报的源IP地址或目的IP地址进行流量 分配。不同源IP地址或目的IP地址的流量通过不同的成员链路转发,相同源IP地址或目 的IP地址的流量则通过相同的成员链路转发。这种流量平衡方式用于三层报文的转发,如 果在此流量平衡模式下收到了二层数据帧,则自动根据二层数据帧的源MAC地址或目的 MAC地址进行流量平衡。 源IP地址+目的IP地址流量平衡是根据数据报的源IP地址和目的IP地址进行流量 分配。该流量平衡方式用于三层报文的转发,如果在此流量平衡模式下收到了二层数据帧, 则自动根据二层数据帧的MAC地址进行流量平衡。具有不同的源IP地址+目的IP地址 的报文可能被分配到同一个聚合端口的成员链路中。 第5 章 链路及设备的冗余管理 113 5.1.3 链路聚合配置 1.配置AP注意事项 (1)物理端口默认情况下不属于任何AP。 (2)AP成员端口的端口速率必须一致。 (3)二层端口只能加入二层AP,三层端口只能加入三层AP,即端口与AP属于同一 层次。 (4)AP不能设置端口安全功能。 (5)当把端口加入一个不存在的AP时,该AP将被自动创建。 (6)一个端口加入AP,端口的属性将被AP的属性取代。 (7)一个端口从AP中删除,端口的属性将恢复为其加入AP前的属性。 (8)一个端口加入AP后,不能在该端口上进行任何配置,直到该端口退出AP。 2.配置二层AP 配置二层AP有两种方式。 (1)在全局配置模式下,命令格式为: interface aggregateport n 其中,n为AP号。先用此命令创建一个AP(如果该AP不存在),然后在需要聚合的物理 端口的端口配置模式下用port-group命令把该端口加入到AP中。 (2)直接在接口配置模式下,命令格式为: port-group port-group-number 其中,port-group-number为AP的编号,即n,也称AP号。此命令将该端口加入一个AP (如果该AP不存在,则创建)。 配置举例:用第1种方式把千兆端口gi0/1-2配置成二层AP2成员。 switch_jiaoxue#configure terminal switch_jiaoxue(config)#interface aggregate 2 switch_jiaoxue(config-if)#exit switch_jiaoxue(config)#interface range gi 0/1 - 2 switch_jiaoxue(config-if-range)#port-group 2 switch_jiaoxue(config-if-range)#end 配置举例:用第2种方式把gi0/1-2配置成二层AP2成员,并将AP2配置成Trunk 模式。 switch_jiaoxue#configure terminal switch_jiaoxue(config)#interface range gi 0/1 - 2 switch_jiaoxue(config-if-range)#port-group 2 switch_jiaoxue(config-if-range)#exit switch_jiaoxue(config)#interface aggregateport 2 !进入AP2 端口配置 switch_jiaoxue(config-if)#switchport mode trunk !配置Trunk 端口 switch_jiaoxue(config-if)#end 交换机与路由器配置教程 114 在接口配置模式下使用noport-group命令将一个物理端口退出AP。 3.配置三层AP 默认情况下,一个AP是二层的AP,如果要配置成三层AP,步骤如下。 (1)用interfaceaggregateport命令进入AP端口配置模式。 (2)将该AP端口设置为三层模式。 (3)配置AP端口的IP地址。 (4)进入要配置成AP的物理端口的配置模式。 (5)将该物理端口设置为三层模式。 (6)用port-group命令加入AP。 (7)用noshutdown命令激活该端口。 配置举例:在三层交换机上配置一个三层AP(AP5),将fa0/23、fa0/24加入AP5,并 配置IP 地址192.168.10.1/24。 switch_jiaoxue#configure terminal switch_jiaoxue(config)#interface aggretegateport 5 switch_jiaoxue(config-if)#no switchport switch_jiaoxue(config-if)#ip address 192.168.10.1 255.255.255.0 switch_jiaoxue(config-if)#no shutdown switch_jiaoxue(config-if)#exit switch_jiaoxue(config)#int range fa 0/23 - 24 switch_jiaoxue(config-if-range)#no switchport switch_jiaoxue(config-if-range)#port-group 5 switch_jiaoxue(config-if-range)#no shutdown switch_jiaoxue(config-if-range)#end 4.配置AP的流量平衡 在全局配置模式下,命令格式为: aggregateport load-balance {dst-mac|src-mac|src-dst-mac|dst-ip|src-ip|ip} dst-mac,根据输入流量的目的MAC地址进行流量分配。在AP各链路中,目的MAC 地址相同的流量被送到相同的成员链路,目的MAC地址不同的流量被分配到不同的成员 链路。 src-mac,根据输入流量的源MAC地址进行流量分配。在AP各链路中,源MAC地址 不同的流量分配到不同的成员链路,源MAC地址相同的流量使用相同的成员链路。 src-dst-mac,根据源MAC地址与目的MAC地址进行流量分配。不同源MAC地址+ 目的MAC地址对的流量通过不同的成员链路转发,同一源MAC地址+目的MAC地址对 通过相同的成员链路转发。 dst-ip,根据输入流量的目的IP地址进行流量分配。在AP各链路中,目的IP地址相 同的流量被送到相同的成员链路,目的IP地址不同的流量被分配到不同的成员链路。 src-ip,根据输入流量的源IP地址进行流量分配。在AP各链路中,来自不同IP地址 的流量分配到不同的成员链路,来自相同IP地址的流量使用相同的成员链路。 ip,根据源IP地址与目的IP地址进行流量分配。不同的源IP地址+目的IP地址对的 第5 章 链路及设备的冗余管理 115 流量通过不同的成员链路转发,同一源IP地址+目的IP地址对通过相同的成员链路转发。 将AP的流量平衡设置恢复到默认值,可以在全局配置模式下使用命令: no aggregateport load-balance 5.显示AP配置信息 在特权模式下,命令格式为: show aggregateport {[port-number] summary |load-balance} 其中,port-number为AP号;load-balance显示AP的流量平衡算法;summary显示AP中 的每条链路的摘要信息。 5.2 链路冗余 5.2.1 网络中的冗余链路 主机A 和主机B之间进行通信,如图5-2所示。如果两台交换机由单链路连接,那么 传输介质出现故障将导致主机A、B通信的中断。为了解决单链路故障采取了双链路连接 的方案。如果两条链路同时连到交换机的两个端口而不采取其他措施的话,两台交换机的 四个端口会形成环路,产生广播风暴,影响网络通信。 图5-2 冗余链路 环路产生过程如下。 (1)主机A 向主机B发送信息。 (2)交换机1从端口1收到数据帧。 (3)如果是广播或组播地址,则向除接收端口1之外的所有其他端口转发该数据帧;如 果是单播地址,但是这个地址并不在交换机的MAC地址表中,那么也向除接收端口1之外 的所有其他端口转发(泛洪)。 (4)数据帧将同时从交换机1的23、24端口被转发到交换机2的23、24端口。 (5)交换机2接收到数据帧。 (6)从端口23接收到的数据帧,如果是广播或组播地址,则向除接收端口23之外的所 有其他端口转发该数据帧,该数据帧将被从端口24转发回交换机1;如果是单播地址,但是 这个地址并不在交换机的MAC地址表中,那么也向除接收端口23之外的所有其他端口转 发(泛洪),该数据帧同样将被从端口24转发回交换机1。 交换机与路由器配置教程 (7)从端口24接收到的数据帧,如果是广播或组播地址,则向除接收端口24之外的所 有其他端口转发该数据帧,该数据帧将被从端口23转发回交换机1;如果是单播地址,但是 这个地址并不在交换机的MAC地址表中,那么也向除接收端口24之外的所有其他端口转 发(泛洪),该数据帧同样将被从端口23转发回交换机1。 (8)交换机1从端口23 、24接收到同样数据帧,继续转发处理。 (9)循环转发该数据帧,形成环路。 5.2 生成树协议 2. 生成树协议(Spanning-TreProtocol,STP)通过生成树算法在一个具有冗余链路的网 络中构建一个没有环路的树形逻辑拓扑结构,既提供了链路的冗余连接,增强了网络的可靠 性,又避免了数据在环路上的连续转发,消除了广播风暴。 STP是用来避免链路环路产生广播风暴并提供链路冗余备份的协议。对二层以太网 来说,两个设备间只能有一条激活的通道,否则就会产生广播风暴。但是为了增强网络的可 靠性,建立冗余链路又是必要的,冗余链路中的一些链路处于激活状态,另一些链路处于备 份状态,如果链路发生故障,激活的链路失效时,备份状态的链路必须变为激活状态。 STP能够自动地完成主、备链路的切换并做到:选择并生成局域网的一个最佳树形拓 扑结构、发现故障并进行恢复、自动更新拓扑结构、保证任何时候都选择可能的最佳树形拓 扑结构。 局域网的拓扑结构是根据预先设置的配置参数自动计算的。如果参数配置得当,能够 生成最佳的树形拓扑结构。 链路聚合技术和生成树协议并不冲突,生成树协议会把链路聚合后的链路当作单个逻 辑链路进行生成树的建立,在图5-1中的4条链路聚合后,就产生了一个端口通道Port- Channel,这个端口通道在生成树协议的工作中,是作为单链路进行计算的。 生成树协议是一个广义的概念,它包括STP以及基于STP改进的快速生成树协议 (RapidSpanning-TreProtocol,RSTP )、多生成树协议(MultipleSpanning-TreProtocol, MSTP)等,按照改进的情况,把生成树协议的发展分成三代。 第一代:STP/RSTP 。 第二代:PVST/PVST+ 。 第三代:MSTP 。 其中,第二代生成树协议PVST/PVST+(PerVLANSpanning-Tre)是Cisco提出的 私有协议,它基于每个VLAN生成一个树形逻辑拓扑,保证每个VLAN都不存在环路, PVST不兼容STP/RSTP 。 1.STP 狭义的STP是指IEEE802. 1)BPDU帧 1d标准。 交换机之间通过交换网桥协议数据单元(BridgeProtocolDataUnits,BPDU)帧获得建 立拓扑结构需要的信息,BPDU帧格式如图5-3所示。 很显然,这是一个IEEE802.6B的源地址、 3SAP帧。帧头部分包括6B的目的地址、 2B的帧类型及3B的LLC首部。数据部分是35B的BPDU域(如表5-1所示),以及为了补 第5 章 链路及设备的冗余管理 117 图5-3 BPDU 帧格式 齐64B最小帧采用的8B 填充,在VLAN 环境中,BPDU 帧被封装在IEEE802.1q头部 之后。 表5-1 STPBPDU 域 序号字 段长度含 义 1 ProtocolID 2B 0 2 Version 1B 0 3 BPDUType 1B ConfigurationBPDU 帧是0x00;TCNBPDU 帧是0x80 4 Flags 1B 最低位=TC(TopologyChange,拓扑改变)标志 0,表示拓扑没有改变;1,表示拓扑改变 最高位=TCA(TopologyChangeAcknowledgment,拓扑改变确 认)标志 0,表示非拓扑改变确认帧;1,表示拓扑改变确认帧 中间6位未使用 5 RootBridgeID 8B 本交换机所认为的根交换机的ID 6 RootPathCost 4B 本交换机到根交换机的路径花费 7 BridgeID 8B 发送交换机的ID,由交换机优先级和MAC地址组成 8 PortID 2B 发送BPDU 端口的ID,由端口优先级和端口号组成 9 MessageAge 2B 本报文的已存活时间 10 Max-AgeTime 2B 保存BPDU 的最长时间,默认20s 11 HelloTime 2B 定时发送BPDU 帧的时间间隔,默认2s 12 Forward-DelayTime 2B BPDU 全网传输延迟时长,默认15s BPDU 帧以组播地址01-80-C2-00-00-00为目的地址进行传播。 BPDU 帧有两种类型:ConfigurationBPDU 和TCNBPDU。 配置BPDU(ConfigurationBPDU)帧由根交换机从指定端口周期性地发送,包括Root BridgeID、BridgeID、RootPathCost等参数,非根交换机从根端口收到帧后修改自身参数 并转发。 拓扑变更通知(TopologyChangeNotification,TCN),交换机检测到拓扑变更后,向根 交换机的方向发送TCNBPDU 帧,通知拓扑发生变更。 2)STP工作原理 STP的基本思想是在交换机之间传递ConfigurationBPDU 帧,比较其中的参数,使每 个端口保存着最佳BPDU 帧。当交换机初始启动STP 时,所有端口每隔2s发送一次 BPDU,当交换机的一个端口收到高优先级的BPDU(更小的BridgeID,更小的RootPath 交换机与路由器配置教程 Cost等)时,在该端口保存这些信息,同时向其他端口更新并传播这些信息。如果收到比自 己低优先级的BPDU,交换机就丢弃该信息。这样的机制确保高优先级的信息能够在整个 网络中传播,从而根据STP 算法阻塞存在的冗余链路,建立一个无循环的逻辑树形拓扑结 构。工作步骤如下。 (1)选举一台交换机为根交换机(RootBridge,RB), 选举原则如下。 ① 所有交换机首先认为自己是RB,互相发送ConfiurationBPDU 帧。 ② 选举BridgeID 最小的交换机为RB,BridgeID= g 交换机优先级+Mac地址(默认优 先级为32768 )。 ③ 每个网络中只能有一个RB 。 ④ 其他交换机均为非根交换机。 (2)选举根端口(RootPort,RP), 选举原则如下 。 ①RP 处于非根交换机上 。 ② 每个非根交换机上有且只能有一个RP 。 ③RP 是非根交换机距离RB 最近的端口,即到RB 路径开销最小的端口 。 ④ 非根交换机通过RP 接收BPDU 。 (3)确定指定端口(DesignatedPort,DP), 原则如下 。 ①RP 不参与竞争DP 。 ② 根交换机上的端口都是DP 。 ③ 每个网段(冲突域)都会选择一个路径开销最小的端口连接到RB,该端口为DP 。 (4)路径开销计算。 路径开销如表5-2所示,速度越快,开销越小,相同速率的聚合端口,成员越多,开销 越小。 表5- 2 路径开销表 带宽IEEE802.1d IEEE802.1t 10Mb/s 100 2000000 100Mb/s 19 200000 1000Mb/s 4 20000 10Gb/s 2 2000 如路径开销相同,依次比较Sender..sBridgeID 、Sender..sPortID 、本交换机的PortID, 选取高优先级(数值更小)的端口。 PortID 由端口优先级和端口号组成(默认端口优先级为128 )。 (5)RP 和DP 进入Forwarding状态。 (6)其他端口设为Blocking状态。 3)端口的角色和状态 STP 从启动到稳定运行过程中,交换机端口经历了不同的状态和角色,每个端口都在 网络中扮演一个角色,用来体现在网络拓扑中的不同作用。 (1)RP,提供最短路径到根交换机的端口。 第5 章 链路及设备的冗余管理 119 (2)DP,每个LAN 通过该端口连接到根交换机。 每个端口有五种状态(PortState)表示是否转发数据包,通过这五种状态控制整个生成 树拓扑结构。 (1)Disabled状态禁用端口。 (2)Blocking状态阻塞端口,也是端口启用的初始状态,此状态接收BPDU、不学习源 MAC地址、不转发数据帧。 (3)Listening状态接收和发送BPDU、不转发数据帧、不学习源MAC地址,但交换机 向其他交换机通告该端口,参与选举根端口或指定端口。 (4)Learning状态接收和发送BPDU、不转发数据帧、学习源MAC地址。 (5)Forwarding状态接收和发送BPDU、正常转发数据帧、学习源MAC地址。 4)网络拓扑变更 BPDU 是由根交换机发送的,当网络拓扑结构发生变更,出现以下几种情况时,交换机 发送TCNBPDU。 (1)处于转发状态或监听状态的端口,变为阻塞状态。 (2)处于未启用状态的端口进入转发状态,并且交换机上有其他的转发端口。 (3)交换机从指定端口接收到TCNBPDU。 (4)端口Up或Down状态的转换导致交换机发TCNBPDU。 (5)TCNBPDU 发送到根交换机。 TCNBPDU 发送过程如下。 (1)当网络拓扑发生变化时,交换机会从自己的根端口向外发送TCNBPDU。 (2)接收到TCNBPDU 的交换机向发送者发送TCA 报文,表示对接收TCN 的确认。 (3)根交换机接收到TCNBPDU 后向网络中其他交换机发送TCBPDU,表示拓扑发 生变化。 (4)收到TCBPDU 的交换机将MAC地址表老化时间设为15s(默认是300s)。 5)STP定时器 STP有3个定时器,分别如下。 (1)HelloTime,根交换机发送BPDU 报文的时间间隔就是HelloTime,默认是2s。 (2)Max-Age,如果交换机发现某个根端口一段时间都没有收到BPDU 则认为网络中 拓扑发生变化,则向根交换机发送TCNBPDU,这段时间就是最大生存时间,默认为20s。 (3)Forward-DelayTime,转发延迟时间,是端口停留在监听状态和学习状态的时间, 默认为15s。 从图5-4中可以看出,STP的计时器作用在不同的阶段后,导致交换机的端口收敛速度 变慢。 6)STP收敛过程分析 分析如图5-5所示拓扑,说明STP如何把具有环路的网络拓扑生成一个树形结构。 收敛过程分析如下。 (1)选举根交换机。 比较四个交换机的BridgeID,四个交换机的优先级都是32768,优先级相等,再比较交 换机的MAC地址,Switch1的MAC地址最小,所以Switch1的BridgeID最小,根交换机 交换机与路由器配置教程 图5-4 计时器的作用点 图5-5 网络拓扑 是Switch1,Switch2 、Switch3 和Switch4 是非根交换机。 (2)选举根端口。 根端口在非根交换机上,所以考虑Switch2 、Switch3 、Switch4 。 Swith2 端口到根交换机的路径开销:fa0/3是直连,otPtot19,a0/1通过 cRoahCs=fSwith3 连接根交换机,RotPtot19+19,a0/3是Swith2 的根端口。 coahCs=fc Swith3 端口到根交换机的路径开销:a0/2是直连,otPtot19,a0/1通过 cfRoahCs=fSwith4 连接根交换机,oahCs=fth2 连接根交换机,o cRotPtot19+19,a0/3通过SwicRot PathCost=19+19,所以fa0/2是Switch3 的根端口。 Swith4 端口到根交换机的路径开销:fa0/1是直连,otPtot19,a0/3通过 cRoahCs=fSwitch3 连接根交换机,RootPathCost=19+19,所以fa0/1是Switch4 的根端口。 (3)选举指定端口。 在Switch1 到Switch2 的网段上:Switch1 的fa0/3是根交换机本身端口,路径开销 是0,Switch2 的fa0/3到根交换机的路径开销是19,所以Switch1 到Switch2 的物理网 段上,Switch1 的fa0/3是指定端口(根交换机的端口都是DP); 在Switch1 到Switch3 的网段上:Switch1 的fa0/2是根交换机本身端口,路径开销 是0,Switch3 的fa0/2到根交换机的路径开销是19,所以Switch1 到Switch3 的物理网 段上,Switch1 的fa0/3是指定端口。