STP 生成树原理
【STP的介绍】
STP的全称是spanning-tree protocol。STP协议是一个二层的链路管理协议,它在提供链路冗余的同时防止网络产生环路。STP协议(Spanning tree protocol)的本质就是实如今交换网络中链路的备份和负载的分担.STP是生成树协议,主要功能是从拓扑中清除第2层环路。
【BPUD与生成树原理分析】
一。BPDU里有什么?
二。每一个字段作什么用?
协议ID和版本号:目前都是0,表示的是这是个STP协议。
BPDU类型:表示的是配置BPDU仍是TCN的BPDU。
标志域:第一位和最后一位有用到,用来表示这是一个拓扑变动帧,仍是拓扑变动确认帧。
根网桥ID:
路径成本:4个字节,计算到根桥的路径成本。
桥ID:8个字节。由2个字节优先级和6个字节MAC地址构成。2个字节里前4bits表示优先级,后12bits表示扩展位(vlan数)。默认优先级是32768,最大是65535。
端口ID:由优先级加端口出厂编号构成,优先级能够修改,可是通常不推荐修改。
消息老化时间:
消息寿命:消息最多存活时间。
hello时间:默认是两秒,能够修改。
转发延迟:默认是15秒,能够修改。
实例图分析:
实验环境:在宿舍用wireshark抓的包。
先看1的部分:看到目的MAC地址是01:80:c2:00:00:00,这是个组播地址。
再看2的STP部分:
协议标识和版本都是0.
类型:是配置BPDU。
根标识:这里优先级是0。(不是很清楚,或许是被改过了)
路径开销是:220020 (这个是累加的)
桥ID:优先级32768。
端口标识:0x800e
消息老化时间:3
hello 时间是2s。
转发延迟是15s。
三。BPDU里的字段怎么用? (生成树的原理)
浩哥说:“咱们只看BPDU”。
如今就看看怎么用BPDU来解释STP原理。
首先看几个术语:
根桥:具有最小桥ID的交换机。
根路径开销:一台交换机的根路径开销是根端口的路径开销与数据包通过的全部交换机的根路径开销之和。根桥的根路径开销是零。
根端口:每台交换机都有一个根端口,这个端口到根桥的路径开销最低。一旦多个端口具备相同的到根桥的路径开销时,那么具备最低的端口ID的才会成为根端口。
指定端口:为每一个交换LAN网段选定的转发端口。
如今正式开始:
用一个拓扑图来讲明:(这是NA时聪哥引觉得豪的拓扑)
假设:他们的优先级默认都同样,都是32768.
带宽都同样,是
100M
的。
1.根桥的选举:
在交换机开机后,每一个接口都会发送出BPDU信息,将本身的桥ID填入根网桥ID字段,而后进行协商。发现别人的桥ID比本身大,就把根网桥换成别人的,如此迭代到根网桥选出为止。这里协商后根网桥为:sw1。由于他的mac地址最小。(二层取小,三层取大原则)。
总结:一个VLAN里只有一个根网桥。
2.根端口的选举:
根网桥选举后,只有根网桥会发送BPDU信息,其它交换机不会发送,可是会转发BPDU信息。首先从接受到的BPDU中查看cost of path字段,将本身到链路的开销加上里面的BPDU的值,造成新的cost of path值传出去。例如:sw2和sw3,sw2从1口看到BPDU中cost of
path的值是0,由于是根桥发来的,因为本身知道本身的接口是
100M
的,因此将19加上0等于19,填入那个字段。同理sw3的1口也同样。这时候sw2和sw3分别各从1口收到的BPDU的开销值都是19.如今来分析sw2上2口的链路开销值。2口的cost of path的值为19加上sw3的19,便是38.同理分析sw2和sw3的其它接口,因此sw2和sw3选择1口做为根端口。
若是开销值同样,就比较发送BPDU的桥ID。例如:sw4的端口1和2,因为到根网桥的链路开销同样,因此如今比较发送BPDU的桥ID,从1口接受到发送的桥ID比较小,因此1是根端口。
若是开销值和发送BPDU的桥ID都同样,那就比较发送BPDU端口ID字段。例如sw5中1和2端口,因为BPDU是sw4发送过来的,因此看sw4的端口号,3比4小,因此和3相连的sw5端口2是根端口(注意这里不是端口1,由于要看发送BPDU的端口号)。
总结:一个交换机只有一个根端口。
3.指定端口的选举。
1)根桥上的端口都是指定端口。(根桥要向外发BPDU和数据,因此必定端口必定都是指定端口)
2)根端口对应的都是指定端口。
3)其余的选择跟选根端口的原则基本同样。可是第二步,开销值同样时,选择桥ID的时候不同。
这里的桥ID是本交换机的桥ID。其实指的也是发送BPDU的桥ID。
例如:sw2和sw3的2端口,由于选择的指定端口是用来转发BPDU的,因此比较后,sw2的桥ID比较低,成为指定端口。
总结:一个网段上,只有一个指定端口。
4.非指定端口。
除了上述说的,剩下的端口就是非指定端口,也就是要被阻塞掉的端口。
【小小总结】
STP防止环路的机制是将某些端口阻塞掉,。选根端口,就是选路径,选指定端口就是决定要在网段上要将两个口的哪一个口给阻塞掉,从而达到目的。
关于STP的目的是防环路仍是为了冗余的理解:
STP是为了更好地冗余。两个方面来理解:
1)环路产生的缘由的是冗余。
2)后面发展RSTP,MSTP都不单单是为了防环路,若是是的话,802.1D就能够了。引用第一段的话,STP协议的本质就是实如今交换网络中链路的备份和负载的分担,也就是为了更好的冗余。
友情提示:
1.根据发送的BPDU来判断,只有根网桥才能发送BPDU。
2.理解根端口和指定端口的区别,根端口是用来接受BPDU信息,而指定端口是用来转发BPDU等信息的,一个是接受方,一个是发送方,因此当链路开销同样时,在选择指定端口和根端口时候是相反的。
最后啰唆一下,“咱们只看BPDU“。 浩哥这话真是经典。
二〇〇九年八月六日
wzhj132