当前位置:首页 > 网络技术 > H3C > 正文内容

H3C_STP详解

七星2年前 (2019-10-30)H3C510

前言:


刚开始接触STP,感觉这东西挺简单的.后来深挖了一下,感觉之前还是没有搞清楚STP.

STP不是为了找到可用的链路,而是找到可用的端口.

这一点和OSPF这种找路径的协议有本质的不同.

 

作用:


树与图的最大不同则是,图是有环路的,树则是没有环路的。

用树的特性来解决网络环路的问题是再合适不过的。在实际的网络配置当中,

交换机与另一台交换机的链路是不可能只有一条链路。

就像高速公路发生塌方,我们则会此路不通再找另一路。

但是这样会出现一个问题,各个交换机设备都有链路连接,

数据报到达目的主机的路线机会增多,从而使数据报在交换机之间不断转发,形成一个环路。

如果我们给各个数据帧指定一条到达目的主机的最短路径,那么就不会形成环路,因为数据帧就会沿着我们给定的路线传输。

STP的作用:

    一. 为了解决在二层设备(二层交换机)中,环路拓扑的危害

        1. Mac地址学习错误

        2. 产生广播风暴(没有三层网络的TTL机制而造成的)

        3. 单帧多次递交

     二.二层网络的健壮性

 

概念:


生成树协议的国际标准是IEEE802.1D. 

运行生成树算法的网桥/交换机, 在规定的间隔 (默认2秒)内,

通过网桥协议数据单元(BPDU)的组播帧, 与其他交换机交换配置信息 ,

其工作的过程如下:

        1. 通过比较网桥优先级选取根网桥(给定广播域内只有一个根网桥)。

        2. 其余的非根网桥只有一个通向根交换机的端口称为根端口

        3. 每个网段只有一个转发端口

        4. 交换机所有的连接端口均为转发端口


注意

生成树协议在交换机上一般是默认开启的,不经人工干预即可正常工作。

但这种自动生成的方案可能导致数据传输的路径并非最优化。

因此,可以通过人工设 置网桥优先级的方法影响生成树的生成结果。

 

选举根桥、根端口、指定端口:


书上是这么说的:

    1. 选举根桥:比较优先级,再比较MAC地址(为交换机默认VLAN1的MAC地址),最小MAC地址为根桥.根桥所有接口永远不会出现阻塞状态.根桥的所有端口都是指定端口,指定端口被标记为转发端口.

    2. 选举根端口:按如下顺序选举,满足条件即停止.

        A. 计算非根桥到达根桥的链路开销

        B. 比较非根桥的上行交换机桥ID(由优先级与MAC地址决定)

        C. 上行交换机的最小端口号所连接的非交换机的端口为根端口

    3. 选举指定端口:非根桥与非根桥之间连接线的两个端口中,必定有一个端口是指定端口,此时比较两个非根桥的根端口到达根桥的最低链路开销,将最低开销的非根桥为准,其所在的连接线(为上面非根桥与非根桥之间连接线)的端口为指定端口,如果链路开销一样最后比较各自的桥ID即可.指定端口被标记为转发端口.可通过比较发送的BPDU

    4. 选择根端口和指定端口的BPDU帧总是从根桥向外发

先看一下专业名词:

    1.根桥:树的特点则是有根节点的,而这里的根桥就是相当于树的根节点。以根桥为起始点发散出去。

    2.BID(桥ID):选择根桥就需要交换机自我选择,需要交换机们的通信,这些信息被称为BPDU(桥协议数据单元),每两秒发送一次,BPDU的包含信息比较多,BID就是 其中的一种。BID最小的就是根交换机ID。BID=桥优先级+桥Mac地址,一般交换机的桥优先级都是一样的,所以一般比较Mac地址的大小。

    3.根端口:不是根桥的交换机,选择一个端口用来连接根桥。根端口只能在非根交换机上选取。

    4.指定端口:每两个交换机之间的链路上选择一个端口。

说人话:

首先,明确目的,我们是为了寻找所有的可用端口,同时避免环路。

,先看看怎么避免造成环路

    简单,根据拓扑关系构造一颗生成树就行了,这里感觉生成树的方法,没有用最小生成树的算法,或者其他方法,用的是先指定根结点,然后求出所有结点到根结点最近的路径,这些路径包含的链路就是生成树的一节节链路。另外,求其他结点到根结点的最短路径也没用迪克斯特拉算法,因为这是个并行系统,其他交换机只用等着根结点传来的数据,然后选出来路最短的那个就知道最短路径跟哪个端口相连了。

