分享

生成树参数说明+综合应用实例

 Teacher_Lin 2020-04-07

一、快速生成树的概念

快速生成树协议:其由生成树发展而成,这种协议在网络结构发生变化时,能更快的收敛网络。它比生成树多了两种端口类型:预备端口类型(alternate port)和备份端口类型。

生成树协议主要应用于环路网络中,它通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。

STP的基本原理是,通过在交换机之间传递一种特殊的协议报文BPDU来确定网络的拓扑结构。

生成树协议最主要的应用是为了避免局域网中的网络环回解决以太网网络的“广播风暴”问题。

二、生成树的部分参数含义

1-PortFast特性是思科在PVST中提出的快速收敛特性。

(1)针对连接终端的端口,由于这些端口不会形成环路,配置了PortFast特性后,此端口直接从Blocking进入Forwarding状态(跳过Listening和Learning状态),收敛时间为0秒

(2)若未配置PortFast特性,则这些连接终端的端口收敛时间为30秒(即2个转发延迟)

2-PortFast配置方法

方式1:全局启用PortFast

SW(config)#spanning-tree portfast default //针对本交换机的所有端口都启用PortFast特性

存在的问题:中继端口也会启用PortFast功能,如何改变中继端口的PortFast功能

SW(config)#int f0/1  //进入指定接口

SW(config-if)#spanning-tree portfast disable //关闭指定端口的portfast特性

方式2:接口下启用PortFast

SW(config)#int f0/1  //进入指定接口

SW(config-if)#switchport mode access  //配置端口的工作模式为接入模式

SW(config-if)#spanning-tree portfast  //在该接口上启动端口快速收敛功能,启用portfast

3-在trunk链路上启动PortFast的方法

SW(config)#int f0/1   //进入指定接口

SW(config-if)#switchport mode trunk  //配置端口的工作模式为链路模式

SW(config-if)#spanning-tree portfast trunk  //在该接口上启动端口快速收敛功能,启用portfast

注意1:若希望一个Trunk端口具备portfast特性,必须在接口下启用并明确带上trunk参数。

注意2:当此trunk端口连接到路由器时,可以启用portfast特性;但是交换机互连的trunk端口,若启用portfast特性可能造成交换环路。

4-启动BPDU保护

SW(config)#int f0/1  //进入指定接口

SW(config-if)#switchport mode access  //配置端口的工作模式为接入模式

Switch(config-if)#spanning-tree bpduguard   //在该接口上启动BPDU保护功能

生成树连接主机那端理论上是不需要发送BPDU建立关系的,因为主机不是交换机,不可能发出BPDU,交换机一旦收到BPDU会对比Root,从而可以抢占Root,bpduguard就是用来防止主机发送BPDU的,因为主机可以模拟发包,同理就是用来防止交换机某些不希望得到BPDU的接口做的措施.

5-启动根保护

Root Guard(根保护)传统的802.1D,STP没有给网络管理员提供确保交换式第2层网络拓扑安全。当新接入的交换机优先级更低,将抢占原有的根网桥。

根保护的目的是确保启用了根保护的端口成为指定端口。通常一个根桥的所有端口均为指定端口。除非连接到两个或多根网桥的端口。如果网桥在启用根保护的端口上收到一个较好的STP BPDU。这个端口进入STP的根不一致状态,不会有流量通过该端口。例如:如下图所示,原本交换环路中只存在M1、M2、M3时,正确的根桥应该是M3,因为在优先级相同的情况下,M3的MAC地址最低。


       当有新的交换机加入到该网络中时,且该交换机的优先级也是32769,而且该交换机的MAC地址是0001.9791.3A4D;其MAC地址小于原有根桥M3DE 地址,所有新加入的M4交换机变成了该网络的根桥,如下图所示:

    出现这种情况时,由于生成树的重计算,会直接导致原有的交换环路不稳定。解决的办法是在该网络的某个交换机的接口上启用根保护。

