第 6 章 生成树协议

Preview:

DESCRIPTION

第 6 章 生成树协议. 本章概述. 教学目的:. 通过本章教学,掌握生成树协议的作用;掌握 802.1D, 802.1W 生成树协议的工作原理以及它们之间的区别;掌握生成树协议的配置方法。. 本章重点:. 生成树协议的工作原理;生成树协议的配置。. 本章难点:. 生成树协议的工作原理;不同生成树协议区别。. 6.1 STP 协议. 6.1.1 STP 协议的重要性. - PowerPoint PPT Presentation

Citation preview

第 6 章 生成树协议

本章概述教学目的:

通过本章教学,掌握生成树协议的作用;掌握802.1D, 802.1W 生成树协议的工作原理以及它们之间的区别;掌握生成树协议的配置方法。

本章重点: 生成树协议的工作原理;生成树协议的配置。

本章难点: 生成树协议的工作原理;不同生成树协议区别。

6.1 STP 协议 6.1.1 STP 协议的重要性

生成树协议( Spanning Tree Protocol )是一个非常重要,却又容易被忽略的协议。一个没有在一开始就规划好 STP 的网络,将意味着没完没了地配置、排除故障。并且园区网的维护精力可能要全部放在 STP 上。

STP 是一种提供园区网冗余链路,而又不会产生环路的协议。在交换网络中为什么不能有环路呢?

6.1 STP 协议 6.1.2 交换网络中环路的危害

1. 会产生广播环路

Segment 1

Segment 2

Server/host X Router Y

6.1 STP 协议 6.1.2 交换网络中环路的危害

1. 会产生广播环路

Segment 1

Segment 2

Router Y

Broadcast

Switch A Switch B

6.1 STP 协议 6.1.2 交换网络中环路的危害

1. 会产生广播环路

Segment 1

Segment 2

Server/host X Router Y

BroadcastSwitch A Switch B

6.1 STP 协议 6.1.2 交换网络中环路的危害

2. 桥接表( MAC )地址表不稳定

Segment 1

Segment 2

Server/host X Router Y Unicast

Switch A Switch B

6.1 STP 协议 6.1.2 交换网络中环路的危害

2. 桥接表( MAC )地址表不稳定

Segment 1

Segment 2

Server/host X Router Y

Unicast

Switch A Switch B

Unicast

Unicast

6.1 STP 协议 6.1.2 交换网络中环路的危害

2. 桥接表( MAC )地址表不稳定

Segment 1

Segment 2

Server/host X Router Y

Unicast Unicast

Switch A Switch B

Port 0

Port 1

Port 0

Port 1

6.1 STP 协议 6.1.2 交换网络中环路的危害

2. 桥接表( MAC )地址表不稳定

Segment 1

Segment 2

Server/host X Router Y

Unicast Unicast

Switch A Switch B

Port 0

Port 1

Port 0

Port 1

6.1 STP 协议 6.1.2 交换网络中环路的危害

而生成树协议 STP 能使一个具有冗余信息的环路转变成一个没有环路的树。

Blockx

6.1 STP 协议 6.1.3 生成树协议的三个参数

IEEE802.1d 标准定义了 STP 所使用的生成树协议。该协议依赖于三个参数。

1. 网桥 ID ( BID ) 由 BID 决定网络的根节点,即根网桥。即 BI

D 最小的网桥为根网桥。 BID 由 8 个字节构成,前 2 个字节表示优先级,默认为 32768 。可取范围为 0~65535 。后 6 个字节为交换机的 MAC 地址。

网桥优先级 MAC

2 字节范围: 0~65535默认值: 32768

6 字节来源于背板 / 监控器

6.1 STP 协议 6.1.3 生成树协议的三个参数

2. 路径开销 是用来衡量网桥之间距离的一个参数。是两

个桥之间所有链路开销的总和。不同带宽的链路有不同的链路开销。有两种计算方法。一种是短整形计算方法。即用 1000Mbit/s 除以以 Mbit/s 为单位的链路带宽。另一种是长整形计算方法。分别如下表所示。

交换机是用路径开销来决定到根交换机的最佳路径。最短链路组合具有最小累计路径开销,并成为到根交换机的最佳路径。

6.1 STP 协议 6.1.3 生成树协议的三个参数

带宽 STP开销 带宽 STP开销

4Mbit/s 250 155Mbit/s 14

10Mbit/s 100 622Mbit/s 6

16Mbit/s 62 1Gbit/s 4

