STP生成树协议实例详解小公猫

这一部分使用下面这个拓扑来讲解一下链路冗余容易造成的三个问题:

如图所示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地址表的不稳定,在广播风暴形成过程中:

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收到了这个广播帧,SW2将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却收到了两个单播帧,这会给某些网络环境比如流量统计带来不精确计算等问题。

基于冗余链路中存在的这些问题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中搭建下面这样的拓扑:

线连接好后等待几十秒钟,它们会自动选举出根交换机,使用下面的命令验证:

通过这个实例,结合前面说的根交换机选举原理,就能很容易的理解根交换机是如何在一个广播域中被选举出来的了。

上面这种情况是默认连线后不做任何修改根交换机的选举情况,可以通过下面的命令将某台交换机的优先级改小,或者设置成动态优先级(即永远比其它交换机的优先级小),这样,这台拥有较小优先级的交换机将成为根交换机。

结合上面这个拓扑图(图三),将SW3的优先级改小,从而达到手动指定一台根交换机的目的:

使用下面的命令可以让交换机自动动态的调整自己的优先级为整个广播域最小,使用这条命令让SW2成为根交换机:

根交换机被选举出来后,计算其他交换机到根交换机的花费,STA考虑两种花费,端口花费和路径花费,路径花费是从根交换机出发到最终交换机前进方向进入的端口花费总和,也就是说在上面的拓扑图图三中,假设SW1是根交换机,想要改变SW3到根交换机SW1的花费,应该在SW3的fa0/1来改变,而不是在SW1的fa0/3端口上改变。

如果一台交换机有多条路径到达根交换机,这台交换机会选择路径花费最小的那条,下面是默认的端口花费参照表:

这个参照表只是端口默认的花费,端口花费是可以手动修改的,因为”CiscoPacketTracer5.3″不支持修改端口花费,修改端口花费的实验使用GNS3来进行,拓扑如下:

图五中SW1被选举成为根交换机,先在SW3上面查看一下默认的生成树信息:

通过下面的命令来修改SW3到根交换机的花费:

前面提到的交换机之间通过转发BPDU来选择根交换机,这里讲BPDU帧的结构简单的介绍一下:

BPDU包含12个字段,如上图所示,部分字段解释如下:

1,根端口(RootPort,RP),每个非根交换机上有且仅有一个根端口,稍后的生成树选举中会详细介绍根端口的选举过程。2,指派端口(DesignatedPort,DP),网络上除根端口外,所有允许转发流量的端口,每个网段都有一个指派端口,根交换机上的端口都是指派端口。3,非指派端口,既不是根端口也不是指派端口,这种端口虽然是激活的但是会被堵塞(Blocking)用来阻止环路。根端口和指派端口都处于转发(Forwarding)状态。4,禁用端口,被管理员使用”shutdown”命令关闭的端口称作禁用端口,禁用端口不参与生成树算法。

下面是STP中的五种端口状态:

1,Down(禁用)状态。可以使用”noshutdown”命令和插入网线来激活。2,Blocking(阻塞)状态。链路激活后转入阻塞状态,这个状态大约停留20秒,主要用来确定该端口的角色。如果判断出该端口是非指派端口,则将保持在这一状态,即阻塞,如果处在阻塞状态的端口接收不到BPDU了,也会转入下一状态。如果判断出是其他端口角色,则转入下一状态。3,Listening(侦听)状态。这个状态大约停留15秒,除了接收BPDU外,还向邻居发送BPDU,通知邻居它将参与激活拓扑。4,Learning(学习)状态。大约停留15秒,开始学习MAC地址。5,Forwarding(转发)状态。端口可以转发数据帧。

STP的收敛就是整个网络达到稳定的状态,选举出了根交换机,并决定出所有端口的角色,排除所有的潜在环路。

下面来看看生成树的选举过程,一共分为四步:

1,选举根交换机

交换机之间通过发送BPDU来选举根交换机,拥有最小BID的交换机将成为根交换机,每个广播域只能有一个根交换机。

2,选举根端口

每个非根交换机有且只有一个根端口,选举根端口依照下面的顺序。

***首先,最低花费的端口将成为根端口;在花费相同的情况下比较发送者的BID,BID小的将成为根端口,请看下面这张拓扑图:

图中SW1被选举成根交换机,交换机之间的链路都是100Mb/s,所以SW2的根端口是SW2的fa0/2接口,SW3的根端口是SW3的fa0/1接口,因为他们从这个接口去根交换机的花费都是19,小于通过SW4去根交换机的花费。那么SW4的根端口是哪个呢?不论从自己的哪个接口去往根交换机(经过SW2或SW3),花费都是一样(38),所以在花费相同的情况下比较发送者的BID,也就是比较SW2和SW3的BID,显然SW2的BID(32768+2222.2222.2222)小于SW3的BID(32768+3333.3333.3333),所以SW4将自己和SW2相连的接口fa0/4选举成为根端口。

