zoukankan      html  css  js  c++  java
  • 【数通学习】【二层交换】stp生成树协议学习

    • 为何会需要stp?

    因为二层交换网络中可能出现环路,环路上的设备在进行泛洪的时候,会导致广播风暴;广播风暴对网络的影响非常大,会严重消耗设备 资源及网络带宽,导致网络正常的数据转发出现停滞甚至失败。

    特别的,当因环路导致需要通过泛洪学习的MAC地址在两个端口间来回绑定的现象,叫做MAC地址漂移。

    • 何为stp?

    STP:Spanning-tree protocol

    STP能够在网络中存在二层环路时,通过阻塞特定端口从而打破环路,并在网络出现拓扑变更时及时收敛,以保证网络的冗余性。

    • stp如何工作?

    stp通过在同一个广播域中的开启了stp功能的交换机互相发送和接受BPDU报文,通过BPDU报文中的内容,进行Root节点的选举、根端口RP的选择、指定端口DP的选举,非指定端口的阻塞,来消除环路的。

    • BPDU报文内容,以及其作用 ?

    网桥协议数据单元 Bridge Protocol Data Unit
    依赖BPDU报文的泛洪,使得STP能够正常工作。

    当网络初始化时,同一个广播域中的交换机开始发送BPDU报文,也接收其它交换机发送的BPDU报文。当网络信息通过BPDU报文在广播域中同步完毕后,开始进行Root选举,当选举出来Root交换机后,其他交换机不会再发送BPDU报文,只会接受BPDU报文和中继BPDU报文,而Root交换机将会继续发送BPDU报文。

    BPDU报文中的字段内容:

    其中比较重要的字段有根ID、路径开销、桥ID、端口ID,下面一一介绍这四个字段:

    1、根ID:即广播域中选举出来的根路由器的ID;桥ID:即广播域中其他非根路由器的ID。

    根ID和桥ID都是BridgeID,BridgeID一共8字节,前两个字节是优先级,后6字节是MAC地址。

    当广播域进行Root节点选举的时候 ,首先比较优先级,优先级数值越小,优先级越高,默认优先级为32768,且配置时以4096的倍数配置;如果优先级相同,则比较MAC地址,Mac地址小的为Root节点。

    当然,在进行端口选举的时候 ,也会看BridgeID,比较顺序为:Root BridgeID 》路径开销》发送桥ID》端口ID

    2、Path Cost:路径开销

    路径开销是一个端口量,跟接口带宽有一定关系。

     端口带宽和开销的关系:

    注意根节点的端口不算开销。

    可以看到,从根节点发送出来的BPDU报文开销为0,当穿过一个中继之后,开销加上了中继节点上的如接口的开销。

    3、Port ID:

    端口ID(2字节)= 端口优先级(1字节)+ 端口编号(1字节)
    端口优先级默认128,范围0-255,越小越优先:

    介绍完了上面的几个重要属性,我们下面来看看STP如何运行:

    1、每个广播域选择一个根桥(Root Bridge),其实就是选择一台交换机

    2、每个非根桥上选择一个根端口(Root Port):

    3、每个段(segment)选择一个指定端口(Designated Port),段即为两个交换机之间的连接,根桥的所有端口都是指定端口,不会被阻塞。

    4、选出非指定端口(NonDesignated Port, 将会被阻塞)

     下面使用华为的eNSP进行模拟操作,先介绍一下简单的命令:

    基础配置 :
    指定生成树协议类型STP/RSTP/MSTP
    stp mode {stp| rstp} //默认时MSTP

    配置交换机优先级
    stp priority {level} //默认32768

    指定交换机为根桥
    stp root primary // 实际上是将交换机的优先级设计为0

    指定交换机成为次根桥
    stp root secondary // 事实上是将交换机的优先级 设置 为4096

    启用生成树协议
    stp enable // 默认处于disable状态

    配置端口STP优先级
    interface g 0/0/24
    stp priority {level}

    配置端口路径的开销
    interface g 0/0/24
    stp cost {cost}

    查看stp摘要信息
    display stp brief

    我们先在拓扑界面上搭建如下拓扑:

    我们使用LSW1作为Root节点,LSW2作为从节点:

    LSW1配置:

    LSW2配置:

    LSW3配置:

    配置完成后,我们使用dis stp brief查看stp摘要信息:

    LSW1:

    可以看到,LSW1作为根节点,两个端口都是DP端口,而且状态都为转发模式,这个模式说明端口工作正常。

    LSW2:

    可以看到,LSW2作为从节点,有一个根端口和一个选定端口,都为转发模式。

    LSW3:

    可以看到LSW3有一个端口为根节点,处于转发模式,另外一个端口处于阻塞模式。

    下面补充说明一下端口的状态:

    端口状态转换流程:

  • 相关阅读:
    JAVA面试问题与解答(1-15)
    17个经典的Spring面试问答
    Linux下载——下载文件的命令
    MySQL入门——在Linux下安装和卸载MySQL
    MySQL入门——在Linux下安装和卸载MariaDB
    MySQL入门——MySQL数据库和SQL语言
    Linux性能分析——分析系统性能相关的命令
    Linux网络——查看网络连接情况的命令
    Linux网络——配置网络之iproute家族命令
    Linux网络——配置网络之ifconfig家族命令
  • 原文地址:https://www.cnblogs.com/wuyizuokan/p/10891186.html
Copyright © 2011-2022 走看看