STP

STP(Spanning Tree Protocol,生成树协议)是根据IEEE 802.1D 标准建立的,用于在局域网中消除数据链路层物理环路的协议。运行该协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某些端口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环路网络中不断增生和无限循环,避免设备由于重复接收相同的报文所造成的报文处理能力下降的问题发生。

STP采用的协议报文是BPDU(Bridge Protocol Data Unit,桥协议数据单元),也称为配置消息,BPDU中包含了足够的信息来保证设备完成生成树的计算过程。STP即是通过在设备之间传递BPDU来确定网络的拓扑结构。

STP(spanning tree protocol,生成树协议)不能使端口状态快速迁移,即使是在点对点链路或边缘端口,也必须等待2倍的forward delay的时间延迟,端口才能迁移到转发状态。

STP 的基本原理是通过在交换机之间传递一种特殊的协议报文IEEE802.1D 协议将这种协议报文称为配置消息来确定网络的拓扑结构配置消息中包含了足够的信息来保证交换机完成生成树计算.

配置消息中主要包括以下内容
(1) 树根的 ID 由树根的优先级和MAC 地址组合而成
(2) 到树根的最短路径开销
(3) 指定交换机的 ID 由指定交换机的优先级和MAC 地址组合而成
(4) 指定端口的 ID 由指定端口的优先级和端口编号组成
(5) 配置消息的生存期 MessageAge
(6) 配置消息的最大生存期 MaxAge
(7) 配置消息发送的周期 HelloTime
(8) 端口状态迁移的延时 ForwardDelay

BPDU格式及字段说明

要实现生成树的功能,交换机之间传递BPDU报文实现信息交互,所有支持STP协议的交换机都会接收并处理收到的报文。该报文在数据区里携带了用于生成树计算的所有有用信息。

标准生成树的BPDU帧格式及字段说明:

Protocol identifier协议标识

Version协议版本

Message type: BPDU类型

Flag: 标志位

Root ID: 根桥ID,由两字节的优先级和6字节MAC地址构成

Root path cost: 根路径开销

Bridge ID: 桥ID,表示发送BPDU的桥的ID,由2字节优先级和6字节MAC地址构成

Port ID: 端口ID,标识发出BPDU的端口

Message age: BPDU生存时间

Maximum age: 当前BPDU的老化时间,即端口保存BPDU的最长时间

Hello time: 根桥发送BPDU的周期

Forward delay: 表示在拓扑改变后,交换机在发送数据包前维持在监听和学习状态的时间

STP的基本概念

桥ID(Bridge Identifier):桥ID是桥的优先级和其MAC地址的综合数值,其中桥优先级是一个可以设定的参数。桥ID越低,则桥的优先级越高,这样可以增加其成为根桥的可能性。

根桥(Root Bridge):具有最小桥ID的交换机是根桥。请将环路中所有交换机当中最好的一台设置为根桥交换机,以保证能够提供最好的网络性能和可靠性。

指定桥(Designated Bridge):在每个网段中,到根桥的路径开销最低的桥将成为指定桥,数据包将通过它转发到该网段。当所有的交换机具有相同的根路径开销时,具有最低的桥ID的交换机会被选为指定桥。

根路径开销(Root Path Cost):一台交换机的根路径开销是根端口的路径开销与数据包经过的所有交换机的根路径开销之和。根桥的根路径开销是零。

桥优先级(Bridge Priority):是一个用户可以设定的参数,数值范围从0到32768。设定的值越小,优先级越高。交换机的桥优先级越高,才越有可能成为根桥。

根端口(Root Port):非根桥的交换机上离根桥最近的端口,负责与根桥进行通信,这个端口到根桥的路径开销最低。当多个端口具有相同的到根桥的路径开销时,具有最高端口优先级的端口会成为根端口。

指定端口(Designated Port):指定桥上向本交换机转发数据的端口。

端口优先级(Port Priority):数值范围从0到255,值越小,端口的优先级就越高。端口的优先级越高,才越有可能成为根端口。

路径开销(Path Cost):STP协议用于选择链路的参考值。STP协议通过计算路径开销,选择较为“强壮”的链路,阻塞多余的链路,将网络修剪成无环路的树型网络结构。

生成树基本概念的组网示意图如图所示。交换机A、B、C三者顺次相连,经STP计算过后,交换机A被选为根桥,端口2和端口6之间的线路被阻塞。

桥:交换机A为整个网络的根桥;交换机B是交换机C的指定桥。

