H3CNE--12.生成树协议
生成树协议技术背景如下图可以理解为是一个网状结构的网络可靠性很高挂了一根线另一根可以正常用但是会产生环路给每台交换机添加两台PC分别命名为A,B,C,D此时如果两台交换机刚刚开机A要和C通信此时SW1不认识C那么收到A的包后会广播发包从三口发出去但是根据交换机的工作原理收到一个广播包会直接进行广播那么在SW2上会再次广播此时不仅C收到了右侧的4口也收到了于是又发回SW1然后SW1 收到了再次广播依次循环这个包会在两个交换机来回转发消耗交换机的资源这就是广播风暴在交换机的学习中这个包的目的是C当广播从3出去C回一个包此时交换机学习C在3号口但是等下一次从4口传入的时候又会更新表因为交换机不支持一个mac对应多个端口于是这个C的MAC地址在地址表中反复跳来跳去叫做“MAC震荡”如果断掉一根线确实可以实现解决上述的两个问题但是就不能支持原本的目的——网络备份所以就需要一个东西解决这个问题那就是生成树协议生成树定义STPSpanning Tree Protocol生成树协议是用于在局域网中消除数据链路层物理环路的协议。通过在桥之间交换BPDUBridge Protocol Data Unit桥协议数据单元来保证设备完成生成树的计算通过它会把某个端口阻塞起来保证只有一条物理链路来传输数据阻塞并非将端口断掉只是一般数据不从阻塞口走当不阻塞的线路出故障或者断掉那么就会停止阻塞走原阻塞端口来实现网络中的网络备份STP相关概念BPDU在BPDU之前补充一下生成树协议是阻塞一个端口实现网络内无环路但是端口的选择肯定不是随机选择的是有选举机制和选举规则一般会选一个较差的端口定义桥协议数据单元用于传递STP协议相关报文分类配置BPDU用于传递STP的配置信息TCN BPDU用于通告拓扑变更信息配置BPDU他的存在类似于自我介绍每个交换机会将自己的链路情况和接口情况比如速率啊会通知给其他交换机他是一个数据帧用于传达自己的选举信息TCN BPDU用来告诉生成树协议网络拓扑的变更比如多了一条新的百兆口的链路生成树协议可能会重新选举挑选出被阻塞的端口STP的选举机制在所有交换机中选举出一台作为根网桥Root bridge)每台非根网桥交换机选举出一个根端口Root port每个物理段上选举出一个指定端口Designated port)剩下没有角色的端口就是阻塞端口Blocked Port选出根网桥选举规则桥IDbridge id 简称BID小的优先Bridge id的组成桥的优先级这个桥的MAC地址优先级默认32768必须是4096的倍数可以手动改假设有如下拓扑数字是桥优先级字母假设是MAC地址根据选举桥ID小的优先那么可以排除SW3再看MAC地址AC所以就是SW1会被选举为根网桥选出根端口非根网桥即不是根网桥的设备对应刚刚拓扑结构中的SW2和SW3选举规则到达根网桥开销小的有限对端交换机BID小的优先端口ID小的优先开销 cost代表路径耗费的代价和成本带宽越大开销越小比如还是如下拓扑在前面已经将A选举为根网桥那么根端口从B和C两台交换机中选择在B上很明显看出g0/1口比g0/2口到跟网桥的开销更小在C上则是g0/2的开销更小那么B的g0/1和C的g0/2就是被选举的根端口但是又有一种情况假设在同一交换机上两个端口到根网桥的开销相同的情况在原有拓扑下新增一台交换机则SW4到根网桥的两个端口开销一致此时开销就不足够比对了需要用到选举规则的第二条对端交换机BID小的优先根据选举规则那么应该选择g0/1端口为根端口至于第三种选举规则存在即合理确实有存在开销一致BID相同的情况比如在刚刚的交换机下方再加一台交换机用两根线相连此时针对SW5来讲两个端口的开销一致BID相同那么此时只能选择端口号小的端口为根端口所以SW5交换机的根端口就是g0/1一台交换机不可能有两个相同所以依次的排序选择就可以做到选出根端口选出指定端口就是在每个物理段上选举出一个指定端口每个物理段可以理解为每根网线上选出一个指定口选举规则和根端口选举规则类似他是根据线来选择端口根据选举规则看下面的拓扑图对交换机A来看指定端口就是g0/1和g0/2针对B和C之间的线来讲两侧开销一致比较BID很明显左侧的BID较小所以指定的口就是B的g0/2口交换机sw2和sw4的连线选择的端口就是sw2的g0/3同理sw3和sw4之间的线指定端口就是sw3的g0/3口那么四和五之间的线端口就都是sw4的两个接口所有指定口就是如下画框的内容那么剩下的没有杯选择成根端口和指定端口的端口就会设定为阻塞口那么根据刚刚的选择来看被阻塞的端口极速sw3的g0/1口sw4的g0/2口sw5的g/2口STP初始化流程主要是看交换机端口状态的变化交换机会有五个状态disable一般来说当端口被shutdown或者断开连接了就是这个状态没什么好说的后面三个是重点blocking交换机在刚刚开机的那一瞬间时候所有交换机会处于blocking状态无法转发此时可以接受BPDU但不发送BPDU不学习MAC地址不转发数据这个状态相当于是在说他能听别人在说什么自我介绍但是他自己不自我介绍类似于在监听一样监听的原因是阻塞端口总会要打开的当他收到要他打开的信息他就会打开所以需要监听listening但是刚刚的阻塞状态只会维持一瞬间之后后全部变成listening状态也就是监听状态接收并发送BPDU不学习MAC地址不转发数据持续15s这个状态其实就是在完成前面的STP选举的时候的状态选出跟网桥选出根端口选出指定端口都是在listening状态下进行这里的15s是雷打不动的固定15s无论是在15s之前选完也要用15s如果选举超时到了15s还是没选举出来依旧进入下一步但是这个时间可以改但是一般不改learning接收并发送BPDU,学习MAC地址不转发数据持续15s这里学习MAC地址其实用不了15s这里依旧留了15s是为了给前面没有选举出来的情况继续选举forwarding接收并发送BPDU学习MAC地址转发数据结束了learning状态的15s后就进入到最终的转发状态STP计时器Helo time之所以在选举结束后依旧需要每隔两秒发送一个BPDU是因为确认这条线路是否还活着确定网络是否挂掉的方式是看对方是否每隔2秒给自己发送BPDUmax age叫做最大生存时间如果连续10个周期都没收到对方发来的消息就说明该条线路挂掉了那么生成树就会重新选举根端口fowrading delay他指的是发现故障后将阻塞端口切换到正常转发的状态所需要的最大时间问题一所以当一个线路坏了最大需要的时间就是max age的20s加上选举的30s最久情况就是需要等待50s才能正常运行如果一开始就知道是挂在哪里那么只需要选举就行那么要的最短时间就是30s所以这也是生成树的一大缺点变更时间过长STP的另一问题上图中四台交换机练成一个环路选定阻塞口味sw4的2口那么如果A要给B通信就会是A——SW1——SW2——SW4——B这大概就是正常流程但是当SW2和SW4之间的线断掉了那么就会30-50s内选举结束然后开放SW4的2号口但是这一切的变更最多是50s此时A发送一个包给B底下链路的变更SW1是不清楚的所以他收到这个包之后依旧会发送给SW2但是这条路已经不通了因为变更只花了最多50s但是MAC地址的更新时间是300S也就是如果B300S都没发送来信息SW1才会更新MAC地址表这就回到300s内A发出的消息B收不到除非此时B主动找ASW1才会发现变更才会更新MAC地址表STP拓扑变更机制刚刚上述的问题的解决方式就是STP衍生出的STP拓扑变更机制MAX age超时/有接口变更为转发状态判断为拓扑发生变更向跟网桥发起TCN BPDU用于告知拓扑结构变化的包收到TCN BPDU的交换机继续向跟网桥转发TCN BPDU到达跟网桥位置跟网桥收到TCN BPDU后向所有端口发起TC置位的配置BPDU交换机收到TC置位配置BPDU后MAC地址表的老化时间缩短到15sBPDU只有根网桥可以发其他交换机只能转发所以发现问题的交换机需要向上传递TCN BPDU到根网桥只有根网桥可以做决策跟网桥收到后会发出一个置位BPDU也就是每2秒发送的那个BPDU包中会有一个TC控制位跟网桥收到出问题的TCN BPDU后就会发送一个配置BPDU并把包中的TC控制位设置为1是为了告诉其他相连交换机的老化时间设置为15s把问题解决STP的问题前面提过的变更时间太长了刚刚用TCN BPDU来解决慢的问题但是又衍生了一个新问题如果一个交换机连接一个PC如下图如果PCB关机了那么SW4的g0/3口会认为是有拓扑变更就会开始发TCN BPDU如果这个台电脑经常开机关机就会导致网络中TCN BPDU和TC置位BPDU大量发送但是在实际工作用已经几乎不用生成树协议了因为太过时了就算要用也会用RSTP和MSTPRSTP在NE中不做重点要求只做理解RSTP叫做快速生成树协议端口状态减少到三种端口角色增加到四种端口和指定端口不变边缘端口机制当链路激活边缘端口立即进入转发状态不参与STP计算边缘端口UP/DOWN不会触发拓扑变更建议把链接PC的端口配置为边缘端口这里选择的备份就是在选择根端口和指定端口的时候同时选择出来备份端口如果挂了就直接切换备用的用于加快更新速度因为在原本STP情况下如果根端口或者指定端口挂了需要话费30s来重新选举但是RSTP提前选择好了备份主端口挂了就用备份的他的边缘端口机制也解决了前面提到的PC频繁上下线导致TCN BPDU和置位BPDU在网络内到处都是的情况MST中文叫多生成树协议同时解决了STP和RSTP的问题——资源浪费因为如果阻塞端口那么被阻塞的设备就被浪费了也就是将流量和指定VLAN 范围绑定每一段的VLAN 是走某一条资源另外一段走另外一条资源实现资源的不浪费实验实验部分可以参考邓方鸣老师的STP实验文档
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425706.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!