目录

  • 1. STP
    • 1.1 背景
    • 1.2 STP(生成树协议)802.1d
      • 1.2.1 生成树形结构的过程
        • 1.2.1.1 生成树树形结构形成过程:
        • 1.2.1.2 根桥的选举规则
        • 1.2.1.3 端口角色选举规则
        • 1.2.1.4 临时环路
      • 1.2.2 端口状态
        • 1.2.2.1 STP的标准接口状态:避免临时环路隐患
        • 1.2.2.2 华为的接口状态
      • 1.2.3 BPDU
        • 1.2.3.1 配置BPDU报文字段
      • 1.2.4 STP网络拓扑变化分析
        • 1.2.4.1 直接拓扑变更
        • 1.2.4.2 间接拓扑变更
        • 1.2.4.3 STP的网络拓扑发生改变时分析
    • 1.3 RSTP(快速生成树协议)802.1w
      • 1.3.1 RSTP与STP的区别
      • 1.3.2 端口角色
      • 1.3.3 端口状态:
      • 1.3.4 RSTP BPDU
      • 1.3.5 对配置BPDU的处理
      • 1.3.6 RSTP快速收敛机制
        • 1.3.6.1 边缘端口
        • 1.3.6.2 根端口快速切换机制
        • 1.3.6.3 P/A机制
      • 1.3.7 拓扑发生变化条件
      • 1.3.8 RSTP与STP的兼容
    • 1.4 MSTP(多实例生成树协议)802.1s
      • 1.4.1 MSTP域
      • 1.4.2 MSTP概念
      • 1.4.3 MSTP端口角色
      • 1.4.4 MSTP的报文结构
      • 1.4.5 MSTP的拓扑计算--比较原则
      • 1.4.6 MSTP域RSTP的交互
      • 1.4.7 MSTP的快速收敛
      • 1.4.8 配置
    • 1.5 VRRP(虚拟路由器冗余协议)
    • 1.6 STP保护机制
      • 1.5.1 边缘端口的保护措施
      • 1.5.2 Root-Protection
      • 1.5.3 TC BPDU保护
      • 1.5.4 STP的环路保护

1. STP

1.1 背景

什么是生成树协议?
通过将环形结构变成树形结构从而逻辑上打破环路的协议。

为什么需要生成树协议?

因为现网的冗余设计,为了增加带宽,防止单点故障。
因此产生了环路,而环路引起的问题
1. 广播风暴
2. MAC地址表翻动

冗余级别

  • 网络级冗余:两地三中心
  • 链路级冗余:STP,smart-link,RRPP
  • 设备级冗余:IRF,堆叠
  • 模块级冗余:双模块

防止环路的方法

  • 组播用RPF来防止环路
  • IP包使用TTL来防止环路
  • 二层使用STP在保证冗余的基础上防止环路等

STP协议的工作原理
通过逻辑上阻塞冗余链路消除环路

导图:

1.2 STP(生成树协议)802.1d

802.1d,生成树协议最开始的版本。
封装格式:802.3 | LLC | STP
目的组播MAC地址:01-80-C2-00-00-00

1.2.1 生成树形结构的过程

1.2.1.1 生成树树形结构形成过程:

  1. 选举根交换机:负责维护整网拓扑结构
  2. 选举根端口:非根交换机离根交换机最优的端口,负责接受BPDU或数据。
  3. 选举指定端口:指定端口负责本链路上的数据或BPDU的转发。
  4. 剩余端口则是阻塞端口

STP的比较规则都是越小越优

1.2.1.2 根桥的选举规则

开始所有交换机都以自己为根桥发送BPDU进行选举,选举成功的根桥周期发送BPDU,其他交换机负责转发。

根桥选举通过比较网桥ID

网桥ID
8个字节:2字节优先级+6字节MAC地址

2字节优先级由4bit的优先级+上12bit的扩展系统ID组成扩展系统ID用于MSTP中的4096个实例对应每一个VLAN

为什么优先级要改成4096的倍数?
因为bridge ID中的优先级字段2个字节,16bit,其中了扩展系统ID为12位给MSTP中的实例预留,优先级只有4位的取值范围在12位的基础上。0000-12位扩展系统ID=0,0001-12位扩展系统ID=4096

Cost开销类型:缺省802.1t

1.2.1.3 端口角色选举规则

选择RP(根端口)

  1. 比较根路径开销(RPC)
  2. 比较发送桥ID
  3. 比较发送端口ID(端口优先级+端口号组成)默认128,16的倍数,0-240
  4. 比较本端端口ID(交换机之间连Hub)

