首页 > 其他分享 >STP/RSTP/MSTP(生成树协议)

STP/RSTP/MSTP(生成树协议)

时间:2023-04-16 15:55:24浏览次数:39  
标签:BPDU RSTP 端口 MSTP 接口 交换机 STP 根桥 转发

STP(生成树协议)是运行在交换机上的二层破环协议,环路会导致广播风暴、MAC地址表震荡等后果,STP的主要目的就是防止二层网络中环路的产生。

一、STP工作原理
选举三要素:(桥ID、端口ID、开销)
桥ID=优先级(值越小优先级越大越优,默认为32768)+MAC(值越小越优)
端口ID=端口优先级(默认128,范围0-255,越小越优)+端口编号(应该是越小越优)
开销cost=此桥或此端口到根桥的路径开销,带宽越大开销值越小(越小越优)

根桥选举过程:
按顺序进行比较(优先级>MAC)越小越优
a. 先比较BID中的优先级,具有最小优先级的交换机定为根桥。
b. 如果优先级一样,再比较BID中的MAC地址,MAC地址最小的确定为跟桥。

根端口选举过程:
按顺序进行比较(到根桥的路径开销>对端交换机的BID>对端的端PID>本段的PID)越小越优
a. 非根桥交换机上,到根桥的根路径开销最小的端口,即为该非根交换机的根端口
b. 如果根路径开销相同,则比较对端交换机的BID,越小越优
c. 如果对端交换机的BID相同,则比较对端的PID,越小越优
d. 如果对端的PID相同,则比较本端的PID,越小越优。

指定端口选举过程:
按顺序进行比较(到根桥的路径开销>交换机的BID>交换机的PID)越小越优
a. 在各个链路上,到根桥的根路径开销最小的端口,即为指定端口
b. 如果根路径开销相同,则比较两端交换机的BID,越小越优
c. 如果对端交换机的BID相同,则比较两端交换机的PID,越小越优

阻塞端口:
最后,其余既不是根端口也不是指定端口的都是阻塞端口。

注意:
a.根交换机上所有端口都是指定端口
b.每条链路只有一个指定端口

二、STP的端口状态
(1)Disabled:禁用状态。    端口既不处理和转发BPDU报文;也不转发用户流量。端口会在这种状态下停留10秒钟时间。
(2)Blocking:阻塞状态。     端口仅仅能接收并处理BPDU,不能转发BPDU;也不能转发用户流量。默认端口会在这种状态下停留20秒钟时间。
(3)Listening:侦听状态。    端口可以接收和转发BPDU报文;但不能转发用户流量。默认该端口会在这种状态下停留15秒钟的时间。
(4)Learning:学习状态。    端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。默认端口会在这种状态下停留15秒钟时间。
(5)Forwarding:转发状态。端口既可转发用户流量也可收发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。默认端口会在这种状态下停留15秒钟时间。

禁用状态:不收发任何报文
阻塞状态:不接收或转发数据,接收但不发送BPDU,不进行地址学习
监听状态:不接收或转发数据,接收并发送BPDU, 不进行地址学习
学习状态:不接收或转发数据,接收并发送BPDU, 开始地址学习
转发状态:接收或转发数据, 接收并发送BPDU, 开始地址学习

三、STP的时间参数

(1)Hello Time(hello时间):发送BPDU的时间间隔,默认为2秒,当拓扑稳定后,只有在根桥上修改才有效。TCN BPDU的发送不受此定时器管理。
(2)Forward Delay Time(转发延迟):指一个端口处于Listening和Learning状态的各自持续时间,默认是15秒。即Listening状态持续15秒,随后Learning状态再持续15秒。
(3)Max Age(最大生存时间):端口的BPDU报文老化时间,可在根桥上修改,默认是20秒。

四、STP的两种报文类型(配置BPDU由指定接口发送,TCN BPDU由根端口发送)

(1)配置BPDU:在收敛过程中,每台交换机都从自己激活了STP的接口向外发送配置BPDU。收敛完成后,只有根桥才会周期性的发送配置BPDU(缺省周期为2s),非根桥在自己的根接口上收到上游的配置BPDU后,立即被触发产生自己的配置BPDU,然后从指定接口上发送出去。常所说的BPDU报文就是指配置BPDU。
(2)TCN BPDU: TCN BPDU用于在网络拓扑发生变化时向根桥通知变化的发生。当网络拓扑发生变化时,远离变化点的交换机无法直接感知变化的发生,其MAC地址表项也就无法快速刷新。通过TCN BPDU可以解决这个问题。

RSTP