我们看看STP算法是怎么做的:首先根据一定规则指定根桥,然后根桥给其他交换机发数据,我估计这数据包里肯定有距离信息,并且每过一个交换机,就要更新一下已经途径的距离信息,这样每个交换机的每个端口都收到不同距离信息的数据包,其中最小的数据包是从哪个端口进来的,该端口所在的链路就肯定是最短路径中的一个链路,换句话说,这条链路要激活。

    我们分析一下就能发现,这条链路两端的端口,一个端口就是上边选出来的所谓“根端口”,另一个就是指定端口。

    按说到这就完了,生成树构造完毕,已经选出了处于激活状态的链路和端口,所有交换机都能实现互通而且没环路了。

怎么才能确定最短路径?

       1 选择最低的BID

       2 选择最低的路径开销(一定是到跟桥的路径)

       3 选择最低发送者的BID

       4 选择最低端口优先级

       5 选择最低端口的ID

STP选择的步骤是这样的:

       1 选择根桥;

       2 选择根端口(RP);

       3 选择指定端口(DP),而非指定端口进入阻塞状态;

       4 RP,DP设置为转发状态,其他端口为阻塞状态;

值得注意的是:

        STP是交换机自带的,可以自我生成。

        在每个接受端口累加开销值

                 //比如A----->B     路径开销为19 ,初始值为0    在B的端口接受时初始值累加为19 而从A—>B的途中初始值依旧为0

        每个非根桥交换机都选出一个根端口

        每一个vlan都有一个生成树

        VLAN1是删不掉的,因为所以的端口都在里面

说这么多,我们一起看一下这个选择的过程:

1. 建立物理连接

image.png 

2. 选择根桥

    可以看见,D的Mac最小,但E的优先级最小,综合一下,E的BID最小,就是E为根桥.

3. 选择根端口

    为每一个非根桥的交换机(这里指A,B,C,D)选择一个距离根桥的最短路径。

        即:C--->E :根端口为C的G0/3     路径为 19 最小。

               D--->E :根端口为D的G0/5     路径为 19 最小。

               B--->E :根端口为B的G0/3      路径为 19 最小。

               A--->E :他不能直接到达,需要第三方,他有两条路径;

                           A--->B--->E :路径为19+4

                           A--->C--->E :路径为19+4

                           路径开销一致进行第三条判断依据:最低发送者的BID(对于A来说,B,C为发送者),

                           因为C的BID小于B的BID,所以选择  A---->C---->E这条路径,所以

                           根端口为A的G0/2  路径为19+4 最小。

4. 选择指定端口

       为一对交换机之间(网段)选择指定端口(即路径最小的为指定端口):这里就举几个例子,主要是太多了懒得写。

       注意: 这里是在接受的端口累加路径的开销值。从E出来的路径开销值初始值都为0

           1. D-----E:   路径开销为19  (在E的端口初始值为0,在D的端口初始值为19,在中间的那条线上初始值为0)

                  如何判断:     站在D,E的中间,  前往D的方向,到达D的端口,开销值为19.      前往E的方向,开销的初始值为0.   0<19 

                  所以指定的端口为 E的G0/5;

           2. B-----D:   路径开销为4   (在B的端口初始值为19,在D的端口初始值为19  ;路径开销值是到达根桥的路径值)

                  如何判断:  站在B,D的中间,由于路径开销相等,进行第三条判断(比较发送端的BID)因为B的BID(32768 0000.0000.0013)>D的BID(32768 0000.0000.0001)

                  所以指定的端口为 D的G0/2;

           3. 其他大都是在这样判断的。

 

生成树接口的状态:

运行生成树协议的交换机上的端口,总是处于下面四个状态中的一个. 

在正常操作期间,端口处于转发或阻塞状态. 

当设备识别网络拓扑结构变化时, 交换机自动进行状态转换,在这期间端口暂时处于监听和学习状态.

    1. 阻塞:所有端口以阻塞状态启动以防止回路。由生成树确定哪个端口转换到转发状 态,处于阻塞状态的端口不转发数据但可接受BPDU.

    2. 监听:不发送接收数据,接收并发送bpdu,不进行地址学习 (临时状态)。

    3. 学习:不接收或转发数据,接收并发送bpdu,开始地址学习MAC地址表(临时状态)。

    4. 转发:端口能传送和接收数据。


转载请声名出处|qixingbit.com

相关文章

H3C_MVRP的配置

H3C_MVRP的配置

MVRP(多vlan注册协议)简介MVRP又叫GVRP,类似Cisco中的VTP协议.主要用于在以太网中传递vlan的更新信息.当设备启用了mvrp之后设备将本地的VLAN配置信息像其他设备传播,同时...

H3C单臂路由

H3C单臂路由

原理单臂路由(router-on-a-stick)是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来相互隔离的不同VLAN(虚拟局域网)之间的互联互通。在C...

win10安装华三模拟器

win10安装华三模拟器

背景    因为是刚开始学, 平时用的学校电脑, 放假了想自己电脑安一个. 结果一直失败. 这东西的安装,基本上花了我一上午时间.百度已经越来越不靠谱了.  &...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。