端口:端口3和端口5分别为交换机B和交换机C的根端口;端口1和端口4分别为交换机A和交换机B的指定端口;端口6为交换机C的阻塞端口。

STP,RSTP,MSTP和链路聚合_第1张图片

STP定时器

联络时间(Hello Time):

数值范围从1秒到10秒。是指根桥向其它所有交换机发出BPDU数据包的时间间隔,用于交换机检测链路是否存在故障。

老化时间(Max. Age):

数值范围从6秒到40秒。如果在超出老化时间之后,还没有收到根桥发出的BPDU数据包,那么交换机将向其它所有的交换机发出BPDU数据包,重新计算生成树。

传输时延(Forward Delay):

数值范围从4秒到30秒。是指交换机的端口状态迁移所用的时间。

当网络故障引发生成树重新计算时,生成树的结构将发生相应的变化。但是重新计算得到的新配置消息无法立刻传遍整个网络,如果端口状态立刻迁移的话,可能会产生暂时性的环路。为此,生成树协议采用了一种状态迁移的机制,新的根端口和指定端口开始数据转发之前要经过2倍的传输时延,这个延时保证了新的配置消息已经传遍整个网络。

STP模式的BPDU的优先级比较原则

假定有两条BPDU X和Y,则:

如果X的根桥ID小于Y的根桥 ID,则X优于Y

如果X和Y的根桥ID相同,但X的根路径开销小于Y,则X优于Y

如果X和Y的根桥ID和根路径开销相同,但X的桥ID小于Y,则X优于Y

如果X和Y的根桥ID、根路径开销和桥ID相同,但X的端口ID小于Y,则X优于Y

STP的计算过程

初始状态:每台交换机在初始时会生成以自己为根桥的BPDU,根路径开销为0,指定桥ID为自身设备ID,指定端口为本端口。

最优BPDU的选择:每台交换机都向外发送自己的BPDU,同时也会收到其它交换机发送的BPDU。比较过程如下表所述:

根桥的选择:通过交换配置消息,设备之间比较根桥ID,网络中根桥ID 最小的设备被选为根桥。

根端口、指定端口的选择过程如下表所述:

STP,RSTP,MSTP和链路聚合_第2张图片

RSTP

RSTP(Rapid Spanning Tree Protocol,快速生成树协议)是优化版的STP,他大大缩短了端口进入转发状态的延时,从而缩短了网络最终达到拓扑稳定所需要的时间。RSTP的端口状态实现快速迁移的前提如下:

根端口的端口状态快速迁移的条件是:本设备上旧的根端口已经停止转发数据,而且上游指定端口已经开始转发数据。

指定端口的端口状态快速迁移的条件是:指定端口是边缘端口或者指定端口与点对点链路相连。如果指定端口是边缘端口,则指定端口可以直接进入转发状态;如果指定端口连接着点对点链路,则设备可以通过与下游设备握手,得到响应后即刻进入转发状态。

RSTP(rapid spanning tree protocol,快速生成树协议)可以快速收敛,但是和stp一样存在以下缺陷:局域网内所有网桥共享一棵生成树,不能按vlan阻塞冗余链路,所有vlan的报文都沿着一棵生成树进行转发。

RSTP的基本概念

边缘端口(Edge Port):直接与终端相连而不是与其它交换机相连的端口。

点对点链路:是两台交换机之间直接连接的链路。

RSTP主要配置任务列表如下:
   开启/关闭设备Spanning Tree 特性
   开启/关闭端口Spanning Tree 特性
   配置交换网络的网络直径
   配置 RSTP协议的工作模式
   配置特定网桥的 Bridge 优先级
   配置特定网桥的 Forward Delay 特性
   配置特定网桥的 hello-time 特性

   配置特定网桥的 Max Age 特性
   配置特定端口的最大发送速率
   配置特定端口是否可以作为 EdgePort
   配置特定端口的路径开销
   配置特定端口的优先级
   配置特定端口是否与点对点链路相连
   执行 mCheck 操作

MSTP

MSTP(Multiple Spanning Tree Protocol,多生成树协议)是在STP和RSTP的基础上,根据IEEE协会制定的802.1S标准建立的,他既可以快速收敛,也能使不同VLAN的流量沿各自的路径转发,从而为冗余链路提供了更好的负载分担机制。

MSTP(multiple spanning tree protocol,多生成树协议)将环路网络修剪成为一个无环的树型网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,在数据转发过程中实现vlan数据的负载均衡。

MSTP的特点如下:

