弹性交换网络

STP协议概述

单点故障

PC之间的互通链路仅仅存在1个

  • 任何一条链路出现问题,PC之间都会无法通信

4.2.1

解决方案

提高网络可靠性

  • 增加冗余/备份链路

4.2.2

产生新的问题

增加备份链路后交换网络上产生二层环路

  • PC1访问PC2,PC1知道PC2的IP地址,但是不知识PC2的MAC地址

  • PC1会发送ARP广播(目的MAC为全FFFF数据)

4.2.3

环路导致广播风暴

  • 交换机收到广播帧后,会从除接收端口外的其他所有接口广播
  • 广播帧在交换机之间一直循环下去,众多的广播帧最终形成广播风暴

4.2.4

广播风暴导致网络瘫痪

  • 广播帧增多形成广播风暴,从而导致链路拥塞,并极大消耗设备资源,最终导致网络拥塞不可用,还会导致设备宕机不可用

4.2.5

STP概述

STP:生成树协议 (IEEE802.1d)

  • STP:Spanning Tree Protocol(生成树协议)
  • 通过阻塞某个接口在逻辑上断开环路,防止广播风暴,破除二层环路
  • 当主线路故障,阻塞接口被激活,主线路恢复,备份线路再次被阻塞
  • 交换机之间通过周期性的发送BPDU报文,来实现STP的功能

4.2.6

BPDU:桥协议数据单元

  • Bridge Protocol Data Unit ,桥协议数据单元,即STP协议的报文
  • 也称二层的”心跳报文”,周期性发送,默认每2秒发送1次
  • 组播发送,组播MAC地址为:01-80-C2-00-00-00

STP工作原理

STP工作原理

  • 步骤一:选举根交换机

  • 步骤二:在每个非根交换机上选举一个根端口

  • 步骤三:在每条链路上选举一个指定端口

  • 步骤四:阻塞非根端口、非指定端口

4.2.7

选举根交换机

根网桥(根交换机)

  • STP引入了根桥(Root Bridge)概念
  • 在一个STP网络中,根桥只有一个
  • STP初始化时,所有的交换机都认为自己是”根交换机”
  • 交换机之间通过比较BID的来确定根交换机,BID值小的为根交换机

网桥ID(BID)

  • STP协议为交换机取的名字,用于在交换网络中唯一标识该设备
  • BID是优先级与MAC地址组成,BID值越小越优先
  • BID优先级取值范围:0~61440、默认值是:32768
  • BID优先级步长值:4096 (0或4096的倍数)

4.2.8

通常根据BID优先级,选择根交换机

  • BID值小的为根交换机,首先比较优先级,优先级小的为根交换机
  • 如果优先级一致,则MAC地址小的为根交换机

4.2.9

STP配置命令

1
2
3
4
5
6
7
8
9
10
11
1.启动或关闭交换机的STP功能,默认情况下交换机的STP功能处于开启状态
[Huawei]stp {enable | disable}

2.选择交换机的STP运行模式,默认情况下交换机的STP运行模式为MSTP
[Huawei]stp mode {stp | rstp | mstp}

3.修改交换机的STP优先级,设置根交换机
[Huawei]stp priority 4096

4.查看生成树状态信息
[Huawei]display stp

选举根端口和指定端口

选举根端口

根端口定律

  • 非根交换机中有且只有一个根端口

选举根端口原则

  • 非根交换机到根交换机的根路径开销值最小的端口(此端口到根的路径成本之和最低)如果根路径开销值相同,则比较对端交换机的BID,越小越优
  • 如果对端BID也相同,则比较对端的PID,越小越优(PID由端口优先级和端口号组成优先级取值范围:0~240、步长值为16、端口优先级默认为128,所以端口号小PID就小)

4.2.10

路径开销(路径成本):Cost

  • 交换机的每一个端口都有一个路径开销-Cost值
  • 交换机端口Cost值和端口带宽有关,带宽越高,Cost值越小
  • 默认情况下千兆端口开销为20000
  • 默认情况下百兆端口开销为200000

4.2.11

在非根网桥SW2/SW3上,选择一个根端口(RP)

  • 到根交换机的根路径开销值最小的端口,即根端口
  • SW2/SW3的根端口为G0/0/1

4.2.12

选举指定端口