STP的四种保护机制

(1)BPDU保护
当边缘接口收到BPDU后,该接口立即变成一个普通RSTP接口,这个过程可能引发网络中RSTP重新计算,从而对网络产生影响。通过在交换机上激活BPDU保护功能可解决该问题。激活该功能后,如果边缘接口收到BPDU,则交换机立即把接口关闭,同时触发告警。

(2)根保护
由于错误配置或恶意攻击,网路中根桥可能会收到优先级更高的BPDU报文,从而导致拓扑变化,导致RSTP重新计算。部署根保护功能可保证根桥的稳定性。在根桥的指定接口上激活根保护功能后,该接口如果收到更优的BPDU,则会忽略这些BPDU,并且将该接口切换到丢弃状态,如果接口不再收到更优的BPDU,则过一段时间后(通常为两倍的转发延迟时间),接口会自动恢复到转发状态。注意,根保护功能只有在指定接口上激活才有效。

(3)环路保护
当由于网络拥塞,导致下游交换机收不到上游交换机的配置BPDU,在规定时间内,下游交换机没有收到,则会开启闭塞端口,选定端口角色,可能会导致临时环路。配置环路保护后,如果在规定周期内,没有收到上游交换机的BPDU则会闭塞上游端口。

(4)拓扑变更保护
如果网络中存在攻击者恶意发送TCN BPDU,将导致交换机频繁清除MAC地址表,就会导致网络不稳定,交换机性能收到极大影响。交换机激活拓扑变更保护后,将在单位时间(缺省2s)内只进行一定次数的TC BPDU处理,对超出部分,则必须等待一段时间后进行处理。

1.端口角色的重新划分(3+2-1) 

新增了两种角色:都是用来做备份的,本质上也是被阻塞的。去掉了阻塞端口。
(1)根端口
(2)指定端口
(3)backup 备份端口 :Backup端口作为指定端口的备份,提供了另外一条从根桥到非根桥的备份链路。
(4)alternate 预备端口 :Alternate端口作为根端口的备份端口,提供了从指定桥到根桥的另一条备份路径。

2.端口状态的重新划分

状态由5种缩减为三种
Discarding (丢弃状态):不转发流量,也不学习MAC地址
Learning (学习状态):不转发流量,但是学习MAC地址
Forwarding(转发状态):既转发流量,也学习MAC地址

P/A机制:其目的是使一个指定端口尽快进入Forwarding状态,从而加速生成树收敛,它是一种握手机制。

(1)SW1和SW2立即通过各自的接口发送BPDU,开始都认为自己是根桥
(2)经过BPDU交互后,选举出根桥、根端口、指定端口,接口停止发送BPDU,都进入丢弃状态。
(3)接下来P/A机制发生。SW1的0/0/1接口处于丢弃状态,故SW1从0/0/1发送P置位的BPDU。
(4)SW2收到P置位的BPDU后,会立即启动一个同步机制。将所有非边缘端口全部阻塞,然后答复SW1他这里不存在环路。(已经处于丢弃状态的接口缺省已完成同步,而边缘接口不参与该过程,除此之外,交换机处于转发状态的指定接口需要切换到丢弃状态以便完成同步)
(5)SW2立即将根接口0/0/2切换到转发状态,并向SW1发送A置位的BPDU。
(6)SW1收到P置位的BPDU后,立即将0/0/1切换到转发状态,此时PC1和PC2便可实现通信。
(7)由于SW2的指定接口0/0/4仍处于丢弃状态,因此他会继续向下游交换机发起一个P/A过程,以此类推。

边缘端口的特点:

1.边缘端口一般与用户终端设备直接相连
2.边缘端口不参与RSTP运算,但会往外发送BPDU
3.边缘端口的启动或关闭不会出发拓扑变化
4.P/A机制中,边缘端口不阻塞,可持续进行流量转发
5.边缘端口在端口UP之后立即进入转发状态;不需等待2倍的转发延时就可转发流量
6.一旦边缘端口收到配置BPDU,就丧失了边缘端口的属性,成为普通的STP端口,并重新进行生成树计算,从而引起网络动荡

MMSTP(多生成树协议)

STP/RSTP的缺陷:所有VLAN共享一颗生成树,阻塞链路被完全浪费,无法实现不同VLAN在多链路上负载分担
MSTP的优点:基于实例计算出多颗生成树,实例间实现负载分担。

