您的位置:首页 > 编程语言 > PHP开发

STP--生成树协议(简单理解)

2017-10-17 08:46 267 查看
为什么要有生成树协议(spanning-tree protocol)?
在传统的交换网络中会产生故障(单点故障),导致主机通信失败。



例如:sw3 Fas0/23 端口故障,则PC1/PC2 无法与PC3 通信

单点故障如何解决?
1.增加冗余链路
2.增加冗余设备




例如:增加冗余链路(sw1与sw3 相连)
即使sw3 fas0/23 端口故障,SW2发送的广播包也可通过sw1进行转发,从而转发给sw3,即可实现PC1/PC2/PC3 之间的主机通信。

增加冗余链路的情况下,会产生什么问题?
在增加冗余链路的情况下,产生环路的数据(即广播风暴),会不断的在网络中进行传输,从而消耗网络中链路资源和设备资源。




如图,假设所有的端口均无故障,增加冗余链路(sw1与sw3相连),sw1在发出广播后,sw2(sw3)收到并转发给sw3(sw2),sw3(sw2)收到并转发给sw1,从而形成环路(广播风暴),消耗网络链路中的资源。

如何解决这个问题?
STP(spanning-tree protocol)---生成协议
作用----存在冗余链路的情况下,实现环路保护,(即线路故障时,阻塞端口打开,恢复数据通信)
实现----BPDU(网桥协议数据单元)
分类----PVST/RSTP/MSTP

工作过程
1.确定交换机的角色
分类:
根交换机(只有一个)
非根交换机(除根交换机以外的交换机)
原则:
比较每个交换机的BID(桥ID),越小越好
组成:优先级+MAC地址(基MAC)
优先级:默认是32768
MAC地址:交换机主板MAC地址
sw#show version

2.确定端口角色
分类:
根端口---在非根交换机上距离根交换机最近的端口
指定端口---每一个冲突域中,距离根交换机最近的端口
(冲突域---交换机端口互联形成)---根交换机上的端口均为指定端口

非指定端口---除根端口及指定端口以外的交换机端口
判断思路----首先判断根端口----->再判断指定端口------>最后判断非指定端口

如何表示上文中“最近“这个距离?
在STP中,通过cost 表示一个路径的距离
对于某些链路,均有默认的cost值:
10 M --- cost 100
100M --- cost 19
1000M(1G) ---- cost 4
10000M(10G) ---- cost 2
通过什么来判断端口所属角色?
BPDU--桥协议数据单元
root-id //表示根交换机是谁
cost //表示发送该BPDU协议的交换机到达根交换的距离
BID //表示发送该BPDU的交换机的名字
Port-id //表示发送方交换机是在那个端口发送出来的
(组成--优先级(默认128)+MAC地址)
以上都是越小越好!!!





例如:如图,sw2为根交换机(RootSwitch),sw1,sw3为非根交换机,
判断sw1上两个端口哪个是根端口,根据
BPDU-桥协议数据单元,root-id
都为sw2,fas0/11的cost值为19(路径--sw1--sw2),fas0/13的cost值为38(路径--sw1-sw3-sw2),则
fas0/11为根端口。

sw3上的两个端口哪个是根端口:根据 BPDU-桥协议数据单元,root-id 都为sw2,fas0/23的cost值19(路径--sw3--sw2),fas0/13的cost值为38(路径--sw3-sw1-sw2),则fas0/23为根端口。

sw4
上的两个端口哪个是根端口:根据 BPDU-桥协议数据单元,root-id
都为sw2,fas0/16的cost值38(路径--sw4--sw3--sw2),fas0/15的cost值为38(路径--sw4-sw3-
sw2),继续判断BID,都是SW4,相同,继续判断Port-id(发送方交换机是在哪个端口发送进来的)
即sw3 fas0/11---->sw4 fas0/16

sw3 fas0/12---->sw4 fas0/15
由于是sw3 发送BPDU 给sw4,则看sw3上连接sw4的两个端口离根交换机的远近。 sw3上 fas0/11 和fas0/12的root-id,cost值(sw3-sw2--19)BID(优先级+基MAC)相同,最后看Port-id(优先级+端口号)
优先级都默认为128,端口号fas0/11 小于fas0/12,则根端口为sw3 fas0/11端口所对应的sw4 fas0/16端口。

再判断指定端口:指定端口---每一个冲突域中,距离根交换机最近的端口
根交换机上的端口都是指定端口。即sw2上 fas0/12 fas0/13为指定端口
在sw1 fas0/13 和sw3 fas0/13 端口连接形成冲突域中,sw1 fas0/13 sw3 fas0/13 的root-id 都为sw2
cost值都为19(sw1-->sw2/sw3-->sw2)则比较BID,优先级都是32768,基MAC 不同,由于sw1基MAC小于sw3基MAC,则sw1的fas0/13为指定端口。

sw#show spanning-tree
....
3.确定端口状态
disable //相当于shutdown,此时端口不能使用;
listening //侦听,该状态侦听的是BPDU,用于确定端口角色(15s)
learning //学习,该状态学习的是MAC,形成MAC地址表(15s)
forwarding //转发,即端口的最终转发状态;(根端口,指定端口最终都是forwarding状态)
block //阻塞,此时端口是不可以发送数据的;(非指定端口都是block状态)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stp