A模块 系统与网络安全 第四门课 弹性交换网络-2
今日目标
- STP协议概述
- STP工作原理
- 选举根端口和指定端口
- BPDU
- MSTP工作原理及配置
- MSTP负载均衡
1 STP协议概述
1.1 环路的危害
单点故障
- PC之间的互通链路仅仅存在1个
任何一条链路出现问题,PC之间都会无法通信
解决方案
- 提高网络可靠性
增加冗余/备份链路
产生新的问题
- 增加备份链路后交换网络上产生二层环路
PC1访问PC2,PC1知道PC2的IP地址,但是不知识PC2的MAC地址
PC1会发送ARP广播(目的MAC为全FFFF数据帧)
环路导致广播风暴
- 环路导致广播风暴
交换机收到广播帧后,会从除接收端口外的其他所有接口广播
广播帧在交换机之间一直循环下去,众多的广播帧最终形成广播风暴
广播风暴导致网络不可用
- 广播风暴导致网络瘫痪
广播帧增多形成广播风暴,从而导致链路拥塞,并极大消耗设备资源,最终导致网络拥塞不可用,还会导致设备宕机不可用
1.2 消除环路:STP协议
STP概述
- STP:生成树协议(IEEE802.1d)
STP:Spanning Tree Protocol(生成树协议)
通过阻塞某个接口在逻辑上断开环路,防止广播风暴,破除二层环路
当主线路故障,阻塞接口被激活,主线路恢复,备份线路再次被阻塞
- STP:生成树协议
交换机之间通过周期性的发送BPDU报文,来实现STP的功能 - BPDU:桥协议数据单元
Bridge Protocol Data Unit一桥协议数据单元,即STP协议的报文也称二层的“心跳报文”,周期性发送,默认每2秒发送1次组播发送,组播MAC地址为:01-80-C2-00-00-00
2 STP工作原理
STP工作原理
步骤1:选举根交换机
步骤2:在每个非根交换机上选举1个根端口
步骤3:在每条链路(每个网段)上选举1个指定端口
步骤4:阻塞非根端口、非指定端口
2.1 选举根交换机
选举根交换机
- 根网桥(根交换机)
STP引入了根桥(Root Bridge)概念
在一个STP网络中,根桥只有一个
STP初始化时,所有的交换机都认为自己是“根交换机”
交换机之间通过比较BID的来确定根交换机,BD值小的为根交换机 - 网桥ID(BID)
STP协议为交换机取的名字,用于在交换网络中唯一标识该设备
BID是优先级与MAC地址组成,BID值越小越优先
B1D优先级取值范围:0~61440、默认值是:32768
BID优先级步长值:4096(0或4096的倍数)
- 通常根据BID优先级,选择根交换机
BD值小的为根交换机,首先比较优先级,优先级小的为根交换机
如果优先级一致,则MAC地址小的为根交换机
STP配置命令
- 启动或关闭交换机的STP功能
默认情况下交换机的STP功能处于开启状态
[Huawei]stp {enable disable}
- 选择交换机的STP运行模式
默认情况下交换机的STP运行模式为MSTP
[Huawei]stp mode (stp|rstp mstp}
- 修改交换机的STP优先级,设置根交换机
[Huawei]stp priority 4096 //设置STP的优先级为4096
- 查看生成树状态信息
[Huawei]display stp
3 选举根端口和指定端口
3.1 选举根端口
- 根端口定律
非根交换机中有且只有一个根端口 - 选举根端口原则
非根交换机到根交换机的根路径开销值最小的端口(此端口到根的路径成本之和最低)如果根路径开销值相同,则比较对端交换机的BID,越小越优
如果对端BID也相同,则比较对端的PID,越小越优(PID由端口优先级和端口号组成,优先级取值范围:0~240、步长值为16、端口优先级默认为128,所以端☐号小PID就小)
- 路径开销(路径成本):Cost
交换机的每一个端口都有一个路径开销-Cost值
交换机端口Cost值和端口带宽有关,带宽越高,Cost值越小
默认情况下千兆端口开销为20000
默认情况下百兆端口开销为200000
- 在非根网桥SW2/SW3上,选择一个根端口(RP)
到根交换机的根路径开销值最小的端口,即根端口
SW2/SW3的根端口为G0/0/1
3.2 选举指定端口
- 指定端口定律
在每条链路上选择一个指定端口
根交换机的接口全是指定端口 - 选举指定端口原则
一条链路上,到根交换机的根路径开销值最小的端口,即指定端口
如果根路径开销相同,则比较接口所在交换机的BID,越小越优
如果交换机的BID也相同,则比较=PID,越小越优
3.3 生成树算法的结果
- 最后剩下的端口,被阻塞
- 最终形成“数据转发路径”
- 被“阻塞”的链路,作为“备份”链路
4 BPDU
- BPDU的4个关键字段,用于选举交换机角色和端口角色
BPDU报文字段 | 字段作用 |
---|---|
协议ID | |
协议版本号 | |
报文类型 | |
拓扑变化标志 | |
根网桥ID | 当前根桥的BID |
根路径开销 | 本端口累计到根桥的开销值(Cost) |
发送网桥ID | 本交换设备的BID |
端口ID | 发送该BPDU报文的端口ID (PID) |
报文老化时间 | |
消息老化时间 | |
发送报文间隔时间 | |
转发延迟时间 |
STP的收敛
- STP端口的5种状态
状态 | 用途 |
---|---|
禁用(Disabled) | 强制关闭,没有启用STP协议 |
阻塞(Blocking) | 只接收BPDU,不能发送BPDU |
侦听(Listening) | 比较BPDU,确定交换机角色和端口角色 |
学习(Learning) | 基于端口上收到的数据帧,学习MAC地址表 |
转发(Forwarding) | 端口的最终的完美状态,发送和接收用户数据 |
-
STP的3种计时器,用于维护STP
Hello时间:端口发送BPDU报文的时间间隔,默认是2s
转发延迟(Forward delay):端口从侦听到学习状态,分别停留的时间
最大老化时间(Max Age):一个端口最大的“没有接收BPDU”的时间间隔 -
STP的收敛时间为:30s~50s,非常慢
5 MSTP工作原理及配置
STP回顾
-
弊端
收敛时间慢:30s~50s
设备利用率低 -
方案
RSTP,快速生成树协议
MSTP,多生成树协议
RSTP概述
- RSTP:快速生成树协议
STP的基础上优化而来
实现网络的快速收敛,降低网络故障时间,提高数据转发的效率 - RSTP对STP的改进
增加了2种端口角色(AP和BP)
RSTP将STP的5种状态减少到了3种:转发(Forwarding)、学习(Learning)、丢弃(Discarding)
引入了让指定端口尽快进入转发状态的机制(P/A机制) - RSTP的不足
RSTP和STP有一个共同缺陷:局域网内所有的VLAN共享一棵生成树。
所有的VLAN的数据转发路径是相同的。
交换机之间的多个链路,只能实现备份的作用,永远只会使用其中的主链路转发数据,无法实现VLAN数据流的负载均衡,从而无法提高设备利用率,还有可能造成部分VLAN的数据流无法转发。
MSTP概述
- MSTP,即Multiple STP,多生成树协议
RSTP的基础上优化而来
MSTP网络中,引入了域的概念,称为MST域
每个MST域中包含一个或多个“生成树”称之为“实例”
引入了实例(instance)的概念,实现VLAN数据流的负载均衡
默认情况下,所有的VLAN都属于同一个默认的实例-Instance0
可以基于需求,可以将不同的VLAN分配到不同的实例中
不同的实例,就是不同的“生成树”,就对应着多个不同的“根桥”
配置思路
1. 每个交换机创建相同的VLAN
2. 交换机之间的链路配置为Trunk,允许所有的VLAN通过
3. 交换机启用STP协议,配置模式为MSTP
4. 交换机指定MST域的域名、实例和vlan的对应关系
5. 交换机上激活MST域的配置
6. 验证与测试MST域的配置
- 同一个MST域的交换机配置特点:
都启动了MSTP
域名配置相同
实例配置相同
6 MSTP负载均衡衡
- STP/RSTP的弊端
所有的VLAN共用一个“生成树”,防止环路的同时只能确保一半的设备得到利用,另外
一半的设备仅仅用作“备份”,无法提高设备的利用率 - MSTP负载均衡
不同的VLAN关联到不同的实例
不同的实例的根交换机放置在不同的交换机上
不同的VLAN通过不同的根交换机进行数据的转发,从而确保提高设备的利用率,同时设
备之间还能实现备份
- 需求描述
PC1属于VLAN10,IP地址为192.168.10.1/24,网关为192.168.10.254
PC2属于VLAN20,1P地址为192.168.20.1/24,网关为192.168.20.254
确保PC1与PC2互通
合理配置MSTP,确保PC1与PC2之间的互通路径是最优的
练习
- 选举根交换机
- 理解STP工作原理
- MSTP负载均衡一
- MSTP负载均衡二
1 选举根交换机
1.1 问题
设置SW1的STP优先级为4096,让SW1成为根交换机
查看根交换机信息
1.2 方案
使用eNSP 搭建实全环境,如图-1所示。
图-1
1.3 步骤
实现此案例需要按照如下步骤进行。
[SW1]stp priority 4096 //设置STP的优先级为4096
<SW1>display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :4096 .4c1f-ccca-079f (本机的BID)
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :4096 .4c1f-ccca-079f / 0 (根网桥的BID)
<SW2>display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-ccb9-2000 (本机的BID)
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :4096 .4c1f-ccca-079f / 20000 (根网桥的BID)
<SW3>display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-cc9e-6330 (本机的BID)
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :4096 .4c1f-ccca-079f / 20000 (根网桥的BID)
2 理解STP工作原理
2.1 问题
如何选择根网桥、根端口、指定端口、被阻塞的端口?
2.2 方案
使用eNSP 搭建实全环境,如图-2所示。
图-2
2.3 步骤
实现此案例需要按照如下步骤进行。
1)设置工作模式为STP,并设置SW1/SW2的STP的优先级
[SW1]stp priority 4096 //设置STP的优先级为4096
[SW2]stp priority 8192 //设置STP的优先级为8192
[SW1]display stp brief //显示STP简要信息
[SW2]display stp brief //显示STP简要信息
[SW3]display stp brief //显示STP简要信息
2)选择根网桥
网桥ID最小
3)选择根端口(非根网桥)
此端口到达根网桥路径成本最低
此端口直连网桥ID最小
4)选择指定端口(每根网线)
根网桥上所有端口都是指定端口
此端口所在交换机到达根网桥成本最低
此端口所在的换机的网桥ID最小
3 MSTP负载均衡一
3.1 问题
3.2 方案
使用eNSP搭建实验环境,如图-3所示。
图-3
3.3 步骤
实现此案例需要按照如下步骤进行。
[S1]vlan batch 10 20
[S1]port-group 1
[S1-port-group-1]group-member g0/0/5 g0/0/6
[S1-port-group-1]port link-type trunk
[S1-port-group-1]port trunk allow-pass vlan 10 20
[S2]vlan batch 10 20
[S2]port-group 1
[S2-port-group-1]group-member g0/0/5 g0/0/6
[S2-port-group-1]port link-type trunk
[S2-port-group-1]port trunk allow-pass vlan 10 20
[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 10 20
[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
[S1]stp mode mstp 启用MSTP协议
[S1]stp region-configuration 创建MSTP区域
[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 创建MSTP区域
[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 创建MSTP区域
[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激活区域配置
[S1]stp instance 1 priority 4096
[S2]stp instance 2 priority 4096
<S1>display stp instance 1 brief
查看S1的instance 1 g0/0/5 g0/0/6都是指定接口
<S2>display stp instance 2 brief
查看S2的instance 2 g0/0/5 g0/0/6都是指定接口
4 MSTP负载均衡二
4.1 问题
1)PC1属于 vlan 10 ,IP地址为 192.168.10.1/24,网关为 192.168.10.254
2)PC2属于 vlan 20 ,IP地址为 192.168.20.1/24,网关为 192.168.20.254
3)确保PC1与PC2互通
4)配置 MSTP ,SW1为 vlan10的主根、vlan20的次根,SW2为vlan10的主根、vlan10的次根
4.2 方案
使用eNSP搭建实验环境,如图-4所示。
图-4
4.3 步骤
实现此案例需要按照如下步骤进行。
[S1]VLAN batch 10 20
[S1]port-group 1
[S1-port-group-1]group-member G0/0/5 G0/0/6
[S1-port-group-1]port link-type trunk
[S1-GigabitEthernet0/0/5]port trunk allow-pass vlan ALL
[S2]VLAN batch 10 20
[S2]port-group 1
[S2-port-group-1]group-member G0/0/5 G0/0/6
[S2-port-group-1]port link-type trunk
[S2-GigabitEthernet0/0/5]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-GigabitEthernet0/0/5]port trunk allow-pass vlan ALL
[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 激活区域配置
[S1]stp instance 1 priority 0
[S1]stp instance 2 priority 4096
[S2]stp instance 2 priority 0
[S2]stp instance 1 priority 4096
[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
[S1]interface GigabitEthernet 0/0/1
[S1-GigabitEthernet0/0/1]port link-type access
[S1-GigabitEthernet0/0/1]port default vlan 10
[S2]interface GigabitEthernet 0/0/2
[S2-GigabitEthernet0/0/2]port link-type access
[S2-GigabitEthernet0/0/2]port default vlan 20
[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
pc1 ping pc2 通<S1>display stp instance 1 brief
查看S1的instance 1 g0/0/5 g0/0/6都是指定接口
<S2>display stp instance 2 brief
查看S2的instance 2 g0/0/5 g0/0/6都是指定接口