简单说明思科交换生成树的算法是如何实现的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单说明思科交换生成树的算法是如何实现的?相关的知识,希望对你有一定的参考价值。

简单说明思科交换生成树的算法是如何实现的,麻烦告知下?

参考技术A 交换机内的生成树算法(STA)使你可以创建一条备用链路(当网络中存在多台交换机时)。在主链路正常工作时,备用链路处于空闲状态(不工作);只有在主链路出现问题时,备用链路才不需要任何人工干预自动地接替主链路。这种自动重构的功能,使得网络上的用户能够最大限度地与网络保持正常的连接。生成树算法较复杂,所以,建议最好在充分研究理解其之后,再更改其一些设置。请仔细阅读并理解下述内容之后,再去更改交换机上的生成树的默认设置。
  网络环路的侦测和预防(Network
loop
detection
and
prevention):任何两个局域网之间应该只有一条路径,否则,网络中将出现环路。如果存在着多于一条的路径,那么生成树算法将会侦测到环路的发生,并自动选择开销值(c
ost)最低的那条路径作为可使用的路径(主链路),而阻断其它路径,将它们作为备用路径(备用链路)。
  自动拓扑重构(Automatic
topology
re-configuration):当主链路出现故障时,生成树算法将自动启用备用链路,重构网络结构。
  生成树的级别(STA
Operation
Levels)
  生成树有两种工作级别:桥级别(bridge
level)和端口级别(port
level)。在桥一级上,生成树算法为每台交换机计算桥的标志级数(Bridge
Identifier),然后设定根桥(Root
Bridge)和指定桥(Designated
Bridges)。而在端口一级上,生成树算法设定根端口(Root
Port)和指定端口(Designated
Ports)。详述如下:
  在桥一级上(On
the
Bridge
Level):
  根桥(Root
Bridge):具有最小桥标志级数的(lowest
Bridge
Identifier)交换机是根桥(Root
Bridge)。当然,你希望根桥是环路中所有交换机当中最好的一台(交换机),以保证能够提供最好的网络性能和可靠性。
  桥标志级数(Bridge
Identifier):桥标志级数是桥的优先级(Bridge
Priority)和交换机的MAC地址的综合数值,其中桥的优先级(Bridge
Priority)是一个你可以设定的参数。例如,“4
00
80
C8
00
01
00”中的“4”是桥的优先级,“00
80
C8
00
01
00”是交换机的MAC地址。交换机的桥标志级数越低,则交换机的优先级越高,这样可以增加其成为根桥的可能性。
  指定桥(Designated
Bridge):在每个网段中,到根桥(Root
Bridge)的路径开销最低的(lowest
Root
Path
Cost)桥将成为指定桥(Designated
Bridge),数据包将通过它转发到网段。一旦所有的交换机具有相同的根路径开销(Root
Path
Cost),那么具有最低的桥标志级数的(lowest
Bridge
Identifier)交换机才会被定为指定桥(De
signated
Bridge)。
  根路径开销(Root
Path
Cost):一台交换机的根路径开销(Root
Path
Cost)是根端口(Root
Port)的路径开销(Path
Cost)与数据包经过的所有交换机的根路径开销(Root
Path
Cost)之和。根桥(Root
Bridge)的根路径开销(Root
Path
Cost)是零。
  桥的优先级(Bridge
Priority):是一个用户可以设定的参数。设定的值越小,优先级越高。交换机具有越高的优先级,才越有可能成为根桥。
  在端口一级上(On
the
Port
Level):
  根端口(Root
Port):每台交换机都有一个根端口(Root
Port),这个端口到根桥的路径开销最低。一旦多个端口具有相同的到根桥的路径开销时,那么具有最低的端口标志级别的才会成为根端口。
  指定端口(Designated
Port):指定端口就是指定桥(Designated
Bridge)上的端口。
  端口优先级(Port
Priority):数值越小,端口的优先级就越高。具有越高端口优先级,才越有可能成为根端口。
  路径开销(Path
Cost):这是一个可变的参数,它将随着生成树中的设定值的变化而变化。依据STA的默认参数值,每个1000Mbps网段有一个指定的路径开销值为4
,100Mbps网段的路径开销值19,10Mbps网段的路径开销值100.
  生成树参数(STA
Parameters)
  生成树的参数用户可以根据自己的需要进行修改,但是建议最好使用出厂时的默认设置。除非确实需要对出厂设置值进行变动时,再去改动默认值。用户可以改动的生成树参数有如下几个:
  桥优先级(Bridge
Priority):数值范围从0到65535.“0”的优先级最高。
  呼叫时间(Bridge
Hello
Time):数值范围从1秒到10秒。是指根桥向其它所有交换机发出BPDU数据包的时间间隔,以告知其它所有交换机它是根桥。如果你的交换机还未是根桥时为其设置了呼叫时间,那么,一旦你的交换机成为根桥,该呼叫时间就会派上用处。
  注意:呼叫时间不能大于桥的最大老化时间(Max.
Age),否则,将出现错误信息。
  最大的桥老化时间(Bridge
Max.
Age):数值范围从6秒到40秒。如果在超出最大老化时间之后,还没有收到根桥发出的BPDU数据包,那么,在允许的条件下你的交换机将充当根桥向其它所有的交换机发出B
PDU数据包。如果交换机确实具有最小的桥标志级数,那么,它将随之成为根桥。
  桥转发时延(Bridge
Forward
Delay):数值范围从4秒到30秒。是指交换机的端口从阻塞状态转为转发状态所用的监听时间。
  当你欲变动生成树参数时,请一定记住下述公式:
  最大的桥老化时间≤