选择DP(指定端口)

  1. 比较根路径开销:根桥的根路径开销都是0。
  2. 比较发送桥
  3. 比较发送者端口ID
  4. 比较本端端口ID(交换机之间连Hub)

根桥的所有端口都是指定端口
一条链路只有一个指定端口
一个交换机只有一个根端口

1.2.1.4 临时环路

当网络正常收敛,阻塞端口不发送数据。但当与阻塞端口直连的交换机成为新的root桥之后,阻塞端口变成根端口,其他端口变成指定端口处于转发状态,而之前的指定端口还没有切换到阻塞端口也在转发状态,此时会造成临时的环路。
所以需要端口状态的转发延迟来进行解决。

1.2.2 端口状态

1.2.2.1 STP的标准接口状态:避免临时环路隐患

  • disable:端口未启用
  • blocking(discarding):端口禁用状态
  • listen:进行端口角色的选举。15s确保生成树的角色选举没有环路的产生。
  • learning:进行MAC地址表的学习 15s确保MAC地址的正确学习。
  • forwarding:数据和BPDU的转发。

1.2.2.2 华为的接口状态


当网络拓扑重新收敛,最快也要listen+learning=30s的时间

1.2.3 BPDU

1.2.3.1 配置BPDU报文字段

  • Protocol-id:stp协议
  • Protocol-version id:stp的版本
  • bpdu-type:bpdu的类型,配置bpdu还是TCNbpdu(拓扑变化通告)
  • falgs:在STP中使用了2bit,分为TCA(拓扑变化确认),TC(拓扑变更)
  • 根桥ID
  • 根路径开销
  • 桥ID
  • 端口ID
  • message age:消息时间,每经过一台交换机,加1。所以网络不是很大。
  • max age:老化时间,20s。
  • hello time:BPDU的发送周期2s。
  • f- orwad delay:转发延迟,配置BPDU传播到全网最大延迟15s

第一个15s是确保端口选举时间充足
第二个15s是确保TC能够传递到整网,保证MAC地址表学习时间充分。

什么时候发送配置BPDU

1、端口开启了STP
2、根端口收到配置BPDU,会向本地指定端口复制转发配置BPDU
3、当指定端口收到比本地差的配置BPDU,会立刻向下游设备发送自己的BPDU

1.2.4 STP网络拓扑变化分析

1.2.4.1 直接拓扑变更

至少需要30s恢复。

网络正常收敛,当S2的根端口所在链路Down掉之后,S2收不到比自己更优的BPDU,会发送以自己为根的BPDU给S3,S3收到之后发现没有本地的BPDU(从根端口收到的S1的BPDU)更优,会反向发一份本地的BPDU给S2,S2收到之后将2口置为根端口。等待2倍forward delay时间。30s

Cisco中收到次级BPDU默认当作没收到,等待老化时间和2倍的forward delay时间

1.2.4.2 间接拓扑变更



hub之间链路down掉,交换机连接hub的端口链路是up的,所以需要等待20s的超时时间,在经历2倍的Forwarding delay时间。至少50s。或者根桥Down掉

1.2.4.3 STP的网络拓扑发生改变时分析


拓扑中,经由STP计算,S1为根桥,S3的E2和E3端口被阻塞。当S2的面向PC1的链路断掉之后,S2会立即上上游发送TCN消息
S1收到S2发送的TCN消息之后,将下一个配置BPDU中的TCA和TC置位并从指定端口发送给全网。
此后的(20秒+15秒)时间内,S1均将配置BPDU中的TC置位,各个网桥收到TC置位的BPDU后,将MAC地址老化为15秒。
经过(20+15+15)秒之后,S3的E3接口会变为转发状态。S3的接口E3口学习到PC1的MAC地址。

1.3 RSTP(快速生成树协议)802.1w

为什么有RSTP
因为STP网络收敛速度过慢。不管MAC地址老化、学习多长时间,stp的Forwarding delay时间都是固定的。
拓扑发生改变,交换机会一层层的发送TCN BPDU到根桥,然后才由根桥来通知网络发送变化,如果网络拓扑过大则延迟又会增大。

1.3.1 RSTP与STP的区别

  1. 增加端口角色
  2. 减少端口状态
  3. 充分利用BPDU中的Flags字段
  4. 对BPDU的处理方式
  5. 快速收敛机制

1.3.2 端口角色