45Mbit/s 39 10Gbit/s 2

100Mbit/s 19

6.1 STP 协议 6.1.3 生成树协议的三个参数

带宽 STP开销 带宽 STP开销

4kbit/s 200000000 10Gbit/s 2000

1Mbit/s 20000000 100Gbit/s 200

10Mbit/s 2000000 1Tbit/s 20

100Mbit/s 200000 10Tbit/s 2

1Gbit/s 20000

6.1 STP 协议 6.1.3 生成树协议的三个参数

3. 端口 ID 用来决定到根交换机的路径。它由两个字节

构成,包括优先级和端口号。其中 6 位表示优先级, 8 位表示端口号。优先级是一个可配置的 STP 参数,在大多数交换机上为 0-255 ,默认为 128 。端口号是用来列举端口的数字标志。

端口优先级 端口号

6 比特 10 比特

6.1 STP 协议 6.1.4 STP 工作原理

网桥之间通过交换网桥协议数据单元( BPDU )的第 2 层帧来传递生成树信息。每个端口保存着最佳 BPDU 。当网桥第一次被激活时,其所有端口每隔 2 秒(默认 hello 时间)发送一次 BPDU 。如果一个端口收到比自己发送好的 BPDU ,则该端口就停止发送 BPDU 。如果 20 秒(默认的最大生成时间)的时间没有从邻居收到更好的BPDU ,则本地端口将重新开始发送 BPDU 。

6.1 STP 协议 6.1.4 STP 工作原理

1. 选举根交换机 以 BID 最小的交换机作为根交换机。在交换机刚启动

时,总是将自己的 BID 存入到根 BID 域,然后如果收到更好的 BPDU ,则将更好 BPDU 中的相关交换机列为根BID ,并进行发送。

Switch CMAC 0c0022222222Default priority 32768

Switch BMAC 0c0011111111Default priority 32768

1/1

1/2

1/1

1/2

SwitchAMac 0c0011110000Default priority 32768

1/1

100baseT

100baseT

1/2

6.1 STP 协议 6.1.4 STP 工作原理

2. 选举根端口 根端口就是按照路径开销最靠近根交换机的

端口。每一个非根交换机必须选举一个根端口。根交换机在发送 BPDU 时,根路径开销为 0 ,然后每到一个端口根据路径开销进行累加并发送。

Switch CMAC 0c0022222222Default priority 32768

Switch BMAC 0c0011111111Default priority 32768

1/1

1/2

1/1

1/2

SwitchAMac 0c0011110000Default priority 327681/1

100baseT

100baseT

1/2

6.1 STP 协议 6.1.4 STP 工作原理

3. 选举指定端口 桥接网络的每个网段必须有一个指定端口。

它既能向根交换机发送流量,也能从根交换机接收流量。一个包含指定端口的网桥称为指定网桥。指定端口也是依照到根交换机的路径开销而选定。如果开销相等,则根据网桥的 BID确定。非指定端口就处于阻塞状态。

6.1 STP 协议 6.1.4 STP 工作原理

Switch CMAC 0c0022222222Default priority 32768

Switch BMAC 0c0011111111Default priority 32768

1/1

1/2

1/1

1/2

SwitchAMac 0c0011110000Default priority 32768

1/1

100baseT

100baseT

1/2

6.1 STP 协议 6.1.5 STP 状态

1. 禁用状态 是管理性的关闭 STP状态,它不是正常 STP

端口的一部分。在交换机初始化之后,所有端口由阻塞状态开始。

2. 阻塞状态 丢弃从所连接的网段上收到的数据帧或通过

交换机内部转发的帧;接收到的 BPDU 并直接传递给系统模块;不传递从系统模块收到的 BPDU ;接收并响应网络管理消息,但不传递它们。

6.1 STP 协议 6.1.5 STP 状态

3. 侦听状态 如果一个网桥在它启动或在一定时间内没有收到 BP

DU 后立即认为自己是根交换机,端口进入侦听状态。 丢弃所连接网段收到的帧或其它端口交换来的帧;接

收 BPDU 并直接传递给系统模块;处理从系统模块收到的 BPDU ;接收并响应网络管理消息。

选举根交换机、根端口和指定端口都发生在侦听期间。 指定端口或根端口在 15 秒后进入学习状态。

6.1 STP 协议 6.1.5 STP 状态

4. 学习状态 是网桥不传递用户数据帧但构建桥接表一种 STP状态。将收到帧的源 MAC 地址放入桥接表。