IST(内部生成树):每个MST域独立计算的内部生成树实例
CST(公共生成树):把每个MST域当做一台交换机组成的单生成树
CIST(公共内部生成树):CST+IST
CIST域根:每个IST的根网桥
CIST总根:整个CIST的根网桥
Master端口:CST的根端口。(单域MSTP中不存在Master端口,多域中,根域不存在该端口,其他域只有一个该端口)

交换机在同一个域的必要条件:

(1)域名一致
(2)修订级别一致
(3)实例和VLAN的映射关系一致

标签:BPDU,RSTP,端口,MSTP,接口,交换机,STP,根桥,转发
From: https://www.cnblogs.com/dongtianci0801/p/17323400.html

相关文章

  • Huawei VRRP+MSTP组网实验-ensp
    一、基本环境IP地址规划:互联网公网IP地址:Router:121.1.1.0/30内网互联地址:Leaf1:10.0.0.0/30Leaf2:10.0.1.0/30内网vlan网关:vlan100:192.168.100.124vlan200:192.168.200.124二、拓扑结构三、实验配置出口网关ISP网络配置[ISP]interfaceGigabitEthernet0/0/0......
  • pod中使用hostpath 持久化日志
    1、kubernetes日志持久化在Kubernetes中,可以使用各种不同的方式来持久化Pod中的日志。以下是一些常见的方法:使用HostPath:如上一个回答所示,可以使用HostPath来将Pod中的日志持久化到宿主机上。这种方法简单易用,但需要注意安全问题。使用本地存储卷:可以使用本地存储......
  • STP协议原理
    STP技术背景:在网络中,为了防止单点故障的出现,会给链路和设备都做冗余   冗余带来环路,环路会导致:-广播风暴-MAC地址表紊乱【不稳定的MAC地址表/MAC地址表抖动】-交换机收到重复数据帧 广播风暴  如何解决环路带来的问题?STP:既要有冗余,又要去除环路带......
  • @RequestParam和@PathVariable的用法与区别
    **@PathVariable**格式@RequestMapping(value="/user/{username}")publicStringuserProfile(@PathVariable(value="username")Stringusername){ return"user"+username;}在上面的例子中,当@Controller处理HTTP请求时,userProfile的参数......
  • 【spring学习笔记】(二)Spring MVC注解配置 参数转换注解@RequestMapping@RequestParam
    @TOC介绍在SpringMVC项目中,<\context:component-scan>配置标签还会开启@Request-Mapping、@GetMapping等映射注解功能(也就是会注册RequestMappingHandler-Mapping和RequestMappingHandlerAdapter等请求映射和处理等组件),但是<context:component-scan>不支持数据转换或验证等注解功......
  • 基于上一篇实现的SimpleListPopupWindow<T>
    这次是个简单的PopupWindow,快速迭代用。importjava.util.List;importandroid.content.Context;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.LinearLayout.LayoutParams;importandroid.widget.ListView;im......
  • NodeIP、PodIP、ClusterIP、NodePort、Port、TargetPort、HostPort
    目录1、IP类型1.1、NodeIP1.2、PodIP1.3、ClusterIP2、Port类型2.1、nodePort2.1、port2.1、targetPort2.1、hostPort 1、IP类型Kubernetes集群里有三种IP地址,分别如下:名称说明NodeIPWorker节点的IP地址,即物理网卡的IP地址。PodIP......
  • 在Spring中如何通过BeanFactoryPostProcessor和BeanPostProcessor来做一点好玩的事情
    在Spring中如何通过BeanFactoryPostProcessor和BeanPostProcessor来做一点好玩的事情介绍BeanFactoryPostProcessor跟BeanPostProcessor是Spring为开发者提供的在Bean加载时候的扩展点。灵活的运用这两个扩展点可以帮助我们做一些好玩的事情,它们为我们提供了无限的扩展能力。Be......
  • 开源优先队列FastPriorityQueue源码阅读
    FastPriorityQueue  源码连接:https://github.com/BlueRaja/High-Speed-Priority-Queue-for-C-Sharp  大致结构:  1节点在内存中的结构还是数组,且首节点为无意义节点,有效节点从索引1开始。(见FastPriorityQueue的T[]_nodes)  2维护的节点必须时固定的继承。(见FastPri......
  • 聊聊Spring扩展点BeanPostProcessor和BeanFactoryPostProcessor
    介绍今天聊一聊spring中很重要的两个扩展点BeanPostProcessor和BeanFactoryPostProcessor,spring之所以如次强大,是因为它提供了丰富的功能给我们使用,但是我觉得最强大的是它扩展点,因为有了各种扩展点,我们才能去开发一些自己的需求,一个框架的强大之处也在于它能否灵活的配置,能够支......