MSTP通过VLAN-实例映射表,把VLAN和生成树联系起来,将多个VLAN捆绑到一个实例中,并以实例为基础实现负载均衡。

MSTP把一个生成树网络划分成多个域,每个域内形成多棵内部生成树,各个生成树之间彼此独立。

MSTP在数据转发过程中实现VLAN 数据的负载分担。

MSTP 兼容STP 和RSTP,并且可以弥补stp和rstp的缺陷。它既可以快速收敛,也能使不同vlan的流量沿各自的路径分发,从而为冗余链路提供了更好的负载分担机制。

MSTP的基本概念

MST(Multiple Spanning Tree Region,多生成树域):由具有相同域配置和相同Vlan-实例映射关系的交换机所构成。

IST(Internal Spanning Tree,内部生成树):MST域内的一棵生成树。

CST(Common Spanning Tree,公共生成树):连接网络内所有MST域的单生成树。

CIST(Common and Internal Spanning Tree,公共和内部生成树):连接网络内所有设备的单生成树,由IST和CST共同构成。

MSTP基本概念的组网图如图所示。

STP,RSTP,MSTP和链路聚合_第3张图片

MSTP的基本原理

MSTP将整个网络划分为多个MST域,各个域之间通过计算生成CST;域内则通过计算生成多棵生成树,每棵生成树都被称为是一个多生成树实例。MSTP同STP一样,使用BPDU进行生成树的计算,只是BPDU中携带的是MSTP的配置信息。

MSTP模式的BPDU优先级比较原则

假定有两条MSTP的BPDU X和Y,则:

如果X的总根ID小于Y的总根ID,则X优于Y

如果X和Y的总根ID相同,但X的外部路径开销小于Y,则X优于Y

如果X和Y的总根ID和外部路径开销相同,但X的域根ID小于Y的域根ID,则X优于Y

如果X和Y的总根ID、外部路径开销和域根ID相同,但X的内部路径开销小于Y,则X优于Y

如果X和Y的总根ID、外部路径开销、域根ID和内部路径开销相同,但X的桥ID小于Y,则X优于Y

如果X和Y的总根ID、外部路径开销、域根ID、内部路径开销和桥ID均相同,但X的端口ID小于Y,则X优于Y

端口状态

MSTP中,根据端口是否转发数据和如何处理BPDU报文,可将端口状态划分为以下四种:

转发:接收并转发数据,接收并发送BPDU报文,进行地址学习。

学习:不接收或转发数据,接收并发送BPDU报文,进行地址学习。

阻塞:不接收或转发数据,接收但不发送BPDU报文,不进行地址学习。

断开:物理链路断开。

端口角色

MSTP的端口角色分为以下几种:

根端口:到根桥的路径开销最低,负责向根桥方向转发数据的端口。

指定端口:负责向下游网段或设备转发数据的端口。

Master端口:连接MST域到总根的端口,位于整个域到总根的最短路径上。

替换端口:根端口和Master端口的备份端口。

备份端口:指定端口的备份端口。

禁用端口:物理链路断开的端口。

STP,RSTP,MSTP和链路聚合_第4张图片

链路聚合

简介:

链路聚合是将两个或更多数据信道结合成一个单个的信道,该信道以一个单个的更高带宽的逻辑链路出现。链路聚合一般用来连接一个或多个带宽需求大的设备,例如连接骨干网络的服务器或服务器群。

链路聚合

如果聚合的每个链路都遵循不同的物理路径,则聚合链路也提供冗余和容错。通过聚合调制解调器链路或者数字线路,链路聚合可用于改善对公共网络的访问。链路聚合也可用于企业网络,以便在吉比特以太网交换机之间构建多吉比特的主干链路。

交换机基础:链路聚合定义

链路聚合技术亦称主干技术(Trunking)或捆绑技术(Bonding),其实质是将两台设备间的数条物理链路“组合”成逻辑上的一条数据通路,称为一条聚合链路,如Figure1示意。交换机之间物理链路Link1、Link2和Link3组成一条聚合链路。该链路在逻辑上是一个整体,内部的组成和传输数据的细节对上层服务是透明的。

STP,RSTP,MSTP和链路聚合_第5张图片

链路聚合示意图

聚合内部的物理链路共同完成数据收发任务并相互备份。只要还存在能正常工作的成员,整个传输链路就不会失效。仍以上图的链路聚合为例,如果Link1和Link2先后故障,它们的数据任务会迅速转移到Link3上,因而两台交换机间的连接不会中断(参见Figure2)。