丢弃所连接网段上收到的帧;丢弃从其他端口交换来需要转发的帧;接收 BPDU 并直接传递给系统模块;接收、处理并传递从系统模块收到的 BPDU ;接收并响应网络管理信息。

学习状态的生存时间同样受转发延迟定时器的控制,默认为 15 秒。

6.1 STP 协议 6.1.5 STP 状态

5. 转发状态 处于学习状态的端口在转发延迟定时器之后仍然是指

定端口或根端口,则将进入转发状态。 转发所有连接网段上收到的帧;转发从其他端口交换

来需要转发的帧;接收 BPDU 并直接传递给系统模块;处理从系统模块来的 BPDU ;接收并响应网络管理消息。

6.1 STP 协议 6.1.6 STP 定时器

1. Hello 时间 是发送配置 BPDU 的时间间隔。默认为 2 秒,控制

着根交换机生成配置 BPDU 。其它网桥收到后就立即扩散此 BPDU 。如果 20 秒没有收到根网桥的 BPDU或根网桥停止发送 BPDU ,则该网桥宣布保存的 BPDU无效并开始寻找新的根端口。

2. 转发延迟 是网桥花费在侦听和学习状态的时间长度。默认 15

秒。3. 最大生存时间 是一个控制在 BPDU 被网桥丢弃之前被保存多长时

间的 STP 定时器。最大生存时间问题只有当非直连链路出现故障时才会出现。非直连链路如下图所示。非直连 50 秒,直连 30 秒。

6.1 STP 协议 6.1.6 STP 定时器

Switch CMAC 0c0022222222Default priority 32768

Switch BMAC 0c0011111111Default priority 32768

1/1

1/2

1/1

1/2

SwitchAMac 0c0011110000Default priority 32768

1/1

100baseT

100baseT

1/2

6.1 STP 协议 6.1.7 BPDU 的格式

1. IEEE802.1D 的 STP BPDU格式

帧控制( 1 字节)

目的地址( 6 字节)

源地址( 6 字节)

逻辑链路控制( 3 字节)

IEEE BPDU

帧控制域总是 01目的地址: 0x800143000000源地址:本交换机所使用的 MAC 地址逻辑链路控制:指定所有 STP BPDU 的帧类型。这个域一般被置成 0x424203 。

6.1 STP 协议 6.1.7 BPDU 的格式

2.Cisco 的 STP BPDU格式

帧控制域总是 01目的地址: 0x800143000000源地址:本交换机所使用的 MAC 地址逻辑链路控制:指定所有 STP BPDU 的帧类型。这个域一般被置成 0x424203 。

帧控制( 1 字节)

目的地址( 6 字节)

源地址( 6 字节)

逻辑链路控制( 3 字节)

IEEE BPDU路由选择信息域( 3 字节)

6.1 STP 协议 6.1.7 BPDU 的格式

BPDU格式

协议标记、版本和消息类型总为 0标记域包括下面的一种: 拓扑变化 TC 位。该位为 1 则说明是一个拓扑变化通告,否则是一个配置 BPDU 拓扑变化确认 TCA 位。表示收到一个 TC 位被置位的配置信息。

协议标志( 2 字节)

版本( 1 字节)

消息类型( 1 字节)

根 ID( 8 字节)

标志( 1 字节)

根路径开销( 4 字节)

网桥 ID( 8 字节)

端口 ID( 2 字节)

消息生存时间

( 2 字节)

最大生存时间

( 2 字节)

Hello周期

( 2 字节)

转发延迟

( 2 字节)

6.1 STP 协议 6.1.7 BPDU 的格式

BPDU格式

消息生存时间:指根发送完当前配置消息已经过了多长时间。

协议标志( 2 字节)

版本( 1 字节)

消息类型( 1 字节)

根 ID( 8 字节)

标志( 1 字节)

根路径开销( 4 字节)

网桥 ID( 8 字节)

端口 ID( 2 字节)

消息生存时间

( 2 字节)

最大生存时间

( 2 字节)

Hello周期

( 2 字节)

转发延迟

( 2 字节)

6.2 STP 协议增强 6.2.1 概述

802.1D 的延迟较大,整个网络拓扑稳定大约需 50 秒的时间。为了使网络具有较快的收敛速度,Cisco 发明了三个对生成树增强的协议: portfast ,uplinkfast , backbonefast 。使用 UplinkFast 来加速上行链路发生故障时的收敛速度;使用 BackboneFast 可以快速诊断非直连的中继链路发生故障,使生成树快速收敛。

