频道栏目
首页 > 资讯 > 交换机 > 正文

交换机使用过程中为什么要有生成树协议?

17-10-19        来源:[db:作者]  
收藏   我要投稿

为什么要有生成树协议(spanning-tree protocol)?

在传统的交换网络中会产生故障(单点故障),导致主机通信失败。

wKioL1nknNrg4VcRAADYMP2j5Xo591.png

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

单点故障如何解决?

1.增加冗余链路

2.增加冗余设备

wKioL1nknMbykeHcAADclKWeuHA638.png

例如:增加冗余链路(sw1与sw3 相连)

即使sw3 fas0/23 端口故障,SW2发送的广播包也可通过sw1进行转发,从而转发给sw3,即可实现PC1/PC2/PC3 之间的主机通信。

增加冗余链路的情况下,会产生什么问题?

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

wKioL1nknQXiveWKAADclKWeuHA007.png

如图,假设所有的端口均无故障,增加冗余链路(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地址)

以上都是越小越好!!!

wKioL1nkpiqjNvLQAADt4YoPO-g131.png

例如:如图,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状态)

相关TAG标签
上一篇:有关mysql数据库中文排序问题
下一篇:移动开发中的git使用技巧分析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站