***在发送者BID相同的情况下,比较发送者的PID,请看下面这张图:

图中,SW1和SW2通过两条100Mb/s线路相连,SW1拥有较小的BID被选举成为根交换机,这时SW2要选举根端口,首先SW2会寻找最低花费的端口,但是去往SW1的两个端口的花费都是19,然后SW2比较发送者的BID,SW2发现,两个端口都连接的是SW1,发送者(SW1)的BID相同,这个时候,就会比较发送者的PID,也就是端口ID(端口ID等于优先级(默认端口优先级是128)加上端口号),发送者(SW1)端口ID较小的那个端口对应的本地(SW2)上的那个端口,将成为根端口。

我们在SW1上查看生成树信息:

从输出可以看到,SW1上面的fa0/1拥有较小的端口ID,它对应了SW2的fa0/2端口,所以SW2的fa0/2端口被选举成为根端口。

***如果发送者的PID也相同,那么比较接收者的PID,看下面这种情况:

图中,SW1的fa0/1连接在一台集线器上,SW2的fa0/1和fa0/2也连接在这台集线器上,线路均为100Mb/s,假设SW1拥有较小的BID被选举成根交换机,SW2现在要选举根端口,首先根据前面说的,比较花费,SW2从两个端口到根交换机SW1的花费都相同;然后SW2比较发送者BID,发送者(SW1)的BID也相同;SW2再比较发送者PID,发现PID也相同;这个时候,SW2比较接收者,也就是自己的PID,将自己PID最小的那个端口选举成根端口。

可以根据SW2的生成树信息输出判断,fa0/1拥有更小的PID,所以它被选举成为根端口:

到这里,选举根端口的全部可能性都讲解完了。下面讲解指派端口的选举。

3,选举指派端口

每个网段有且只有一个指派端口。其实,每个网段都有一个指派交换机,指派交换机上如果有多个端口,再从多个端口中选举出一个成为指派端口,指派端口的选举依照下面的顺序:

***比较花费

图中,假设SW1被选举成了根交换机,因为每个网段都有一个指派端口,在SW1和SW3相连的线路上,由于SW1本身是根交换机,SW1的fa0/1端口到自己的花费是0,所以SW1的fa0/1接口被选举成指派端口(根交换机上的所有端口都是指派端口);同理在SW1和SW2相连的网段上,SW1的fa0/2也被选举成了指派端口;而在SW2和SW3相连的网段上,由于SW1和SW2之间是1Gb/s链路,SW2去往根交换机的花费(4)要小于SW3去往根交换的花费(19),所以SW2是这个网段上的指派交换机,SW2的fa0/3将成为这个网段的指派端口。再根据前面的根端口的选举可以知道SW2的fa0/2是根端口,SW3的fa0/1是根端口,SW3的fa0/3端口因为不是根端口,也不是指派端口,所以被阻塞。

***花费相同则比较接收者的BID(这次不是发送者了)

图中,SW1是根交换机,在SW2和SW3相连的网段上,SW2和SW3到根交换机的花费相同,这时就需要比较接收者的BID,也就是SW2和SW3的BID,BID小的将成为指派交换机,从图中可以看到SW2的BID小于SW3的BID,所以SW2是指派交换机,SW2的fa0/3端口将成为指派端口。

***接收者的BID也相同则比较接收者的PID

图中,SW1是根交换机,SW2和SW3相连的网段上有一台集线器,SW2有两个端口连接在这台集线器上,这种情况下,根据上面一步比较出了SW2的BID比SW3小,但是SW2上面有多个端口连接在这个网段,这时就要比较这些端口的PID,拥有最小PID的成为指派端口(fa0/3),PID大的剩余端口全部阻塞(fa0/4阻塞),通过在SW2上查看生成树信息验证:

4,阻塞端口

既不是根端口也不是指派端口的端口将被阻塞。

当交换机检测到端口发生了变化时,交换机将通知根交换机拓扑变化情况,根交换机再将这一情况扩散到整个网络,有三种特殊的BPDU用来完成这些工作:TCN(TopologyChangeNotification)BPDU-拓扑改变通知BPDU、TCA(TopologyChangeAcknowledgement)BPDU-拓扑改变确认BPDU、TC(TopologyChange)BPDU,下图演示了这一过程:

图中,左边SW5首先检测到了拓扑变化,它从根端口向SW2发送TCN,SW2使用TCA向SW5确认,然后SW2产生一个TCN从自己的根端口发送给SW1,也就是根交换机,根交换机SW1收到这个TCN后,使用TCA向SW2确认。一旦根交换机知道了这一拓扑变化,它将向外广播发送TC位被设置的BPDU,就是上图右边的情况,最后整个广播域都知道了这一变化。