保留根端口、指定端口,增加了预备端口、备份端口
备份端口和阻塞端口相同点:不转发数据
备份端口为指定端口的备份。需要PA机制进行切换
预备端口为根端口的备份。可以快速切换。

1.3.3 端口状态:

  • Discarding 丢弃状态,丢弃数据。
  • Learning 学习状态,丢弃数据学习MAC
  • Forwarding 转发状态,转发数据学习MAC

1.3.4 RSTP BPDU

快速生成树BPDU,充分利用了BPDU中的Flag字段
RSTP BPDU Flag字段:

  1、TCA:拓扑变化确认位2、Agreement:同意位3、Forwarding:转发位4、Learning:学习位5、Port Role:端口角色    2位取值范围,11是指定端口,10是根端口。01代表预备端口或备份端口。00保留                                               6、Proposal:提议位7、TC:拓扑变更位

1.3.5 对配置BPDU的处理

1、非根桥每隔hello timer从指定端口主动发送配置BPDU
2、BPDU超时计时器为3个Hello timer
3、阻塞端口可以立即对收到的次级BPDU进行回应

1.3.6 RSTP快速收敛机制

1.3.6.1 边缘端口

连接用户的接口,不需要进行STP计算,直接进入forwording状态。
再次期间该端口如果收到RSTP BPDU变为普通端口,重新参与生成树计算

配置

#进入接口
stp edged-port enable            #开启边缘端口。
#或者全局开启
stp edged-prot default            #所有接口都开启

1.3.6.2 根端口快速切换机制

STP中直连故障需等待30s时间才能正常转发数据,RSTP通过预备alternate端口可以快速进入转发状态。

1.3.6.3 P/A机制

涉及Flags中的Proposal位和Agreement位。
作用:使指定端口快速进入forwading状态.

  • 当一个接口成为指定接口后,交换机发送RST-BPDU中其中标志位P位置1,Role位为11,向外发送。
  • 其他交换机收到收到proposal报文,阻塞非边缘端口之外的所有非边缘端口。并且发送RST BPDU中的标志位 Agreement位置1。
  • 交换机收到标志位中的同意位置1的BPDU之后,立即进入转发状态。

当一个端口被选举成为指定端口之后,在STP中,该端口至少要等待一个Forward Delay(Learning)时间才会迁移到Forwarding状态。而在RSTP中,此端口会先进入Discarding状态,再通过Proposal/Agreement机制快速进入Forward状态。这种机制必须在点到点全双工链路上使用。

在PA机制选举时,非边缘指定端口要进入阻塞状态,防止临时环路。因为PA机制选举完成之后会立即进行转发状态,如果其他交换机的原来是指定端口、对端是根端口时为转发状态还没来得及切换到阻塞状态,会造成临时环路。

1.3.7 拓扑发生变化条件

  • STP:Down和UP都是变化
  • RSTP:一个非边缘端口迁移到Forwarding状态
    在RSTP中没有TCN和TCA的BPDU,因为每台交换机都可以单独发送TC报文

当RSTP拓扑发生改变后:交换机为本设备的所有非边缘指定端口开启TC while计时器 在4s内不断发送TC BPDU,超过4s停止发送。清除发生变化端口学习到的MAC地址。其他设备收到TC报文之后,清空除了接受TC报文端口之外的所有端口学习到的MAC地址。

1.3.8 RSTP与STP的兼容

RSTP端口在收到STP-BPDU之后启用TC WHILE计时器,如果在计时器内还受到STP的BPDU,那么该端口会切换到STP工作模式
当运行stp的设备撤离之后,那么运行RSTP的交换设备可以迁移回RSTP工作模式

1.4 MSTP(多实例生成树协议)802.1s

为什么要有MSTP?
RSTP/STP共同的缺陷,所有VLAN共享一颗树,链路阻塞,造成部分vlan报文无法转发,如下图,vlan2原本所走的链路down掉之后,本来可以通过s6经过,但是S3-S6链路没有允许vlan2流量经过。

MSTP(多实例生成树协议):可以理解成功多个RSTP的集合。 802.1s

单个生成树的弊端

  • 部分VLAN路径不通。
  • 无法使用流量分担。
  • 次优二层路径。

创建多个实例,可定义哪个vlan属于同一个实例。
交换机默认实例0。

1.4.1 MSTP域

相同属性交换机的集合

  1. 使能MSTP
  2. 相同域名
  3. 相同的vlan映射
  4. 相同修订级别

1.4.2 MSTP概念