指定端口定律

  • 在每条链路上选择一个指定端口
  • 根交换机的接口全是指定端口

选举指定端口原则

  • 一条链路上,到根交换机的根路径开销值最小的端口,即指定端口
  • 如果根路径开销相同,则比较接口所在交换机的BID,越小越优
  • 如果交换机的BID也相同,则比较PID,越小越优

BPDU

BPDU

BPDU的4个关键字段,用于选举交换机角色和端口角色

BPDU报文字段 字段作用
协议ID
协议版本号
报文类型
拓扑变化标志
根网桥ID 当前根桥的BID
根路径开销 本端口累计到根桥的开销值(Cost)
发送网桥ID 本交换设备的BID
端口ID 发送该BPDU报文的端口ID(PID)
报文老化时间
消息老化时间
发送报文间隔时间
转发延迟时间

BPDU类型

  • 配置 BPDU
  • 拓扑变更BPDU

STP的收敛

STP端口的5种状态

状态 用途
禁用(Disabled) 强制关闭,没有启用STP协议
阻塞(Blocking) 只接收BPDU,不能发送BPDU
侦听(Listening) 比较BPDU,确定交换机角色和端口角色
学习(Learning) 基于端口上收到的数据帧,学习MAC地址表
转发(Forwarding) 端口的最终完美状态,发送和接收用户数据

STP的3种计时器,用于维护STP

  • Hello时间:端口发送BPDU报文的时间间隔,默认是2s
  • 转发延迟(Forward delay):端口从侦听到学习状态,分别停留的时间,15s
  • 最大老化时间(Max Age):一个端口最大的”没有接收BPDU”的时间间隔,20s

STP的收敛时间为:30~50s,非常慢

  • 根交换机故障,STP的收敛时间约50秒
  • 链路故障:STP的收敛时间约30~50秒

4.2.13

MSTP工作原理及配置

STP回顾

弊端

  • 收敛时间慢:30s~50s
  • 设备利用率低

方案

  • RSTP,快速生成树协议
  • MSTP,多生成树协议

RSTP概述

RSTP:快速生成树协议

  • 公有协议:IEEE802.1w
  • STP的基础上优化而来
  • 实现网络的快速收敛,降低网络故障时间,提高数据转发的效率

RSTP对STP的改进

  • 增加了2种端口角色(AP和BP)
    • Backup Port(备份端口)主要是由于Designated Port的故障而触发的。当Designated Port发生故障时,Backup Port会立即开始转发数据
    • Alternate Port(备用端口)网络拓扑发生变化时触发状态转换,并转变为指定(designated)端口或根(root)端口,从而提供冗余路径
  • 减少了3个端口状态(阻塞、学习、转发合为一种)
  • 引入了让指定端口尽快进入转发状态的机制(P/A机制)

RSTP的不足

  • RSTP和STP有一个共同缺陷:局域网内所有的VLAN共享一颗生成树
  • 所有的VLAN的数据转发路径是相同的
  • 交换机之间的多个链路,只能实现备份的作用,永远只会使用其中的主链路转发数据,无法实现VLAN数据流的负载均衡,从而无法提高设备利用率,还有可能造成部分VLAN的数据流无法转发。

MSTP概述

MSTP,即Multiple STP,多生成树协议

  • RSTP的基础上优化而来
  • MSTP网络中,引入了域的概念,称为MST域
  • 每个MST域中包含一个或多个”生成树”称之为”实例”
  • 引入了实例”instance”的概念,实现VLAN数据流的负载均衡
  • 默认情况下,所有的VLAN都属于同一个默认的实例 – instance 0
  • 可以基于需求,将不同的VLAN分配到不同的实例中
  • 不同的实例,就是不同的生成树,就对应着多个不同的根桥

配置思路

每个交换机创建相同的VLAN

交换机之间的链路配置为 Trunk,允许所有的VLAN通过

交换机启用STP协议,配置模式为MSTP

交换机指定MST域的域名、实例和vlan的对应关系

交换机上激活MST域的配置

验证与测试MST域的配置

同一个MST域的交换机配置特点:

  • 都启动了MSTP
  • 域名配置相同
  • 实例配置相同

MSTP负载均衡

MSTP负载均衡

STP/RSTP的弊端

  • 所有的VLAN共用一个”生成树”,防止环路的同时只能确保一半的设备得到利用,另外一半的设备仅仅用作”备份”,无法提高设备的利用率