实验在GNS3中完成。

在上面这张拓扑图中,SW1的fa0/0连接了SW1的fa0/1,SW1的fa0/1连接了SW2的fa0/0,这两条链路被配置成主干,将SW1设置成VTPServer,SW2设置成VTPClient,在SW1上新建VLAN2,让SW1成为VLAN1的根交换机,SW2成为VLAN2的根交换机,这样根据前面的叙述,在VLAN1生成树实例中SW2的fa0/0接口将被阻塞,VLAN1的流量将全部从上面那条线路经过,而在VLAN2生成树实例中SW1的fa0/0将被阻塞,VLAN2的流量将全部从下面这条线路走。

这样就实现了VLAN的负载均衡和冗余备份;线路没有故障前VLAN1的数据从上面的路径走,VLAN2的数据从下面的路径走,当任意一条路径出现故障的时候,STP重新收敛,剩下的那条线路将承担VLAN1和VLAN2的全部流量。

THE END
1.猫咪闹春最快解决方法猫咪闹春最快解决方法牧贝斯宠物 广西 0 打开网易新闻 体验效果更佳反华堡垒,却选出了亲华总统!阿雷瓦洛,到底是什么来头 洞鉴历史 364跟贴 打开APP 服务员和顾客的搞笑对话,笑不活了#又被套路的一天 李布搞笑配音 192跟贴 打开APP 婆婆支持小姑子开店卖房,最后却落的无家可归,真是罪有应得 情感动画社v 3...https://m.163.com/v/video/VAGC2BKS9.html
2.母猫发情了怎么办1. 手动摸屁屁 这个方法需要铲屎官,不停地拍打母猫的尾根或屁屁,会获得暂时的安宁,但是治标不治。 2. 给母猫配种 这是最直接了当的做法,母猫不再会闹猫,主人也获得了安宁。但是不久后,家中就会迎来更多的小生命,主人需要花更多时间去照顾猫咪一家。 3.给母猫喂抑制发情的药片 这类药片对猫身体影响很大,...https://www.isdpp.com/xq-1721.html
3.吉利GX2怎么样吉利汽车吉利GX2怎么样缺点优点口碑【油耗】油耗高的吓人啊1.3开到9升也只有我们公猫能做到了。如果有比赛哪款车谁耗油... 查看全部内容 举报 *上述内容的版权归发帖人和汽车之家所有,未经允许不得使用、转载。 评论(0) 有23人支持该口碑 有33624人看过 cwkchen 购买车型 吉利GX2 2012款 1.3L 手动舒适型 购买地点 长沙 购车经销商 ...https://k.autohome.com.cn/2192
1.Eclipse配置tomcat服务器及tomcat简介eclipsetomactindex因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O’Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)[1]的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。 来源:百度百科...https://blog.csdn.net/weixin_43980049/article/details/90368942
2.公猫非病毒性膀胱炎反复尿闭手动挤尿2个月救下它小jj的心路历程11、Day-70:基本康复:目前主子基本已经康复,尿柱大小正常,尿量正常,但是因为之前膀胱经常肿胀,尚未完全恢复弹性,有时候不主动尿尿,偶尔会手动帮它排尿。 以上大概就是猫猫的治疗历程,稍后发重点发挤尿经验;因为大多数猫友都不敢也不会给主子挤尿,其实回想治疗历程,在家里主子第二次尿闭的时候,如果我们懂得如何挤尿...https://www.douban.com/group/topic/150657806/
3.陪猫咪玩可以缓解发情痛苦吗棉签***可以对发情的公猫用吗(手动捂脸)? 不知道你为什么认为你家的公猫发情了?因为公猫在不遇到发情的母猫,或者闻到气味,听到叫声外,基本不会突然发情。至于什么棉签***什么的建议就不要用了,只要多陪陪它,给点好吃的,过个一两天就安静下来了,前提是你家猫不是散养的。 http://m.boqii.com/article/171468.html
4.《我在柯学世界当五人组幼驯染》柚目有兮晋江文学城一般公猫绝育也就二十分钟。…… 3024 2022-12-24 06:00:00 105 第105 章[VIP] 没想到‘猜猜我是谁’这么快就被识破了,白山和松田一致认为是萩原的声音装得不像。 萩…… 3310 2022-12-25 06:00:00 106 第106 章[VIP] 虽然不相信这种逗小孩的测试题能诊断出什么名堂,但既然萩原发到群...http://www.d7cn.comwww.jjwxc.net/onebook.php?novelid=7452845