IST(内部生成树):每个域内实例0运行的树。
MSTI(实例树):普通实例运行的树。
CST(公共生成树):区域之间的生成树。域与域之间也有环路。
CIST(公共和内部生成树):由IST和CST构成的树。
总根:CIST中的根网桥,整网中优先级最高的网桥
IRPC(内部根路径开销):本地到域根的开销
IST域根
MSTI域根
ERPC(外部根路径开销):本地到总根所在域的开销
Master(主桥):区域内离总根最近的桥

1.4.3 MSTP端口角色

域边缘端口:域和域之间相连的端口
Master端口:主桥到总根最忧的口。对于普通实例来说。

1.4.4 MSTP的报文结构

不管有多少实例,就发送一份BPDU,只在实例0(IST)中发送,MSTI的信息携带在IST的BPDU中的MSTI的扩展中。

1、正常的BPDU字段----
2、version 3
3、MST扩展MST的配置信息:域名,修订级别CIST的IRPC:到IST域根的路径开销CIST的根桥IDCIST的BPDU剩余跳数MSTI的配置信息:MSTI的flagsMSTI的域根id到达MSTI域根的路径开销桥优先级端口优先级剩余跳数

1.4.5 MSTP的拓扑计算–比较原则

CST—IST—总根—CIST

  1. 先计算CST,一个MST域当作一台虚拟的交换机,由域内选出一个最优的交换机代表,IST相当于确认了(IST比较方式与stp选举根桥一样)域根。
  2. 每个MST域通过向其他域发送以域根为总根的BPDU,外部开销为0,计算出总根,整网优先级最高的交换机。
  3. 以总根为中心,根据外部路径开销选出master端口。
  4. 比较域根ID优先级,选出域边缘端口进行阻塞。

1.4.6 MSTP域RSTP的交互

RSTP交换机会将MSTP域看作一个桥ID为域根ID的交换机

1.4.7 MSTP的快速收敛

增强型P/A机制:不但可以使指定端口快速转发,还可以使根端口快速转发。

  1. 首先上游设备发送proposal报文请求快速切换,下游设备收到之后将其端口设为根端口,阻塞其他非边缘指定端口。
  2. 上游设备继续发送一个Agreement报文,使根端口进入forwading状态。
  3. 同时下游设备发送Agreement报文来使上游设备的指定端口快速进入forward状态。

1.4.8 配置

stp mode mstp        #修改STP版本为MSTP
stp region-configuration        #创建一个MSTP域。region-name huawei          #域名revision-level 1            #修订版本两边必须一致instance 1 vlan 10          #将vlan 10 加入实例1。check region-configuration #检查配置active region-configuration #激活MSTP域stp instance 1 root primary # 设置交换机为实例1的主根。display stp    默认查看实例0的信息
display stp instance 1 查看实例1 的信息

在做VRRP和MSTP时,VRRP的主一定是MSTP的主,VRRP的备一定是MSTP的备。否则会导致次优路径的产生。

MSTP向下兼容RSTP,向下兼容STP。

1.5 VRRP(虚拟路由器冗余协议)

选举规则(越大越优先)
1、优先级(默认100)
2、接口IP
先在哪个接口配的虚拟IP,哪个接口称为主路由器。

主路由器可以被抢占,抢占的时候只看优先级,相同也抢占不了只有优先级大才可以,不比较IP。

主路由器1s发送一次报文以表示自己状态正常,备份路由器如果3s收不到主路由器发送的报文则认为主路由器DOWN掉,于是自己称为备份路由器

虚拟MAC地址,地址的格式为00-00-5E-00-01-[VRID]

VRRP组播使用的目的地址是由IANA标准指定的多点广播地址224.0.0.18

协议号为 112

配置:

# 接口下:
vrrp vrid 1 virtual-ip ip地址        #设置虚拟网关IP加入vrid 1组display vrrp *          # 查看VRRP状态

在做VRRP和MSTP时,VRRP的主一定是MSTP的主,VRRP的备一定是MSTP的备。否则会导致次优路径的产生。

1.6 STP保护机制

1.5.1 边缘端口的保护措施

bpdu-protection              #前提是开启了边缘端口,当边缘端口收到了BPDU,端口直接error-down关闭该端口。
#全局开启边缘端口保护stp bpdu-protecion
#恢复error-down的端口:配置error-down之后一天可以自动恢复该端口,单位是s。
error-down auto-recovery cause bpdu-protection interval 86400
#还可以接口下shutdown,undo shutdown重启接口。

1.5.2 Root-Protection

根交换机保护(指定端口保护):如果根交换机的指定接口收到优先级更高的BPDU将主动将指定接口阻塞掉。