MSTP负载均衡

  • 不同的VLAN关联到不同的实例
  • 不同的实例的根交换机放置在不同的交换机上
  • 不同的VLAN通过不同的根交换机进行数据的转发,从而确保提高设备的利用率,同时设备之间还能实现备份

4.2.14

需求描述

  • PC1属于VLAN10,IP地址为192.168.10.1/24,网关为192.168.10.254

  • PC2属于VLAN20,IP地址为192.168.20.1/24,网关为192.168.20.254

  • 确保PC1与PC2互通

  • 合理配置MSTP,确保PC1与PC2之间的互通路径是最优的

  • 配置命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
1.S1、S2、S3创建vlan并配置连接交换机的端口为trunk
[S1]VLAN batch 10 20
[S1]port-group 1
[S1-port-group-1]group-member G0/0/3 G0/0/10
[S1-port-group-1]port link-type trunk
[S1-port-group-1]port trunk allow-pass vlan ALL

[S2]VLAN batch 10 20
[S2]port-group 1
[S2-port-group-1]group-member G0/0/4 G0/0/10
[S2-port-group-1]port link-type trunk
[S2-port-group-1]port trunk allow-pass vlan ALL

[S3]VLAN batch 10 20
[S3]port-group 1
[S3-port-group-1]group-member G0/0/5 G0/0/6
[S3-port-group-1]port link-type trunk
[S3-port-group-1]port trunk allow-pass vlan ALL

2.S1、S2、S3配置MSTP区域并激活
[S1]stp mode mstp 启用MSTP协议
[S1]stp region-configuration 创建区域
[S1-mst-region]region-name ntd 定义区域名为ntd
[S1-mst-region]instance 1 vlan 10 指定vlan与实例的对应关系
[S1-mst-region]instance 2 vlan 20
[S1-mst-region]active region-configuration 激活区域配置


[S2]stp mode mstp 启用MSTP协议
[S2]stp region-configuration 创建区域
[S2-mst-region]region-name ntd 定义区域名为ntd
[S2-mst-region]instance 1 vlan 10 指定vlan与实例的对应关系
[S2-mst-region]instance 2 vlan 20
[S2-mst-region]active region-configuration 激活区域配置

[S3]stp mode mstp 启用MSTP协议
[S3]stp region-configuration 创建区域
[S3-mst-region]region-name ntd 定义区域名为ntd
[S3-mst-region]instance 1 vlan 10 指定vlan与实例的对应关系
[S3-mst-region]instance 2 vlan 20
[S3-mst-region]active region-configuration 激活区域配置

3.配置S1为vlan10的主根、vlan20的次根网桥并查看配置
[S1]stp instance 1 priority 4096
[S1]stp instance 2 priority 8192

4.配置S2为vlan20的主根、vlan10的次根根网桥并查看配置
[S2]stp instance2 priority 4096
[S2]stp instance 1 priority 8192

5.配置PC1加入vlan10、PC2加入vlan20
[S3]interface GigabitEthernet 0/0/1
[S3-GigabitEthernet0/0/1]port link-type access
[S3-GigabitEthernet0/0/1]port default vlan 10
[S3]interface GigabitEthernet 0/0/2
[S3-GigabitEthernet0/0/2]port link-type access
[S3-GigabitEthernet0/0/2]port default vlan 20

6.配置S1与路由相连的接口加入vlan10
[S1]interface GigabitEthernet 0/0/1
[S1-GigabitEthernet0/0/1]port link-type access
[S1-GigabitEthernet0/0/1]port default vlan 10

7.配置S2与路由相连的接口加入 vlan20
[S2]interface GigabitEthernet 0/0/2
[S2-GigabitEthernet0/0/2]port link-type access
[S2-GigabitEthernet0/0/2]port default vlan 20

8.配置路由器接口IP
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.10.254 24
[R1]interface GigabitEthernet 0/0/2
[R1-GigabitEthernet0/0/2]ip address 192.168.20.254 24

9.测试与验证
pc1 ping pc2 通

10.查看验证
<SW3>display stp brief
查看S1的instance 1 g0/0/3 g0/0/10都是指定接口
查看S2的instance 2 g0/0/4 g0/0/10都是指定接口