M1(config)#int f0/4

M1(config-if)#spanning-tree guard root

在M1上查看spanning-tree的情况,发现在M1的F0/4上启用根保护后,该接口始终处于LSN(学习状态),如下图所示:

出现这种现象的原因是M4的优先级始终高于M3的优先级,只有在M3发现M4不是其的威胁时,M1的F0/4接口才从LSN状态变为FWD状态,其解决办法是,提高M3的优先级或通过命令确定M3为主要的根桥。其方法如下:

(1)方法一:M3(config)#spanning-tree vlan 1 priority 0 //修改该交换机的优先级

(2)方法二:M3(config)#spanning-tree vlan 1 root primary //指定该交换机为主要根

6-生成树端口连接类型

spanning-tree link-type 设定生成树端口连接类型,no的形式为恢复默认值。

语法 spanning-tree link-type {auto|point-to-point|shared}

(1)auto:自动根据双工方式决定连接类型,全双工端口为point-to-point,而半双工端口为shared。

(2)point-to-point:指定端口类型为point-to-point。

(3)shared:指定端口类型为shared。

三、快速生成树+参数应用实例

(1)配置拓扑图

(2)配置要求

1-根据网络拓扑图的要求,完成网络的基本配置,包括设备名、用户名、控制口密码、特权密码和远程登录密码;

2-将M_SW_3设置为VTP的服务器,负责整个网络的VLAN划分和管理,并根据拓扑图的要求,划分VLAN;

3-根据拓扑图的标记将接口分配到指定的VLAN中,并关闭所有未使用的接口;

4-根据拓扑图的情况在所有接入层的交换机上配置端口安全,预警状态为shutdown;

5-根据拓扑图的情况,在所有交换机上开启快速生成树协议;

6-根据拓扑图的情况,在所有的终端接口上,开启快速接口功能;

7-根据拓扑图的情况,在所有的终端接口上,开启BPDU保护功能;

8-检测网络中的根桥、指定端口、阻塞端口和根端口的情况;

9-接入新的交换机,并观察网络中根桥、指定端口、阻塞端口和根端口的变化情况,若根桥没有变化,则改变新接入设备的优先级,使其成为最优根桥,观察网络设备的变化情况。

10-在相应的接口上启用根保护功能,观看网络中根桥、指定端口、阻塞端口和根端口的变化情况;

11-根据要求,完成下面的配置

(1)M_SW_1作为vlan10、30、50的主根;

(2)M_SW_2作为vlan20、40、60的主根;

(3)M_SW_1作为vlan20、40、60的副根;

(4)M_SW_2作为VLAN10、30、50的副根;

12-在M_SW_1上设置DHCP,使其成为10、30、50的服务器;

13-在M_SW_2上设置DHCP,使其成为20、40、60的服务器;

(3)配置步骤

1-根据网络拓扑图的要求,完成网络的基本配置,包括设备名、用户名、控制口密码、特权密码和远程登录密码;

Switch>enable //进入特权模式

Switch#configure terminal  //进入全局配置模式

Switch(config)#hostname M_SW_3 //设置主机名

M_SW_3(config)#username m_sw_3 secret cisco //设置用户名和密码

M_SW_3(config)#enable secret cisco  //设置进入特权模式的密码

M_SW_3(config)#line console 0 //进入控制口

M_SW_3(config-line)#exec-timeout 10  //设置休眠时间

M_SW_3(config-line)#logging synchronous  //设置光标跟踪

M_SW_3(config-line)#login local  //设置采用本地用户名和密码的方式进行登录

M_SW_3(config-line)#line vty 0 4  //设置远程登录的模式

M_SW_3(config-line)#exec-timeout 10 //设置休眠时间

M_SW_3(config-line)#logging synchronous  //设置光标跟踪

M_SW_3(config-line)#login local  //设置采用本地用户名和密码的方式进行登录