STP,RSTP,MSTP和链路聚合_第6张图片

链路聚合成员相互备份

交换机基础:链路聚合的优点

从上面可以看出,链路聚合具有如下一些显著的优点:

1.提高链路可用性

链路聚合中,成员互相动态备份。当某一链路中断时,其它成员能够迅速接替其工作。与生成树协议不同,链路聚合启用备份的过程对聚合之外是不可见的,而且启用备份过程只在聚合链路内,与其它链路无关,切换可在数毫秒内完成。

2.增加链路容量

链路聚合技术的另一个明显的优点是为用户提供一种经济的提高链路传输率的方法。通过捆绑多条物理链路,用户不必升级现有设备就能获得更大带宽的数据链路,其容量等于各物理链路容量之和。聚合模块按照一定算法将业务流量分配给不同的成员,实现链路级的负载分担功能。

某些情况下,链路聚合甚至是提高链路容量的唯一方法。例如当市场上的设备都不能提供高于10G的链路时,用户可以将两条10G链路聚合,获得带宽大于10G的传输线路。

此外,特定组网环境下需要限制传输线路的容量,既不能太低影响传输速度,也不能太高超过网络的处理能力。但现有技术都只支持链路带宽以10为数量级增长,如10M、100M、1000M等。而通过聚合将n条物理链路捆绑起来,就能得到更适宜的、n倍带宽的链路。

交换机基础:链路聚合的标准

目前链路聚合技术的正式标准为IEEEStandard802.3ad,由IEEE802委员会制定。标准中定义了链路聚合技术的目标、聚合子层内各模块的功能和操作的原则,以及链路聚合控制的内容等。

其中,聚合技术应实现的目标定义为必须能提高链路可用性、线性增加带宽、分担负载、实现自动配置、快速收敛、保证传输质量、对上层用户透明、向下兼容等等。

交换机基础:链路聚合控制协议LACP

链路聚合控制协议(LinkAggregationControlProtocol)是IEEE802.3ad标准的主要内容之一,定义了一种标准的聚合控制方式。聚合的双方设备通过协议交互聚合信息,根据双方的参数和状态,自动将匹配的链路聚合在一起收发数据。聚合形成后,交换设备维护聚合链路状态,当双方配置变化时,自动调整或解散聚合链路。

LACP协议报文中的聚合信息包括本设备的配置参数和聚合状态等,报文发送方式分为事件触发和周期发送。当聚合状态或配置变化事件发生时,本系统通过发送协议报文通知对端自身的变化。聚合链路稳定工作时,系统定时交换当前状态以维护链路。协议报文不携带序列号,因此双方不检测和重发丢失的协议报文。

链路聚合中需要指出的是,LACP协议并不等于链路聚合技术,而是IEEE802.3ad提供的一种链路聚合控制方式,具体实现中也可采用其它的聚合控制方式。

案例:

一、 实验目的

1、 了解链路聚合技术的使用场合;

2、 熟练掌握链路聚合技术的配置。

二、 应用环境

两个实验室分别使用一台交换机提供20多个信息点,两个实验室的互通通过一根级联网线。每个实验室的信息点都是百兆到桌面。两个实验室之间的带宽也是100M,如果实验室之间需要大量传输数据,就会明显感觉带宽资源紧张。当楼层之间大量用户都希望以100M传输数据的时候,楼层间的链路就呈现出了独木桥的状态,必然造成网络传输效率下降等后果。

解决这个问题的办法就是提高楼层主交换机之间的连接带宽,实现的办法可以是采用千兆端口替换原来的100M端口进行互联,但这样无疑会增加组网的成本,需要更新端口模块,并且线缆也需要作进一步的升级。另一种相对经济的升级办法就是链路聚合技术。

顾名思义,链路聚合,是将几个链路作聚合处理,这几个链路必须是同时连接两个相同的设备的,这样,当作了链路聚合之后就可以实现几个链路相加的带宽了。比如,我们可以将4个100M链路使用链路聚合作成一个逻辑链路,这样在全双工条件下就可以达到800M的带宽,即将近1000M的带宽。这种方式比较经济,实现也相对容易。

三、 实验设备

1、 DCS-3926S交换机2台

2、 PC机2台

3、 Console线1-2根

4、 直通网线4-8根

四、 实验拓扑

五、 实验要求

如果链路聚合成功,则PC1可以ping 通PC2。

六、 实验步骤

