任务5避免交换网络环路 【任务描述】 某校园网的主干部分拓扑结构如图51所示。图中每幢楼的汇聚交换机与校园网的核心交换机之间都只有一条链路连接,如果某条单一链路出现故障,如行政办公楼和网络中心之间的链路因校园内基础工程改造施工而被挖断,该楼内的网络则瞬间无法与外界联络,影响校园的日常办公。现要求增加一些保障措施,避免此类事件发生。 图51某校园网的主干部分拓扑结构 【任务分析】 在实际的网络环境中,为了提供可靠的网络连接,减少故障影响的一个重要方法就是“冗余”,需要网络连接提供冗余链路。所谓“冗余链路”,其实和日常走路一样,这条路不通,就走另一条路。冗余就是准备两条或两条以上的通路,当主链路不通时,马上启用备份链路,确保链路连接不中断。网络中的冗余可以起到当网络中出现单点故障时,还有其他备份的组件可以使用,使整个网络通信基本不受影响。 在交换网络中,冗余会使网络的物理拓扑形成环路,物理的环路结构很容易引起广播风暴、多帧复制和MAC地址表抖动等问题,这些问题会导致网络不可用。 在二层网络中配置生成树协议,可以解决环路问题,还可以在提供冗余备份的同时实现负载均衡,从而提高网络的可靠性。 5.1知识储备 5.1.1“冗余链路”的危害 视频讲解 交换机之间具有冗余链路本来是一件很好的事情,但是它有可能引起的问题比它能够解决的问题还要多。假设两台交换机之间有两条互连链路,冗余链路使得交换机之间形成了一个环路,如图52所示,交换机并不知道如何处理环路,只是周而复始地转发帧,形成一个“死循环”。这种交换环路会导致网络中出现广播风暴、MAC地址表抖动和多帧复制等问题,对网络性能产生极为严重的不良影响,甚至导致网络瘫痪。 图52冗余拓扑形成交换环路 1. 广播风暴 在图52中,假设PC1和PC2要通信,由于PC1不知道PC2的MAC地址,因此PC1首先发送一个ARP广播帧,请求PC2的MAC地址。交换机SW1收到此ARP广播请求,根据交换机的工作原理,交换机SW1将向除接收端口之外的所有端口(F0/1和F0/2)“泛洪”这个广播帧,交换机SW2从自己的F0/1和F0/2端口分别收到该ARP广播帧,同样也会泛洪出去,该ARP广播帧又被转发回到SW1,SW1收到后仍然会继续泛洪出去,如此往返,导致该ARP广播帧在两台交换机之间沿着顺时针和逆时针两个方向循环转发,永无休止,环路里逆时针方向的循环转发如图53所示。 图53交换环路里广播帧的循环转发 随着其他设备间的通信增加,网络里的广播帧(如ARP请求、DHCP Discover等)会越来越多,大量的广播帧在交换机之间不停循环,当流入的广播帧过多,导致所有可用带宽都被耗尽时,便形成了广播风暴。此时没有可用带宽转发正常数据流量,网络无法支持数据通信。因此,一旦出现广播风暴,网络可能很快便会瘫痪。 2. MAC地址表抖动 MAC地址表抖动指MAC地址表不稳定。在图52中,假设两台交换机都是刚启动的,交换机的MAC地址表都为空。当交换机SW1收到此PC1发送的ARP广播帧(请求PC2的MAC地址)后,会从除接收端口之外的所有端口(F0/1和F0/2)“泛洪”出去,若交换机SW2从F0/2端口收到该ARP广播帧,SW2便会根据地址学习功能在其MAC地址表中加入PC1的MAC地址和端口(F0/2)等信息; 若交换机SW2从F0/1端口收到该帧,又会将PC1的MAC地址和端口F0/1关联并更新MAC地址表。随着该广播帧在两台交换机之间不停地循环转发,交换机SW2一会儿从F0/2收到该广播帧,一会儿又从F0/1收到同样的帧,造成SW2的MAC地址表中PC1关联的端口在F0/2和F0/1之间不停跳变,不停更新MAC地址表,使得MAC地址表无法稳定。由此可见,MAC地址表的无法稳定,是由于交换机之间存在环路使得相同的帧在不同端口上被重复接收引起的。 这种持续的更新、刷新MAC地址表的过程会严重耗用内存资源,影响该交换机的交换能力,同时降低整个网络的运行效率。严重时,将耗尽整个网络资源,并最终造成网络瘫痪。 3. 多帧复制 冗余拓扑除了带来广播风暴和MAC地址表不稳定外,还会引起多帧复制问题。多帧复制指目的主机收到多个相同的单播帧。 在图52中,假设PC1已知PC2的MAC地址,PC1向PC2发送一个单播帧,交换机SW1收到该帧。若此时SW1的MAC地址表中没有目的主机PC2的MAC地址条目,SW1便会将该帧从其F0/1和F0/2端口“泛洪”出去,则交换机SW2会从其F0/1和F0/2端口分别收到该单播帧。若SW2的MAC地址表中已有PC2的MAC地址条目,SW2会将这两个帧都转发给PC2。这样,PC2就收到两个相同的单播帧,如图54所示。 图54交换环路中多帧复制 PC1仅发送一次单播帧,PC2却收到两次。在工程中,重复帧复制也存在不足,比如在流量统计或计费软件的环境中,都造成不精确计算的问题。 视频讲解 5.1.2生成树协议 通过冗余解决了由于单链路或单交换机故障引起的网络中断,提高了网络的可用性。但当在第二层采用冗余时,物理环路又会带来广播风暴、MAC地址不稳定、多帧复制等问题。根据前面环路危害的分析可知,解决问题的主要途径是切断网络中的环路。 为了解决冗余链路引起的种种问题,IEEE制定了802.1d协议,即生成树协议(SpanningTree Protocol,STP)。生成树协议通过在交换机上运行一套复杂的算法,将交换机的某些冗余端口置于“阻塞”状态(被阻塞的端口不转发数据),使得网络在通信过程中只有一条链路生效,从而使网络形成一个无环路的树状结构以消除环路,确保从源到任意目的地只有一条活动的逻辑链路。虽然逻辑上没有环路,但物理环路仍然存在,所以当活动的逻辑链路出现故障时,生成树协议将会重新计算出网络的最优链路,将处于“阻塞”状态的端口重新打开,不需要人工干预,这样,既保障了网络的正常运转,又保证了冗余能力,从而确保网络连接稳定、可靠。 虽然生成树协议并不像路由协议那样广为人知,但是它却掌管着交换机端口的转发大权,它的作用可形象比喻为“小树枝抖一抖,上层协议就得另谋生路”。 1. 生成树协议概述 生成树协议和其他协议一样,随着网络的不断发展而不断更新换代。在生成树协议的发展过程中,老的缺陷不断被克服,新的特性不断被开发出来。按照功能改进情况,可以把生成树协议的发展过程划分成3代。 第一代: STP(IEEE 802.1d)/RSTP(IEEE 802.1w)。 第二代: PVST/PVST+(思科网络的私有协议)。 第三代: MSTP(IEEE 802.1s)。 生成树协议的基本思想十分简单。众所周知,自然界生长的树是不会出现环路的,如果网络也能够像一棵树一样生长(扩展),就不会出现环路了。于是,生成树协议模拟自然界树的生长规律,从树根到树梢不会形成环路。所以,生成树协议通过定义根交换机、根端口、指定端口、路径开销等概念,目的就在于通过构造一棵自然树的方法,达到阻塞网络中冗余环路的目的,同时实现链路备份和路径最优化。 要实现这些功能,交换机之间必须进行一些信息的交换,在生成树协议中将这些交换的信息称为BPDU(桥接协议数据单元)。BPDU是运行STP功能的交换机之间交换的数据帧,所有支持STP的交换机都会接收并处理BPDU,生成树协议的所有功能都是通过交换机之间周期性地发送的BPDU来实现的。理解BPDU中的各个字段的含义对掌握STP的工作原理至关重要,BPDU包含的字段较多,这里着重介绍网桥ID、端口ID、路径开销和BPDU计时器4个字段。 1) 网桥ID 在STP中,交换机也称网桥或桥。每个网桥都有一个唯一的网桥ID(Bridge ID,BID),用于确定交换环路中的根网桥(根交换机)。网桥ID共8字节,由2字节网桥优先级和6字节网桥MAC地址组成,如图55所示。网桥优先级的取值范围是0~65 535,默认值是32 768。 网桥ID最小的交换机称为根网桥。首先比较网桥优先级,优先级最低的网桥将成为根网桥。如果网桥优先级相同,则比较网桥MAC地址,具有最低MAC地址的交换机将成为根网桥。 2) 端口ID 端口ID参与决定到根网桥的路径。端口ID共2字节,由1字节的端口优先级和1字节的端口编号组成,如图56所示。端口优先级的取值范围是0~255,默认值是128(0x80)。端口编号则是按照端口在交换机上的顺序排列的,例如,0/1端口的ID是0x8001,0/2端口的ID是0x8002。端口优先级值越小,则端口优先级越高。如果端口优先级值相同,则端口编号越小,优先级越高。 图55网桥ID的组成 图56端口ID的组成 3) 路径开销 选出根网桥后,生成树算法要确定其他每台交换机到达根网桥的最短路径。生成树的根路径开销也称为根路径成本,是指到根网桥的某条路径上所有端口开销的累计和。根网桥的路径开销为零,其他交换机收到BPDU报文后,把报文中的根路径开销值(Root Path Cost)加上接收端口的开销值,得到该端口的路径开销,路径开销反映了端口到根网桥的“距离”。路径开销最低的路径是最短路径,会成为活动链路转发数据,而所有其他冗余路径都作为备份链路会被阻塞。 端口开销与端口的带宽有关,带宽越大,开销值越小。STP使用的端口开销值由IEEE定义,IEEE 802.1d标准修订前后端口开销如表51所示。 表51修订前后的IEEE 802.1d端口开销 链 路 带 宽成本(修订前)成本(修订后) 10Gb/s12 1000Mb/s14 100Mb/s1019 10Mb/s100100 4) BPDU计时器 BPDU计时器决定了STP的性能和状态转换,生成树协议定义了3个计时器,这3个计时器的数值虽然可以修改,但一般情况下不建议修改。 (1) Hello Time(呼叫时间)。 Hello Time是交换机之间定期发送BPDU的时间间隔,默认值是2s,取值范围为1~10s。 (2) Forward Delay(转发延迟)。 Forward Delay是交换机从监听状态跳转到学习状态或从学习状态到转发状态的时间间隔,默认值是15s,取值范围为4~30s。 (3) Max Age(最大老化时间)。 Max Age是交换机端口保存BPDU的最长时间。交换机收到BPDU会保存下来,同时启动计时器开始倒计时。正常情况下,交换机之间每隔2s(Hello Time)发送一次BPDU,如果在Max Age内还没有收到新的BPDU,便认为线路出现故障,邻居交换机无法到达,从而开始新的STP计算。Max Age的默认值是20s,取值范围为6~40s。 2. STP端口角色 在STP工作过程中,交换机端口会被自动配置为4种不同的端口角色。 (1) 根端口(Root Port)。 根交换机上没有根端口,根端口是对非根交换机而言的。根端口是交换环路中非根交换机上到达根网桥的路径开销值最小的端口。根端口从根网桥接收BPDU并向下发送,每个非根交换机上只能有一个根端口。根端口可以接收并转发数据。 (2) 指定端口(Designated Port)。 指定端口存在于根网桥和非根交换机上,根网桥上的所有端口都是指定端口,非根交换机上的指定端口用于转发根网桥与非根交换机之间的流量。交换机之间的每一个物理网段只能有一个指定端口。指定端口也可以接收并转发数据。 (3) 非指定端口(Nondesignated Port)。 除根端口和指定端口之外的其余端口都被称为非指定端口,非指定端口处于阻塞状态。此类端口不会转发数据,也不会根据源MAC进行地址学习更新MAC地址表。 (4) 禁用端口(Disabled Port)。 禁用端口是指未开启STP的端口,这种端口不参与STP的计算过程。 3. STP端口状态 由于交换机刚启动时并不清楚整个网络的拓扑情况,如果交换机的端口直接进入转发状态,则可能会形成暂时性的环路。因为这个原因,STP引入了5种端口状态,即禁用(Disabled)、阻塞(Blocking)、监听(Listening)、学习(Learning)和转发(Forwarding)。这些状态与STP的运行过程以及交换机的工作原理有着重要的关系,每种端口状态的功能如表52所示。其中,“√”表示某种状态下具有某种功能,“×”表示某种状态下没有某种功能。 表52STP端口状态的功能 状态 功能 接收BPDU发送BPDU学习MAC地址转发DATA 禁用(Disabled)×××× 阻塞(Blocking)√××× 监听(Listening)√√×× 学习(Learning)√√√× 转发(Forwarding)√√√√ 在这5种端口状态中,禁用因端口未启用STP,不参与STP的计算,其余4种为STP的正常状态。其中,转发和阻塞为稳定状态,根端口和指定端口处于转发状态,非指定端口处于阻塞状态; 监听和学习是不稳定的中间状态,在经过一定时间后会自动跳转到其他状态。端口状态的转换过程如下。 (1) 禁用状态。可以使用no shutdown命令和插入网线进行激活。 (2) 阻塞状态。链路激活,端口转换到阻塞状态,这个状态会停留大约20s,主要用于决定该端口的角色,如果该端口是根端口或指定端口,将转换到下一个状态,即监听状态; 如果该端口是非指定端口,则继续停留在阻塞状态; 本来处在阻塞状态的端口,如果在最大老化时间(默认为20s)内接收不到BPDU,则也会自动转换到监听状态。 (3) 监听状态。除了接收BPDU外,还向邻居交换机发送BPDU,以通知邻居该交换机将参与生成树的拓扑形成。在生成树拓扑形成过程中,该端口最终可能被选定为根端口或指定端口,也可能失去根端口或指定端口的地位,如果失去,则返回到阻塞状态。监听状态会停留大约一个转发延迟时间(默认为15s)。 (4) 学习状态。一个端口在监听状态下经过一段时间后,将自动进入学习状态,开始学习MAC地址。学习状态会停留大约一个转发延迟时间。 (5) 转发状态。端口进入稳定状态,可以转发数据。 端口状态过渡和停留时间如图57所示。 图57端口状态过渡和停留时间 从上述过程可以看出,端口在参与STP的计算过程中,先从阻塞状态开始,中间先后经过监听和学习状态,最后进入转发状态正常转发数据,这个过程需要耗费30~50s时间。这也是实际应用中,将一台计算机插入启动了STP功能的交换机上后,不能马上通信的原因。 4. STP收敛 收敛是生成树的一个重要方面。STP收敛是指网络在一段时间内确定根网桥,以根网桥为参考点计算出所有端口的角色,排除所有潜在的环路,使整个网络达到一个逻辑上没有环路的稳定状态的过程。当网络拓扑发生变化时,执行生成树算法,让网络重新收敛。生成树的收敛经历如下4个过程。 (1) 选举根网桥。 在一个网络中只能存在一个根网桥,网桥ID最小的交换机被选举为根网桥。比较网桥ID时,首先比较网桥优先级,优先级最低的网桥将成为根网桥; 如果网桥优先级相同,则比较MAC地址,具有最低MAC地址的交换机将成为根网桥。 在同一个广播域中的所有交换机参与选举根网桥。交换机开机时,每一台都假定自己就是根网桥,把自己的网桥ID写入BPDU中的根网桥ID,封装BPDU并泛洪出去。每台交换机从邻居交换机收到BPDU后,都会将收到BPDU内的根桥ID与自己目前BPDU的根桥ID进行比较。如果接收BPDU的根桥ID比其目前的根桥ID小,就会用这个更小的值替换正在发送BPDU中的根桥ID字段,同时还修改根开销(Root Path)等参数的值,更新后再向外发送。这样,经过一段时间以后,同一个广播域中的所有交换机都会比较完全部的根桥ID,最后都有一致的根桥ID。由此选举出具有最小桥ID的交换机作为根网桥(根交换机)。 STP选举根网桥拓扑如图58所示,每台交换机的优先级值和MAC地址如图中所示。交换机开机时,都假定自己就是根网桥,然后开始发送BPDU,BPDU中的根桥ID等于自己的桥ID。当SW1与SW2交换过BPDU后,因为SW2的优先级值4096比SW1的优先级值32 768小,因此,SW1向SW3发出的BPDU中的Root BID值修改为SW2的BID; SW3接收到此BPDU后,读取Root BID,发现优先级同为4096,但其MAC地址比Root BID中的MAC地址大,因此SW3也修改BPDU中的Root BID值后再发出。以此类推,这样,经过两个周期左右的BPDU交换后,SW2被选举为根网桥。根网桥上的所有端口均为指定端口,可以接收并转发数据。 图58STP选举根网桥拓扑 (2) 选举非根交换机的根端口。 除根网桥外的所有交换机都成为非根网桥,或称非根交换机。在交换环路中,每台非根交换机都至少有两个端口接收到来自根网桥的BPDU,因此要在这些端口中选择出一个端口作为转发端口,其他端口则不承担转发数据的任务,这个端口就是根端口。 每个非根交换机都需要选出一个根端口,而且仅有一个。非根交换机上根路径开销最小的端口被选举为根端口。 STP选举根端口拓扑如图59所示,假设图中每条链路的带宽均为100M,则交换机的端口开销值为19,SW2是根网桥,SW1、SW3 和SW4为非根交换机。根端口的选举顺序如下。 图59STP选举根端口拓扑 ① 根路径开销最小的端口选举为根端口。图59中,SW4的F0/7和F0/8端口的根路径开销分别为19和57(19+19+19),根路径开销最小的F0/7被选举为根端口,仿此可选举SW1的F0/1为根端口。 ② 根路径开销相同的情况下,比较上游交换机的桥ID。图59中,对于SW3来说,从端口F0/4和F0/6到达根交换机的根路径开销都是38(19+19),此时端口的根路径开销相同,则比较端口对应的上游交换机(发送BPDU的交换机)的桥ID。F0/4端口对应的上游交换机是SW1,F0/6端口对应的上游交换机是SW4,而SW1的桥ID小于SW4的桥ID,因此,SW3的F0/4 被选举成根端口。 ③ 在上游交换机的桥ID相同的情况下,比较上游交换机对应的端口ID。在图510中,SW1是根网桥,SW2是非根交换机。SW2的F0/3和F0/4到达根交换机的根路径开销相同,都是19; 上游交换机的桥ID也相同,都是交换机SW1的桥ID。此时比较上游交换机的端口ID。SW2的F0/3对应的上游交换机端口为SW1的F0/1,其端口ID为128.1(此处假设端口优先级为默认值128); SW2的F0/4对应的上游交换机端口为SW1的F0/2,其端口ID为128.2。SW1的F0/1端口ID更小,所以,SW2的F0/3被选举为根端口。 ④ 在上游交换机端口ID相同的情况下,比较接收交换机自身的端口ID。图511中,SW1是根交换机,SW2为非根交换机,SW1的F0/1端口通过集线器连接着SW2的F0/2和F0/3。SW2的F0/2和F0/3到达根交换机的根路径开销一样,上游交换机的桥ID也一样(都是SW1的桥ID),上游交换机的端口ID也一样(都是交换机SW1的F0/1的端口ID)。接下来比较交换机SW2自身的端口ID。SW2上F0/2端口的ID小于F0/3端口的ID,所以,SW2的F0/2端口被选举为根端口。 图510比较上游交换机的端口ID 图511比较接收交换机的端口ID 综上所述,选举根端口的依据顺序为: 根开销最小、上游交换机ID最小、上游交换机发送端口ID最小、接收端口ID最小。 (3) 选举每个物理链路的指定端口。 在STP中,物理链路指的是交换机之间互连的链路。在物理链路选举指定端口,实际上是选举指定网桥(指定交换机)。每个物理链路都有一个指定交换机,该交换机负责把数据发往根交换机,指定交换机上的端口称为指定端口。选举指定端口的依据顺序为: 根开销最小、交换机ID最小、端口ID最小。 ① 根路径开销最小的被选定为指定网桥。在图59中,SW2是根网桥。在SW2SW1链路中,SW2到根的路径开销为0,SW1到根交换机的路径开销为19,所以SW2是这个链路上的指定交换机,则SW2上的端口F0/3是SW2SW1链路上的指定端口。同理,SW2是SW2SW4链路上的指定交换机,SW2上的端口F0/5是SW2SW4链路上的指定端口。在SW1SW3链路上,SW1、SW3到根交换机的开销分别为19、38(19+19),所以在此链路上,SW1是指定交换机,则SW1上的F0/2端口为SW1SW3链路上的指定端口。同理可选举SW4上端口F0/8为SW4SW3链路上的指定端口。 ② 根路径开销相同的情况下,比较交换机的桥ID。图512中,SW2是根交换机,在SW1SW3链路上,SW1、SW3到根交换机的开销相同,都为19,接下来比较交换机的ID,SW3的桥ID比SW1的桥ID小,则在SW1SW3链路上,SW3是指定交换机,则SW3上的F0/4端口是SW1SW3链路上的指定端口。 图512比较交换机的桥ID 如果指定交换机上有多个端口连接到同一个网段,则具有最小端口ID的端口成为指定端口,这种情况较少出现,此处不再详述。 (4) 阻塞非指定端口。 除根端口和指定端口之外的其余所有端口被称为非指定端口。非指定端口自动被阻塞,不能转发数据。图58中的F0/6端口是非指定端口,被阻塞,这相当于SW4SW3链路被逻辑断开,这条链路只能转发BPDU,不能转发数据。图58所示拓扑最终的无环生成树逻辑拓扑即稳定的生成树逻辑拓扑如图513所示。 图513稳定的生成树逻辑拓扑 STP拓扑稳定后,根交换机通过每隔2s的呼叫时间创建和发送BPDU,非根交换机通过根端口接收BPDU,并且从指定端口转发改变后的BPDU。各交换机通过接收到的BPDU消息,来保持各端口状态的有效,直到拓扑发生变化。这样,通过生成树算法构造了一棵“树”,逻辑上阻断网络中存在的环路,达到冗余链路的同时还实现了链路备份和路径最优化。当主链路出现故障时,阻断的链路马上恢复工作。 5.1.3快速生成树协议 从上面的分析可知,传统的STP( IEEE 802.1d)虽然可以解决网络交换环路问题,但端口从阻塞状态进入转发状态需要经历监听状态和学习状态,即从阻塞状态过渡到转发状态必须经历2倍的转发延迟时间。所以,网络拓扑发生变化时需要经过30~50s的时间才能恢复连通性,这对于现在高可靠性的网络而言,已无法满足用户的需求。 针对传统的STP收敛慢这一弱点,一些网络设备供应商开发了针对性的STP增强协议,而IEEE正是看到了这一广泛的需求,制定了802.1w标准协议。这一协议针对传统的802.1d收敛慢做了改进,它使得以太网的环路收敛在1~10s完成,所以802.1w又被称为快速生成树协议(Rapid Spanning Tree Protocol,RSTP)。RSTP是从传统的STP发展而来的,具备STP的所有功能,但RSTP引入了新的机制,加快了网络收敛速度,提高了网络的可靠性和稳定性。 1. RSTP的改进 相对于STP,RSTP能够快速收敛的原因主要是在以下3方面做了改进。 (1) 新增了两种端口角色。 RSTP端口角色中的根端口和指定端口的确定方法与STP一致,而对阻塞端口可进一步细分为替换端口(Alternate Port)和备份端口(Backup Port)。正常情况下,这两种端口均处于阻塞状态(丢弃状态),接收BPDU但不转发数据。替换端口是根端口的备份,当根端口失效,替换端口立刻转换为根端口,直接进入转发状态; 备份端口是指定端口的备份,若指定端口失效,备份端口立刻转换为指定端口,也直接进入转发状态。 在图514所示的网络环境中,假设SW1的桥ID最小,而SW3的桥ID最大。根据前面的分析可知,SW1被选举为根交换机,F0/3、F0/4被选举为根端口,图中标示为RP,而F0/1、F0/2、F0/6被选举为指定端口,图中标示为DP。在STP中F0/5、F0/7为阻塞端口,而在RSTP中,SW3上的F0/5端口是根端口F0/3的替换端口,图中标示为AP,为当前根端口F0/3到根网桥SW1提供了替代路径; SW2上的F0/7端口是指定端口F0/6的备份端口,图中标示为BP,为到达同网段提供备份路径,是对一个网段的冗余连接。所以当SW3的根端口F0/3断开或SW2的指定端口F0/6断开时,它们的替换端口或备份端口会无延迟进入转发状态,切换过程几乎不影响网络用户的正常通信。 图514STP和RSTP中的端口角色 (2) 引入了边缘端口的概念。 边缘端口(Edge Port)是指连接计算机、打印机等终端设备的交换机端口,这类端口通常不会产生环路,没必要也经过30~50s的时间才进入转发状态。边缘端口无须经过监听、学习等中间状态,可以直接进入转发状态。 (3) 区分了不同的链路类型。 RSTP在点对点类型的链路上使用请求/同意握手机制完成快速收敛。非边缘端口能否快速进入转发状态,取决于该端口所在的链路类型。非边缘端口的链路类型有点对点和共享两种,链路类型是自动确定的,一般全双工链路是点对点类型,半双工链路是共享类型。若是点对点链路,该端口只需要向对端交换机发送一个握手请求报文,如果对端响应了一个同意报文,则该端口可以直接进入转发状态。如果端口所在的链路是共享的,则端口状态切换同STP,需要经过2倍的转发延迟才能进入转发状态。因当前的交换机端口默认情况下都工作在全双工状态,交换机之间的链路都是点对点链路,故端口都可以快速进入转发状态。 2. RSTP的端口状态 STP的端口状态有禁用、阻塞、监听、学习和转发5种,阻塞状态和监听状态在数据帧转发和MAC地址学习上没有区别,都是丢弃数据帧而且不学习MAC地址。RSTP的端口状态只有丢弃、学习和转发3种,后面介绍的MSTP端口状态与RSTP相同。不同生成树协议的端口状态及功能对比如表53所示。 表53STP和RSTP/MSTP端口状态及功能对比 STP端口状态RSTP/MSTP端口状态 RSTP/MSTP端口功能 学习MAC地址转发数据 禁用 阻塞 监听丢弃×× 学习学习√× 转发转发√ 替换端口和备份端口处于丢弃状态,根端口和指定端口稳定状态下处于转发状态,学习状态是根端口和指定端口在进入转发状态之前的一种临时过渡状态。 5.1.4多生成树协议 当前的交换网络往往工作在多VLAN环境下,不管是STP还是RSTP,在进行生成树计算时,都没有考虑多个VLAN的情况,而是所有VLAN共享一棵生成树,因此在交换机的一条Trunk链路上,所有VLAN要么全部处于转发状态,要么全部处于阻塞状态,这就导致链路带宽不能充分利用,无法实现负载负担。多VLAN情况下STP/RSTP的不足如图515所示。 图515多VLAN情况下STP和RSTP的不足 在图515中,假设通过生成树计算,交换机SW2的F0/4端口被阻塞,网络中只有一棵生成树,那么所有VLAN的流量均无法从该端口通过,VLAN 10的用户访问服务器Server的流量路径是SW2SW3SW1SW4Server,VLAN 20的用户访问服务器Server的流量路径是SW3SW1SW4Server,导致所有VLAN的流量均从SW3与SW1之间的链路通过,可能造成该链路发生拥堵,而同时SW2与SW1之间的链路却空闲,无任何流量通过,冗余链路的带宽完全被浪费。 虽然思科的PVST/PVST+是可在每个VLAN中单独运行STP算法的协议,但由于交换机资源的因素,如果在单台交换机上实现几十个VLAN,那么要运行几十个独立的STP算法,显然会对设备的性能和资源提出严峻的挑战,并且由于其是私有的,不同厂家设备的互操作性存在问题。针对以上这些因素,IEEE制定了802.1s的协议,目的是既能够实现同一台交换机内运行不同STP算法的协议,又可以将相同属性的VLAN归纳成组,在一个VLAN组内运行一个STP算法。 MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定义的一种新型多实例化生成树协议,除了具有RSTP的快速收敛机制外,还能实现链路的负载均衡。MSTP将一个或多个VLAN映射到一个实例(Instance)中,同一个交换机上可以有多个实例,每个实例运行一棵单独的生成树,不同的实例可以有不同的生成树计算结果,这样就可以控制各VLAN的数据沿着不同的路径进行转发,实现基于VLAN的数据分流,从而充分利用链路带宽。多VLAN情况下MSTP的负载均衡如图516所示。 图516多VLAN情况下MSTP的负载均衡 在图516中,将VLAN 1~VLAN 10映射到实例1,VLAN 11~VLAN 20映射到实例2,通过配置交换机在不同实例中的优先级,使得SW2成为实例1的根网桥,SW3成为实例2的根网桥。假设实例1中生成树的计算结果是SW3的F0/3端口被阻塞,实例2中生成树的计算结果是SW2的F0/4端口被阻塞,这样,SW3的F0/3端口阻塞实例1中的VLAN数据流通过,但允许实例2中的VLAN数据流通过,SW2的F0/4端口阻塞实例2中的VLAN数据流通过,但允许实例1中的VLAN数据流通过。因此,VLAN 10的用户访问服务器Server的流量路径是SW2SW1SW4Server,VLAN 20的用户访问服务器Server的流量路径是SW3SW1SW4Server,从而实现了负载均衡的效果。由此可见,在MSTP中,同一个端口在不同实例中的端口角色及状态可以不同,如图516中的F0/3 和F0/4端口,既可以阻塞某些实例的流量,同时又允许其他实例的流量通过。MSTP可以实现不同VLAN的数据沿着不同的路径转发,从而实现了基于VLAN的负载均衡。 MSTP可以向下兼容RSTP和STP,但如果网络中存在STP与RSTP/MSTP的混用,交换机会根据“就低”原则,使用STP来计算生成树,从而导致无法发挥RSTP/MSTP的快速收敛功能。所以,网络中尽可能使用MSTP来消除交换环路,这样既能发挥生成树的快速收敛功能,又能实现不同VLAN的负载均衡。 5.1.5配置STP/RSTP/MSTP常用命令 锐捷二层交换机与三层交换机配置生成树命令基本相同,常用的配置命令如表54 所示。 表54STP/RSTP/MSTP常用的配置命令 命 令 模 式CLI命令作用 全局模式 spanningtree打开生成树协议,默认为关闭 no spanningtree关闭生成树协议 spanningtree mode{stp|rstp|mstp}设置生成树协议类型,默认是MSTP spanningtree priority<061440>设置STP/RSTP交换机的优先级。默认是32 768 接口模式 spanningtree portpriority<0240> 设置STP/RSTP端口的优先级。默认是128 spanningtree linktype {pointtopoint|shared}设置生成树的链路类型 spanningtree portfast设置端口为边缘端口 全局模式 spanningtree portfast default设置交换机的所有端口为边缘端口 spanningtree mst configuration进入MSTP配置模式 MSTP模式instance instanceid vlan vlanrange设置VLAN与实例的映射关系 全局模式spanningtree mst instanceid priority<061440>设置交换机在MSTP实例中的优先级 接口模式spanningtree mst instanceid portpriority<0240>设置端口在MSTP实例中的优先级 特权模式 show spanningtree [summary]显示生成树协议的全局信息 show spanningtree interface interfaceid show spanningtree mst instance instanceid显示生成树协议的端口信息 show spanningtree mst configuration显示MSTP配置信息 show spanningtree mst [instanceid]显示MSTP实例信息 5.2任务实施 在STP/RSTP中,所有VLAN共享一棵生成树,无法在VLAN间实现数据流量的负载均衡,链路被阻塞后将不承载任何流量。而当前的交换网络往往都工作在多VLAN环境下,为了保证网络的快速收敛,又能基于VLAN实现流量分担,一般都配置MSTP以消除交换环路并在链路上实现负载均衡。下面以图517所示的网络拓扑介绍MSTP的配置。 图517MSTP的网络拓扑 图517中,每个交换机的优先级、MAC地址及VLAN信息如表55所示。 表55交换机的优先级、MAC地址及VLAN信息 交换机信息VLAN信息 设备优先级值MAC地址VLAN ID端口成员Trunk端口 SW132 76800D0.9748.E3DE VLAN 10F0/1~5 VLAN 20F0/6~10F0/23,F0/24 SW232 76800D0.58C3.872C VLAN 10F0/1~5 VLAN 20F0/6~10F0/22,F0/24 SW332 768000A.F3C2.1A06 VLAN 10F0/1~5 VLAN 20F0/6~10F0/22,F0/24 1. 基础配置 为了防止环路影响操作,MSTP配置成功之前可先断开交换机之间互连的任一根线。 (1) 修改每台交换机的主机名。 依次在全局模式下用hostname命令修改每台交换机的主机名。 switch(config)# hostname SW1//修改第一台交换机的主机名,其他两台类似 (2) 设置PC的IP 地址。 此处假设图517中6台PC都处于192.168.1.0/24网络中,每台PC的IP地址中主机号与图中主机编号相同,如PC1的地址为192.168.1.1/24。配置地址后,使用ping命令测试6台PC间的连通性,验证结果应是互通。 2. 配置VLAN及Trunk 参照任务4,按表55在每台交换机上配置VLAN及Trunk。使用ping测试主机的互通性,VLAN 10 中的PC1、PC3和PC5互通,VLAN 20 中的PC2、PC4和PC6互通,其他不通。 3. 配置MSTP 根据表55可知,三台交换机的优先级由高到低依次为SW3→SW2→SW1,在不基于VLAN进行流量均衡时,默认情况下SW3被推选为根交换机,SW2的F0/22、SW1的F0/24被推选为根端口,SW2的F0/24、SW3的F0/22和F0/24被推选为指定端口,因此,SW1的F0/23就为阻塞端口,VLAN 10和VLAN 20的流量路径都为SW1SW3SW2。而图517中要求每个VLAN的流量路径不同,VLAN 10的流量路径为SW1SW2SW3,VLAN 20的流量路径为SW1SW3SW2。根据不同VLAN的流量路径确定MSTP的配置信息,如表56所示。 表56MSTP配置信息 实例关联VLAN交换机的优先级由高到低的顺序根 交 换 机阻 塞 端 口 实例1VLAN 10SW2→SW1→SW3SW2SW3的F0/24 实例2VLAN 20SW3→SW1→SW2SW3SW2的F0/24 下面以VLAN 10为例分析为什么按表56所示的信息配置实例1。首先分析根交换机的配置,如果SW1配置为根交换机,则SW3必为非根交换机,SW3的F0/24端口为根端口,不可能为阻塞端口; 如果SW3配置为根交换机,则SW3的F0/24端口为指定端口,也不可能成为阻塞端口,所以,只有SW2 被配置为实例1的根交换机。在SW1~SW3的网段上,如果SW3的F0/24是阻塞端口,则SW1的F0/24应是指定端口。在SW1~SW3的网段推选指定端口时,要使得SW1的F0/24成为指定端口,那么交换机SW1的优先级必须高于SW3。所以,对实例1,交换机的优先级由高到低的顺序为SW2→SW1→SW3。 (1) 配置MSTP。 三台交换机上MSTP配置相同,此处只列出SW1上的配置命令,其他的仿此完成。 SW1(config)#spanning-tree //开启生成树协议 SW1(config)# spanning-tree mode mstp //配置生成树协议为MSTP SW1(config)# spanning-tree mst configuration //进入MSTP配置模式 SW1(config-mst)#instance 1 vlan 10 //将VLAN 10映射到实例1 SW1(config-mst)#instance 1 vlan 20 //将VLAN 20映射到实例2 在使用命令建立VLAN与实例之间的映射时,系统会提示“将VLAN映射到实例之前,必须创建VLAN”,所以,要确保交换机上存在相应的VLAN。 实例号的取值范围为0~64,不同的实例通过实例号来区分,默认情况下所有VLAN均与实例0映射,实例0不能被删除。一个实例可以包含一个或多个VLAN,但是一个VLAN只能映射到一个实例中。此例中只考虑VLAN 10和VLAN 20的流量均衡,其他VLAN映射到默认的实例0,实例0的流量沿默认生成树的路径传输。 (2) 配置交换机的优先级实现负载均衡。 根据表56中交换机的优先级高低配置每个交换机在不同实例中的优先级值。交换机的优先级值默认为32 768,值越小优先级越高,且优先级值只能设置为0或4096的倍数。 实例1中交换机的优先级由高到低的顺序为SW2→SW1→SW3。 SW2(config)# spanningtree mst 1 priority 0 //配置SW2在实例1中的优先级,使其成为实例1的根交换机 SW1(config)# spanningtree mst 1 priority 4096 //配置SW1在实例1中的优先级,使其成为实例1的备份根交换机 实例2中交换机的优先级由高到低的顺序为SW3→SW1→SW2。 SW3(config)# spanningtree mst 2 priority 0 //配置SW3在实例2中的优先级,使其成为实例2的根交换机 SW1(config)# spanningtree mst 2 priority 4096 //配置SW1在实例2中的优先级,使其成为实例2的备份根交换机 (3) 验证生成树信息。 ① 在特权模式下使用show spanningtree mst configuration命令查看MSTP配置信息。如: SW1# show spanning-tree mst configuration Multi spanning tree protocol : Enabled Name : Revision : 0 InstanceVlansMapped ---------------- ---- --- ---- ------------------------ 0: 1-9, 11-19, 21-4094 1: 10 2: 20 该命令显示VLAN与实例的映射关系。实例0是默认实例,没有具体指定实例的VLAN均属于实例0。 ② 在特权模式下使用show spanningtree mst命令可以查看MSTP中每个实例的配置信息。下面查看每个交换机上实例1的相关信息。 SW2# show spanning-tree mst 1 //显示实例1的信息 ###### MST 1 vlans mapped : 10 //VLAN与实例1的映射关系 BridgeAddr : 00D0.58C3.872C //SW2交换机的MAC地址 Priority : 0 //SW2交换机在实例1中的优先级值 TimeSinceTopologyChange : 0d:0h:17m:42s TopologyChanges : 10 DesignatedRoot : 1001. 00D0.58C3.872C //根网桥的MAC地址(从第5位开始) RootCost : 0 //根路径开销 RootPort : 0 //根端口号 从SW2的显示信息可以看出,实例1中的根网桥的MAC地址与SW2的MAC地址相同,这说明SW2就是实例1的根网桥。所以,SW2的根路径开销为0,根端口号为0,0表示根交换机上没有根端口。 SW1# show spanning-tree mst 1 //显示实例1的信息 ###### MST 1 vlans mapped : 10 //VLAN与实例1的映射关系 BridgeAddr : 00D0.9748.E3DE //SW1交换机的MAC地址 Priority : 4096 //SW1交换机在实例1中的优先级值 TimeSinceTopologyChange : 0d:0h:18m:24s TopologyChanges : 12 DesignatedRoot : 1001. 00D0.58C3.872C //根网桥的MAC地址(从第5位开始) RootCost : 190000 //根路径开销 RootPort : FastEthernet 0/23 //根端口号 从SW1的显示信息可以看出,实例1中的根网桥的MAC地址与SW1的MAC地址并不相同,这说明SW1不是实例1的根网桥。从上述信息中还可以看出,F0/23端口为根端口,这说明VLAN 10的流量通过SW1的F0/23端口转发出去到达根交换机SW2,再由SW2发送出去,这与规划的流量路径是一致的。 SW3# show spanning-tree mst 1 //显示实例1的信息 ###### MST 1 vlans mapped : 10 //VLAN与实例1的映射关系 BridgeAddr : 000A.F3C2.1A06 //SW3交换机的MAC地址 Priority : 32768 //SW3交换机在实例1中的优先级值 TimeSinceTopologyChange : 0d:0h:19m:47s TopologyChanges : 2 DesignatedRoot : XXXX. 00D0.58C3.872C //根网桥的MAC地址(从第5位开始) RootCost : 200000 //根路径开销 RootPort : FastEthernet 0/22 //根端口号 从SW3的显示信息可以看出,实例1中的根网桥的MAC地址与SW3的MAC地址并不相同,这说明SW3不是实例1的根网桥。从上述信息中还可以看出,F0/22端口为根端口,这说明VLAN 10的流量通过SW3的F0/22端口转发出去到达根交换机SW2,再由SW2发送出去,这也与规划的流量路径是一致的。 ③ 在特权模式下使用show spanningtree summary命令可以查看生成树协议中每个实例的概要及端口信息。每个实例的概要中包含了前两个查看命令显示的相关信息,只是显示格式略有不同; 端口信息包括了端口的角色、状态、开销、优先级、链路类型及是否是边缘端口等特性。由于显示内容比较多,此处不列出。 4. 设置边缘端口,加快网络收敛速度 在3台交换机上将连接主机的端口设置成边缘端口(Edge Port),使得这些端口可以无时延地进入转发状态,避免生成树计算过程中的转发延迟导致用户访问网络中断,而且边缘端口上主机的接入或插拔也不会导致生成树协议重新计算,增加了网络的稳定性。根据表55将每个业务VLAN的成员端口设置为边缘端口。此处只列出SW1上的配置命令,其他交换机的配置命令相似。 SW1(config)#interface range f0/1-10 SW1(config-if-range)#spanning-tree portfast //将端口设置为边缘端口 SW1(config-if-range)#exit 在使用命令spanningtree portfast将端口设置为边缘端口时,系统会提示: “边缘端口只能连接终端主机,若连接交换机等设备会形成环路。” 所有的配置完成后,再次使用show spanningtree summary命令查看生成树协议的全局信息,包括生成树协议中每个实例的摘要及端口信息,此处重点关注端口信息中是否是边缘端口的变化。 SW1#show spanning-tree summary Spanning-tree enabled protocol mstp//生成树协议类型为MSTP //以下显示默认实例0的相关信息 MST 0 vlans map : 1-9,11-19,21-4094 //默认的实例0的相关信息 … //以下显示实例1的相关信息 MST 1 vlans map : 10 //VLAN 10与实例1映射 Region RootPriority0//根桥优先级 Address00D0.58C3.872C //根桥MAC地址 this bridge is region root //这个桥是根桥 BridgeIDPriority4096 //自身桥优先级 Address00D0.9748.E3DE //自身桥MAC地址 InterfaceRoleStsCostPrioTypeOperEdge ---------------- ---- ---- --------- --------- ------------------- Fa0/1Desg FWD190000128P2p True Fa0/6Desg FWD190000128P2pTrue Fa0/23RootFWD19128 P2pFalse Fa0/24DesgFWD19128P2pFalse //以下显示实例2的相关信息 MST 2 vlans map : 20 … 5.3知识扩展 5.3.1STP拓扑变更机制 一个网络中所有交换机的端口都处于阻塞或者转发状态,那这个网络就达到收敛,处于稳定状态。转发状态的端口发送且接收数据和BPDU,阻塞状态的端口仅接收BPDU。 当网络拓扑变更时,交换机必须重新计算STP,端口的状态也会发生改变,这样会中断用户通信,直至计算出一个重新收敛的STP拓扑。网络中的交换机是如何知道网络拓扑发生变化的?发生变化的交换机开始逐级向上游交换机发送TCN(Topology Change Notification)BPDU即拓扑变化通知BPDU,直至根交换机,根交换机收到后再将拓扑变化通知广播到整个网络。 在正常的STP操作中,一个交换机从根端口持续接收根交换机发来的BPDU,它从不向根交换机发送BPDU。当某台交换机发现拓扑变化时,该交换机将生成TCN BPDU(拓扑变化通知BPDU),并每隔呼叫时间从其根端口向上游交换机发送,直至上游交换机发回确认拓扑变化通知(TCA) BPDU为止; 上游交换机接收到TCN BPDU,知道这是一个TCN BPDU,给下游交换机发送TCA BPDU,同时从其自己的根端口向上游交换机发送TCN BPDU。生成树中从发现网络拓扑变化的交换机到根交换机的路径上每个交换机重复这个动作,直到根交换机收到这个TCN BPDU,最后根交换机再向全网内所有交换机广播拓扑变更的通知。 在如图518所示环境中,SW5检测到某个处于转发状态的指定端口所在链路发生了拓扑变化,它将会启动一次收敛过程,图中的编号标识了各类消息发送的顺序。 图518STP拓扑变更 ① SW5检测到拓扑变化,从其根端口向它的上游交换机SW2发送TCN。 ② SW2收到SW5发过来的TCN,SW2使用TCA向SW5确认。 ③ SW2产生TCN,从其根端口发给上游交换机SW1,也就是根交换机。 ④ SW1收到SW2发过来的TCN,SW1使用TCA向SW2确认。 至此完成了拓扑变化通知到根交换机的过程。一旦根交换机知道网络拓扑发生变化,它开始向外广播TC(Topology Change,拓扑变化)比特位被设置的配置BPDU。 ⑤ SW1向外广播TC。 ⑥ 下游交换机SW2、SW3收到SW1广播的TC,转发该BPDU到各自的下游交换机。 最后,所有交换机都知道拓扑发生变化。所有的下游交换机得到拓扑改变的通知后,会把它们的Address Table Aging(地址表老化)计时器从默认值(300s)降为Forward Delay(默认为15s),从而让不活动的MAC地址比正常情况下更快地从地址表更新。所有的交换机将重新决定根交换机、交换机的根端口以及每个物理网段的指定端口,这样生成树的拓扑结构也就重新决定了。 5.3.2边缘端口 由前面的STP工作原理可知,启用STP功能的交换机,一个端口从up到forwarding大约需要50s的时间,而普通的非网管型交换机,端口从up到forwarding瞬间就可以完成。但非网管型交换机之间一旦有环路存在,端口不仅不能瞬间变为forwarding,而且会由于广播风暴变为down,整个网络都会瘫痪。显然,相对于端口能否从up瞬间到forwarding而言,交换机支持STP更重要。 RSTP/MSTP引入的边缘端口可以很好地解决端口从up到forwarding的瞬间转变。边缘端口是指连接计算机、打印机等终端设备的交换机端口,这类端口通常不会产生环路,没必要经过监听、学习等中间状态,可以直接进入转发状态。边缘端口的状态变化(up/down)也不会导致生成树协议重新计算,增加了网络的稳定性。但交换机无法自动识别端口是否直接与终端相连,所以需要人工配置。可在接口模式或全局模式下配置,配置方法如下。 ruijie(config)#interface f0/2 ruijie(config-if)#spanning-tree portfast //将一个端口设置为边缘端口 ruijie(config)# spanning-tree portfast default //将所有端口设置为边缘端口 配置过程中,系统会提示边缘端口只能连接终端主机,若连接集线器、交换机、网桥等设备会形成环路。 5.4实践训练 实训5交换机生成树配置 1. 实训目标 (1) 了解生成树协议的作用。 (2) 熟悉生成树协议的配置。 2. 应用环境 交换机之间具有冗余链路本来是一件很好的事情,但是它有可能引起的问题比它能够解决的问题还要多。如果交换机之间有两条以上的链路,就必然形成了一个环路,交换机并不知道如何处理环路,只是周而复始地转发帧,形成一个“死循环”,这个“死循环”会造成整个网络处于阻塞状态,导致网络瘫痪。配置生成树协议可以避免环路。 3. 实训设备 (1) 二层交换机2台。 (2) PC 2台。 (3) Console线2根。 (4) 直通网线4~8根。 4. 实训拓扑 本实训生成树配置拓扑如图519所示。 图519生成树配置拓扑 5. 实训要求 按照拓扑图连接网络设备时,先将两台交换机都配置快速生成树协议后,再将两台交换机连接起来。如果先连线再配置会造成广播风暴,影响交换机的正常工作。 配置生成树,使得PC1无论何时均可以ping通PC2。PC网络属性信息如表57所示。 表57PC网络属性信息 设备IP地址子 网 掩 码 PC1192.168.1.2255.255.255.0 PC2192.168.1.3255.255.255.0 6. 实训步骤 第1步: 正确连接网线(注意交换机之间只连一根线),恢复出厂设置,重启交换机后,做初始配置。修改设备的系统名称(交换机2的配置与交换机1相似)。 Ruijie(config)#hostname S1 第2步: 确认两台交换机的生成树协议关闭(两台交换机配置相同)。 S1(Config)#no spanning-tree //关闭spanning-tree协议 验证配置: S1#show spanning-tree Global MSTP is disabled 第3步: 通过PC1 ping PC2t命令观察现象。 ① ping通。 ② 两台交换机之间添加一根连线,持续观察PC互相ping的现象。 ③ ping不通(3~5min后)。 ④ 所有连接网线的端口的绿灯频繁地闪烁,表明端口收发数据量很大,已经在交换机内部形成广播风暴。 ⑤ 使用show cpu usage命令观察两台交换机CPU使用率(观察到的值与以下显示的不一定相同)。 S1#show cpu usage Last 5 second CPU IDLE: 96% Last 30 second CPU IDLE: 96% Last 5 minute CPU IDLE: 97% From running CPU IDLE: 97% 第4步: 分别在两台交换机中启用生成树协议(两台交换机配置相同)。 S1(Config)#spanning-tree mode stp //打开spanning-tree协议 STP is starting now, please wait...... STP is enabled successfully. S1(Config)# 分别在两台交换机上验证配置,并根据输出结果划出生成树形态。 S1#show spanning-tree …//使用设备不同,此处显示不相同,省略显示内容 S2#show spanning-tree … 第5步: 理解生成树形成过程中的制约要素。 ① 改变根交换机的连接端口实现生成树拓扑形态的改变。此处可将连接根交换机的两个端口线对调一下,再次使用show spanningtree命令查看生成树,并根据输出结果画出生成树形态。比较两次生成树形态的不同,分析理解生成树的形成过程。 ② 改变根交换机端口的优先级实现生成树拓扑形态的改变。默认情况下,交换机端口的优先级都是128,值越小优先级越高。注意,在端口优先级的修改中,系统支持以16 为基数进行增减。命令如下: S1(config)#interface f0/2 S1(config-if)#spanning-tree mst 0 port-priority 112 //提升端口2的优先级 再次使用show spanningtree命令查看生成树,并根据输出结果画出生成树形态。比较两次生成树形态的不同,分析理解生成树的形成过程。 ③ 改变非交换机的优先级实现生成树拓扑形态的改变。默认情况下,交换机的优先级都是32 768,值越小优先级越高。假设S2是非根交换机,则将交换机2的优先级值升高或降低交换机1的优先级。在设备优先级的修改中,系统支持以4096 为基数进行增减。命令如下: S2(config)#spanning-tree mst 0 priority 4096 //改变交换机优先级 再次使用show spanningtree命令查看生成树,并根据输出结果画出生成树形态。比较两次生成树形态的不同,分析理解生成树的形成过程。 7. 课后实训 参照任务实施完成交换机多生成树配置。 5.5习题 一、 选择题 1. 如果以太网交换机中某个运行STP的端口不接收或转发数据,接收并发送BPDU,不进行地址学习,那么该端口应该处于()状态。 A. 阻塞B. 监听C. 学习 D. 转发E. 等待F. 禁用 2. 如果以太网交换机中某个运行STP的端口接收并转发数据,接收、处理并发送BPDU,进行地址学习,那么该端口应该处于()状态。 A. 阻塞B. 监听C. 学习 D. 转发E. 等待F. 禁用 3. 关于STP说法正确的是()(选择一项或多项)。 A. 网桥 ID值由网桥的优先级和网桥的MAC 地址组合而成。前面是优先级,后面是MAC 地址 B. 以太网交换机的默认优先级值是32 768 C. 优先级值越小优先级越低 D. 优先级相同时,MAC 地址越小优先级越高 E. 网桥ID值大的将被选为根网桥 4. 下列关于STP、RSTP 和MSTP 说法正确的是()(选择一项或多项)。 A. MSTP兼容STP 和RSTP B. STP不能快速收敛,当网络拓扑结构发生变化时,原来阻塞的端口需要等待一段时间才能变为转发状态 C. RSTP是STP的优化版。端口进入转发状态的延迟在某些条件下大大缩短,从而缩短了网络最终达到拓扑稳定所需要的时间 D. MSTP可以弥补STP 和RSTP的缺陷,它既能快速收敛,也能使不同VLAN的流量沿各自的路径转发,从而为冗余链路提供了更好的负载分担机制 5. MSTP的特点有()(选择一项或多项)。 A. MSTP兼容STP 和RSTP B. MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树间彼此独立 C. MSTP将环路网络修剪成为一个无环的树形网络,避免报文在环路网络中的增生和无限循环,同时还可以提供数据转发的冗余路径,在数据转发过程中实现VLAN 数据的负载均衡 D. 以上说法均不正确 二、 简答题 1. 环路给网络带来哪些危害? 2. 生成树的作用是什么? 3. 简述STP的工作过程。