STPSpanningTree Protocol.docx
《STPSpanningTree Protocol.docx》由会员分享,可在线阅读,更多相关《STPSpanningTree Protocol.docx(38页珍藏版)》请在冰豆网上搜索。
![STPSpanningTree Protocol.docx](https://file1.bdocx.com/fileroot1/2022-10/28/33408c50-b7ae-41e8-b85d-e35124a9946e/33408c50-b7ae-41e8-b85d-e35124a9946e1.gif)
STPSpanningTreeProtocol
第12章STP***1
12.1冗余拓扑中存在的问题***1
实验12-1环路的判断3
12.2介绍STP***6
12.2.1STP算法***6
12.2.2BPDU**11
12.2.3端口角色***12
12.2.4端口状态和BPDU时间***13
12.3STP收敛***14
12.3.1生成树的选举***14
实验12-2正确配置STP17
12.3.2STP拓扑变化**18
12.3.3增强的STP功能**20
12.4高级的STP***20
12.4.1PVST+**21
12.4.2RSTP***22
12.5考试重点***25
12.6真题精选***26
12.7真题解答***30
第12章STP***
本章涵盖的CCNA考试重点:
冗余拓扑中存在的问题
根网桥的选举
STP端口角色
STP端口状态、端口功能
生成树的选举过程
STP拓扑的变化
PVST+特性
RSTP的端口角色和端口状态
在分层网络中,管理员不得不通过冗余拓扑来保障网络的高可用性。
然而,网络中额外添加的链路连接着路由器和交换机,会引起流量的环路。
这些链路必须能被动态管理,当一个交换机的连接丢失,另一条链路能快速地取代失败链路并且不会产生新的流量环路。
本章将讲述STP(Spanning-TreeProtocol,生成树协议)如何在交换网络中解决环路问题和一些高级STP的工作方式。
包括下面几个内容:
冗余拓扑中存在的问题、生成树协议、生成树收敛、高级生成树。
12.1冗余拓扑中存在的问题***
在图12-1-1中,PC1和PC3之间可以通过SW1的Fa1/1和SW2的Fa1/2之间的链路连通,可是如果SW1和SW2之间的这条链路中断,将会导致PC1和PC3之间的通信中断。
为了解决单一链路故障引起的网络问题,可以考虑在SW1和SW2之间再新增一条链路,如图12-1-2所示。
图12-1-1单一链路的拓扑
有图12-1-2中,SW1和SW2之间,任何一条链路的失败,将不会导致PC1和PC3之间的通信故障。
冗余链路很好地解决了SW1和SW2之间单链路故障引起的网络中断,但在执行冗余拓扑前,有些问题必须考虑。
图12-1-2有冗余链路的拓扑
1.广播风暴
以太网交换机传送的第二层数据帧不像路由器传送的第三层数据包有TTL(TimeToLive,生命周期),如果有环路存在,第二层的以太网帧不能被适当终止,它们将在交换机和交换机之间永无止境传递下去,造成网络拥塞甚至是瘫痪直到环路被破坏。
前面介绍过交换机的工作原理,交换机收到一个广播帧,为了确保在同一个广播域中的所有设备都能收到这个广播帧,它将向除接收端口以外的所有端口转发这个广播帧,如果有超过一个以上的端口转发这个帧,将造成无止境的环路。
下面来看一个广播风暴是如何形成的,在图12-1-2中:
①,PC1发出一个广播帧。
②,SW1收到这个广播帧,SW1从Fa1/1、Fa1/2、Fa1/5端口向外转发这个广播帧。
③,SW2从Fa1/2端口收到SW1从Fa1/1端口发过来的广播帧,然后SW2从Fa1/1、Fa1/4、Fa1/5端口把广播帧转发出去;SW2从Fa1/1端口收到SW1从Fa1/2端口发过来的广播帧,然后SW2从Fa1/2、Fa1/4、Fa1/5端口把广播帧转发出去。
④,同理SW1也从Fa1/1和Fa1/2端口接收到SW2转发过来的广播帧,然后从除接收端口之外的所有端口转发出去。
⑤,PC1、PC2、PC3、PC4不停地接收到广播帧,根据广播帧的内容丢弃或处理广播帧。
⑥,一个广播帧,在SW1和SW2间不停被转发,永无止境,最终造成网络拥塞或瘫痪,影响网络正常使用。
2.MAC地址表不稳定
广播风暴危害巨大,除了产生大量的流量之外,还会造成交换机的MAC地址表不稳定,在广播风暴的形成过程中:
①,SW1从Fa1/4接收到PC1的广播帧,SW1根据帧的源MAC地址进行学习,记录下PC1的MAC在端口Fa1/4。
SW1把广播帧转发给SW2。
②,假设SW2从Fa1/1口先收到广播帧,SW2记录下PC1的MAC在端口Fa1/1,然后SW2从Fa1/2口也收到这个广播帧,SW2更新PC1的MAC在端口Fa1/2。
SW2把接收到的广播数据帧再转发到SW1。
③,SW1先后从Fa1/2和Fa1/1端口接收SW2转发过来的广播帧,依次更新PC1的MAC地址在端口Fa1/2和Fa1/1。
可真正的PC1在Fa1/4端口。
④,SW1和SW2随着广播帧不停被转发而不停地更换MAC地址表,造成CPU使用率过高,影响交换机的性能。
3.重复帧拷贝
冗余拓扑除了带来广播风暴和MAC地址表不稳定外,还会引起重复帧拷贝问题:
①,假使PC1发出一个单播帧,目标是PC3,SW1收到这个单播帧,可SW1在MAC地址表中没有找到目标PC3的MAC,SW1从除接收端口以外的所有端口把这个单播帧转发出去。
②,SW2从Fa1/1口收到SW1转发过来的单播帧,SW2知道PC3接在Fa1/4端口,SW2把这个单播帧仅从Fa1/4端口转发给PC3,PC3接收到这个单播帧。
③,SW2从Fa1/2口收到SW1转发过来的单播帧,SW2知道PC3接在Fa1/4端口,SW2把这个单播帧只从Fa1/4端口转发给PC3,PC3再次接收到这个单播帧。
PC1仅发送一次单播帧,PC3却收到两次。
在工程中,重复帧拷贝也存在不足,譬如在流量统计或计费软件的环境中,都造成不精确计算的问题。
实验12-1环路的判断
如何判断网络中出现环路了呢?
直接的感觉就是网速很慢;直观的方法就是观察交换机或集线器的指示灯;理性的分析应该是抓取数据包。
这里用前面介绍过的Sniffer软件给大家演示环路判断。
①,构建网络拓扑。
可以在计算机的前面加入一台集线器或不支持STP功能(也就是最便宜)的交换机。
如图12-1-3所示,用一根交叉的双绞线把设备的两个端口直接连接起来。
图12-1-3有环路的拓扑
②,开始捕获包。
在计算机上运行Sniffer,点击“Start”按钮,开始抓包,如图12-1-4所示。
图12-1-4开始抓包
③,制造出一个广播包。
实际网络环境中,不需要制造也会有很多广播包,这里我们在计算机制造出一个广播包。
单击“开始”→“运行”,输入“cmd”后回车,打开DOS窗口。
在DOS窗口中执行“arp-d”删除本机的ARP缓存,然后执行“ping10.0.248.1”,ping本机的网关,因本机的ARP缓存表中没有网关IP对应的MAC地址,计算机会以广播形式发送ARP查询包。
如图12-1-5所示。
可一个应答也没有收到,原因是因为网络已经产生了广播风暴。
图12-1-5计算机发送ARP查询广播包
④,停止捕获包。
此时图12-1-4窗口中的“StopandDisplay”按钮变得可操作,点击该按钮,停止捕获。
如图12-1-6所示。
12-1-6停止捕获包
⑤,显示捕获的包。
停止捕获包后,显示图12-1-7所示的窗口,点击窗口中的“Decode”标签。
图12-1-7选择解码标签
⑥,分析捕获的包。
在打开的解码窗口中,如图12-1-8所示,滚动第一个子窗口中的滚动条,可以显示出捕获的包,可以发现其中有大量的ARP广播包,源地址来自同一个MAC。
在第二个子窗口中可以发现,这是一个“ARPrequest”包,要解析的IP地址是“10.0.248.1”。
图12-1-8解码窗口
⑦,解决环路。
找到并断开网络中的二层冗余路径,或者启用STP协议。
生活中网卡或其他网络接口损坏、环路、人为干扰破坏、黑客工具、病毒传播,都可能引起广播风暴,交换机会把大量的广播帧转发到每个端口上,这会极大地消耗链路带宽和硬件资源。
当出现网络异常时,不妨用Sniffer抓包,然后分析捕获数据包的特征,判断有没有出现二层环路。
下一节讨论将通过使用STP技术来有效地抑制广播风暴,避免网络拥塞。
12.2介绍STP***
通过冗余解决了由于单链路或单交换机故障引起的网络中断,提高了网络的可用性。
当在第二层采用冗余时,又会带来广播风暴、MAC地址不稳定、重复帧拷贝等问题,STP被用来解决上述问题。
12.2.1STP算法***
STP通过阻塞冗余路径上的一些端口,确保到达任何目标地址只有一条逻辑链路。
处于阻塞状态的端口阻止网络流量的进入或离开,这里说的网络流量不包括BPDU(BridgeProtocolDataUnit,桥接数据单元),STP借助交换BPDU来阻止环路。
在STP运行的情况下,虽逻辑上没有环路,但物理路径仍然存在,只是被禁用以阻止环路发生,如果正在使用的链路或交换机出现故障,STP重新计算,部分被阻止的端口被激活用来提供冗余。
STP使用STA(SpanningTreeAlgorithm,生成树算法)决定交换机上的哪些端口被阻塞来阻止环路的发生。
STA选择一台交换机作为根交换机,也称根桥(RootBridge),以该交换机作为参考点计算所有的路径。
图12-2-1中,所有交换机交换BPDU,BPDU中包括BID(BridgeID,桥ID),BID用来识别是哪台交换机发出的BPDU。
有关BPDU将在下一小节讨论。
图12-2-1多交换机间的冗余拓扑
1.根交换机选举
BID一般由三部分组成:
优先级,发送交换机的MAC地址,ExtendedSystemID(扩展的系统ID,可选项),如图12-2-2所示,共8个字节,其中优先级2个字节,MAC地址6个字节。
图12-2-2交换机的BID
在不使用ExtendedSystemID的情况下,BID由优先级域和交换机的MAC地址组成,针对每个VLAN,交换机的MAC地址都不一样,交换机的优先级可以是0~65535。
CCNA模拟机架中的交换机仅支持不使用ExtendedSystemID,譬如CCNA机架中的,交换机SW1中存在两个VLAN,VLAN1和VLAN100,执行“showspanning-treebrief”时,可以发现两个VLAN的BID优先级都是32768,但MAC地址相差1,一个是cc00.0af4.0000,另一个是cc00.0af4.0001,如图12-2-3所示。
如果还存VLAN200,则MAC地址是cc00.0af4.0002。
图12-2-3不使用ExtendedSystemID的生成树
在使用ExtendedSystemID的情况下,每个VLAN的MAC地址可以相同,BID被要求包含VLANID信息,解决的办法是从优先级域的16个bit中拿出低位的12个bit,称为扩展的SystemID,用来唯一标识每个VLAN号,剩下的4个bit用来表示交换机的优先级,这种情况下优先级的取值只有2^4=16个,是4096的倍数。
想一想,为何从优先级中拿出的是12个bit来表示ExtendSystemID呢?
原因是ISL封装中只有10个bit用于VLAN标识,802.1Q封装中有12个bit用于VLAN标识,不管是哪种封装,取12个bit都可以满足。
譬如交换机优先级是4096,交换机的MAC地址是cc00.0af4.0000,交换机在VLAN100中的BID是4196(4096+100=4196)+cc00.0af4.0000。
下面的输出来自思科Catalyst4503,该交换机使用的IOS是“cat4000-i9s-mz.122-25.EWA6.bin”。
4503-2#showspanning-tree
VLAN0001
Spanningtreeenabledprotocol