6.2 STP 协议增强 6.2.2 PorFast

该技术能使交换机或中继端口跳过侦听和学习状态,立即进入转发状态。对 IOS 交换机,只适应于连接到终端工作站的接入端口。 PortFast只在端口初始化的时候才生效。用于端口初始化的时候才生效。如果端口由于某种原因被迫进入阻塞状态,随后又需要回到转发状态,仍然要经过正常的侦听和学习过程。 启用 PortFast 的主要原因是为了防止启动周期小于 30 秒的 PC需要交换端口从未连接状态进入转发状态。如 DHCP 。

6.2 STP 协议增强 6.2.3 UplinkFast

UplinkFast 是当链路或交换机故障时,交换机加速选举新根端口的一个特性。无需经过侦听和学习状态,直接进入转发状态。 UplinkFast对于网络边缘的布线间交换机是非常有用的。不适用于骨干设备。 Uplink 在直连链路故障后提供快速收敛能力,并通过上行链路在冗余链路之间实现负载分担。 一旦交换机将一个备用端口转到转发状态,交换机开始在该端口上发送伪多播帧,每个伪多播帧使用桥接表中的工作站地址作为它的源 MAC 地址,伪多播地址 01-00-0C-CD-CD-CD 作为目的地址。收到这些伪多播帧的交换机立即使用这个新端口更新桥接表中每个源 MAC地址的表项,这使得交换机几乎立即开始使用新路径。

6.2 STP 协议增强 6.2.4 BackboneFast

BackboneFast 是交换机在根端口或阻塞端口从指定网桥收到一个劣质 BPDU 时会启动的一种特性。一个劣质 BPDU 标识一个交换机既是根交换机又是指定网桥,当收到一个劣质 BPDU ,就意味着该交换机的一个非直连链路出现故障。 BackboneFast 会使交换机忽略传统STP 的 20 秒的最大生存时间。交换机会考虑是否有一条备用路径到根交换机。有两种情况。 如果劣质 BPDU 到达一个阻塞端口,则交换上的根端口或其他阻塞端口成为到根交换机的备选路径。 如果劣质 BPDU 到达根端口,所有的阻塞端口都成为到根交换机的潜在备用路径。

6.3 快速 STP 802.1w6.3.1 概述

STP 协议是选好端口角色后等待 30 秒(转发延迟的 2倍时间)后再转发。整个网络拓扑的稳定大约需要50 秒的时间。而 RSTP 在网络拓扑发生变化的一瞬间就能恢复网络树型结构。他是通过发送 RSTP 特有的报文Proposal 来实现的。它的同步不依赖于定时器。

A B A B

A B C

A B C

Proposal

Proposal

F

FF

Agree

D R

Agree

FF

D R

FF

D R

FF

D R

6.3 快速 STP 802.1w6.3.2 RSTP 状态

不同于传统的 STP 的五种状态, RSTP只有三种状态。即丢弃、学习和转发状态。传统 STP 在将一个端口转入到转发状态时在被动等待网络拓扑收敛。而 RSTP可以主动去确认一个端口是否可以安全进入转发状态而不依赖于任何定时器。为达到快速收敛,协议依赖于两个参数—边缘端口和链路类型。 边缘端口:相当于 PortFast ,但与 PortFast 不同,边缘端口收到一个 BPDU 后,立即离开边缘端口状态成为一个正常的生成树端口。 RSTP 的链路类型有点到点和共享两种。

6.3 快速 STP 802.1w6.3.3 RSTP 端口角色

根端口、指定端口、备份端口和替代端口 ( 后两种相当于 802.1d 的阻塞状态 ) 。 一个端口需要接收 BPDU才能停留在阻塞状态。一个替代端口指该端口是因为从其他网桥收到更有用的 BPDU才处于阻塞状态。一个备份端口是因为从同一网桥收到更有用的 BPDU 而处于阻塞状态的端口,相当于 UplinkFast 。 替代端口提供了到根网桥的替代路径,可以在根端口发生故障时替代它。备份端口提供了到同一网段的冗余连通性,但不能确保替代到根交换机的连通性,它被排除在上行链路组之外。

6.3 快速 STP 802.1w6.3.3 RSTP 端口角色

当一个指定端口处于丢弃或学习状态时,它在其发出的 BPDU 上对建立位 (Proposal bit 置位 ) 。经过同步后,它将协商位 (Agreement bit) 置位来代替建议位。 802.1w拓扑变化机制会清除上游网桥内容寻址存储器 (CAM) 中的适当条目,而不再需要 UplinkFast 的伪多播分组生成过程。 在 RSTP 中,只有非边缘端口进入转发状态才会导致拓扑变化。连接中断并没有认为是拓扑变化。