M_SW_3(config)#banner motd # //设置banner,以#开始以#结束

Enter TEXT message. End with the character '#'.

This is M_SW_3

#

M_SW_3(config)#int f0/1 //进入接口

M_SW_3(config-if)#description F0/9 interface to M_SW_1 //描述该接口连接到M_SW_1的F0/9接口上;

M_SW_3(config-if)#int f0/2 //进入接口

M_SW_3(config-if)#description F0/9 interface to M_SW_2 /描述该接口连接到M_SW_2的F0/9接口上;

Switch(config)#service password-encryption  //启用系统加密命令

M_SW_3(config-if)#end //退到特权模式

M_SW_3#copy running-config startup-config  //保存当前的配置

Destination filename [startup-config]?

Building configuration...

[OK]

2-将M_SW_3设置为VTP的服务器,负责整个网络的VLAN划分和管理,并根据拓扑图的要求,划分VLAN;

M_SW_3(config)#vtp mode server //设置VTP的模式为服务器模式

M_SW_3(config)#vtp domain rstp.com //设置VTP的域名

M_SW_3(config)#vtp version 2  //设置VTP的版本

M_SW_3(config)#vtp password cisco //设置VTP的密码

/*创建VLNA信息*/

M_SW_3(config)#vlan 10 //创建VLAN信息

M_SW_3(config-vlan)#vlan 20

M_SW_3(config-vlan)#vlan 30

M_SW_3(config-vlan)#vlan 40

M_SW_3(config-vlan)#vlan 50

M_SW_3(config-vlan)#vlan 60

3-将其他交换作为VTP的客户端,接收服务器端传达过来的VLAN信息;

M_SW_1(config)#vtp mode client  //设置VTP的模式为客户端模式

M_SW_1(config)#vtp domain rstp.com  //设置VTP的域名

M_SW_1(config)#vtp password cisco //设置VTP的密码

4-设置设备间的链路模式为trunk模式

M_SW_3(config)#int range f0/1-2 //进入F0/1-2组接口

M_SW_3(config-if-range)#switchport trunk encapsulation dot1q  //封装接口模式M_SW_3(config-if-range)#switchport mode trunk  //设置接口的工作模式

M_SW_1(config)#int range f0/1-10 //进入组接口

M_SW_1(config-if-range)#switchport trunk encapsulation dot1q //封装接口模式

M_SW_1(config-if-range)#switchport mode trunk //设置接口的工作模式

M_SW_2(config)#int range f0/1-10 //进入组接口

M_SW_2(config-if-range)#switchport trunk encapsulation dot1q //封装接口模式

M_SW_2(config-if-range)#switchport mode trunk  //设置接口的工作模式

M_SW_4(config)#int f0/10 //进入组接口

M_SW_4(config-if)#switchport trunk encapsulation dot1q //封装接口模式

M_SW_4(config-if)#switchport mode trunk  //设置接口的工作模式

SW_1(config)#int range f0/1-2 //进入组接口

SW_1(config-if-range)#switchport mode trunk  //设置接口的工作模式

5-在接入层设备上测试VLAN的划分情况是否正确

1

6-将接口分配到指定的VLAN中

SW_1(config)#Int f0/3 //进入接口

SW_1(config-if)#Switchport mode access //设置接口的工作模式

SW_1(config-if)#Switchport access vlan 10 //将接口分配到指定的VLAN中

SW_1(config-if)#Int f0/4  //进入接口

SW_1(config-if)#Switchport mode access //设置接口的工作模式

SW_1(config-if)#Switchport access vlan 20 //将接口分配到指定的VLAN中

7-检查VLAN划分后接口的分配情况

2

8-根据拓扑图的情况在所有接入层的交换机上配置端口安全,预警状态为shutdown;

SW_1(config-if)#Int f0/3 //进入接口