当在足够长的时间内(Max Age,默认20秒)没有收到更优的配置消息时,端口会恢复原来的正常状态,重新成为指定端口,进入转发状态。
stp root-protection 在根指定接口开启

1.5.3 TC BPDU保护

限制接受TC BPDU的数量。防止网络不断的老化学习MAC地址,影响网络稳定。
设置5s内收到TC-BPDU只刷新一次,缺省2s。
stp tc-protection threshold 5

1.5.4 STP的环路保护

如果上游接口长时间收不到BPDU直接阻塞该接口。如光纤中的某条链路。
环路保护功能只能在根端口或Alternate端口上配置生效。
stp loop-protection
如果根端口收不到来自上游的BPDU时,根端口会被设置进入阻塞状态;

STP生成树协议详解相关推荐

  1. 计算机网络之STP(Spanning Tree Protocol)生成树协议详解及其实验配置

    目录 1.STP概念 1.1  STP选举过程 1.1.1 根桥和根端口的选举 1.1.2 端口角色的选举 2.STP端口状态解释及转换 2.1 STP的五种端口状态 2.2 STP过程中的两种常见问 ...

  2. STP和RSTP详解-原理篇

    STP和RSTP详解-原理篇 一.STP 1.1 STP基本概念 1.2 STP三个定时器 1.3 STP BPDU报文 1.3.1 配置 BPDU 1.3.2 TCN BPDU 1.3.3 BPDU ...

  3. nb服务器协议,nb-iot协议详解

    设计的优点是都能部署在现在的LTE网络,只需要对基站和核心网的软件进行升级即可,不需要为IoT物联网通讯专门设计并建设一个专门网络,可以大大降低建设成本.与LTE一样,NB-IoT终端在开机并搜索载波 ...

  4. HTTP协议详解(真的很经典)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  5. 广播风暴及STP生成树协议

    广播风暴: 广播风暴指的是交换机在发送数据时因为环路问题而向网络中发送了过多的广播信息. 为了解决这个问题,就出现了STP生成树协议. STP生成树协议: STP通过阻塞端口来消除环路,并实现链路备份 ...

  6. Http 协议详解笔记

    HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...

  7. Http协议 详解(转载)

    http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分 ...

  8. ARP协议详解之ARP动态与静态条目的生命周期

    ARP协议详解之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自动添加和删除. q  每个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉.所以,生 ...

  9. ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御

    ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3  ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...

最新文章

  1. Kubuntu 9.10设置支持文件分级的方法
  2. iOS性能优化 启动
  3. [疑问]您没有调试该服务器的权限。验证您是服务器上Debuger Users组的成员。...
  4. 研磨设计模式之 策略模式--转
  5. python——import导入模
  6. Python中两个浮点数的简单运算
  7. 局域网linux唤醒windows,局域网唤醒 (WOL - Wake on LAN) | 远程启动计算机- ManageEngine OpUtils...
  8. 分享SEO关键字如何精准报价--迅脉互联
  9. java学习资料整理(开发必备)
  10. 如何在Mac上裁剪图片,教你几个技巧
  11. 【粤教版必修二《信息系统与社会》】知识总结与题目分析
  12. 解决phpmyadmin加载慢问题
  13. 2019 力扣杯全国秋季编程大赛:3. 机器人大冒险(模拟)
  14. 计算机解决问题的几个必要,1–1计算机解决问题的过程.ppt
  15. 长沙计算机学院欧阳登轶,我校学生在2020年湖南省第十六届“强智杯”大学生计算机程序设计竞赛中喜获一等奖...
  16. 分享几个影视采集网站
  17. 【C语言练习——打印上三角及其变形(带空格版)】
  18. 离散数学中 集合、关系、群 的证明方法(英文证明附例题)
  19. Python科学计算的瑞士军刀——Anaconda 安装与配置
  20. Kubernetes Pod Evicted

热门文章

  1. ArcGIS10.3+Server实现BS架构的车辆监控系统
  2. 响应式实例-兰途科技(jq)
  3. ES6转ES5 你需要Babel
  4. oracle统计信息内容,oracle搜集统计信息
  5. java数组转换为集合
  6. Office/Access 2013 扩展支持xbase/DBF 文件
  7. 惠普实习笔记(一):入门servlet
  8. 阿里AI新物种!设计机器人两年赶上资深员工水平
  9. 墨绿极简复古风总结汇报PPT模板
  10. Threes.js入门篇之7 - 场景光照