2
x(桥转发时延

1秒)
  即:Max.
Age

2
x
(Forward
Delay
-
1
second)
  最大的桥老化时间≥
2
x(呼叫时间
+
1秒)
  即:Max.
Age

2
x
(Hello
Time
+
1
second)
  端口优先级(Port
Priority):数值范围从0到255.数值越小,那么该端口越可能成为根端口。

生成树协议CDP思科设备发现协议SSH协议

线路冗余->交换机成环

交换机成环导致:

1 广播风暴

2 mac地址表震荡

一个mac在一台交换机上只能对应一个接口,但一个接口可以对应多个mac

3 重复帧拷贝

 

生成树协议:

802.1DPVSTPVST+802.1s802.1w

 

生成树协议用于实现二层线路冗余,在网络中逻辑的阻塞部分接口来实现从源到目的仅有一条唯一路径;

最佳路径故障时,阻塞端口自动工作来实现备份的作用;

所谓生成树,就是在二层网络中构建一个树形结构,形成唯一、最短、星型拓扑;

 

802.1D

公有

 

PDU:协议数据单元

应用层 报文

传输层 数据段

网络层 数据包

数据链路层 数据帧

物理层 比特流

 

BPDU:桥协议数据单元,跨层封装到二层;

配置BPDU:最初未选出根桥时所有交换机均会发出,选出根桥后仅根桥可以发出

次优BPDUTCN,拓扑变更消息

Hello time 2sHold time 20s

 

选举四个角色:

 

根网桥:一棵树仅有一个,负责整棵树的管理、维护

比较桥ID,ID最小的成为根;