SW_1(config-if)#switchport port-security maximum 1 //设置端口允许接入的最大数量

SW_1(config-if)#switchport port-security violation shutdown  //设置预警处理方法

SW_1(config-if)#switchport port-security  //启用端口安全

SW_1(config-if)#Int f0/4 //进入接口

SW_1(config-if)#switchport port-security maximum 1 //设置端口允许接入的最大数量

SW_1(config-if)#switchport port-security violation shutdown  //设置预警处理方法

SW_1(config-if)#switchport port-security  //启用端口安全

9-根据拓扑图的情况,在所有交换机上开启快速生成树协议;

M_SW_3(config)#spanning-tree mode rapid-pvst //启用快速生成树

10-根据拓扑图的情况,在所有的终端接口上,开启快速接口功能;

SW_1(config-if)#int f0/3 //进入接口

SW_1(config-if)#spanning-tree portfast  //启动快速端口

SW_1(config-if)#int f0/4 //进入接口

SW_1(config-if)#spanning-tree portfast //启动快速端口

11-根据拓扑图的情况,在所有的终端接口上,开启BPDU保护功能;

SW_1(config)#int f0/3  //进入接口

SW_1(config-if)#spanning-tree bpduguard enable //开启BPDU

SW_1(config-if)#int f0/4 //进入接口

SW_1(config-if)#spanning-tree bpduguard enable  //开启BPDU

12-检测网络中的根桥、指定端口、阻塞端口和根端口的情况;

4

问题:在整个网络中,所有VLAN的根都是二层交换机的SW_5;根据拓扑图的分布情况和网络中存在的设备情况,SW_5为根不符合要求,需要进行调整;

13-接入新的交换机,并观察网络中根桥、指定端口、阻塞端口和根端口的变化情况,若根桥没有变化,则改变新接入设备的优先级,使其成为最优根桥,观察网络设备的变化情况。

假设:新接入的M_SW_4交换机优先级为28672,高于SW_5优先级,则出现根被夺走现象;

M_SW_4(config)#spanning-tree vlan 1,10,20,30,40,50,60 priority 28672 //修改该交换机的优先级,使其成为高优先级的设备,与原根竞争根的选举。

3

14-在相应的接口上启用根保护功能,观看网络中根桥、指定端口、阻塞端口和根端口的变化情况;并将恢复原有的根;

M_SW_1(config-if)#int f0/10 //进入接口

M_SW_1(config-if)#spanning-tree guard root //启用根保护功能

SW_5(config)#spanning-tree vlan 1,10,20,30,40,50,60 priority 8192 //提升原根的优先级,使其他新接入的设备无法与其争用根。

15-根据要求,完成下面的配置

(1)M_SW_1作为vlan10、30、50的主根;

(2)M_SW_2作为vlan20、40、60的主根;

(3)M_SW_1作为vlan20、40、60的副根;

(4)M_SW_2作为VLAN10、30、50的副根;

M_SW_1(config)#spanning-tree vlan 10,30,50 root primary  //设置m_sw_1作为vlan10、vlan30、vlan50的主根

M_SW_1(config)#spanning-tree vlan 20,40,60 root se  //设置m_sw_1作为vlan10、vlan30、vlan50的副根

M_SW_2(config)#spanning-tree vlan 20,40,60 root primary  //设置M_SW_2做作为vlan20、vlan40、vlan60的主根

M_SW_2(config)#spanning-tree vlan 10,30,50 root se  //设置M_SW_2做作为vlan20、vlan40、vlan60的副根

5

6

16-在M_SW_1上设置DHCP,使其成为10、30、50的服务器;

M_SW_1(config)#ip dhcp pool vlan10 //设置地址池,名称为vlan10

M_SW_1(dhcp-config)#default-router 192.168.10.254 //设置vlan10的默认网关地址

M_SW_1(dhcp-config)#network 192.168.10.0 255.255.255.0 //设置vlan10的网段