6.3 快速 STP 802.1w6.3.4 RSTP BPDU 格式

RSTP 使用标志字段中剩下的 6 位,如上图所示。802.1d 相当于转发来自于根端口的 BPDU 。而 802.1w每隔 Hello 时间就发送 BPDU ,不管是否从根网桥收到BPDU ,如果在 3 个连续周期内没有收到 hello ,协议信息立即超时。因此收敛速度快。

拓扑变化 建议 学习端口角色 转发 协商一致 拓扑变化 ACK

0 1 2 3 4 5 6 7

6.4 MSTP

6.4.1 为什么要使用 MSTP

由于传统的 STP 协议与 VLAN 没有任何联系,当多VLAN设备相连时,会出现同一 VLAN 不能通信的情况。如下图所示。如果 A 、 C 、 D 间的链路开销小于 A 、 B的链路开销,则 A 、 B 之间的链路会 DISCARDING 。

vlan1

vlan1

vlan2

vlan2

A C

B D

6.4 MSTP

6.4.1 为什么要使用 MSTP

为了解决这个问题可使用 MSTP ,将一台设备的一个或多个 VLAN 划分为一个 Instance ,有相同的 Instance 配置的设备组成一个域( MST Region ) ,运行独立的生成树( IST )。可将这个域看成一个整体,再与其它的域再进行生成树运算,得出一个整体的生成树( CST )。

vlan1

vlan1

vlan2

vlan2

A C

B D

6.4 MSTP

6.4.2 MSTP 的基本问题1. MSTP Region 的划分 只要保证设备的 MST 配置信息一致即可,这样的信息包括 MST名称、 MST Revision Number 、 MST Instance-VLAN对应关系。共有 65 个 instance ,其中 0 是存在的。2. 域内生成树( IST ) 各个 Instance 根据生成树算法形成自己的生成树( MSTI )。 Instance 0 生成树与 CST共同称为 CSTI 。3. 域间生成树( CST ) CIST Regional Root 不一定是 Region内 Bridge ID最小的那台设备。4. Hop Count 不再使用 Message 和 Max Age 来计算 BPDU 是否超时,而使用类似于 TTL 的 Hop Count 来计算。

6.4 MSTP

6.4.3 MSTP 的可选项1. Port Fast 可将直接连接网络终端的端口设置为 Port Fast ,这样可省去 30 秒的等待时间。2. 边缘端口 当指派端口在一定时间范围内(如 3 秒),收不到下游端口发送的 BPDU ,则认为该端口相连的不是一台网络设备,从而设置该端口为边缘端口,直接进入转发状态。3. BPDU Guard 如果某个端口打开 Port Fast或标识为边缘端口,此时收到 BPDU ,则该端口会进入 Error-disabled状态,同时整个端口被关闭。此功能防止增加非法设备。可基于全局也可基于端口。

6.4 MSTP

6.4.3 MSTP 的可选项4. BPDU Filter 如果某个端口打开 Port Fast或标识为边缘端口,则该端口既不接收与不发送 BPDU 。如边缘端口收到 BPDU ,则此功能失效。5. TC-Protection TC-BPDU 是携带 TC 标志的报文,表示网络的拓扑发生了变化,这一变化会删除 MAC 表,对三层设备还会删除路由表。打开此功能,在收到 TC-BPDU报文后的一段时间内(如 4s ),只进行一次删除操作。也就是说要减少动态MAC 和 ARP 的删除次数。6. TC Guard 防止 TC 报文攻击。启用此功能将屏蔽该端口接收或产生的 TC报文。

6.4 MSTP

6.4.3 MSTP 的可选项7. BPDU 源 MAC检查 防止 BPDU 的恶意攻击。在点到点链路中,只接收对端的 BPDU报文。8. ROOT Guard 此功能强制其在所有实例上的端口为指定端口,一旦收到更高优先级 BPDU 时,会使端口处于阻塞状态。如果在较长时间没有收到更优配置,则端口会恢复正常状态。9. LOOP Guard 由于单向链路的故障,根口或备份口收不到 BPDU会变成指派端口进入转发状态,在产生环路。此功能能防止出现这种情况。它会对端口角色进行迁移,但端口一直保持在阻塞状态,直到再次收到 BPDU 。

Recommended