第一步:正确连接网线,交换机全部恢复出厂设置,做初始配置,避免广播风暴出现

交换机A:

switch#config

switch(Config)#hostname switchA

switchA(Config)#interface vlan 1

switchA(Config-If-Vlan1)#ip address 192.168.1.11 255.255.255.0

switchA(Config-If-Vlan1)#no shutdown

switchA(Config-If-Vlan1)#exit

switchA(Config)#spanning-tree

MSTP is starting now, please wait...........

MSTP is enabled successfully.

switchA(Config)#

交换机B:

switch#config

switch(Config)#hostname switchB

switchB(Config)#interface vlan 1

switchB(Config-If-Vlan1)#ip address 192.168.1.12 255.255.255.0

switchB(Config-If-Vlan1)#no shutdown

switchB(Config-If-Vlan1)#exit

switchB(Config)#spanning-tree

MSTP is starting now, please wait...........

MSTP is enabled successfully.

switchB(Config)#

第二步:创建port group

交换机A:

switchA(Config)#port-group 1

switchA(Config)#

验证配置:

switchA#show port-group detail

Sorted by the ports in the group 1:

--------------------------------------------

switchA#show port-group brief

Port-group number : 1

Number of ports in port-group : 0 Maxports in port-channel = 8

Number of port-channels : 0 Max port-channels : 1

switchA#

交换机B

switchB(Config)#port-group 2

switchB(Config)#

第三步:手工生成链路聚合组(第三、四步任选其一操作)

交换机A:

switchA(Config)#interface ethernet 0/0/1-2

switchA(Config-Port-Range)#port-group 1 mode on

switchA(Config-Port-Range)#exit

switchA(Config)#interface port-channel 1

switchA(Config-If-Port-Channel1)#

验证配置:

switchA#show vlan

VLAN Name Type Media Ports

---- ------------ ---------- --------- -------------------

1 default Static ENET Ethernet0/0/3 Ethernet0/0/4

Ethernet0/0/5 Ethernet0/0/6

Ethernet0/0/7 Ethernet0/0/8

Ethernet0/0/9 Ethernet0/0/10

Ethernet0/0/11 Ethernet0/0/12

Ethernet0/0/13 Ethernet0/0/14

Ethernet0/0/15 Ethernet0/0/16

Ethernet0/0/17 Ethernet0/0/18

Ethernet0/0/19 Ethernet0/0/20

Ethernet0/0/21 Ethernet0/0/22

Ethernet0/0/23 Ethernet0/0/24

Port-Channel1

switchA# !port-channel1已经存在

交换机B:

switchB(Config)#int e 0/0/3-4

switchB(Config-Port-Range)#port-group 2 mode on

switchB(Config-Port-Range)#exit

switchB(Config)#interface port-channel 2

switchB(Config-If-Port-Channel2)#

验证配置:

switchB#show port-group brief

Port-group number : 2

Number of ports in port-group : 2 Maxports in port-channel = 8

Number of port-channels : 1 Max port-channels : 1

switchB#

第四步: LACP动态生成链路聚合组(第三、四步任选其一操作)

switchA(Config)#interface ethernet 0/0/1-2

switchA(Conifg-Port-Range)#port-group 1 mode active

switchA(Config)#interface port-channel 1

switchA(Config-If-Port-Channel1)#

验证配置:

switchA#show vlan

VLAN Name Type Media Ports

---- ------------ ---------- --------- -------------------

1 default Static ENET Ethernet0/0/3 Ethernet0/0/4

Ethernet0/0/5 Ethernet0/0/6

Ethernet0/0/7 Ethernet0/0/8

Ethernet0/0/9 Ethernet0/0/10

Ethernet0/0/11 Ethernet0/0/12

Ethernet0/0/13 Ethernet0/0/14

Ethernet0/0/15 Ethernet0/0/16

Ethernet0/0/17 Ethernet0/0/18

Ethernet0/0/19 Ethernet0/0/20

Ethernet0/0/21 Ethernet0/0/22

Ethernet0/0/23 Ethernet0/0/24

Port-Channel1

switchA# !port-channel1已经存在

交换机B:

switchB(Config)#interface ethernet 0/0/3-4

switchB(Conifg-Port-Range)#port-group 2 mode passive

switchB(Config)#interface port-channel 2

switchB(Config-If-Port-Channel2)#

验证配置:

switchB#show port-group brief

Port-group number : 2

Number of ports in port-group : 2 Maxports in port-channel = 8

Number of port-channels : 1 Max port-channels : 1