STP协议详解与实例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

[*1*].冗余链路中存在的问题这一部分使用下面这个拓扑来讲解一下链路冗余容易造成的三个问题:如图所示SW1和SW2之间有两条线路相连,它们之间任何一条链路出现故障另外一条线路可以马上顶替出现故障的那条链路,这样可以很好的解决单链路故障引起的网络中断,但在此之前有下面三个问题需要考虑。*广播风暴以太网交换机传送的第二层数据帧不像路由器传送的第三层数据包有TTL(TimeToLive),如果有环路存在第二层帧不能被适当的终止,他们将在交换机之间永无止境的传递下去。结合交换机的工作原理,来看一下上面这张拓扑中广播风暴是如何形成的:1,PC1发出一个广播帧(可能是一个ARP查询),SW1收到这个广播帧,SW1将这个广播帧从除接收端口的其他端口转发出去(即发往fa0/2、fa0/23、fa0/24)。2,SW2从自己的fa0/23和fa0/24都会收到SW1发过来的相同的广播帧,SW2再将这个广播帧从除接收端口外的所有其他接口发送出去(SW2将从fa0/23接收的广播帧发往其他三个端口fa0/24、fa0/1、fa0/2,从fa0/24接收到的也会发往其他三个端口fa0/23、fa0/1、fa0/2)。3,这样这个广播帧又从fa0/23以及fa0/24传回了SW1,SW1再用相同的方法传回SW2,除非物理线路被破坏,否则PC1-4将不停的接收到广播帧,最终造成网络的拥塞甚至瘫痪。*MAC地址表不稳定广播风暴除了会产生大量的流量外,还会造成MAC地址表的不稳定,在广播风暴形成过程中:1,PC1发出的广播帧到达SW1,SW1将根据源MAC进行学习,SW1将PC1的MAC和对应端口fa0/1写入MAC缓存表中。2,SW1将这个广播帧从除接收端口之外的其他端口转发出去,SW2接收到两个来自SW1的广播(从fa0/23和fa0/24),假设fa0/23首先收到这个广播帧,SW2根据源MAC进行学习,将PC1的MAC和接收端口fa0/23存入自己的MAC缓存表,但是这时候又从fa0/24收到了这个广播帧,SW1将PC1的MAC和对应的fa0/24接口存入自己的MAC缓存表。3,SW2分别从自己的这两个接口再将这个广播帧发回给SW1,这样PC1的MAC地址会不停的在两台交换机的fa0/23和fa0/24之间波动,MAC地址缓存表也不断的被刷新,影响交换机的性能。*重复帧拷贝冗余拓扑除了会带来广播风暴以及MAC地址的不稳定,还会造成重复的帧拷贝:1,假设PC1发送一个单播帧给PC3,这个单播帧到达SW1,假设SW1上海没有PC3的MAC地址,根据交换机的原理,对未知单播帧进行泛洪转发,即发往除接收端口外的所有其他端口(fa0/2、fa0/23、fa0/24)。2,SW2分从自己的fa0/23和fa0/24接收到这个单播帧,SW3知道PC3连接在自己的fa0/1接口上,所以SW1将这两个单播帧都转发给PC3。3,PC1只发送了一个单播帧,PC3却收到了两个单播帧,这会给某些网络环境比如流量统计带来不精确计算等问题。[*2*].STP介绍基于冗余链路中存在的这些问题STP被设计出来用来解决这些问题,下面介绍STP的工作原理。*STP算法STP通过拥塞冗余路径上的一些端口,确保到达任何目标地址只有一条逻辑路径,STP借用交换BPDU(BridgeProtocolDataUnit,桥接数据单元)来阻止环路,BPDU中包含BID(BridgeID,桥ID)用来识别是哪台计算机发出的BPDU。在STP运行的情况下,虽然逻辑上没有了环路,但是物理线上还是存在环路的,只是物理线路的一些端口被禁用以阻止环路的发生,如果正在使用的链路出现故障,STP重新计算,部分被禁用的端口重新启用来提供冗余。STP使用STA(SpanningTreeAlgorithm,生成树算法)来决定交换机上的哪些端口被堵塞用来阻止环路的发生,STA选择一台交换机作为根交换机,称作根桥(RootBridge),以该交换机作为参考点计算所有路径。*根交换机选举首先要知道什么是BID(BridgeID,桥ID),因为根交换机的选举是基于BID的,BID由三部分组成:优先级、发送交换机的MAC地址、ExtendedSystemID(扩展系统ID,可选项)如下图所示:BID一共8个字节,其中优先级2个字节,MAC地址6个字节。在不使用ExtendedSystemID的情况下,BID由优先级域和交换机的MAC地址组成,针对每个VLAN,交换机的MAC地址都不一样,交换机的优先级可以是0-65535。在使用ExtendedSystemID的情况下每个VLAN的MAC地址可以相同(在GNS3模拟器中不支持ExtendedSystemID,CiscoPacketTracer5.3支持ExtendedSystemID)。值得一提的是,现在的交换机普遍使用ExtendedSystemID。拥有最小BID的交换机被选举成为根交换机。在同一个广播域中的所有交换机都参与选举根交换机,当一台交换机启动时,它假设自己是根交换机,并默认每隔2秒发送一次“次优BPDU”帧,BPDU帧中的RootID(根交换机的BID)和本机的BID相同。在一个广播域中的交换机互相转发BPDU帧,并且从接收到的BPDU中读取RootID,如果读取到的RootID比本交换机的BID小,交换机更新RootID为这个较小的RootID,然后继续转发修改后的BPDU;如果接收的BPDU中的RootID比本交换机的BID大,那么继续将自己的BID作为RootID向外发送BPDU,直到最后在同一个生成树实例中拥有一致的RootID,这个RootID对应了这个广播域中某台交换机的BID(并且这个BID一定是这个广播域最小的),这台交换机就被选作根交换机。下面用一个实例来演示一下根交换机的选举,在CiscoPacketTracer5.3中搭建下面这样的拓扑:线连接好后等待几十秒钟,它们会自动选举出根交换机,使用下面的命令验证:1/*2*在SW1上查看生成树信息,因为SW1、SW2、SW3上面都没有划分其他的VLAN,3*所以默认只有VLAN0001的生成树信息。4*5*Spanningtreeenabledprotocolieee,6*表示交换机使用的生成树协议是PVST+,这也是思科默认的生成树协议。7*8*RootID后面是VLAN1中根交换机的BID参数,9*Priority32769,表示根交换机的优先级是32769,10*Address是根交换机的MAC地址,11*Thisbridgeistheroot,表示当前这台交换机就是根交换机。12*13*HelloTime2secMaxAge20secForwardDelay15sec14*BPDU发送间隔默认2秒,最大存在时间是20秒,转发延时是15秒。15*16*BridgeID后面的参数是本交换机的BID参数,17*因为SW1就是根交换机,所以这个下面的参数和RootID是一样的,18*其中priority32768sys-id-ext1,表示SW1的优先级是32768,19*ExtendedSystemID是1,所以优先级就是32768+1。20*21*所以SW1的BID=SW1的优先级+SW1的MAC地址=32769+0001.9681.268322*接下来查看SW2和SW3的生成树信息,就会知道为什么SW1可以被选举成根交换机了。23*/24SW1#showspanning-tree25VLAN000126Spanningtreeenabledprotocolieee27RootIDPriority3276928Address0001.9681.268329Thisbridgeistheroot30HelloTime2ecMaxAge20secForwardDelay15sec3132BridgeIDPriority32769(priority32768sys-id-ext1)33Address0001.9681.268334HelloTime2secMaxAge20secForwardDelay15sec35AgingTime203637InterfaceRoleStsCostPrio.NbrType38---------------------------------------------39Fa0/1DesgFWD19128.1P2p40Fa0/2DesgFWD19128.2P2p41Fa0/3DesgFWD19128.3P2p4243/*44*查看SW2的生成树信息,45*46*可以看到SW2的BID中,优先级是32769,和根交换机(SW1)的相同,47*但是SW2的MAC地址是0030.A310.3975,大于SW1的MAC地址,48*因为BID=优先级+MAC地址,49*从这里可以看出SW1的BID要小于SW2的BID,50*所以SW1为根交换机。51*/52SW2#showspanning-tree53VLAN000154Spanningtreeenabledprotocolieee5556/*这里是根交换机,也就是SW1的BID信息*/57RootIDPriority3276958Address0001.9681.268359Cost1960Port2(FastEthernet0/2)61HelloTime2secMaxAge20secForwardDelay15sec6263/*这里是SW2的BID*/64BridgeIDPriority32769(priority32768sys-id-ext1)65Address0030.A310.397566HelloTime2secMaxAge20secForwardDelay15sec67AgingTime2068....6970/*查看SW3的生成树信息,优先级相同,同样是因为MAC地址比SW1大*/71SW3#showspanning-tree72VLAN000173Spanningtreeenabledprotocolieee74RootIDPriority3276975Address0001.9681.268376Cost1977Port1(FastEthernet0/1)78HelloTime2secMaxAge20secForwardDelay15sec7980BridgeIDPriority32769(priority32768sys-id-ext1)81Address00E0.8F76.269C82HelloTime2secMaxAge20secForwardDelay15sec83AgingTime2084....通过这个实例,结合前面说的根交换机选举原理,就能很容易的理解根交换机是如何在一个广播域中被选举出来的了。上面这种情况是默认连线后不做任何修改根交换机的选举情况,可以通过下面的命令将某台交换机的优先级改小,或者设置成动态优先级(即永远比其它交换机的优先级小),这样,这台拥有较小优先级的交换机将成为根交换机。结合上面这个拓扑图(图三),将SW3的优先级改小,从而达到手动指定一台根交换机的目的:1/*首先我随便配置一个优先级*/2SW3(config)#spanning-treevlan1priority100034/*它提示我,只能是4096的倍数,可以是下面的这些值*/5%BridgePrioritymustbeinincrementsof4096.6%Allowedvaluesare:7040968192122881638420480245762867283276836864409604505649152532485734461440910/*11*这里就设置成4096,注意这里针对的是VLAN1,12*不同的VLAN优先级可以不同,13*不同VLAN的STP选举出来的根交换机也可以不同,14*比如SW3现在是VLAN1的根交换机,15*假设还存在一个VLAN2,并且在SW1上使用这条命令

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功