M_SW_1(dhcp-config)#exit //退出接口模式

M_SW_1(config)#ip dhcp excluded-address 192.168.10.254  //设置vlan10的排除地址

M_SW_1(config)#ip dhcp pool vlan30 //设置地址池,名称为vlan30

M_SW_1(dhcp-config)#default-router 192.168.30.254 //设置vlan30的默认网关地址

M_SW_1(dhcp-config)#network 192.168.30.0 255.255.255.0 //设置vlan30的网段

M_SW_1(dhcp-config)#exit //退出接口模式

M_SW_1(config)#ip dhcp excluded-address 192.168.30.254 //设置vlan30的排除地址

M_SW_1(config)#ip dhcp pool vlan50 //设置地址池,名称为vlan50

M_SW_1(dhcp-config)#default-router 192.168.50.254 //设置vlan50的默认网关地址

M_SW_1(dhcp-config)#network 192.168.50.0 255.255.255.0 //设置vlan50的网段

M_SW_1(dhcp-config)#exit //退出接口模式

M_SW_1(config)#ip dhcp excluded-address 192.168.50.254 //设置vlan50的排除地址

17-在M_SW_2上设置DHCP,使其成为20、40、60的服务器;

M_SW_2(config)#ip dhcp pool vlan20 //设置地址池,名称为vlan20

M_SW_2(dhcp-config)#default-router 192.168.20.254 //设置vlan20的默认网关地址

M_SW_2(dhcp-config)#network 192.168.20.0 255.255.255.0 //设置vlan20的网段

M_SW_2(dhcp-config)#exit //退出接口模式

M_SW_2(config)#ip dhcp excluded-address 192.168.20.254 //设置vlan20的排除地址

M_SW_2(config)#ip dhcp pool vlan40 //设置地址池,名称为vlan40

M_SW_2(dhcp-config)#default-router 192.168.40.254 //设置vlan40的默认网关地址

M_SW_2(dhcp-config)#network 192.168.40.0 255.255.255.0 //设置vlan40的网段

M_SW_2(dhcp-config)#exit //退出接口模式

M_SW_2(config)#ip dhcp excluded-address 192.168.40.254 //设置vlan40的排除地址

M_SW_2(config)#ip dhcp pool vlan60 //设置地址池,名称为vlan50

M_SW_2(dhcp-config)#default-router 192.168.60.254 //设置vlan50的默认网关地址

M_SW_2(dhcp-config)#network 192.168.60.0 255.255.255.0 //设置vlan50的网段

M_SW_2(dhcp-config)#exit //退出接口模式

M_SW_2(config)#ip dhcp excluded-address 192.168.60.254 //设置vlan50的排除地址

18-配置网关地址

M_SW_1(config)#Int vlan 10 //进入vlan 的接口

M_SW_1(config-if)#Ip add 192.168.10.254 255.255.255.0 //设置接口的IP地址

M_SW_1(config-if)#Int vlan 30 //进入vlan 的接口

M_SW_1(config-if)#Ip add 192.168.30.254 255.255.255.0 //设置接口的IP地址

M_SW_1(config-if)#Int vlan 50 //进入vlan 的接口

M_SW_1(config-if)#Ip add 192.168.50.254 255.255.255.0 //设置接口的IP地址

M_SW_2(config)#Int vlan 20 //进入vlan 的接口

M_SW_2(config-if)#Ip add 192.168.20.254 255.255.255.0 //设置接口的IP地址

M_SW_2(config-if)#Int vlan 40 //进入vlan 的接口

M_SW_2(config-if)#Ip add 192.168.40.254 255.255.255.0 //设置接口的IP地址

M_SW_2(config-if)#Int vlan 60 //进入vlan 的接口

M_SW_2(config-if)#Ip add 192.168.60.254 255.255.255.0 //设置接口的IP地址

19-检查DHCP的配置情况

22

11

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多