ID=网桥优先级(默认32768,取值范围0-65535+mac

 

根端口:所有非根设备上存在且仅有一个,负责接收根桥的BPDU和转发用户流量

1 基于cost值,比较入向cost(选举根端口是为了接收BPDU),小则为根端口

技术分享图片

Cost:

10M=100

100M=19

1000M=4

10000M=2

>10000M=1

 

2 入向cost值相同,比较两个接口对端交换机的桥ID,最佳对应接口为根端口

技术分享图片

 

3 两个接口对端桥ID相同,比较对端接口的PID=优先级(默认128+接口编号(小优)

技术分享图片

 

4 两个接口对应对端的桥IDPID和到根的cost值均相同,比较本地接口PID,小优

技术分享图片

 

指定端口:一条链路一个,转发根桥BPDU和用户流量,根桥的端口全是指定端口

 

1 比较出向cost值,小优

技术分享图片

 

2 出向cost值相同,比较链路两端设备的本地BID,小优,即未来谁当老大谁为指定端口

技术分享图片

 

3 本地BID相同,比较本地PID,即优先级和接口编号,小优

技术分享图片

 

4 本地PID相同,即一根网线两头接同一接口;由于无法控制HUB的接口,为了破环,交换机将直接阻塞自己本身的接口

技术分享图片

 

非指定端口:以上角色选举完后剩余未被分配的端口,会被阻塞,对控制层面流量只接收不转发,对数据层面流量不转发也不接收

 

mac地址本身用于管理vlan,二层交换机仅一个mac,三层交换机有多个mac

参选时三层交换机会用自己最小的mac地址;

 

对生成树协议的干涉,至少要关注根网桥位置,最合适的地点为汇聚层设备

 

接口状态:

1 down

最初交换机刚插上网线,接口处于down状态,接口信号灯不显示;

此时开始通电,信号灯变为橘红色,开始发BPDU并进入2状态;

2 侦听(listening):固定15s

该阶段为选举阶段,该阶段四种角色全部判定完毕;

判定完毕后,根端口和指定端口进入状态3

非指定端口进入状态4

3 学习(learning):固定15s

该状态的接口需要记录所有接口收发的mac地址;生成mac地址表;

4 阻塞

非指定端口也非根端口则进入该状态,指示灯显示橙色;

5 转发(forwarding

指定和根端口进入学习完成后进入该状态,此时收敛完成;

 

收敛慢:以前网络设备运算速度慢

链路利用率低:端口被阻塞

 

直连检测

技术分享图片

当交换机连接根桥的唯一一根网线断开时触发直连检测,再过30s阻塞的接口进入转发状态(成为根)

 

技术分享图片

链路断开,交换机从两个接口均无法收到根的BPDU,于是向阻塞端口发送次优BPDU(即交换机自己的BPDU),另一台交换机从阻塞端口收到该BPDU后会等待20s的保活时间,然后才进入30s的侦听、学习阶段,总共耗时50s

 

PVST

私有,基于vlan的生成树协议

 

算法与802.1D一致;

仅支持ISL,不支持802.1q

基于vlan,每个vlan独立一棵树,可实现分流、备份,提高链路利用率;

 

基于vlan发出BPDU,分别选举不同vlan下的根桥、根端口,指定、阻塞端口,具体选举规则与802.1D一样;

为了基于不同vlan,在vlan2下发出的BPDU优先级为32770,32770-32768=2,则此时进行的是基于vlan2的选举;

若不干涉选举,最终会使一个mac最小的交换机成为多个vlan的根,所以需要手工干预选举,调整优先级使不同交换机成为不同vlan的根;

修改优先级时必须以32768的倍数修改,否则会使一个vlanBPDU混入其他vlan中;

 

该协议可以分流;

选举速度慢;

仅支持ISL

生成树多(一个vlan一个);

 

PVST+

私有,PVST升级版,目前思科交换机默认运行该算法

 

实现部分加速;

支持802.1qISL

树多问题未处理;

 

拥有一个vlan的树的条件:

设备上创建了vlan 2

设备连接有vlan 2的用户或有trunk干道;

 

PVSTPVST+干涉选举:

1 网桥优先级:影响根桥位置

2 接口优先级或cost值:影响根端口和指定、阻塞端口位置

 

修改基于vlan2的设备优先级干涉根桥选举:

技术分享图片

 

技术分享图片

修改SW1vlan1的主根桥(优先级下调2倍的4096);

修改SW1vlan2的备份根桥(优先级下调一个4096);

 

技术分享图片

修改某个接口在某个vlan的接口优先级(以16的倍数修改,范围0-240);

 

技术分享图片

修改某个接口的开销值;

 

PVST+部分加速

1 端口加速

技术分享图片

技术分享图片

0/1-22调整为portfast接口,调整后接口不参与STP选举直接进入转发状态(指定端口);

Switchport host会将选中的接口全部调整为access模式再做portfast

一般连接终端的接口使用,trunk干道一般不使用;

 

技术分享图片

不进入接口的情况下将所有access模式的接口调整为portfast

不对trunk干道生效;

 

2 上行链路加速

技术分享图片

当接口存在直连检测的情况下,可以以毫秒为单位快速打开另一个被阻塞的接口,不需要30s侦听和学习;

运行uplinkfast的交换机桥优先级和接口cost值变大,优先级大则交换机不会抢占根桥,cost值大则交换机上存在阻塞端口可能性变大,存在阻塞端口方便直连检测;

该命令只能在接入层交换机使用;

 

3 骨干加速

技术分享图片

所有设备均可配置

针对上面的50s的情况,交换机一个接口对端是根桥的指定端口,另一个接口对端是一个阻塞端口,此时若连接根桥的链路故障,则该交换机无法从任何端口收到根的最优BPDU,此时交换机将发出自己的次优BPDU,假设交换机开启了骨干加速,则可以省掉维持稳定性的20s,直接进入30s(侦听+学习),然后原先的阻塞端口进入转发状态;

 

PVST+的优点:

1 基于vlan分流

2 部分加速

3 兼容802.1q

PVST+的缺点:

1 初次收敛30s

2 无直连检测则仍需30s

3 生成树多

 

RPVST/RSTP(cisco)802.1W(公有)

 

快速生成树(1-2s内收敛完成)

不计时,主动切换状态:直接侦听决定端口身份,决定好不再等待后直接学习,学习完成后不再等待直接进入相应状态开始工作

 

RSTP/RPVST基于vlan,一个vlan一棵树;

802.1W不基于vlan,多个vlan一棵树;

技术分享图片 调整使用的生成树协议为RSTP

 

不是所有接口都支持RSTP

点到点接口:快速接口即全双工接口,可以支持

共享接口(share):慢速即半双工接口,不支持

技术分享图片

可以修改接口类型,使其支持RSTP

 

cisco私有特点:

优点:快速、分流(基于vlan)、兼容(支持802.1qISL

缺点:树多

公有特点:

优点:快速

缺点:仅一棵树(不分流,链路利用率低)

 

MSTP/802.1S

 

多生成树/组生成树

快速生成树;

基于组,一个组一棵树,将多个vlan加入该组,如vlan1/2/3在组1vlan4/5/6在组2,总共形成两棵生成树;

借鉴PVST,组1的优先级为32769=32768+1,组2的优先级为32770=32768+2,靠优先级区分不同的组,一旦决定运行MSTP,则网络中所有设备都必须统一运行MSTP

技术分享图片

技术分享图片

技术分享图片 

技术分享图片

技术分享图片

此时交换机上有3棵树,0号组树、1号组树、2号组树

技术分享图片0号组包含的vlan

技术分享图片 1号组包含的vlan

技术分享图片2号组包含的vlan

此时网络中所有其他交换机的组vlan信息必须与此交换机保持一致,否则可能出环;

技术分享图片 指定交换机的主根

技术分享图片 指定交换机的备份根

其余命令基本都是将原来敲vlan的部分修改为mst 组号;

 

多生成树协议,会基于不同vlan或不同的组实现多生成树,此时要求:

本地存在这些vlan且本地有这些vlan的活动用户或存在活动的trunk干道,否则交换机上不会出现该vlan的树;

 

CDP:思科设备发现协议

可以帮助远程了解网络拓扑;

默认开启且每60s为周期向所有邻居告知本地信息;

技术分享图片

从左到右:

Device ID:显示连接的对端设备

Local intrfce:本地接口编号

Holdtime

Capability:对端是什么设备,此处R S表示对端为三层交换机(R=routingS=switching

Platform:对端设备型号

Port ID:对端接口编号

 

技术分享图片可以看到完整的CDP信息(可以提供的信息包括设备名称、设备的SVI管理地址、操作系统版本、VTP域名、native vlan等信息)

 

技术分享图片 在设备上全局关闭CDP

技术分享图片关闭某个接口的CDP

一般安全起见需要关闭所有连接终端的接口的CDP

 

SSH

 

相当于加密版的telnet

只要1.99以上的版本均称为版本2

Linux系统默认开启SSH登录服务;

SSH使用非对称算法(RSA),使用该算法安全性极高,网银、支付宝均使用该算法;

 

技术分享图片

可以被SSH的设备必定有K,表示设备支持安全加密(SSH

 

开启telnet

技术分享图片

技术分享图片

技术分享图片

 技术分享图片

开启密文登录认证(开启SSH):

技术分享图片 指定密码库名称,库名称为r1.haojian.comr1.域名)

技术分享图片开启加密算法,默认生成密钥长度512

技术分享图片

修改密钥长度为1024

 

使用SSH从一台设备登入另一台设备:

技术分享图片

用用户ccna登录

 

指定仅允许ssh

技术分享图片

技术分享图片


以上是关于简单说明思科交换生成树的算法是如何实现的?的主要内容,如果未能解决你的问题,请参考以下文章

交换机如何配置快速生成树协议

cisco思科交换机如何查看日志?

思科三层交换机如何进入虚端口

技术图文:如何利用C# 实现 Kruskal 最小生成树算法?

生成树协议CDP思科设备发现协议SSH协议

如何利用三层交换机实现不同虚拟局域网间的互通?