留言板

CCIE R&S v4.0 理论

当前位置: 首页CCIE资料库CCIE R&S v4.0 理论Switching


Switching

 

 

                                                       文档下载:

  目录


交换机接口配置
交换机MAC地址表
Trunk
DTP (Dynamic Trunking Protocol)
VTP (VLAN Trunking Protocol)
STP(Spanning-Tree Protocol)
      Common Spanning Tree (CST)
      Rapid Spanning Tree Protocol (RSTP)
      Per-VLAN Spanning-Tree plus (PVST+)
      Rapid PVST+
      Multiple Spanning Tree Protocol (MSTP)
Spanning-Tree Feature
      Port Fast
      BPDU Guard
      BPDU Filtering
      UplinkFast
      BackboneFast
      Root Guard
      Loop Guard
EtherChannel
Protected Port
Port Blocking
Port Security
IP Source Guard
Security with ACL
      Port ACL
      Router ACL
      VLAN ACL(VLAN map)
Storm Control
SPAN and RSPAN
UDLD (UniDirectional Link Detection)
Fallback Bridging
IEEE 802.1x(DOT1X)Authentication
交换机故障恢复管理
      交换机密码恢复
      交换机密码恢复管理

 

 

交换机接口配置

 

 因为交换机的特殊性,通常存在多个接口需要做相同的配置,如将多个接口划入相同VLAN,这时就需要一种能够快速配置接口的方法。

 对于2层交换机,所有的接口只能工作在二层,而对于三层交换机,接口除了可以工作在二层之外,并且还可以工作在三层,也就是说三层交换机的接口还可以配置IP地址,等同于路由器的接口。

 

配置

快速配置接口

1.快速对多个连续的接口做相同配置

(1)快速进入多个接口

Switch(config)#interface range f0/1-3

说明:同时进入接口F0/1F0/2F0/3

(2)配置接口参数

Switch(config)#interface range f0/1-3

Switch(config-if-range)#description ccie

说明:当同时进入多个接口后,所做的配置将对所有进入的接口生效。

(3)查看结果

Switch#sh run | b inter

vlan internal allocation policy ascending

!

!

interface FastEthernet0/1

 description ccie

!

interface FastEthernet0/2

 description ccie

!

interface FastEthernet0/3

 description ccie

!

interface FastEthernet0/4

!

interface FastEthernet0/5

!

interface FastEthernet0/6

!

说明:可以看到配置文件中,之前的配置对F0/1F0/2F0/3生效,其它没有进入的接口配置保存原状。

 

2.快速对多个不连续的接口做相同配置

(1)快速进入多个不连续接口

Switch(config)#interface range f0/1 - 2 , f0/4 , f0/6 – 7

说明:同时进入接口F0/1F0/2F0/4F0/6F0/7

在配置多个不连续接口时,请注意在连字符 – 前后都加上空格,这样可以保证在任何IOS版本中输入有效。

(2)配置接口参数

Switch(config)#interface range f0/1 - 2 , f0/4 , f0/6 - 7

Switch(config-if-range)#description cisco

说明:当同时进入多个接口后,所做的配置将对所有进入的接口生效。

(3)查看结果

Switch#sh run | b inter

vlan internal allocation policy ascending

!

!

interface FastEthernet0/1

 description cisco

!

interface FastEthernet0/2

 description cisco

!

interface FastEthernet0/3

!

interface FastEthernet0/4

 description cisco

!

interface FastEthernet0/5

!

interface FastEthernet0/6

 description cisco

!

interface FastEthernet0/7

 description cisco

!

interface FastEthernet0/8

!

说明:可以看到配置文件中,之前的配置对F0/1F0/2F0/4F0/6F0/7生效,其它没有进入的接口配置保存原状。

3.接口宏(macro)定义

 说明:当在交换机的日常管理中,可能需要多次对多个非连续的接口进行管理和配置,而当需要进入多个非连续接口时,输入的命令较为烦琐,所以为了方便,系统允许人工将多个接口定义成一个组,这个组成为宏(macro),当进入这个宏(macro),就等于进入了组中的所有接口,对宏(macro)做出的配置,将对组中的所有接口生效,即便交换机重启后,所定义的宏(macro)仍旧存在,可以多次使用,直到手工删除。

(1)定义宏(macro)

Switch(config)#define interface-range ccie f0/1 - 2 , f0/4 , f0/6 – 7

说明:将接口F0/1F0/2F0/4F0/6F0/7放入了宏ccie中,对宏ccie所做的配置将对F0/1F0/2F0/4F0/6F0/7生效。

(2)配置接口参数

Switch(config)#interface range macro ccie

Switch(config-if-range)#description abc

说明:对宏ccie所做的配置将对F0/1F0/2F0/4F0/6F0/7生效。

(3)查看结果

Switch#sh run | b inter 

vlan internal allocation policy ascending

!

!

interface FastEthernet0/1

 description abc

!

interface FastEthernet0/2

 description abc

!

interface FastEthernet0/3

!

interface FastEthernet0/4

 description abc

!

interface FastEthernet0/5

!

interface FastEthernet0/6

 description abc

!

interface FastEthernet0/7

 description abc

!

interface FastEthernet0/8

!

说明:可以看到配置文件中,对宏ccie所做的配置将对F0/1F0/2F0/4F0/6F0/7生效,其它接口配置保存原状。

 

4.配置SVI(switch virtual interface)接口

说明:三层交换机的物理接口既可以配置为2层接口,也可以配置为三层接口,对于这些配置,此文档将跳过不作详细介绍。

 除了交换机物理接口外,交换机还可以将某个VLAN配置为3层接口,称为SVI(switch virtual interface)接口,将VLAN配置为3层接口的作用在于为VLAN内的流量与外部流量提供3层路由转发功能,该VLAN内所有的流量都应该在同网段,而该VLAN的主机网关都应该指向SVI接口地址。此时的SVI接口,其实也等同于路由器的接口,但是SVI接口也只有在状态都为UP的时候,才能提供路由功能,一个状态为down的SVI接口是不能发送数据包的。要将SVI接口激活并且变成UP状态,必须将一个活动的物理接口划入该VLAN,当某VLAN中没有活动物理接口时,该VLAN的SVI接口永远将处于down状态而不能转发数据。需要大家注意的是,一个Trunk接口允许某个VLAN通过,就表示该Trunk接口属于该VLAN,也就是说某个VLAN被一个活动的Trunk接口允许通过时,那么就说明该VLAN中存在活动的物理接口,因此,该VLAN的SVI接口可以变成UP状态,也就可以转发数据包。

(1)创建SVI接口,并配置IP地址

Switch(config)#vlan 2

Switch(config-vlan)#exit

Switch(config)#int vlan 2

Switch(config-if)#ip add 2.2.2.2 255.255.255.0

说明:创建SVI接口时,必须保证该VLAN已经在交换机上存在。

(2)查看状态

查看VLAN:

Switch#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24

                                                Gi0/1, Gi0/2

2    VLAN0002                         active   

1002 fddi-default                     act/unsup

说明:可以看到,VLAN 2中没有活动的物理接口存在。

 

查看Trunk所允许的VLAN:

Switch#sh interfaces trunk

Switch#

说明:可以看到,交换机上没有任何Trunk接口,也表示VLAN 2中没有活动的物理接口存在。

 

查看SVI接口状态:

Switch#sh protocols vlan 2

Vlan2 is up, line protocol is down

  Internet address is 2.2.2.2/24

Switch#

说明:和预期的一样,因为VLAN 2 中没有任何活动物理接口,所以接口状态为down,并不能提供数据转发。

 

(3)激活SVI接口

Switch(config)#int f0/1

Switch(config-if)#switchport mode access

Switch(config-if)#switchport access vlan 2

Switch(config-if)#no shutdown

说明:将物理接口f0/1划入VLAN 2,只要f0/1状态为UP,则VLAN 2 的SVI接口便能变为UP。

 

(4)再次查看状态

查看VLAN:

Switch#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/2, Fa0/3, Fa0/4, Fa0/5

                                                Fa0/6, Fa0/7, Fa0/8, Fa0/9

                                                Fa0/10, Fa0/11, Fa0/12, Fa0/13

                                                Fa0/14, Fa0/15, Fa0/16, Fa0/17

                                                Fa0/18, Fa0/19, Fa0/20, Fa0/21

                                                Fa0/22, Fa0/23, Fa0/24, Gi0/1

                                                Gi0/2

2    VLAN0002                         active    Fa0/1

说明:VLAN 2中存在物理接口F0/1

 

查看物理接口F0/1的状态:

Switch#sh protocols f0/1

FastEthernet0/1 is up, line protocol is up

Switch#

说明:接口F0/1的状态为UP

 

Switch#sh protocols vlan 2

Vlan2 is up, line protocol is up

  Internet address is 2.2.2.2/24

Switch#

说明:因为VLAN 2中存在活动的物理接口F0/1,所以VLAN 2SVI接口状态变成了UP,并且能够提供数据转发。

 

(5)通过Trunk允许VLAN来控制SVI接口状态

Switch(config)#vlan 3

Switch(config-vlan)#exit

 

Switch(config)#vlan 4

Switch(config-vlan)#exit

 

Switch(config)#int vlan 3

Switch(config-if)#ip add 3.3.3.3 255.255.255.0

Switch(config-if)#exit

 

Switch(config)#int vlan 4

Switch(config-if)#ip add 4.4.4.4 255.255.255.0

Switch(config-if)#exit

Switch(config)#

说明:创建了VLAN 3VLAN4,并同时创建了相应的SVI接口。

 

查看VLAN:

Switch#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/2, Fa0/3, Fa0/4, Fa0/5

                                                Fa0/6, Fa0/7, Fa0/8, Fa0/9

                                                Fa0/10, Fa0/11, Fa0/12, Fa0/13

                                                Fa0/14, Fa0/15, Fa0/16, Fa0/17

                                                Fa0/18, Fa0/19, Fa0/20, Fa0/21

                                                Fa0/22, Fa0/23, Fa0/24, Gi0/1

                                                Gi0/2

2    VLAN0002                         active    Fa0/1

3    VLAN0003                         active   

4    VLAN0004                         active  

说明:VLAN 3VLAN4中没有任何物理接口。

 

查看Trunk

Switch#sh int trunk

Switch#

说明:交换机上也没有任何Trunk接口。

 

查看SVI接口:

Switch#sh prot

Switch#sh protocols vlan 3

Vlan3 is up, line protocol is down

  Internet address is 3.3.3.3/24

Switch#sh protocols vlan 4

Vlan4 is up, line protocol is down

  Internet address is 4.4.4.4/24

Switch#

说明:可以看见,由于VLAN3VLAN4中没有任何活动物理接口,所以SVI接口都为down状态。

 

激活VLAN 3 SVI接口:

Switch(config)#int f0/23

Switch(config-if)#switchport trunk encapsulation dot1q

Switch(config-if)#switchport mode trunk

Switch(config-if)#switchport trunk allowed vlan 3

Switch(config-if)#no shutdown

 

查看Trunk:

Switch#sh interfaces trunk

 

Port        Mode         Encapsulation  Status        Native vlan

Fa0/23      on           802.1q         trunking      1

 

Port        Vlans allowed on trunk

Fa0/23      3

 

Port        Vlans allowed and active in management domain

Fa0/23      3

 

Port        Vlans in spanning tree forwarding state and not pruned

Fa0/23      3

Switch#

说明:可以看到Trunk接口F0/23允许VLAN3通过。

 

查看SVI接口:

Switch#sh protocols vlan 3    

Vlan3 is up, line protocol is up

  Internet address is 3.3.3.3/24

Switch#sh protocols vlan 4

Vlan4 is up, line protocol is down

  Internet address is 4.4.4.4/24

Switch#

说明:因为Trunk允许VLAN 3 通过,所以VLAN 3SVI接口状态已变为UP,而VLAN 4 则仍旧为down

 

Switch(config)#int f0/23                     

Switch(config-if)#switchport trunk allowed vlan 3,4

 

Switch#sh interfaces trunk

 

Port        Mode         Encapsulation  Status        Native vlan

Fa0/23      on           802.1q         trunking      1

 

Port        Vlans allowed on trunk

Fa0/23      3-4

 

Port        Vlans allowed and active in management domain

Fa0/23      3-4

 

Port        Vlans in spanning tree forwarding state and not pruned

Fa0/23      3-4

说明:可以看到Trunk接口F0/23允许VLAN3VLAN 4通过。

 

Switch#sh protocols vlan 3

Vlan3 is up, line protocol is up

  Internet address is 3.3.3.3/24

Switch#sh protocols vlan 4

Vlan4 is up, line protocol is up

  Internet address is 4.4.4.4/24

Switch#

说明:因为Trunk允许VLAN 3 VLAN4通过,所以VLAN 3VLAN4SVI接口状态都已变为UP

                                                                  返回目录

交换机MAC地址表

 

 交换机在转发数据时,需要根据MAC地址表来做出相应转发,如果目标主机的MAC地址不在表中,交换机将收到的数据包在所有活动接口上广播发送。当交换机上的接口状态变成UP之后,将动态从该接口上学习MAC地址,并且将学习到的MAC地址与接口相对应后放入MAC地址表。

 交换机的MAC地址表除了动态学习之外,还可以静态手工指定,并且在指定MAC地址时,还可以指定在某个VLAN的某个接口收到相应的MAC后,将数据包作丢弃处理。

注:交换机上,一个接口可以对应多个MAC地址,地址的数量无上限,但不超过交换机所支持的MAC地址最大数量。

 一个MAC地址可以同时出现在交换机的多个接口上,但此特性并不被所有型号的交换机支持,在某些型号的交换机上,一个MAC地址只能出现在一个接口上,如果出现在另外一个接口上,将会报错,并且数据转发也会出错。

 

1.查看交换机MAC地址表

(1)查看接口F0/1的MAC地址表

Switch#sh mac-address-table interface f0/1

          Mac Address Table

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

 

Vlan    Mac Address       Type        Ports

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

   2    0013.1a2f.0680    DYNAMIC     Fa0/1

Total Mac Addresses for this criterion: 1

Switch#

说明:交换机从F0/1上学习到了MAC地址0013.1a2f.0680,并且说明是动态学习到的。

 

2.手工静态指定MAC地址

(1)手工静态指定MAC地址

Switch(config)#mac-address-table static 0013.1a2f.0680 vlan 1 interface f0/2

说明:指定VLAN 1的接口F0/2MAC地址为0013.1a2f.0680

(2)查看接口F0/2的MAC地址表

Switch#sh mac-address-table interface f0/2

          Mac Address Table

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

 

Vlan    Mac Address       Type        Ports

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

   1    0013.1a2f.0680    STATIC      Fa0/2

   1    0013.1a7f.a4a0    DYNAMIC     Fa0/2

Total Mac Addresses for this criterion: 2

Switch#

说明:接口F0/2上除了动态学习到的MAC地址之外,还有静态手工指定的地址。

 

(3)指定丢弃某个MAC地址

Switch(config)#mac-address-table static 0013.1a2f.0680 vlan 2 drop

说明:此配置将使源MAC0013.1a2f.0680的数据包在VLAN 2被丢弃,但在别的VLAN通信正常。

 

3.MAC地址老化时间(aging-time

 交换机在一个接口上学习到MAC地址之后,该MAC与接口的映射并不会永远被保存在MAC地址表中,除非是手工静态指定的。当一台主机从某个接口转移后,交换机再将目标MAC为该主机的数据从该接口发出去是毫无意义的,所以MAC地址在MAC地址表中是有最大停留时间的,称为老化时间(aging-time),当相应MAC地址在超出老化时间后还没有数据传输时,该MAC地址将从表中被清除。默认的MAC地址老化时间为300秒(5分钟)。

(1)修改MAC地址的老化时间

说明:只能针对VLAN作修改

Switch(config)#mac-address-table aging-time 60 vlan 1

说明:将VLAN 1MAC地址老化时间改为60秒。

(2)查看MAC地址的老化时间

Switch#sh mac-address-table aging-time

Global Aging Time:  300

Vlan    Aging Time

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

   1      60

   2     300

   3     300

   4     300

Switch#

说明:可以看到,VLAN 1MAC地址老化时间为60秒,其它VLAN保存默认300秒。

 

交换机自身MAC地址

 以太网中,每一个节点,都需要一个MAC地址,而以太网交换机可以与多个终端连接,也就有多个节点,因此,交换机上也会有多个MAC地址存在,如交换机的每个接口都有一个MAC地址,包含物理接口和SVI接口。除此之外,还有一个MAC地址是用来表示整台交换机的。

注:都知道2层交换机的VLAN 1为管理VLAN,一个表示整台交换机的MAC地址通常就是VLAN 1MAC地址,但这种情况又需要根据交换机型号而定,并不适用于任何型号的交换机。

某些型号的交换机,所有VLANSVI接口MAC地址全部相同,但某些型号却是不同的,但是连续的。

 

1.查看交换机的MAC地址

(1)查看表示整台交换机的MAC地址

Switch#sh version

(输出被省略)

512K bytes of flash-simulated non-volatile configuration memory.

Base ethernet MAC Address       : 00:1A:6C:6F:FB:00

Motherboard assembly number     : 73-9897-06

Power supply part number        : 341-0097-02

Motherboard serial number       : CAT10475C57

Power supply serial number      : AZS104407JE

Model revision number           : D0

Motherboard revision number     : A0

Model number                    : WS-C3560-24TS-S

System serial number            : CAT1047RJNU

Top Assembly Part Number        : 800-26160-02

Top Assembly Revision Number    : C0

Version ID                      : V02

CLEI Code Number                : COMMG00ARB

Hardware Board Revision Number  : 0x01

 

 

Switch   Ports  Model              SW Version              SW Image           

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

*    1   26     WS-C3560-24TS      12.2(35)SE1             C3560-ADVIPSERVICESK

 

 

Configuration register is 0xF

 

Switch#

说明:表示整台交换机的MAC地址为00:1A:6C:6F:FB:00

 

(2)查看物理接口的MAC地址

Switch#sh int f0/1

FastEthernet0/1 is up, line protocol is up (connected)

  Hardware is Fast Ethernet, address is 001a.6c6f.fb03 (bia 001a.6c6f.fb03)

(输出被省略)

 

Switch#sh int f0/2

FastEthernet0/2 is up, line protocol is up (connected)

  Hardware is Fast Ethernet, address is 001a.6c6f.fb04 (bia 001a.6c6f.fb04)

(输出被省略)

 

Switch#sh int f0/3

FastEthernet0/3 is up, line protocol is up (connected)

  Hardware is Fast Ethernet, address is 001a.6c6f.fb05 (bia 001a.6c6f.fb05)

(输出被省略)

 

说明:可以看到,物理接口的MAC地址是连续的,但无论什么型号的交换机,物理接口的MAC地址一定是不同的。

 

(3)查看SVI接口的MAC地址

Switch#sh int vlan 1

Vlan1 is up, line protocol is up

  Hardware is EtherSVI, address is 001a.6c6f.fb40 (bia 001a.6c6f.fb40)

(输出被省略)

 

Switch#sh int vlan 2

Vlan2 is up, line protocol is up

  Hardware is EtherSVI, address is 001a.6c6f.fb41 (bia 001a.6c6f.fb41)

(输出被省略)

 

Switch#sh int vlan 3

Vlan3 is up, line protocol is up

  Hardware is EtherSVI, address is 001a.6c6f.fb42 (bia 001a.6c6f.fb42)

(输出被省略)

 

说明:可以看到,交换机SVI接口的MAC地址是连续的,但某些型号的交换机,所有SVI接口的MAC地址全部是相同的。

                                                                  返回目录 

 

Trunk

 在交换机上,可以将access接口划入各个VLAN中,不同VLAN的流量是不被交换机转发的。如果要让两个access接口互相通信,就必须将这两个接口划入相同的VLAN中。

 当需要在交换机与交换机之间通信时,连接交换机的链路就可能需要为多个VLAN提供数据传输,这样在一条链路上提供多个VLAN数据传输的链路,就是Trunk,进入Trunk的数据包被打上标记,写上相应的VLAN号,当传输到对端时,则被去掉标记,并且根据VLAN号将数据包转发到相应的VLAN中。需要说明,在access接口上的数据包,是没有VLAN号标记的,并且也不允许VLAN标记,如果一个access接口收到一个带有VLAN标记的数据包,是要将数据包丢弃的。

 Trunk上为数据包打标记是通过协议来完成的,目前有两种协议可以完成VLAN标记工作,分别是Inter-Switch Link (ISL)和IEEE 802.1Q,其中ISL为思科私有协议。

 

 当Trunk使用ISL封装时,将对进入Trunk的每个VLAN的数据包打上标记,当ISL收到一个没有标记的数据帧,直接丢弃。ISL在原始以太网数据帧的基础上,额外加上26字节的标记,但最多只支持1000VLAN,除此之外,ISL还将对整个数据帧重新计算FCS,在帧的最后插入4字节的新FCS,也就是说,ISL会在原始数据帧的基础上再加30字节,数据包结构如下:

 

 

 可以看出,原始以太网帧的大小范围为64-1518字节,而ISL帧的大小范围为94-1548字节。当ISL Trunk收到数据帧后,直接去掉ISL标记和新FCS后,就可马上转发。

 

 当Trunk使用IEEE 802.1Q封装时,将对除了Native VLAN之外的所有VLAN打上标记,如果802.1Q收到一个没有VLAN标记的数据帧,将其在Native VLAN内转发,所以请确保Trunk两头的Native VLAN号是一致的。802.1Q在原始以太网帧中插入4字节的标记,支持4096个VLAN,

数据包结构如下:

 

 

 可以看出,原始以太网帧的大小范围为64-1518字节,而802.1Q帧的大小范围为68-1522字节。当802.1Q Trunk收到数据帧后,去掉802.1Q标记之外,还要重新计算FCS才有转发。

 

 

配置

 

 

 

 

说明:只有数据帧经过Trunk时,才会打上VLAN标记,而经过access接口的数据帧是没有标记的,当一个access接口属于某个VLAN,那么从此接口收到的数据帧都被认为是此VLAN的数据,因此就可与该接口相同VLAN的主机通信。下面以上图配置。

 

1.在交换机上将access接口划入相应VLAN

(1)在SW1上做相应配置

sw1(config)#vlan 10

sw1(config-vlan)#exit

sw1(config)#vlan 20

sw1(config-vlan)#exit

 

sw1(config)#int f0/1

sw1(config-if)#switchport mode access

sw1(config-if)#switchport access vlan 10

sw1(config-if)#no shutdown

sw1(config-if)#exit

 

sw1(config)#int f0/2

sw1(config-if)#switchport mode access

sw1(config-if)#switchport access vlan 20

sw1(config-if)#no shutdown

sw1(config-if)#exit

 

sw1(config)#int f0/23

sw1(config-if)#switchport mode access

sw1(config-if)#switchport access vlan 10

sw1(config-if)#no shutdown

 

(2)在SW2上做相应配置

sw2(config)#vlan 20

sw2(config-vlan)#exit

 

sw2(config)#int range f0/3 , f0/23

sw2(config-if-range)#switchport mode access

sw2(config-if-range)#switchport access vlan 20

sw2(config-if-range)#no shutdown

sw2(config-if-range)#exit

 

2.配置各路由器

(1)配置R1

r1(config)#int f0/0

r1(config-if)#ip add 10.1.1.1 255.255.255.0

r1(config-if)#no sh

(2)配置R2

r2(config)#int f0/0

r2(config-if)#ip add 10.1.1.2 255.255.255.0

r2(config-if)#no sh

(3)配置R3

r3(config)#int f0/1

r3(config-if)#ip add 10.1.1.3 255.255.255.0

r3(config-if)#no sh

 

3.测试结果

(1)测试从R1到R2的连通性

r1#ping 10.1.1.2 repeat 10

 

Type escape sequence to abort.

Sending 10, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:

..........

Success rate is 0 percent (0/10)

r1#

说明:因为从R1发送数据包到10.1.1.2时,数据包从SW1的接口F0/1进入,因为F0/1属于VLAN 10,而F0/2属于VLAN 20,所以SW1并不会将去往10.1.1.2的数据包从接口F0/2发出去,所以R1R2的通信失败。

 

(2)测试从R1到R3的连通性

r1#ping 10.1.1.3 repeat 10

 

Type escape sequence to abort.

Sending 10, 100-byte ICMP Echos to 10.1.1.3, timeout is 2 seconds:

!!!!!!!!!!

Success rate is 100 percent (10/10), round-trip min/avg/max = 1/2/4 ms

r1#

说明:因为从R1发送数据包到10.1.1.3时,数据包从SW1的接口F0/1进入,由于F0/1属于VLAN 10,而F0/23也属于VLAN 10,所以SW1将去往10.1.1.3的数据包从接口F0/23发出去,当SW2F0/23收到数据包后,因为没有VLAN标记,所以认为数据包是属于VLAN 20,便将数据包从F0/3发出去,最后R3收到数据包后,向R1回包,最终虽然R1R3属于不同的VLAN,但由于access接口没有VLAN标记,交换机并不认为是不同VLAN,所以R1R3的通信成功。

 

Trunk重点实验

 

说明:以上图为例,配置实验,本实验在于说明,当一台交换机上的VLAN与另外一台交换机的相同VLAN通信时,如果中间还有交换机,当中间交换机上没有配置一个相同VLAN时,并且无论Trunk是否允许该VLAN通过,两边的交换机流量无法通过此VLAN进行通信,

 

1.配置交换机

(1)配置SW1的VLAN与Trunk

sw1(config)#vlan

sw1(config)#vlan 10

sw1(config-vlan)#exit

sw1(config)#vlan 20

sw1(config-vlan)#exit

 

sw1(config)#int f0/19

sw1(config-if)#switchport trunk encapsulation dot1q

sw1(config-if)#switchport mode trunk

sw1(config-if)#no shutdown

sw1(config-if)#exit

 

sw1(config)#int f0/1

sw1(config-if)#switchport mode access

sw1(config-if)#switchport access vlan 20

sw1(config-if)#no shutdown

sw1(config-if)#exit

 

(2)配置SW2的VLAN与Trunk

sw2(config)#vlan 10

sw2(config-vlan)#exit

sw2(config)#vlan 20

sw2(config-vlan)#exit

 

sw2(config)#int f0/21

sw2(config-if)#switchport trunk encapsulation dot1q

sw2(config-if)#switchport mode trunk

sw2(config-if)#no shutdown

sw2(config-if)#exit

sw2(config)#int f0/2

sw2(config-if)#switchport mode access

sw2(config-if)#switchport access vlan 20

sw2(config-if)#no shutdown

sw2(config-if)#exit

 

(3)配置SW3的VLAN与Trunk

sw3(config)#vlan 10

sw3(config-vlan)#exit

sw3(config)#

 

sw3(config)#int range f0/19 , f0/21

sw3(config-if-range)#switchport trunk encapsulation dot1q

sw3(config-if-range)#switchport mode trunk

sw3(config-if-range)#no shutdown

 

2.配置IP

(1)配置各设备的IP地址

 

SW1

sw1(config)#int vlan 10

sw1(config-if)#ip address 10.1.1.1 255.255.255.0

sw1(config-if)#exit

 

sw1(config)#int vlan 20

sw1(config-if)#ip address 20.1.1.1 255.255.255.0

sw1(config-if)#exit

 

 

SW2

sw2(config)#int vlan 10

sw2(config-if)#ip add 10.1.1.2 255.255.255.0

sw2(config-if)#exit

 

sw2(config)#int vlan 20

sw2(config-if)#ip add 20.1.1.2 255.255.255.0

sw2(config-if)#exi

 

 

R1

r1(config)#int f0/0

r1(config-if)#ip add 20.1.1.10 255.255.255.0

r1(config-if)#no sh

 

R2

r2(config)#int f0/1

r2(config-if)#ip add 20.1.1.20 255.255.255.0

r2(config-if)#no sh

 

3.测试通信

(1)测试SW1的VLAN 10到SW2的VLAN 10的连通性

SW1

sw1#ping 10.1.1.2

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

sw1#

说明:因为SW1SW2SW3都有VLAN 10,所以VLAN 10SW1SW2是畅通的。

 

(2)测试SW1的VLAN 20到SW2的VLAN 20的连通性

sw1#ping 20.1.1.2

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 20.1.1.2, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

sw1#

说明:虽然SW1SW2VLAN 20,但是SW1SW2VLAN 20通信需要穿越SW3,而SW3却没有VLAN 20,因此SW3在自身没有VLAN 20的情况下,是不允许VLAN 20的流量从自己经过的,所以SW1VLAN 20SW2VLAN 20不通。

 

 

(3)测试R1到R2的连通性

r1#ping 20.1.1.20

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 20.1.1.20, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

r1#

说明:虽然R1R2都属于VLAN 20SW1SW2都有VLAN 20,但是SW3却没有VLAN 20,因此SW3在自身没有VLAN 20的情况下,是不允许VLAN 20的流量从自己经过的,所以R1R2不通。

 

4.解决VLAN 20通信

说明:因为SW1SW2中间的交换机SW3没有VLAN 20,所以穿越SW3VLAN 20的流量不能通过,解决方法为在SW3上创建VLAN 20即可。

(1)在SW3上创建VLAN 20

sw3(config)#vlan 20

sw3(config-vlan)#exit

sw3(config)#exi

 

(2)测试SW1的VLAN 20到SW2的VLAN 20的连通性

sw1#ping 20.1.1.2

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 20.1.1.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

sw1#

说明:因为SW1SW2中间的交换机SW3已经创建VLAN 20,所以能够放行VLAN 20的流量,最终SW1VLAN 20SW2VLAN 20通信正常。

 

(3)测试R1到R2的连通性

r1#ping 20.1.1.20              

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 20.1.1.20, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

r1#

 

说明:因为SW1SW2中间的交换机SW3已经创建VLAN 20,所以能够放行VLAN 20的流量,最终R1R2的通信正常.  

说明:所以基于以上结论,在多台交换机相连时,需要在跨交换机实现VLAN通信,即使是同VLAN,也要解决好连通性问题。

                                                                  返回目录

 

DTP (Dynamic Trunking Protocol)

 在需要使用Trunk链路时,通常是手工静态配置接口模式,并且手工指定Trunk封装协议。然而,当交换机与交换机的接口相连时,多数都需要配置为Trunk模式,而连接主机时,都需要配置为access模式,为了能够让交换机自动判断什么时候该将接口设置为Trunk,因此开发出了动态Trunk配置协议(Dynamic Trunking Protocol),DTP能够在需要将交换机接口配置为Trunk模式时,自动将接口配置为Trunk,并自动选择Trunk封装协议,默认ISL优先。

 DTP采用协商的方式来决定是否将接口配置为Trunk,可配置的接口模式,准确地讲,应该是3种,分别为ONdesirable auto,下面详细介绍各模式功能:

 

ON

 其实就是手工静态配置为Trunk,并且还会向对方主动发起DTP信息,要求对方也工作在Trunk模式,无论对方邻居在什么模式,自己永远工作在Trunk模式。

 

Desirable

此模式为DTP主动模式,工作在此模式的接口会主动向对方发起DTP信息,要求对方也工作在Trunk模式,如果对方回复同意工作在Trunk模式,则工作在Trunk模式,如果没有DTP回复,则工作在access模式。

 

Auto

 此模式为DTP被动模式,工作在此模式的接口不会主动发起DTP信息,只会等待对方主动发起DTP信息,如果收到对方的DTP信息要求工作在Trunk模式,则自己回复对方同意工作在Trunk模式,最后的模式为Trunk,如果DTP被动模式收不到DTP要求工作在Trunk的信息,则工作在access模式。

 

 以上三种接口模式都会产生DTP信息,ONdesirable是主动产生DTP信息,而auto是被动生产DTP信息,如果手工将接口配置成Trunk模式后,可以关闭DTP信息以节省资源,关闭DTP的模式为nonegotiate

 

注:

Access模式不是DTP的一部分。

开启DTP协商的双方都必须在相同的VTP域内,否则协商不成功。

交换机的型号不同,默认的DTP模式会有所不同,3550默认为desirable模式,3560默认为auto模式。

当收不到对方DTP回复时,则选择工作在access模式。

 

 接口配置模式与最终工作模式对照表如下:

Port1 administrator mode

Port2 administrator mode

Port1&2 working mode

trunk

trunk

trunk

trunk

dynamic desirable

trunk

trunk

dynamic auto

trunk

trunk

access

fault

access

access

access

access

dynamic desirable

access

access

dynamic auto

access

dynamic desirable

dynamic desirable

trunk

dynamic desirable

dynamic auto

trunk

dynamic auto

dynamic auto

access

配置

 

 

 

1.配置SW1desirableSW2Trunk

(1)配置DTP

sw1(config)#int f0/23

sw1(config-if)#switchport mode dynamic desirable

 

sw2(config)#int f0/23

sw2(config-if)#switchport trunk encapsulation dot1q

sw2(config-if)#switchport mode trunk

 

(2)查看结果

sw1#sh int f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: dynamic desirable

Operational Mode: trunk

Administrative Trunking Encapsulation: negotiate

Operational Trunking Encapsulation: dot1q

Negotiation of Trunking: On

(输出被省略)

sw1#

 

 

sw2#sh int f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: trunk

Operational Mode: trunk

Administrative Trunking Encapsulation: dot1q

Operational Trunking Encapsulation: dot1q

Negotiation of Trunking: On

(输出被省略)

sw2#

 

说明:可以看到,双方接口的DTP协商是开启的,因为双方都会主动发起DTP要求对方工作在trunk,所以最终双方的工作模式为Trunk

 

 

2.配置SW1desirableSW2auto

(1)配置DTP

sw1(config)#int f0/23

sw1(config-if)#switchport mode dynamic desirable

 

sw2(config)#int f0/23

sw2(config-if)#switchport mode dynamic auto

 

(2)查看结果

sw1#sh int f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: dynamic desirable

Operational Mode: trunk

Administrative Trunking Encapsulation: negotiate

Operational Trunking Encapsulation: isl

Negotiation of Trunking: On

(输出被省略)

sw1#

 

sw2#sh int f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: dynamic auto

Operational Mode: trunk

Administrative Trunking Encapsulation: negotiate

Operational Trunking Encapsulation: isl

Negotiation of Trunking: On

(输出被省略)

sw2#

 

说明:可以看到,双方接口的DTP协商是开启的,因为SW1会主动发起DTP要求对方工作在trunk,而SW2会同意工作在Trunk,所以最终双方的工作模式为Trunk,并且封装协议优选ISL

 

 

3.配置SW1autoSW2auto

(1)配置DTP

sw1(config)#int f0/23

sw1(config-if)#switchport mode dynamic auto

 

sw2(config)#int f0/23

sw2(config-if)#switchport mode dynamic auto

 

(2)查看结果

sw1#sh int f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: dynamic auto

Operational Mode: static access

Administrative Trunking Encapsulation: negotiate

Operational Trunking Encapsulation: native

Negotiation of Trunking: On

(输出被省略)

sw1#

 

sw2#sh int f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: dynamic auto

Operational Mode: static access

Administrative Trunking Encapsulation: negotiate

Operational Trunking Encapsulation: native

Negotiation of Trunking: On

(输出被省略)

sw2#

 

说明:可以看到,双方接口的DTP协商是开启的,但由于双方都不会主动发起DTP要求对方工作在trunk,所以最终双方的工作模式为access

  

4.配置SW1desirableSW2Trunk,并且关闭DTP(即为nonegotiate

(1)配置DTP

sw1(config)#int f0/23

sw1(config-if)#switchport mo dynamic desirable

sw2(config)#int f0/23

sw2(config-if)#switchport trunk encapsulation dot1q

sw2(config-if)#switchport mode trunk

sw2(config-if)#switchport nonegotiate

 

(2)查看结果

sw1#sh int f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: dynamic desirable

Operational Mode: static access

Administrative Trunking Encapsulation: negotiate

Operational Trunking Encapsulation: native

Negotiation of Trunking: On

(输出被省略)

sw1#

 

sw2#sh int f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: trunk

Operational Mode: trunk

Administrative Trunking Encapsulation: dot1q

Operational Trunking Encapsulation: dot1q

Negotiation of Trunking: Off

(输出被省略)

sw2#

 

说明:可以看到,SW1DTP协商是开启的,而SW2DTP协商是关闭的, 所以最终SW1的接口选择工作在access模式,而SW2的模式永远都为Trunk

 

5.配置双方都为desirable,但VTP不在相同域内

(1)配置DTP

sw1(config)#vtp domain ccie

sw1(config)#int f0/23

sw1(config-if)#switchport mode dynamic desirable

 

 

sw2(config)#vtp domain cisco

sw2(config)#int f0/23

sw2(config-if)#switchport mode dynamic desirable

 

(2)查看结果

sw1#sh vtp status

VTP Version                     : 2

Configuration Revision          : 0

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 5

VTP Operating Mode              : Server

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x04 0x98 0x3D 0x1A 0xA5 0x42 0xDC 0x34

Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00

Local updater ID is 0.0.0.0 (no valid interface found)

sw1#

sw1#sh int f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: dynamic desirable

Operational Mode: static access

Administrative Trunking Encapsulation: negotiate

Operational Trunking Encapsulation: native

Negotiation of Trunking: On

(输出被省略)

sw1#

 

 

sw2#sh vtp status

VTP Version                     : 2

Configuration Revision          : 0

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 5

VTP Operating Mode              : Server

VTP Domain Name                 : cisco

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x57 0x30 0x6D 0x7A 0x76 0x12 0x7B 0x40

Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00

Local updater ID is 0.0.0.0 (no valid interface found)

sw2#

sw2#sh int f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: dynamic desirable

Operational Mode: static access

Administrative Trunking Encapsulation: negotiate

Operational Trunking Encapsulation: native

Negotiation of Trunking: On

(输出被省略)

sw2#

 

说明:可以看到,双方的DTP协商都是开启的,并且模式都为desirable,正常情况下,双方最终模式应为trunk,然而,由于双方的VTP域名不同,所以DTP协商会失败,所以最终双方的工作模式为access模式。当双方VTP域名不匹配时,开启DTP协商的接口会有如下提示:

01:14:51: %LINK-3-UPDOWN: Interface FastEthernet0/23, changed state to up

01:14:51: %DTP-5-DOMAINMISMATCH: Unable to perform trunk negotiation on port Fa0/23 because of VTP domain mismatch.

                                                                  返回目录

 

 

VTP (VLAN Trunking Protocol)

 在一个拥有多台交换机的交换网络中,通常会在多台交换机上配置相同的VLAN,并且也会对多个接口做相同的配置。

 对于需要对多个接口做相同的配置,通过快速接口配置,能够轻松实现,提高工作效率。而对于在多台交换机上做相同的VLAN配置,则通过VTP来实现。

 VTP为了在多台交换机上配置相同的VLAN,通过将一台交换机的VLAN向其它交换机传播的方法来完成,其它交换机在接收到VLAN信息后,然后更新自己的VLAN数据库,以达到同步。

 要将自己的VLAN信息发送到网络中,交换机上必须配置TrunkIEEE 802.1QISL都支持,通过Trunk相连的交换机便能收到对方发来的VLAN信息。

 VTP通过域来管理网络中的交换机,任何交换机发出的VLAN信息只能在一个域内传播,只有相同域的交换机才能接收此VLAN信息,并且根据接收到的VLAN信息更新自己的VLAN数据库。交换机是否在同一个域,是通过域名来分辨的,比如域名ccie与域名ccie属于同一个域,而域名ccie与域名cisco就属于不同的域。默认交换机的域名为空,但是最重点的,需要大家牢记的是,如果自己的域名为空,则表示与任何非空域名相同,也就是说如果对方有域名,而自己却没有域名,则自己和对方属于相同的域。

 VTP中,交换机分三种模式:ServerClientTransparent,他们的功能分别如下:

 

Server

可以创建,更改和删除VLAN,可以更改任何VTP参数,可以将自己的VLAN信息向网络中发送,并且也会根据收到的VLAN信息来选择是否同步自己的VLAN数据库。

 

Client:

不能创建,更改和删除VLAN,但是可以更改部分VTP参数,也可以将自己的VLAN信息向网络中发送,并且也会根据收到的VLAN信息来选择是否同步自己的VLAN数据库。

 

Transparent:

 可以创建,更改和删除VLAN,可以更改任何VTP参数,不会将自己的VLAN信息向网络中发送,但是会转发接收到其它交换机发来的VLAN信息,并且不会根据收到的VLAN信息来同步自己的VLAN数据库。

 

 从上可以看出,ServerClient的唯一区别在于,Server可以随意修改自己的VLAN信息和VTP参数,而Client则不能,除此之外,其它完全相同。

 ServerTransparent的区别在于, Transparent不会将自己的VLAN信息发送到网络中,并且也不会向别人同步自己的VLAN数据库。

 

所以最终的结论是,如果希望从网络中接收VLAN信息来同步自己的VLAN数据库,配置成ServerClient都可以实现,要将自己的VLAN信息发送到网络中,ServerClient也都能实现。如果要具有修改VLAN数据库的权限,只有ServerTransparent能做到,Client是不能自己更改VLAN数据库的。

 ServerClient发出的VLAN信息,都有一个configuration revision号码,每修改一次VLAN信息,configuration revision号则加1,如果做相同操作,configuration revision号是不会有变化的。configuration revision号越高(数字越大),则说明VLAN信息越新。

 ServerClient从网络中接收到VLAN信息后,是否根据此信息同步自己的VLAN数据库,则要将自己的VLAN信息与接收到的作对比,如果接收到的VLAN信息的configuration revision号比自己的大,则将自己的VLAN数据库与接收到的进行同步,如果configuration revision号比自己的小或者相等,则放弃同步。域中总是先使用configuration revision号码最高的VLAN信息

 

 默认情况下,交换机的域名为空,无论是Server还是Client,在空域名的情况下,是不会将自己的VLAN信息往外发的,但是在域名为空的情况下,无论收到任何VLAN信息,只要configuration revision号比自己的大,就会同步自己的VLAN数据库,并且添加上相同的域名。域名在配置之后,只能更改,但不能删除。如果网络中全是Client,可想而知就不要配置域名了。

 

 在谈及VTP,不得不详细解释VLAN,交换机所支持的VLAN数为1-4094,VLAN 1-1005称为Normal VLAN,VLAN 1006 – 4094称为Extended VLAN。Normal VLAN(1-1005)是保存在VLAN数据库中的,也就是vlan.dat,而Extended VLAN(1006-4094)是保存startup-config中的。Normal VLAN(1-1005)可以随意配置,而Extended VLAN(1006-4094)只能在VTP模式为Transparent时才能配置。所以,VTP只能将Normal VLAN(1-1005)在网络中更新。当同时配置了1-1005的VLAN和1006-4096的VLAN,在删除vlan.dat后,1-1005的VLAN会被删除,但1006-4096的VLAN还在,如果删除了startup-config,那么则会删除1006-4096的VLAN,但不会影响1-1005的VLAN。

 VTP现有两个版本,ver 1和ver 2,默认为ver 1,因为Transparent会转发接收到其它交换机发来的VLAN信息,但是当自己的VTP版本为ver 1时,只有自己接收到的VLAN信息的域名和VTP版本与自己的相同,才会转发,但如果自己为ver 2,则无论收到任何VLAN信息都会转发。

 如果域中一台交换机开了VTP ver 2,则应该全部都要打开,但是只有Server和Transparent才能更改VTP版本,而Client会根据收到的VLAN信息同步自己的VTP版本。

 交换机还可以为VTP配置密码,当配置密码后,即使VTP域名相同,如果密码不同,也不能根据接收到的VLAN信息更新自己的VLAN数据库。要确认VTP密码是否相同,双方的MD5 digest值必须相同。
 

附:在交换机最新的IOS版本中,如果3560的 12.2(52)SE ,已经加入对VTP version 3的支持,最大的特点就是,可以在VTP信息中传递Extended VLAN(1006-4094),但改为Ver 3之后,不能再切换到Ver 1和Ver 2.

 

重点说明:

★ 交换机的配置信息保存在nvram存储器的startup-config文件中。

★ 而Flash中的文件config.text与nvram存储器的startup-config文件完全相同,删除任何一个,即同时删除两个。(注:此规则不完全适用于高端交换机)

★交换机的Normal VLAN(1-1005)是保存在文件vlan.dat中,而Extended VLAN(1006-4094)是保存在nvram存储器的文件startup-config中。

★ VTP信息全部保存在vlan.dat中。

★ 当VTP模式为Transparent时,所有VLAN信息和VTP信息除了保存在vlan.dat中之外,还会保存在nvram存储器的startup-config中。

★ 当VTP模式为Server和Client时,所有VLAN信息和VTP信息只保存在vlan.dat中,不会保存在nvram存储器的startup-config中,所以show running-config时,也是看不到VLAN信息的。

★ 域名为空的交换机是不会发送任何VTP信息的。

★ 将模式改为Transparent,可以清除所有VTP信息。

 

 

VTP Pruning

 

 

 

 

 如上图所示,当交换机SW1收到broadcast, multicast以及unknown unicast后,会在所有Trunk上进行广播发送,最终结果造成SW2会转发给SW3,也会转发给SW4,而只有SW4上接有终端,也就是说只有SW4需要接收这些广播,对于SW3,转发这些广播是毫无意义的,因为自己没有连接终端。

 对于上述情况,当一台交换机在某VLAN进入广播发送数据时,流量应该只被发送到在此VLAN连接了终端的交换机,而对于没有连接终端的交换机,很明显,是没有必须接收这样的广播了。为了节省带宽,提高网络性能,VTP Pruning限制交换机只将广播发送到连接了终端的交换机。如果上图中开启了VTP Pruning,则SW1发出的广播只会被发送到SW2,再转发到SW4,而不会转发到SW3。

 在Trunk上,只有某VLAN允许被剪除,那么在此VLAN的广播才不会发到没有连接终端的交换机,如果不允许剪除,则广播照常。允许被剪除的VLAN范围是2-1001,而VLAN1和1002-1005以及1006-4094是不能被剪除的,开启VTP Pruning后,默认VLAN2-1001被剪除,但剪除的VLAN号可以在Trunk上随意定义。

 VTP模式为Transparent时,是不支持VTP Pruning的,但无论支持VTP Ver 1还是 Ver 2都支持VTP Pruning。

 

配置

 

 

 

 

说明:以上图为例,配置VTP。第一部分为验证交换机文件系统,第二部分为验证VTP。

 

第一部分 (验证交换机文件系统)

1.在SW1上配置VTP

(1)创建vlan 2000,vlan 3000

sw1(config)#vlan 2000

sw1(config-vlan)#exit

% Failed to create VLANs 2000

Extended VLAN(s) not allowed in current VTP mode.

%Failed to commit extended VLAN(s) changes.

sw1(config)#

说明:因为交换机默认为Server模式,所以不能创建Extended VLAN(1006-4094)。

(2)在VTPTransparent下创建vlan 2000,vlan 3000

sw1(config)#vtp domain ccie

sw1(config)#vtp mo transparent

Setting device to VTP TRANSPARENT mode.

sw1(config)#vlan 2000

sw1(config-vlan)#exit

sw1(config)#vlan 3000

sw1(config-vlan)#exit

sw1(config)#

说明:Vlan 2000在transparent模式下创建成功。

 

(3)查看VLAN

sw1#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/23, Fa0/24

                                                Gi0/1, Gi0/2

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

2000 VLAN2000                         active   

3000 VLAN3000                         active   

 

(输出被省略)

 

sw1#

说明:Vlan 2000在transparent模式下创建成功。

 

(4)在SW1上创建VLAN 2-5,以及VLAN 3000

sw1(config)#vlan 2

sw1(config-vlan)#exit

sw1(config)#vlan 3

sw1(config-vlan)#exit

sw1(config)#vlan 4

sw1(config-vlan)#exit

sw1(config)#vlan 5

sw1(config-vlan)#exit

 

(5)保存并查看

保存:

sw1#wr

Building configuration...

[OK]

sw1#

 

查看VLAN:

sw1#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24

                                                Gi0/1, Gi0/2

2    VLAN0002                         active   

3    VLAN0003                         active   

4    VLAN0004                         active   

5    VLAN0005                         active   

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

2000 VLAN2000                         active   

3000 VLAN3000                         active   

(输出被省略)

 

sw1#

 

查看VTP:

sw1#sh vtp sta

VTP Version                     : 2

Configuration Revision          : 0

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 9

VTP Operating Mode              : Transparent

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x63 0xE7 0xF7 0x4B 0xFD 0xED 0x17 0xAA

Configuration last modified by 0.0.0.0 at 3-1-93 00:02:01

sw1#

说明:VLAN创建成功,VTP也修改成功。

 

(6)查看文件系统

sw1#dir flash:

Directory of flash:/

 

    2  -rwx     7457899   Mar 1 1993 06:35:16 +00:00  c3550-ipservicesk9-mz.122-35.SE3.bin

    3  -rwx         796   Mar 1 1993 00:02:44 +00:00  vlan.dat

    4  -rwx           0   Mar 1 1993 05:57:14 +00:00  env_vars

    5  -rwx          24   Mar 1 1993 05:57:14 +00:00  system_env_vars

    6  -rwx        2416   Mar 1 1993 00:03:10 +00:00  config.text

    7  -rwx          24   Mar 1 1993 00:03:10 +00:00  private-config.text

 

15998976 bytes total (8535040 bytes free)

 

sw1#dir nv

sw1#dir nvram:

Directory of nvram:/

 

  380  -rw-        2416                    <no date>  startup-config

  381  ----          24                    <no date>  private-config

 

393216 bytes total (390724 bytes free)

sw1#

说明:存在VLAN信息和VTP信息的vlan.dat已经生成;nvram中的startup-config也已经生成,相应的config.text也已经生成。

 

(7)共享文件系统

sw1(config)#int vlan 1

sw1(config-if)#ip add 1.1.1.1 255.255.255.0

 

sw1(config)#tftp-server flash:vlan.dat  

sw1(config)#tftp-server flash:config.text

sw1(config)#tftp-server nvram:startup-config

说明:交换机已经将vlan.dat,config.text,startup-config通过TFTP在网络中共享。

 

2.通过SW2验证SW1的vlan.dat

(1)查看当前VTP和VLAN

sw2#sh vtp status

VTP Version                     : 2

Configuration Revision          : 0

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 5

VTP Operating Mode              : Server

VTP Domain Name                 :

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x57 0xCD 0x40 0x65 0x63 0x59 0x47 0xBD

Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00

Local updater ID is 1.1.1.2 on interface Vl1 (lowest numbered VLAN interface found)

sw2#

 

sw2#sh vlan    

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/24, Gi0/1

                                                Gi0/2

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

(输出被省略)

 

sw2#

说明:SW2的VLAN和VTP为默认配置。

 

(2)复制SW1的vlan.dat

sw2(config)#int vlan 1

sw2(config-if)#ip add 1.1.1.2 255.255.255.0

 

sw2#copy tftp: flash:

Address or name of remote host []? 1.1.1.1

Source filename []? vlan.dat

Destination filename [vlan.dat]?

Accessing tftp://1.1.1.1/vlan.dat...

Loading vlan.dat from 1.1.1.1 (via Vlan1): !

[OK - 796 bytes]

 

796 bytes copied in 0.032 secs (24875 bytes/sec)

sw2#

说明:SW1的vlan.dat已经被SW2复制,接下来可以验证vlan.dat中的内容。

 

(3)查看SW2复制的SW1的vlan.dat

sw2#dir flash:

Directory of flash:/

 

    2  -rwx     7457899   Mar 1 1993 06:33:13 +00:00  c3550-ipservicesk9-mz.122-35.SE3.bin

    3  -rwx         796   Mar 1 1993 00:10:41 +00:00  vlan.dat

    4  drwx           0   Mar 1 1993 02:51:43 +00:00  test

    7  -rwx           0   Mar 1 1993 01:52:09 +00:00  system_env_vars

    8  -rwx           0   Mar 1 1993 01:52:09 +00:00  env_vars

 

15998976 bytes total (8538624 bytes free)

sw2#

说明:可以看到vlan.dat与SW1的vlan.dat相同。

 

(4)在SW2上使用SW1的vlan.dat

说明:因为SW1的vlan.dat已经复制到SW2的flash中,所以重启SW2后,便可读取其中的内容。

重启SW2后,查看VLAN信息和VTP信息:

 

查看VLAN信息:

Sw2#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24

                                                Gi0/1, Gi0/2

2    VLAN0002                         active   

3    VLAN0003                         active   

4    VLAN0004                         active   

5    VLAN0005                         active   

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

 

(输出被省略)

Sw2#

 

查看VTP信息:

Sw2#sh vtp sta

VTP Version                     : 2

Configuration Revision          : 0

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 9

VTP Operating Mode              : Transparent

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x63 0xE7 0xF7 0x4B 0xFD 0xED 0x17 0xAA

Configuration last modified by 0.0.0.0 at 3-1-93 00:02:01

Sw2#

 

说明:可以验证,vlan.dat中只有1-1005的VLAN,并且VTP信息保存在vlan.dat中。

 

3.通过SW3验证SW1的startup-config

(1)查看SW3当前的startup-config

sw3#dir nvram:

Directory of nvram:/

 

  382  -rw-           0                    <no date>  startup-config

  383  ----           0                    <no date>  private-config

 

393216 bytes total (393164 bytes free)

sw3#

说明:SW3当前的startup-config为空。

 

(2)复制SW1的startup-config

sw3(config)#int vlan 1

sw3(config-if)#ip add 1.1.1.3 255.255.255.0

 

sw3#copy tftp: flash:

Address or name of remote host [1.1.1.1]?

Source filename [startup-config]?

Destination filename [startup-config]?

Accessing tftp://1.1.1.1/startup-config...

Loading startup-config from 1.1.1.1 (via Vlan1): !

[OK - 2416 bytes]

 

2416 bytes copied in 0.088 secs (27455 bytes/sec)

sw3#

说明:SW1的startup-config已经被SW3复制,接下来可以验证startup-config中的内容。

 

(3)在SW3上导入复制的SW1的startup-config

sw3#copy flash:startup-config running-config

Destination filename [running-config]?

Failed to generate persistent self-signed certificate.

    Secure server will use temporary self-signed certificate.

 

2416 bytes copied in 0.416 secs (5808 bytes/sec)

sw1#

说明:因为使用了SW1的startup-config,所以主机名也变成了SW1。

 

(4)查看VLAN与VTP信息

查看VLAN信息:

sw1#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24

                                                Gi0/1, Gi0/2

2    VLAN0002                         active   

3    VLAN0003                         active   

4    VLAN0004                         active   

5    VLAN0005                         active   

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

2000 VLAN2000                         active   

3000 VLAN3000                         active   

(输出被省略)

sw1#

 

查看VTP:

sw1#sh vtp status

VTP Version                     : 2

Configuration Revision          : 0

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 9

VTP Operating Mode              : Transparent

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x63 0xE7 0xF7 0x4B 0xFD 0xED 0x17 0xAA

Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00

sw1#

 

说明:SW3上除了拥有VLAN 1-1005外,1006-4094的VLAN也存在,说明在Transparent模式下,VLAN信息不仅保存在vlan.dat中,还保存在startup-config中,并且VTP也成功保存在startup-config中。

 

4.通过SW4验证SW1的config.text

(1)从SW4复制SW1的config.text

sw4(config)#int vlan 1

sw4(config-if)#ip address 1.1.1.4 255.255.255.0

 

sw4#copy tftp: flash:

Address or name of remote host []? 1.1.1.1

Source filename []? config.text

Destination filename [config.text]?

Accessing tftp://1.1.1.1/config.text...

Loading config.text from 1.1.1.1 (via Vlan1): !

[OK - 2416 bytes]

 

2416 bytes copied in 0.052 secs (46462 bytes/sec)

sw4#

说明: SW1的vlan.dat已经被SW4复制,接下来可以验证config.text中的内容。

 

(2)SW4上使用SW1的config.text

说明:因为SW4上没有保存配置文件,但拥有了SW1的config.text,所以重启后,就会读取config.text的配置,重启后,SW1的config.text内容就被验证

重启SW4,查看结果:

 

查看VLAN:

sw1#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24

                                                Gi0/1, Gi0/2

2    VLAN0002                         active   

3    VLAN0003                         active   

4    VLAN0004                         active   

5    VLAN0005                         active   

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

2000 VLAN2000                         active   

3000 VLAN3000                         active   

(输出被省略)

sw1#

 

查看VTP:

sw1#sh vtp status

VTP Version                     : 2

Configuration Revision          : 0

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 9

VTP Operating Mode              : Transparent

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x63 0xE7 0xF7 0x4B 0xFD 0xED 0x17 0xAA

Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00

sw1#

 

说明:因为使用了SW1的config.text,所以主机名也变成了SW1。并且VLAN与VTP与SW1完全相同,说明config.text与startup-config完全相同。

 

5.在SW1上验证VLAN存放位置

(1)在SW1上删除startup-config

说明:由于删除vlan.dat是没有用的,因为Transparent会将所有VLAN,如VLAN 1006-4094存放在startup-config中,即使删了vlan.dat,所有内容还存在,所以直接删除startup-config来测试:

 

sw1#erase nvram:

Erasing the nvram filesystem will remove all configuration files! Continue? [confirm]

[OK]

Erase of nvram: complete

sw1#

 

sw1#dir nvram:

Directory of nvram:/

 

  382  -rw-           0                    <no date>  startup-config

  383  ----           0                    <no date>  private-config

 

393216 bytes total (393164 bytes free)

sw

说明:startup-config已经为空,因为已被删除。

 

(2)重启SW1后查看结果:

 

查看VLAN:

Switch#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24

                                                Gi0/1, Gi0/2

2    VLAN0002                         active   

3    VLAN0003                         active   

4    VLAN0004                         active   

5    VLAN0005                         active   

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

(输出被省略)

Switch#

 

查看VTP:

Switch#sh vtp status

VTP Version                     : 2

Configuration Revision          : 0

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 9

VTP Operating Mode              : Transparent

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x63 0xE7 0xF7 0x4B 0xFD 0xED 0x17 0xAA

Configuration last modified by 0.0.0.0 at 3-1-93 00:02:01

Switch#

 

说明:因为VTP信息和VLAN 1-1005存放在vlan.dat中,所以删除了startup-config,只是删除了VLAN 1006-4094,而VTP信息和VLAN 1-1005仍旧存在。

 

 

第二部分(验证VTP)

 

 

 

 

说明:还是以上图为例,验证VTP

 

1.关闭交换机上所有端口

(1)在所有交换机上关闭所有端口

int range f0/1 - 24

shutdown

 

2.查看默认VTP

(1)所有交换机上,默认VTP如下:

switch#sh vtp status

VTP Version                     : 2

Configuration Revision          : 0

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 5

VTP Operating Mode              : Server

VTP Domain Name                 :

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x57 0xCD 0x40 0x65 0x63 0x59 0x47 0xBD

Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00

Local updater ID is 0.0.0.0 (no valid interface found)

switch#

说明:默认VTP域名为空,且默认模式为Server。

 

3.配置SW1的VTP

(1)在SW1上配置VLAN

sw1(config)#vlan 3

sw1(config-vlan)#exi

sw1(config)#vlan 5

sw1(config-vlan)#exi

sw1(config)#vlan 7

sw1(config-vlan)#exi

sw1(config)#vlan 9

sw1(config-vlan)#exit

sw1(config)#vtp domain ccie

说明:SW1上的VLAN为3 5 7 9 ,全部是奇数,VTP域名为ccie。

 

(2)查看SW1的VTP信息

sw1#sh vtp status

VTP Version                     : 2

Configuration Revision          : 4

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 9

VTP Operating Mode              : Server

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x4C 0x22 0xDD 0xCA 0x61 0xA4 0x7C 0x65

Configuration last modified by 0.0.0.0 at 3-1-93 00:04:19

Local updater ID is 0.0.0.0 (no valid interface found)

sw1#

说明:现在SW1的VTP模式为Server,域名为ccie,Configuration Revision为 4。

 

(3)查看SW1的VLAN信息

sw1#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24

                                                Gi0/1, Gi0/2

3    VLAN0003                         active   

5    VLAN0005                         active   

7    VLAN0007                         active   

9    VLAN0009                         active   

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

(输出被省略)

sw1#

说明:SW1上的VLAN为1 3 5 7 9,全部奇数。

 

4.配置SW2的VTP

(1)在SW2上配置VLAN

sw2(config)#vlan 2

sw2(config-vlan)#exi

sw2(config)#vlan 4

sw2(config-vlan)#exi

sw2(config)#vlan 6

sw2(config-vlan)#exi

sw2(config)#vlan 8

sw2(config-vlan)#exi

sw2(config)#vlan 10

sw2(config-vlan)#exi

sw2(config)#vlan 12

sw2(config-vlan)#exit

sw2(config)#vtp domain ccie

sw2(config)#vtp mode client

说明:SW2上的VLAN为2 4 6 8  10  12 ,全部是偶数,VTP域名为ccie,并且模式为Client。

 

(2)查看SW2的VTP信息

查看VTPsw2#sh vtp status

VTP Version                     : 2

Configuration Revision          : 6

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 11

VTP Operating Mode              : Client

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x5E 0x0C 0x19 0x2B 0xC3 0x13 0x05 0x4F

Configuration last modified by 0.0.0.0 at 3-1-93 00:05:49

sw2#

说明:现在SW2的VTP模式为Client,域名为ccie,Configuration Revision为 6。

 

(3)查看SW2的VLAN信息

sw2#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24

                                                Gi0/1, Gi0/2

2    VLAN0002                         active   

4    VLAN0004                         active   

6    VLAN0006                         active   

8    VLAN0008                         active   

10   VLAN0010                         active   

12   VLAN0012                         active   

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

(输出被省略)

sw2#

说明:SW2上的VLAN为2 4 6 8  10  12 ,全部是偶数。

 

 

5.验证VTP

(1)开启SW1与SW2之间的Trunk链路:

SW1:

sw1(config)#int ran f0/23

sw1(config-if-range)#switchport trunk encapsulation dot1q

sw1(config-if-range)#switchport mode trunk

sw1(config-if-range)#no shut

 

SW2:

sw2(config)#int f0/23

sw2(config-if)#switchport trunk encapsulation dot1q

sw2(config-if)#switchport mode trunk

sw2(config-if)#no shutdown

说明:SW1与SW2的Trunk已连通,VTP即将同步。

 

(2)查看VTP结果

 

SW1:

sw1#sh vtp status

VTP Version                     : 2

Configuration Revision          : 6

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 11

VTP Operating Mode              : Server

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x5E 0x0C 0x19 0x2B 0xC3 0x13 0x05 0x4F

Configuration last modified by 0.0.0.0 at 3-1-93 00:05:49

Local updater ID is 0.0.0.0 (no valid interface found)

sw1#

 

sw1#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/24, Gi0/1

                                                Gi0/2

2    VLAN0002                         active   

4    VLAN0004                         active   

6    VLAN0006                         active   

8    VLAN0008                         active   

10   VLAN0010                         active   

12   VLAN0012                         active   

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

(输出被省略)

sw1#

 

SW2:

sw2#sh vtp status

VTP Version                     : 2

Configuration Revision          : 6

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 11

VTP Operating Mode              : Client

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x5E 0x0C 0x19 0x2B 0xC3 0x13 0x05 0x4F

Configuration last modified by 0.0.0.0 at 3-1-93 00:05:49

sw2#  

sw2#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/24, Gi0/1

                                                Gi0/2

2    VLAN0002                         active   

4    VLAN0004                         active   

6    VLAN0006                         active   

8    VLAN0008                         active   

10   VLAN0010                         active   

12   VLAN0012                         active   

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

(输出被省略)

sw2#

说明:从结果中可以看出,VTP模式为Server的SW1已经将自己的VLAN信息与VTP模式为Client的SW2同步,因为SW1的Configuration Revision为4,而SW2的Configuration Revision为6,所以无论Server与Client,在收到VTP信息后,只要Configuration Revision比自己的大,则将自己的与收到的同步。

  

6.验证VTP空域名

(1)查看SW3的VTP信息和VLAN信息

 

查看VTP信息:

sw3#sh vtp sta

VTP Version                     : 2

Configuration Revision          : 0

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 5

VTP Operating Mode              : Server

VTP Domain Name                 :

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x57 0xCD 0x40 0x65 0x63 0x59 0x47 0xBD

Configuration last modified by 0.0.0.0 at 0-0-00 00:00:00

Local updater ID is 0.0.0.0 (no valid interface found)

sw3#

 

查看VLAN信息:

sw3#sh vlan

 

VLAN Name                             Status    Ports

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

1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4

                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8

                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12

                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16

                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20

                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24

                                                Gi0/1, Gi0/2

1002 fddi-default                     act/unsup

1003 token-ring-default               act/unsup

1004 fddinet-default                  act/unsup

1005 trnet-default                    act/unsup

(输出被省略)

sw3#

说明:可以看到,SW3的VTP域名为空,并且没有手工配置的VLAN。

 

(2)开启SW1与SW3之间的Trunk链路:

SW1:

sw1(config)#int f0/19

sw1(config-if)#switchport trunk encapsulation dot1q

sw1(config-if)#switchport mode trunk

sw1(config-if)#no shutdown

 

SW2:

sw3(config)#int f0/19

sw3(config-if)#switchport trunk encapsulation dot1q

sw3(config-if)#switchport mode trunk

sw3(config-if)#no shutdown

 

说明:SW1与SW3的Trunk已连通,VTP即将同步。

 

(3)查看SW3的VTP信息:

sw3#sh vtp status

VTP Version                     : 2

Configuration Revision          : 6

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 11

VTP Operating Mode              : Server

VTP Domain Name                 : ccie

VTP Pruning Mode                : Disabled

VTP V2 Mode                     : Disabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0x5E 0x0C 0x19 0x2B 0xC3 0x13 0x05 0x4F

Configuration last modified by 0.0.0.0 at 3-1-93 00:05:49

Local updater ID is 0.0.0.0 (no valid interface found)

sw3#

 

说明:因为SW3的VTP域名为空,而SW1的VTP域名为ccie,在域名为空的情况下,无论收到任何VLAN信息,只要configuration revision号比自己的大,就会同步自己的VLAN数据库,并且添加上相同的域名,所以空域名的SW3在收到VTP更新之后,同步了自己的信息。所以请谨慎使用空域名交换机。

 

 

VTP Pruning 与 VTP Ver 2


1.在SW1上开启VTP Pruning 与 VTP Ver 2

(1) 在SW1上开启VTP Pruning 与 VTP Ver 2

sw1(config)#vtp pruning

Pruning switched on

sw1(config)#vtp version 2

 

2 在SW4上查看结果

(1)查看SW4上的VTP Pruning 与 VTP Ver 2

sw4#sh vtp status

VTP Version                     : 2

Configuration Revision          : 10

Maximum VLANs supported locally : 1005

Number of existing VLANs        : 11

VTP Operating Mode              : Server

VTP Domain Name                 : ccie

VTP Pruning Mode                : Enabled

VTP V2 Mode                     : Enabled

VTP Traps Generation            : Disabled

MD5 digest                      : 0xCA 0x78 0x25 0x9B 0x99 0x9B 0xE7 0x72

Configuration last modified by 1.1.1.1 at 3-1-93 00:35:06

Local updater ID is 1.1.1.4 on interface Vl1 (lowest numbered VLAN interface found)

sw4#

说明:VTP域中,只要在一台上开启VTP Pruning 与 VTP Ver 2,其它交换机全部开启,但只有Server和Transparent才能更改VTP版本,而Transparent是不支持VTP Pruning的。

 

3.更改Pruning VLAN

说明:默认剪除VLAN 2-1001,但可随意更改

(1)在SW1的Trunk上更改Pruning VLAN

sw1(config)#int f0/21

sw1(config-if)#switchport trunk pruning vlan remove 10

sw1(config-if)#exit

 

(2)查看Pruning VLAN

sw1#sh int f0/21 switchport

(输出被省略)

 

Trunking VLANs Enabled: ALL

Pruning VLANs Enabled: 2-9,11-1001

Capture Mode Disabled

(输出被省略)

sw1#

说明:可以看到,VLAN 10已经从Pruning VLAN中移除,只剩VLAN 2-9,11-1001。

                                                                  返回目录

 

 

STP(Spanning-Tree Protocol)

 

 在上图所示的网络环境中,当交换机之间连有多条链路时,将存在一定的问题,如SW1的MAC地址表中会显示接口F0/1与主机A相对应,而当数据发往SW2后,SW2的MAC地址表则记录接口F0/23与主机A相对应,当SW2再次将流量从接口F0/24发回SW1时,SW1的MAC地址表又会记录接口F0/24与主机A相对应。

 因此可以看出,当交换机之间存在多条活动链路时,交换机将从不正常的接口上学习到MAC地址,导致MAC地址表的不正确与不稳定,并且还会导致重复的数据包在网络中传递,引起广播风暴,使网络不稳定。

 为了防止交换机之间由于多条活动链路而导致的网络故障,必须将多余的链路置于非活动状态,即不转发用户数据包,而只留下单条链路作为网络通信,当唯一的活动链路不能工作时,再启用非活动链路,从而达到网络的冗余性。要实现此功能,需要依靠生成树协议(STP)来完成,STP将交换网络中任何两个点之间的多余链路置于Blocking(关闭)状态,而只留一条活动链路,当使用中的活动链路失效时,立即启用被Block的链路,以此来提供网络的冗余效果。

 STP并非思科私有协议,STP为IEEE标准协议,并且有多个协议版本,版本与协议号的对应关系如下:

 

Common Spanning Tree (CST)  =  IEEE 802.1D

Rapid Spanning Tree Protocol (RSTP)  =  IEEE 802.1w

Per-VLAN Spanning-Tree plus (PVST+)   =   Per-VLAN EEE 802.1D

Rapid PVST+ Per-VLAN IEEE 802.1w

Multiple Spanning Tree Protocol (MSTP)   =    IEEE 802.1s

 

下面来详细介绍STP协议:

 

 

请观察如下网络环境:

 

 

 

 在如上所示的网络环境中,不难看出,当所有主机都使用单条链路与一台核心相连时,只要不再增加其它额外设备与链路,就不可能存在环路。交换机就当相于Hub一样连接了多台主机,而这样的网络结构,被称为hub-spoke网络结构,只要主机与Hub是连通的,那么就表示主机之间是连通的。基于此原因,STP借助了hub-spoke网络结构无环的网络思想,将一个拥有多台交换机通过多条链路相连的网络,通过Block掉任意两点之间多余的链路而只留下单条链路,最终修整出一个hub-spoke的网络环境,创造一个无环的交换网络。

 

 

 

 

在上图的交换网络中,由于存在多台交换机,并且交换机之间有多条冗余链路,因此,只要在网络中找一台交换机充当核心,也就是相当于hub-spoke网络中的Hub,而其它交换机则留出一条活动链路到核心交换机即可,其它链路全部被block,当留出的活动链路失效之后,再启用block链路作为备份。上图中SW1被选作交换网络中的核心,而其它交换机则只留一条活动链路到核心交换机,只要其它交换机与核心交换机是通的,就证明交换机之间一定是通的。图中红色的连路表示被留出的普通交换机到核心交换机的活动链路,蓝色链路表示被block掉的链路,只要红色链路是通的,就表示整个网络都是通的,当某条红色链路断掉以后,只要启用相应的蓝色链路代替即可,也就实现了网络的冗余功能。

 

 通过上述的解释,STP要构建出无环的交换网络,就必须在网络中选出一台交换机做为核心交换机,STP称其为Root,也就是根,功能相当于hub-spoke网络中的Hub。其它不是Root的交换机则需要留出一条活动链路去往根交换机,因为只要普通交换机到根是通的,到其它交换机也就是通的。

 需要说明的是,只有在一个三层网络中,广播能够到达的范围内,才需要进行相同的STP计算与选举,也就是一个广播域内独立选举STP:

 

上图中,因为网络被路由器分割成两个广播域,所以在两个网段中,需要进行独立的STP计算与选举。

 STP在计算与选举时,只会留下唯一一条活动链路,将其它所有多余链路全部block,所以STP要确定两点之间是否存在多条链路,因为只有两点之间有多条链路时,才有链路需要被block。要确认两点之间网络是否通畅,只要发送数据作个测试即可得到答案,而要确认两点之间是否有多条链路,方法还是发送数据作个测试就能得到答案。当然,要测试两点之间是否有多条链路,需要发送特殊的数据来做测试,比如给数据包都做上相同的标记,然后发出去,如果交换机同时从多个接口收到相同标记的数据包,很显示,交换机与发送者之间就是存在多条链路的,因此需要靠STP计算来断开多余链路。

 STP在发送数据包测试网络是否有多条链路,是靠发送bridge protocol data units (BPDUs)来完成的,同台交换机发出去的BPDU都被做上了相同的标记,只要任何交换机从多个接口收到相同标记的BPDU,就表示网络中有冗余链路,因此需要STP断开多余链路。BPDU数据包里面有以下信息:

 

根交换机的bridge ID。

发送交换机的bridge ID 。

到根交换机的Path Cost。

发送接口以及优先级。

Hello、forward delay、max-age时间。

 

 同台交换机发出的BPDU,bridge ID都是一样的,因为是用来标识自己的,其中bridge ID由两部分组成:Bridge优先级和MAC地址,默认优先级为32678。

 交换机上的每个端口也是有优先级的,默认为128,范围为0-255。

 

注:在STP协议中,所有优先级数字越小,表示优先级越高,数字越大,优先级越低。

 

 STP在计算网络时,需要在网络中选举出根交换机(Root),根端口(Root Port),以及指定端口(Designated Port),才能保证网络的无环,选举规则分别如下:

 

根交换机(Root)

在同一个三层网络中需要选举,即一个广播域内要选举,并且一个网络中只能选举一台根交换机。Birdge-ID中优先级最高(即数字最小)的为根交换机,优先级范围为0-65535,如果优先级相同,则MAC地址越小的为根交换机。

根端口(Root Port)

所有非根交换机都要选举,非根交换机上选举的根端口就是普通交换机去往根交换机的唯一链路,选举规则为 到根交换机的Path Cost值最小的链路,如果多条链路到达根交换机的Path Cost值相同,则选举上一跳交换机Bridge-ID最小的链路,如果是经过的同一台交换机,则上一跳交换机Bridge-ID也是相同的,再选举对端端口优先级最小的链路,如果到达对端的多个端口优先级相同,最后选举交换机 对端端口号码最小的链路。

 

指定端口(Designated Port)

 在每个二层网段都要选举,也就是在每个冲突域需要选举,简单地理解为每条连接交换机的物理线路的两个端口中,有一个要被选举为指定端口,每个网段选举指定端口后,就能保证每个网段都有链路能够到达根交换机,选举规则和选举根端口一样,即:到根交换机的Path Cost值最小的链路,如果多条链路到达根交换机的Path Cost值相同,则选举上一跳交换机Bridge-ID最小的链路,如果是经过的同一台交换机,则上一跳交换机Bridge-ID也是相同的,再选举对端端口优先级最小的链路,如果到达对端的多个端口优先级相同,最后选举交换机 对端端口号码最小的链路。

 在STP选出根交换机,根端口以及指定端口后,其它所有端口全部被Block,为了防止环路,所以Block端口只有在根端口或指定端口失效的时候才有可能被启用。

交换机上的端口,根据端口的带宽不同,Path Cost值也不同,以下参数为标准:

10 Mb/s:100

100 Mb/s:19

1000 Mb/s:4

10000 Mb/s:2

可以看出,带宽越高,被选为根端口和指定端口的几率就越大,所以经过STP选举后,活动的链路总是性能最好的,其它被Block掉的端口,将在活动端口失效时被启用。

 

 

以下图为例来看STP计算:

 

 

 

上图的网络环境中,运行STP后,则选举如下角色:(所有链路为100 Mb/s,即Path Cost值为19)

 

根交换机(Root)

 因为4台交换机的优先级分别为 SW1(4096) ,SW2(24576),SW3(32768),SW4(32768),选举优先级最高的(数字最低的)为根交换机,所以SW1被选为根交换机,如果优先级相同,则比较MAC地址。

 

根端口(Root Port)

根端口需要在除SW1外的非根交换机上选举。

SW2上从端口F0/23到达根的Path Cost值为19,从F0/19和F0/20到达根的Path Cost值都为19×3=57。因此,F0/23被选为根端口。

SW3上从端口F0/19到达根的Path Cost值为19,从F0/23和F0/24到达根的Path Cost值都为19×3=57。因此,F0/19被选为根端口。

SW4上从所有端口到达根的Path Cost值都为19×2=38,所以从比较Path Cost值,无法选出根端口,接下来比较上一跳交换机Bridge-ID,也就是比较SW2与SW3的Bridge-ID,所以选择往SW2的方向,然而通过端口F0/19和F0/20都可以从SW2到达根交换机,所以接下来比较端口F0/19和F0/20对端交换机端口的优先级,因为SW2的F0/19端口优先级为128,而F0/20的端口优先级为112,所以SW4选择连接SW2的F0/20的端口为根端口,即SW4的F0/20为根端口,如果此步还选不出,SW4将根据 对端端口号做出决定,也就是F0/19和F0/20,数字小的为根端口,也就是F0/19。

 

 

指定端口(Designated Port)

每个网段(每个冲突域),或理解为每条线路都要选举指定端口。

在根交换机SW1连接SW2的网段与连接SW3的网段中,当然是根自己的端口离自己最近,所以这两个网段中,选举根交换机上的端口为指定端口,因此,根交换机上所有的端口都应该是指定端口。

在SW3连接SW4的两个网段中,同样也是SW3上的两个端口离根交换机最近,所以在这两个网段中,选举SW3上的端口为指定端口。

在SW2连接SW4的两个网段中,同样也是SW2上的两个端口离根交换机最近,所以在这两个网段中,选举SW2上的端口为指定端口。

 

注:根交换机上所有的端口最终都为指定端口。

 

其它既不是根端口,也不是指定端口的落选的端口,就是SW4上的F0/19,F0/23,F0/24,都将被STP放入Blocking状态,不为用户提供数据转发,以此来防止环路。最终的网络,构建出了任何两点之间,都是单链路的环境,不会有环路,当使用中的链路失效时,Blocking的端口可以代替原端口。上图的STP选举结果如下:

 

根交换机(Root)

SW1

根端口(Root Port)

SW2:F0/23    SW3:F0/19    SW4:F0/20

 

指定端口(Designated Port)

SW1:F0/19,F0/23    SW2:F0/19,F0/20    SW3:F0/23,F0/24

 

Blocking端口

SW4:F0/19,F0/23,F0/24

 

结果图如下:

 

 

 

 

注:一个端口,在STP中只能处于一种角色,不可能是两种角色。

 

 

 在交换机启动后,端口要过渡到转发状态,需要经历以下的状态:

1 从initialization(初始化)到blocking

2 从blocking到listening或disabled

3 从listening 到learning或disabled

4 从learning到forwarding或disabled

 

被Disabled的接口相当于关闭了,每个状态有如下功能:

 

Blocking

丢弃所有收到的数据帧,不学习MAC地址,能收BPDU但不发BPDU。

 

Listening

丢弃所有收到的数据帧,不学习MAC地址,能收BPDP的处理BPDU,并进行STP计算。

 

Learning

丢弃所有收到的数据帧,会学习MAC地址,能收BPDU和处理BPDU。

 

Forwarding

也就是正常转发状态,能转发收到的数据帧,能学习MAC地址,接收并处理BPDU。

 

Disabled

丢弃所有收到的数据帧,不学习MAC地址,能收BPDU,除此之外不会再做其它的。

 

 当交换机启动后,都认为自己是根交换机,然后从所有接口向网络中发送BPDU,称为configuration BPDU,所以configuration BPDU是根交换机发出的。当交换机收到更优Bridge-ID的configuration BPDU,会将它从自己所有接口转发出去,并保存在接口,如果收到差的configuration BPDU,则全部丢掉,所以在交换网络中,只有根交换机的BPDU在转发,其它普通交换机的BPDU不会出现在网络中。

 

 根交换机的BPDU会在每个hello时间往网络中发送一次,hello时间默认为2秒钟,也就是交换机的BPDU会在每2秒钟往网络中发送一次,如果普通交换机在max-age时间内没有收到根交换机的BPDU,则认为根交换机已经失效,便开始重新选举BPDU,默认max-age时间为20秒,即10倍hello时间。

 除了hello时间和max-age时间外,还有一个forward delay时间,默认为15秒,接口在经过Listening 和Learning状态时,都会分别停留一个 forward delay时间,也就是说接口从Listening状态到Learning状态,最后变成转发状态,需要经过两个forward delay时间共计30秒。

 

 因为STP有多个版本,不同版本的STP,在操作和运行上,会有所不同,但是需要说明,无论什么版本的STP,对根交换机,根端口以及指定端口的选举规则完全是一样的,下面分别详细介绍各版本的运行过程:

                                                                  返回目录

 

Common Spanning Tree (CST)

 CST的协议号为IEEE 802.1D,如果交换机运行在CST,交换机只进行一次STP计算,无论交换机上有多少个VLAN,所有流量都会走相同的路径。

 

Rapid Spanning Tree Protocol (RSTP)

 RSTP是快速STP,协议号为IEEE 802.1w,在运行CST时,端口状态blocking、listening、disabled都不发送数据,RSTP将这三个状态归为一个状态,discarding状态。其次之外就是learning和forwarding状态,所以RSTP端口状态为discarding、learning和forwarding。

 当运行CST时,如果根交换机失效了,那么需要等待10个hello时间,也就是20秒收不到根交换机BPDU才能发现,再将block的端口过滤到forwarding状态,还需要经过两个forward delay时间共计30秒,所以CST在网络出现故障时,要经过50秒才能启用block端口,而RSTP则只需要在3个hello时间,即6秒收不到根交换机BPDU,便认为根交换机已经失去连接,就立刻启用discarding状态的接口,RSTP在根交换机失效后,并不会进行完整的STP计算,会在该启用备用端口时立即启用,因此网络收敛速度快,RSTP会在低于1秒的时间内恢复网络。

 

Per-VLAN Spanning-Tree plus (PVST+)

PVST+是思科自己的协议,在之前有一个PVST,但由于PVST只能支持ISL Trunk,所以思科为了扩展PVST支持IEEE 802.1Q,诞生了PVST+,在多数三层交换机,如3550、3560及以上型号,默认运行的STP版本为PVST+。PVST+是基于CST(IEEE 802.1D)运行的,但运行了PVST+的交换机并不像CST那样只进行一次STP计算,PVST+会在每个VLAN进行一次STP计算,也就是会根据VLAN数的不同,计算STP的次数也不同,并且每个VLAN的STP信息是单独保存的。请看下图:

 

 

 

 

 在上图的网络中,各台交换机上都有VLAN 10,VLAN 20,VLAN 30,VLAN 40,在运行CST的情况下,因为只进行一次STP计算,所以SW1到SW4的流量要么从SW2走,要么从SW3走,在这种情况下,流量只能走同一条路径,而另一条路径完全被空闲而得不到利用。

 当在上图的网络中运行PVST+后,因为PVST+会在每个VLAN进行不同的STP计算,称为STP实例(instance),所以可以控制每个VLAN流量的路径走向。上图中,就可以通过PVST+控制SW1的VLAN10和VLAN20从连接SW2的接口到达SW4,控制SW1的VLAN 30和VLAN 40从连接SW3的接口到达SW4,这样之后,将不同的VLAN流量分担到不同的路径,即实现了负载均衡,也通过STP避免了环路。

 

重点说明:

 PVST+ 只支持128个实例(instance),如果交换机上配置的VLAN数超过128个,那么128个以外的VLAN将没有STP在运行,所以此时剩余的VLAN将出现环路。可以单独在特定的VLAN上打开或关闭STP功能,即使一台没有运行STP的交换机或没有运行STP的VLAN,在收到BPDU时,也会转发的,所以在对单个VLAN进行开启或关闭STP时,请确保交换机能够计算出无环的网络,否则网络将出现预想不到的故障。

 

在PVST+可以配置全局关闭某VLAN的STP,如关闭VLAN 10 的STP

no spanning-tree vlan 10,恢复使用命令spanning-tree vlan 10

 

 

Extended System ID

 默认交换机的Bridge-ID的优先级为32768,当开启Extended System ID功能后,每个VLAN的默认的Bridge-ID优先级就不再是32768了,需要再加上VLAN号码,如VLAN 1的Bridge-ID优先级就是32768+1=32769,VLAN 8的Bridge-ID优先级就是32768+8=32776。

 如果网络中即有开启了Extended System ID功能的交换机,也有关闭的,那么关闭Extended System ID功能的交换机有更大的机会成为根交换机,因为自己默认的优先级就比其它开启了Extended System ID功能的优先级更高(数字更小)。

                                                                  返回目录

 

Rapid PVST+

 Rapid PVST+就是具有RSTP特性的PVST+,是像RSTP一样基于IEEE 802.1w运行的,其它所有运行与规则与PVST+完全相同,不再做详细介绍。

 

 

Multiple Spanning Tree Protocol (MSTP)

 MSTP的协议号为IEEE 802.1s,因为在交换机存在多个VLAN时,CST会将所有流量放在单条路径中传输,而PVST+则可以通过为每个VLAN运行一个STP实例,从而将不同VLAN的流量放在不同的路径上传输。但正是由于PVST+为每个VLAN都运行了一个STP实例,可能会多达128个STP实例,所以PVST+会极其消耗系统资源。比如交换机上有20个VLAN,而PVST+会维护20个STP实例,但是这20个VLAN的流量也许只需要被分担到几条不同路径上,那就只需要维护几个STP实例即可,而并不需要维护20个STP实例。MSTP正因为这个原因,将需要进行相同STP计算的VLAN映射到同一个STP实例中,即无论有多少个VLAN,只要实际需要多少条不同的路径,就根据需要的路径维护相同的STP实例数,从而大大节省系统资源,如下图:

 

 

还是以此图为例,因为各台交换机上都有VLAN 10,VLAN 20,VLAN 30,VLAN 40,为了能够在SW1上让不同VLAN的流量从不同的路径到达SW4,所以可以运行PVST+,将流量分担到不同的路径上,即SW1通过PVST+将VLAN10和VLAN20的流量从连接SW2的接口到达SW4,将VLAN 30和VLAN 40的流量从连接SW3的接口到达SW4,但PVST+维护了4个STP 实例,才达到此效果,不难看出,其实网络中只有两个不同的路径,VLAN 10和VLAN 20的路径完全是相同的,VLAN 30和VLAN 40的路径也是完全相同的,此时,MSTP就可以通过将相同的VLAN映射到同一个STP实例,如将VLAN 10和VLAN 20映射到一个实例,再将VLAN 30和VLAN 40映射到另外一个实例,总共只有两个STP实例,既像PVST+那样实现了负载均衡的效果,也节省了系统资源。

 MSTP是在RSTP的基础之上运行的,所以具有快速收敛的功能,但不能不运行RSTP时运行MSTP,RSTP是随着开启MSTP时自动开启的。MSTP最多支持65个STP实例,但是映射到实例的VLAN数量是没有限制的。默认所有VLAN都在实例0。

 MSTP还需要通过分区域管理,即region,交换机要在同一region进行相同的STP计算,必须region name和revision number一致,最重要的是VLAN和实例的映射也要一致,否则STP计算出来的网络,将不是你想要的网络,一个VLAN只能被映射到一个实例,一个网络可以有多个MSTP revision,便于各自独立。

 

拓朴变更

 

 当网络中的链路出现变化时,也就需要进行新的STP计算,并且由于交换机的MAC地址在表中的老化时间默认为300秒(5分钟),所以当原有的链路发生变化后,MAC地址与接口的对应关系也会发生变化,因此不能再等5分钟才更新,所以基于拓朴变化的因素,还需要将MAC地址的老化时间设置的更短,此动作在STP拓朴变更时,会自动更改为forward_delay的时间。

 当网络链路发生变化后,必须进行新的STP计算,但是在正常的STP状态下,只有根交换机才能往网络里发送BPDU,称为configuration BPDU,而普通交换机只有接收configuration BPDU的权限,并不能向网络中发送BPDU。但是当交换机检测到链路变化时,可以通知网络中的根交换机,此时可以发送一种特殊的BPDU,叫做topology change notification (TCN),也就是TCN BPDU。TCN BPDU是用来告诉根交换机网络链路有变化,因此TCN BPDU只能从根端口发出去,如果接收者不是根交换机,则必须回复一个确认消息,这个消息是一个设置了TCA位的configuration BPDU,然后自己再从根端口向根发送TCN BPDU,直到根收到为止,当根收到TCN BPDU后,需要回复该BPDU,方式为发送一个设置了TC位的configuration BPDU。

 其中,TCN是一种特殊的BPDU,而TCA只是设置了TCA位的configuration BPDU,TC也只是设置了TC位的configuration BPDU。最终STP网络中,出现了两种BPDU,即TCN BPDU和configuration BPDU。

 

注:

在配置STP时,Bridge-ID的优先级,端口优先级,hello时间,max-age时间,forward delay时间都可以手工修改,而Bridge-ID的优先级必须为4096的整数倍,端口优先级必须为16的整数倍。

在修改时,PVST+可以基于每个VLAN修改,而MSTP则只能基于实例,而不能基于VLAN,因为一个实例会有多个VLAN。

  

可以通过命令来强制指定某台交换机为根交换机,当使用命令强制指定某交换机为根后,此交换机将通过修改一个比当前根交换机更高优先级的Bridge-ID,以此来抢夺根交换机的角色,如果命令再到别的交换机上输入,那么那台交换机将再次抢夺根交换机的角色,因为它可以修改自己的Bridge-ID比当前根更高的优先级,所以此命令最后在网络中的哪台交换机上输入后,哪台交换机就能成为根交换机,但是也有个限度,因为交换机的Bridge-ID不能自动改的比1小,又不能改MAC地址,所以如果需要修改优先级到1以下才能抢夺根交换机的角色,那么此命令将提示错误。

  

注:链路的全双工与半双工,在STP中,被分为不同的链路类型,如果是全双工(full-duplex),叫做point-to-point(P2p),如果是半双工,叫做(half-duplex)。接口下可以手工更改:spanning-tree link-type point-to-point。

 

配置

 

 

配置PVST+

 

 

说明:以上图为例,配置PVST+,默认交换机上都配置有VLAN 10,VLAN 20,VLAN 30,VLAN 40,要求控制SW1与SW4之间的流量路径为VLAN 10和VLAN 20从 SW1—SW2—SW4,VLAN 30和VLAN 40从 SW1—SW3—SW4。

 

注:默认为PVST+,所以STP版本不用改。

 

1.配置各交换机优先级(只能为4096的整数倍)

(1)配置SW1在所有VLAN的优先级为4096

sw1(config)#spanning-tree vlan 10-40 priority 4096

 

(2)配置SW2在所有VLAN的优先级 24576

sw2(config)#spanning-tree vlan 10-40 priority 24576

 

(3)配置SW3在所有VLAN的优先级 32768

sw3(config)#spanning-tree vlan 10-40 priority 32768

 

(4)配置SW4在所有VLAN的优先级32768

sw4(config)#spanning-tree vlan 10-40 priority 32768

 

2.配置SW2的F0/20的端口优先级(必须为16的整数倍)

(1)在所有VLAN将SW2的F0/20的端口优先级配置为112

sw2(config)#int f0/20

sw2(config-if)#spanning-tree vlan 10-40 port-priority 112

 

3.查看根交换机

(1)查看根交换机SW1

说明:因为现在4个VLAN的配置是一样的,结果也是一样的,所以只提供一个VLAN的结果:

 

sw1#sh spanning-tree

(输出被省略)

VLAN0010 

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     001a.6c6f.fb00

             This bridge is the root

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

         

  Bridge ID  Priority    4106   (priority 4096 sys-id-ext 10)

             Address     001a.6c6f.fb00

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

         

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/23           Desg FWD 19        128.25   P2p

  (输出被省略)       

sw1#

说明:从结果中看出,SW1手工配置的优先级为4096,但由于Extended System ID功能,所以优先级加上了VLAN号码10,结果优先级变为4106,因为优先级在网络中数字最小,所以自己就是当前网络的根交换机。

 

4.查看根端口

(1)查看SW2的根端口

sw2#sh spanning-tree

(输出被省略)

VLAN0010

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     001a.6c6f.fb00

             Cost        19

             Port        23 (FastEthernet0/23)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    24586  (priority 24576 sys-id-ext 10)

             Address     0013.805c.9d00

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Desg FWD 19        128.19   P2p

Fa0/20           Desg FWD 19        112.20   P2p

Fa0/23           Root FWD 19        128.23   P2p

(输出被省略)

 sw2#

说明:因为SW2上从端口F0/23到达根的Path Cost值为19,从F0/19和F0/20到达根的Path Cost值都为19×3=57。因此,F0/23被选为根端口。

 

(2)查看SW3的根端口

sw3#sh spanning-tree

(输出被省略)

         

VLAN0010

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     001a.6c6f.fb00

             Cost        19

             Port        21 (FastEthernet0/19)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)

             Address     001a.a256.f300

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 15

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Root FWD 19        128.21   P2p

Fa0/23           Desg FWD 19        128.25   P2p

Fa0/24           Desg FWD 19        128.26   P2p

(输出被省略)

sw3#

说明:因为SW3上从端口F0/19到达根的Path Cost值为19,从F0/23和F0/24到达根的Path Cost值都为19×3=57。因此,F0/19被选为根端口。

 

(3)查看SW4的根端口

sw4#sh spanning-tree

(输出被省略)

         

VLAN0010

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     001a.6c6f.fb00

             Cost        38

             Port        22 (FastEthernet0/20)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)

             Address     001e.14cf.0980

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Altn BLK 19        128.21   P2p

Fa0/20           Root FWD 19        128.22   P2p

Fa0/23           Altn BLK 19        128.25   P2p

Fa0/24           Altn BLK 19        128.26   P2p

(输出被省略)

sw4#

说明:因为SW4上从所有端口到达根的Path Cost值都为19×2=38,所以从比较Path Cost值,无法选出根端口,接下来比较上一跳交换机Bridge-ID,也就是比较SW2与SW3的Bridge-ID,所以选择往SW2的方向,然而通过端口F0/19和F0/20都可以从SW2到达根交换机,所以接下来比较端口F0/19和F0/20对端交换机端口的优先级,因为SW2的F0/19端口优先级为128,而F0/20的端口优先级为112,所以SW4选择连接SW2的F0/20的端口为根端口,即SW4的F0/20为根端口

 

5.查看指定端口

(1)查看SW1的指定端口

sw1#sh spanning-tree

(输出被省略)

VLAN0010

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     001a.6c6f.fb00

             This bridge is the root

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    4106   (priority 4096 sys-id-ext 10)

             Address     001a.6c6f.fb00

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Desg FWD 19        128.21   P2p

Fa0/23           Desg FWD 19        128.25   P2p

(输出被省略)

SW1#

说明:在根交换机SW1连接SW2的网段与连接SW3的网段中,当然是根自己的端口离自己最近,所以这两个网段中,选举根交换机上的端口为指定端口,因此,根交换机上所有的端口都应该是指定端口。

 

(2)查看SW2的指定端口

sw2#sh spanning-tree

(输出被省略)

VLAN0010

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     001a.6c6f.fb00

             Cost        19

             Port        23 (FastEthernet0/23)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    24586  (priority 24576 sys-id-ext 10)

             Address     0013.805c.9d00

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Desg FWD 19        128.19   P2p

Fa0/20           Desg FWD 19        112.20   P2p

Fa0/23           Root FWD 19        128.23   P2p

(输出被省略)

Sw2#

说明:在SW2连接SW4的两个网段中,同样也是SW2上的两个端口离根交换机最近,所以在这两个网段中,选举SW2上的端口为指定端口。

 

 

(3)查看SW2的指定端口

sw3#sh spanning-tree

(输出被省略)

          

VLAN0010

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     001a.6c6f.fb00

             Cost        19

             Port        21 (FastEthernet0/19)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)

             Address     001a.a256.f300

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Root FWD 19        128.21   P2p

Fa0/23           Desg FWD 19        128.25   P2p

Fa0/24           Desg FWD 19        128.26   P2p

(输出被省略)

Sw3#

说明:在SW3连接SW4的两个网段中,同样也是SW3上的两个端口离根交换机最近,所以在这两个网段中,选举SW3上的端口为指定端口。

 

(4)查看SW2的指定端口

sw4#sh spanning-tree

(输出被省略)

VLAN0010

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     001a.6c6f.fb00

             Cost        38

             Port        22 (FastEthernet0/20)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)

             Address     001e.14cf.0980

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Altn BLK 19        128.21   P2p

Fa0/20           Root FWD 19        128.22   P2p

Fa0/23           Altn BLK 19        128.25   P2p

Fa0/24           Altn BLK 19        128.26   P2p

(输出被省略)

sw4#

说明:除了根端口和指定端口,其它的都为落选端口,也就是SW4上的F0/19,F0/23,F0/24,都将被STP放入Blocking状态,不为用户提供数据转发,以此来防止环路

 

6.调整VLAN 30和VLAN 40的路径为 SW1—SW3—SW4。

说明:因为默认4个VLAN相同配置,所以全部和VLAN 10一样,路径为SW1—SW2—SW4,现只对VLAN 30和VLAN 40做修改,以调整路径为SW1—SW3—SW4。

(1)修改SW3在VLAN 30和VLAN 40的Bridge-ID优先级

说明:因为选举根端口和指定端口的第一步为比较到根的Path Cost值,第二步为比较上一跳Bridge-ID,而SW4从SW2到SW1和从SW3到SW1的Path Cost值全部是一样的,所以可以选择修改SW3在VLAN 30和VLAN 40的Bridge-ID优先级来做调整:

sw3(config)#spanning-tree vlan 30,40 priority 20480

说明:SW3在VLAN 30和VLAN 40的Bridge-ID优先级必须比SW2的Bridge-ID优先级小,才能将VLAN 30与VLAN 40的流量引过来。

 

7.查看修改后的VLAN 30与VLAN 40的路径

说明:因为VLAN 30与VLAN 40相同配置,所以只查看一个VLAN 即可。

(1)查看SW4上VLAN 10与VLAN 30的路径对比

sw4#sh spanning-tree

(输出被省略)

VLAN0010

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     001a.6c6f.fb00

             Cost        38

             Port        22 (FastEthernet0/20)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)

             Address     001e.14cf.0980

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Altn BLK 19        128.21   P2p

Fa0/20           Root FWD 19        128.22   P2p

Fa0/23           Altn BLK 19        128.25   P2p

Fa0/24           Altn BLK 19        128.26   P2p

          

VLAN0030

  Spanning tree enabled protocol ieee

  Root ID    Priority    4126

             Address     001a.6c6f.fb00

             Cost        38

             Port        25 (FastEthernet0/23)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32798  (priority 32768 sys-id-ext 30)

             Address     001e.14cf.0980

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Altn BLK 19        128.21   P2p

Fa0/20           Altn BLK 19        128.22   P2p

Fa0/23           Root FWD 19        128.25   P2p

Fa0/24           Altn BLK 19        128.26   P2p

(输出被省略)         

sw4#

说明:可以看到,SW4的VLAN 10还是保持原来的路径SW4—SW2—SW1,而VLAN 30的路径已经变成SW4—SW3—SW1并且VLAN 30的根端口为F0/23。

 

8.调整STP参数

(1)调整SW4在VLAN 30的根端口为F0/24

说明:因为SW4在VLAN 30从F0/23和F0/24到达根的Path Cost值都为19×2=38,所以从比较Path Cost值,无法选出根端口,接下来比较上一跳交换机Bridge-ID,由于都是SW3,所以Bridge-ID相同,接下来比较F0/23和F0/24对端交换机端口的优先级,但对方优先级都为128,所以最后选择了本地端口号码小的,即F0/23比F0/24小,F0/23被选为根端口,我们现在通过修改本地F0/24对端设备的端口优先级来调整路径,也就是修改SW3的F0/24的优先级:

sw3(config)#int f0/24

sw3(config-if)#spanning-tree vlan 30 port-priority 112

说明:端口优先级为16的整数倍。

 

(2)查看SW4在VLAN 30的根端口

sw4#sh spanning-tree vlan 30

 

VLAN0030

  Spanning tree enabled protocol ieee

  Root ID    Priority    4126

             Address     001a.6c6f.fb00

             Cost        38

             Port        26 (FastEthernet0/24)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32798  (priority 32768 sys-id-ext 30)

             Address     001e.14cf.0980

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Altn BLK 19        128.21   P2p

Fa0/20           Altn BLK 19        128.22   P2p

Fa0/23           Altn BLK 19        128.25   P2p

Fa0/24           Root FWD 19        128.26   P2p

 

sw4#

说明:因为选举时,比较对方的端口优先级,成功调整了路径,此时的根端口已变为F0/24。

 

(3)修改SW4在VLAN 10的hello时间为3秒,max-age为25秒,forward delay为10秒

 

sw4(config)#spanning-tree vlan 10 hello-time 3        

sw4(config)#spanning-tree vlan 10 max-age 30  

sw4(config)#spanning-tree vlan 10 forward-time 10

 

(4)查看SW4在VLAN 10的hello时间,max-age,forward delay

sw4#sh spanning-tree

(输出被省略)

VLAN0010

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     001a.6c6f.fb00

             Cost        38

             Port        22 (FastEthernet0/20)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)

             Address     001e.14cf.0980

             Hello Time   3 sec  Max Age 30 sec  Forward Delay 10 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Altn BLK 19        128.21   P2p

Fa0/20           Root FWD 19        128.22   P2p

Fa0/23           Altn BLK 19        128.25   P2p

Fa0/24           Altn BLK 19        128.26   P2p

 

         

VLAN0020

  Spanning tree enabled protocol ieee

  Root ID    Priority    4116

             Address     001a.6c6f.fb00

             Cost        38

             Port        22 (FastEthernet0/20)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32788  (priority 32768 sys-id-ext 20)

             Address     001e.14cf.0980

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 300

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Altn BLK 19        128.21   P2p

Fa0/20           Root FWD 19        128.22   P2p

Fa0/23           Altn BLK 19        128.25   P2p

Fa0/24           Altn BLK 19        128.26   P2p

 

(输出被省略)     

sw4#

说明:可以看到,修改的时间只对VLAN 10生效,VLAN 20还是保持原状,PVST+可以单独修改每个VLAN 的参数。

 

9.强制指定根与备份根

(1)指定SW2为VLAN 10的根

sw2(config)#spanning-tree vlan 10 root primary

(2)在SW2查看VLAN 10的根

sw2#sh spanning-tree vlan 10

 

VLAN0010

  Spanning tree enabled protocol ieee

  Root ID    Priority    4106

             Address     0013.805c.9d00

             This bridge is the root

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    4106   (priority 4096 sys-id-ext 10)

             Address     0013.805c.9d00

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time 15

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Desg FWD 19        128.19   P2p

Fa0/20           Desg FWD 19        112.20   P2p

Fa0/23           Desg FWD 19        128.23   P2p

 

sw2#

 

重点说明:当使用命令强制指定某交换机为根后,此交换机将通过修改一个比当前根交换机更高优先级的Bridge-ID,以此来抢夺根交换机的角色,如果命令再到别的交换机上输入,那么那台交换机将再次抢夺根交换机的角色,因为它可以修改自己的Bridge-ID比当前根更高的优先级,所以此命令最后在网络中的哪台交换机上输入后,哪台交换机就能成为根交换机,但是也有个限度,因为交换机的Bridge-ID不能自动改的比1小,又不能改MAC地址,所以如果需要修改优先级到1以下才能抢夺根交换机的角色,那么此命令将提示错误。

 

配置MSTP

 

 

 

1.配置MSTP

(1)改变所有交换机的STP模式为MSTP

Sw1(config)#spanning-tree mode mst

Sw2(config)#spanning-tree mode mst

Sw3(config)#spanning-tree mode mst

Sw4(config)#spanning-tree mode mst

 

(2)映射VLAN到实例

sw1(config)#spanning-tree mst configuration

sw1(config-mst)#name ccie

sw1(config-mst)#revision 1

sw1(config-mst)#instance 1 vlan 10,20

sw1(config-mst)#instance 2 vlan 30,40

说明:其它交换机配置和SW1配置完全相同,必须region name和revision number完全相同,否则属于不同的region。

 

2.控制VLAN 10和VLAN 20(实例1)的路径为 SW1—SW2—SW4,VLAN 30和VLAN 40(实例2)的路径为SW1—SW3—SW4。

(1)配置SW1为实例1和实例2的根交换机

sw1(config)#spanning-tree mst 1 root primary

sw1(config)#spanning-tree mst 2 root primary

 

(2)控制SW4在实例1连SW2的端口Path Cost值为10

sw4(config)#int range f0/19-20

sw4(config-if-range)#spanning-tree mst 1 cost 10

(3)控制SW4在实例2连SW3的端口Path Cost值为10

sw4(config)#int ran f0/23-24

sw4(config-if-range)#spanning-tree mst 2 cost 10

3.查看STP状态

(1)查看根交换机

sw1#sh spanning-tree

(输出被省略)

MST1

  Spanning tree enabled protocol mstp

  Root ID    Priority    24577

             Address     001a.6c6f.fb00

             This bridge is the root

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    24577  (priority 24576 sys-id-ext 1)

             Address     001a.6c6f.fb00

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Desg FWD 200000    128.21   P2p

Fa0/23           Desg FWD 200000    128.25   P2p

       

MST2

  Spanning tree enabled protocol mstp

  Root ID    Priority    24578

             Address     001a.6c6f.fb00

             This bridge is the root

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    24578  (priority 24576 sys-id-ext 2)

             Address     001a.6c6f.fb00

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Desg FWD 200000    128.21   P2p

Fa0/23           Desg FWD 200000    128.25   P2p

 

sw1#

说明:可以看到SW1已经成为实例1和实例2的根交换机。

 

(2)查看SW4的路径

sw4#sh spanning-tree

(输出被省略)

         

MST1

  Spanning tree enabled protocol mstp

  Root ID    Priority    24577

             Address     001a.6c6f.fb00

             Cost        200010

             Port        21 (FastEthernet0/19)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)

             Address     001e.14cf.0980

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Root FWD 10        128.21   P2p

Fa0/20           Altn BLK 10        128.22   P2p

Fa0/23           Altn BLK 200000    128.25   P2p

Fa0/24           Altn BLK 200000    128.26   P2p

 

         

MST2

  Spanning tree enabled protocol mstp

  Root ID    Priority    24578

             Address     001a.6c6f.fb00

             Cost        200010

             Port        25 (FastEthernet0/23)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32770  (priority 32768 sys-id-ext 2)

             Address     001e.14cf.0980

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

Interface        Role Sts Cost      Prio.Nbr Type

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

Fa0/19           Altn BLK 200000    128.21   P2p

Fa0/20           Altn BLK 200000    128.22   P2p

Fa0/23           Root FWD 10        128.25   P2p

Fa0/24           Altn BLK 10        128.26   P2p

 

sw4#

说明:可以看到,实例1与实例2的流量已经分担到两条不同的路径上,既实现了与PVST+相同的负载效果,也节省了系统资源,因为只有两个STP实例,而PVST+要4个STP实例。

                                                                  返回目录

 

 

Spanning-Tree Feature

 

 

Port Fast

 

 因为一个默认情况下的交换机端口,在交换机启动后,由于STP的原因,端口状态需要从initialization(初始化)到blocking,从blocking到listening,从listening 到learning,从learning到forwarding,其中经历了两个forward delay,也就是说一个端口在交换机启动后,至少需要30秒后才能够为用户提供数据转发。对于一个连接了主机或服务器的端口,进行STP计算是毫无必要的,因为此类端口即使直接转发数据,也不会造成环路,并且30秒的时间对于需要立即传递数据的主机或服务器来说,是漫长的,因此,此类端口可以配置为跳过STP的计算,从而直接过渡到forwarding状态。

 此类端口通常称为边缘端口,在思科交换机上,通过配置Port Fast功能,便可以使接口跳过STP的计算,从而直接过渡到forwarding状态。

access接口和Trunk接口都可以配置Port Fast功能。如果将交换机连交换机的接口变成Port Fast,则是制造环路。

 当开启了Port Fast功能的接口,如果在接口上收到BPDU后,就认为对端连接的是交换机,而并非主机或服务器,因此默认在接口收到BPDU后会立即关闭该接口的Port Fast功能。

 

 配置

 

 

 

1.在接口下配置Port Fast

(1)将SW2的端口F0/23和F0/24改成三层接口

说明:因为如果SW2的端口是二层接口,那么就会向SW1发送BPDU,最终会造成SW1由于收到BPDU而关闭Port Fast功能,所以就无法验证Port Fast。

 

sw2(config)#int ran f0/23 - 24

sw2(config-if-range)#no switchport

说明:禁止从端口上向SW1发送BPDU。

 

(2)在SW1的F0/23和F0/24上开启Port Fast

说明:access和trunk接口模式都可以配置

sw1(config)#int ran f0/23 - 24

sw1(config-if-range)#switchport mode access

sw1(config-if-range)#spanning-tree portfast

说明:将端口变为静态access,再开portfast。(无论什么模式的接口都可以开启Port Fast)

(3)验证Port Fast

sw1#sh spanning-tree interface f0/23 portfast

VLAN0001         enabled

sw1#

sw1#sh spanning-tree interface f0/24 portfast

VLAN0001         enabled

sw1#

说明:端口F0/23和F0/24已经开启portfast功能。

 

(4)在SW2的端口F0/23向SW1发送BPDU

sw2(config)#int f0/23

sw2(config-if)#switchport

说明:只要将SW2的端口F0/23变成二层端口,便可以从此端口向外发送BPDU。

 

(5)查看SW1的端口的portfast状态:

sw1#sh spanning-tree interface f0/23 portfast

VLAN0001         disabled

sw1#

sw1#sh spanning-tree interface f0/24 portfast

VLAN0001         enabled

sw1#

说明:可以看见,SW1的端口F0/23,在收到BPDU后,portfast功能自动丢失。

 

2.在全局模式下配置Port Fast(只能对access接口生效)

(1)将SW2的端口F0/23和F0/24改成三层接口

sw2(config)#int ran f0/23 - 24

sw2(config-if-range)#no switchport

 

(2)将SW1的端口配置为access

sw1(config)#int ran f0/23 - 24

sw1(config-if-range)#switchport mode dynamic desirable

说明:因为对方是三层端口,在本地配置DTP后,会自动形成access模式。

 

(3)查看SW1的端口状态

sw1#show interfaces f0/23 switchport

Name: Fa0/23

Switchport: Enabled

Administrative Mode: dynamic desirable

Operational Mode: static access

Administrative Trunking Encapsulation: negotiate

Operational Trunking Encapsulation: native

Negotiation of Trunking: On

(输出被省略)

sw1#

 

sw1#show interfaces f0/24 switchport

Name: Fa0/24

Switchport: Enabled

Administrative Mode: dynamic desirable

Operational Mode: static access

Administrative Trunking Encapsulation: negotiate

Operational Trunking Encapsulation: native

Negotiation of Trunking: On

(输出被省略)

sw1#

说明:DTP已经将本地端口变为access模式。

 

(4)在SW1全局开启Port Fast

sw1(config)#spanning-tree portfast default

 

(5)查看SW1上端口的Port Fast状态

sw1#sh spanning-tree interface f0/23 portfast

VLAN0001         enabled

sw1#sh spanning-tree interface f0/24 portfast

VLAN0001         enabled

sw1#

说明:SW1上的access端口受全局配置影响,已经变成Port Fast端口。

 

(6)验证同上,省略

                                                                  返回目录

 

BPDU Guard

 因为开启了Port Fast功能的端口,会跳过STP的计算,从而直接过渡到forwarding状态。当端口连接的是主机或服务器,这样的操作不会有任何问题,但如果连接的是交换机,就会收到BPDU,就证明在此接口开启Port Fast功能是错误的配置。为了杜绝此类错误配置,BPDU Guard功能可以使端口在收到BPDU时,立即被shutdown或进入err-disabled状态。

BPDU Guard可以在接口下或全局开启,但操作会有所不同。

 如果BPDU Guard是全局开启,则只对portfast端口有影响,当portfast端口收到BPDU后,会shutdown此端口,需要注意,某些型号的交换机会将接口error-disabled。

 如果BPDU Guard是接口下开启,将对任何端口有影响,无论是正常端口还是portfast端口;当端口收到BPDU后,会变成error-disabled状态。

 

配置

 

 

1.在全局模式下配置BPDU Guard(只对Port Fast端口有影响)

(1)将SW2的端口F0/23和F0/24改成三层接口

sw2(config)#int ran f0/23 - 24

sw2(config-if-range)#no switchport

说明:禁止从端口上向SW1发送BPDU。

 

(2)将SW1的端口F0/23 配置为Port Fast,F0/24为正常端口

sw1(config)#int f0/23

sw1(config-if)#switchport mode access

sw1(config-if)#spanning-tree portfast

 

sw1(config)#int f0/24

sw1(config-if)#switchport mode access

 

(3)查看SW1的端口F0/23和F0/24 的状态

sw1#sh spanning-tree interface f0/23 portfast

VLAN0001         enabled

sw1#

 

sw1#sh spanning-tree interface f0/24 portfast

VLAN0001         disabled

sw1#

 

sw1#sh protocols f0/23

FastEthernet0/23 is up, line protocol is up

sw1#sh protocols f0/24

FastEthernet0/24 is up, line protocol is up

sw1#

说明:SW1的端口F0/23已经变成Port Fast状态,而F0/24为正常端口,并且两个端口都为正常UP状态。

 

(4)在SW1全局开启BPDU Guard(只对Port Fast端口有影响)

sw1(config)#spanning-tree portfast bpduguard default

 

(5)在SW2的端口F0/23和F0/24向SW1发送BPDU,测试BPDU Guard

sw2(config)#int ran f0/23 - 24

sw2(config-if-range)#switchport

说明:只要将SW2的端口F0/23和F0/24变成二层端口,便可以从此端口向外发送BPDU。

 

(6)查看SW1的端口状态:

sw1#sh spanning-tree interface f0/23 portfast

no spanning tree info available for FastEthernet0/23

 

sw1#

sw1#sh spanning-tree interface f0/24 portfast

VLAN0001         disabled

sw1#

 

sw1#sh protocols f0/23                       

FastEthernet0/23 is down, line protocol is down

sw1#

sw1#sh protocols f0/24                       

FastEthernet0/24 is up, line protocol is up

 

sw1#sh int f0/23     

FastEthernet0/23 is down, line protocol is down (err-disabled)

(输出被省略)   

sw1#

 

说明:可以看见,SW1的portfast端口F0/23收到BPDU后,受到BPDU Guard的影响,端口被shutdown,并且变成error-disabled,(某些型号不会),而全局BPDU Guard不能影响非portfast端口,所以F0/24还是正常状态。

 

2.在接口模式下配置BPDU Guard(将对任何端口生效)

(1)将SW2的端口F0/23和F0/24改成三层接口

sw2(config)#int ran f0/23 - 24

sw2(config-if-range)#no switchport

说明:禁止从端口上向SW1发送BPDU。

 

(2)将SW1的端口F0/23配置为portfast,将F0/24配置为正常端口

sw1(config)#int f0/23

sw1(config-if)#switchport mode access

sw1(config-if)#spanning-tree portfast

 

sw1(config)#int f0/24

sw1(config-if)#switchport mode access

 

(3)在SW1的端口F0/23和F0/24开启BPDU Guard

sw1(config)#int ran f0/23 - 24

sw1(config-if-range)#spanning-tree bpduguard enable

 

(4)查看SW1的端口F0/23和F0/24 的状态

sw1#sh spanning-tree interface f0/23 portfast

VLAN0001         enabled

sw1#

sw1#sh spanning-tree interface f0/24 portfast

VLAN0001         disabled

sw1#

sw1#sh protocols f0/23

FastEthernet0/23 is up, line protocol is up

sw1#

sw1#sh protocols f0/24

FastEthernet0/24 is up, line protocol is up

sw1#

 

说明:SW1上的端口F0/23为portfast状态,F0/24为正常状态,并且状态都为UP。

 

(5)在SW2的端口F0/23和F0/24向SW1发送BPDU,测试BPDU Guard

sw2(config)#int range f0/23 - 24

sw2(config-if-range)#switchport

 

(6)查看SW1的端口状态:

sw1#sh spanning-tree interface f0/23 portfast

no spanning tree info available for FastEthernet0/23

 

sw1#

sw1#sh spanning-tree interface f0/24 portfast

no spanning tree info available for FastEthernet0/24

 

sw1#

sw1#sh int f0/23                             

FastEthernet0/23 is down, line protocol is down (err-disabled)

(输出被省略)

sw1#sh int f0/24                             

FastEthernet0/24 is down, line protocol is down (err-disabled)

(输出被省略)

sw1#

说明:SW1的端口在收到BPDU后,受到BPDU Guard的影响,无论是正常端口还是portfast端口,都被err-disabled。

                                                                  返回目录 

 

BPDU Filtering

 BPDU Filtering可以过滤掉在接口上发出或收到的BPDU,这就相当于关闭了接口的STP,将会有引起环路的可能。

 BPDU Filtering的配置同样也分两种,可以在接口下或在全局模式开启,但是不同的模式开启,会有不同效果。

 如果BPDU Filtering是全局开启的,则只能在开启了portfast的接口上过滤BPDU,并且只能过滤掉发出的BPDU,并不能过滤收到的BPDU,因为BPDU Filtering的设计目的是当交换机端口上连接的是主机或服务器时,就没有必要向对方发送BPDU,所以要过滤掉BPDU,但如果连接的是交换机,则会收到BPDU,而且会引起环路,所以这样的情况,配置BPDU Filtering就是错误的。而当一个开启了portfast功能的接口,在开启了BPDU Filtering后,如果还能收到BPDU,则BPDU Filtering特性会丢失,因此,还会造成接口portfast特性的丢失。

如果是在接口模式下开启的,则可以过滤掉任何接口收到和发出的BPDU。(此理论为重点)

 

 

配置

 

 

 

 

1.在全局模式下配置BPDU Filtering(只能过滤portfast上的BPDU)

(1)将SW2的端口F0/23和F0/24改成三层接口

sw2(config)#int ran f0/23 - 24

sw2(config-if-range)#no switchport

说明:禁止从端口上向SW1发送BPDU。

 

(2)将SW1的端口F0/23配置为Port Fast,将F0/24配置为正常端口,但开启BPDU Guard

sw1(config)#int f0/23

sw1(config-if)#switchport mode access

sw1(config-if)#spanning-tree portfast

 

sw1(config)#int f0/24

sw1(config-if)#switchport mode access

sw1(config-if)#spanning-tree bpduguard enable

 

(3)查看SW1的端口F0/23和F0/24 的状态

sw1#sh spanning-tree interface f0/23 portfast

VLAN0001         enabled

sw1#

 

sw1#sh int f0/24

FastEthernet0/24 is up, line protocol is up (connected)

(输出被省略)   

sw1#

说明:SW1的端口F0/23为Port Fast状态,F0/24为正常状态,并且状态为UP。

 

 

(4)在SW1上全局开启BPDU Filtering(只能过滤portfast上的BPDU)

sw1(config)#spanning-tree portfast bpdufilter default

 

(5)在SW2的端口F0/23和F0/24向SW1发送BPDU,测试BPDU Filtering

sw2(config)#int range f0/23 - 24

sw2(config-if-range)#switchport

说明:只要将SW2的端口F0/23和F0/24变成二层端口,便可以从此端口向外发送BPDU。

 

(6)查看SW1的端口状态:

sw1#sh spanning-tree interface f0/23 portfast

VLAN0001         disabled

sw1#

sw1#sh int f0/24                             

FastEthernet0/24 is down, line protocol is down (err-disabled)

(输出被省略)

sw1#

 

说明:因为F0/24是普通端口,全局配置的BPDU Filtering不能过滤普通端口上的BPDU,所以收到了BPDU后,但由于BPDU Guard,最后端口被err-disabled。

 而F0/23是开启了portfast功能的接口,在开启了BPDU Filtering后,如果还能收到BPDU,则BPDU Filtering特性会丢失,因此,造成了端口F0/23的portfast特性丢失。

 

2.在接口模式下配置BPDU Filtering(将对任何端口生效)

(1)将SW2的端口F0/23和F0/24改成三层接口

sw2(config)#int ran f0/23 - 24

sw2(config-if-range)#no switchport

说明:禁止从端口上向SW1发送BPDU。

 

(2)将SW1的端口F0/23配置为portfast,将F0/24配置为正常端口

sw1(config)#int f0/23

sw1(config-if)#switchport mode access

sw1(config-if)#spanning-tree portfast

 

sw1(config)#int f0/24

sw1(config-if)#switchport mode access

 

(3)在SW1的端口F0/24开启BPDU Guard

sw1(config)#int ran f0/23 - 24

sw1(config-if-range)#spanning-tree bpduguard enable

 

(4)查看SW1的端口F0/23和F0/24 的状态

sw1#sh spanning-tree interface f0/23 portfast

VLAN0001         enabled

sw1#

sw1#sh spanning-tree interface f0/24 portfast

VLAN0001         disabled

sw1#

sw1#sh protocols f0/23

FastEthernet0/23 is up, line protocol is up

sw1#

sw1#sh protocols f0/24

FastEthernet0/24 is up, line protocol is up

sw1#

 

说明:SW1上的端口F0/23为portfast状态,F0/24为正常状态,并且状态都为UP。

(5)在SW1的端口F0/23和F0/24下开启BPDU Filtering

sw1(config)#int range f0/23 - 24

sw1(config-if-range)#spanning-tree bpdufilter enable

 

(6)在SW2的端口F0/23和F0/24向SW1发送BPDU,测试BPDU Filtering

sw2(config)#int range f0/23 - 24

sw2(config-if-range)#switchport

 

(7) 查看SW1的端口状态:

sw1#sh spanning-tree interface f0/23 portfast

VLAN0001         enabled

sw1#

sw1#sh spanning-tree interface f0/24 portfast

VLAN0001         disabled

sw1#

sw1#sh protocols f0/23

FastEthernet0/23 is up, line protocol is up

sw1#sh protocols f0/24

FastEthernet0/24 is up, line protocol is up

sw1#

说明:接口下开启的BPDU Filtering,过滤掉了正常端口下的BPDU,也过滤掉了portfast端口下的BPDPU。

                                                                  返回目录

 

 

UplinkFast

 

以下图为例来解释UplinkFast的功能与作用:

 

 

 

 

 在如上图一个运行STP的网络环境中,SW1被选为根交换机,SW2与SW3为普通交换机,其中SW3上的两个端口都为转发状态;SW2上的端口F0/23为转发状态,而F0/21却为Blocking状态,因此无论SW2去往根交换机SW1还是去往SW3,都只能从F0/23走。

 当SW2的端口F0/23失效后,那么SW2去往SW1和SW3的唯一出口也就断掉了,如果SW2要启用Blocking的端口F0/21,在CST下必须等待一个max-age时间(20秒),再加两个forward delay(共30秒),总共50秒的时间后,才能启用Blocking端口,即使是RSTP,也有可能要等待6秒才能启用Blocking端口。

 对于SW2来说,自己的端口F0/23断掉后,完全可以立刻检测出来,并且完全可以立刻启用Blocking的端口F0/21,从而缩短网络的故障恢复时间。开启了UplinkFast交换机就能够在检测到交换机上直连的转发状态的接口失效后,立即启用Blocking的端口,提供网络快速收敛和恢复的功能。

 很明显,UplinkFast要真正起到作用,交换机上必须有Blocking的端口存在才行,因为根交换机上所有的接口最终都会变成指定端口,所以UplinkFast在根交换机上开启是毫无意义的,UplinkFast只适合在非根交换机,即普通交换机上开启,普通交换机有时又称接入交换机。

       UplinkFast只能在交换机上全局开启,不能针对VLAN单独开启,也不支持MSTP模式。

       UplinkFast恢复网络的时间大约在1到5秒。

 

配置

 

1 在非根交换机上开启UplinkFast

(1)在交换机SW2上开启UplinkFast

Sw2(config)#spanning-tree uplinkfast

(2) 在交换机SW3上开启UplinkFast

sw3(config)#spanning-tree uplinkfast

2 查看UplinkFast

(1)查看交换机SW2的UplinkFast

sw2#sh spanning-tree uplinkfast

UplinkFast is enabled

 

Station update rate set to 150 packets/sec.

 

UplinkFast statistics

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

Number of transitions via uplinkFast (all VLANs)            : 3

Number of proxy multicast addresses transmitted (all VLANs) : 0

 

Name                 Interface List

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

VLAN0001             Fa0/23(fwd), Fa0/21

sw2#

说明:SW2在直连活动链路F0/23失效后,可将F0/21恢复。

(2)查看交换机SW3的UplinkFast

sw3#sh spanning-tree uplinkfast

UplinkFast is enabled

 

Station update rate set to 150 packets/sec.

 

UplinkFast statistics

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

Number of transitions via uplinkFast (all VLANs)            : 0

Number of proxy multicast addresses transmitted (all VLANs) : 0

 

Name                 Interface List

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

VLAN0001             Fa0/19(fwd)

sw3#

说明:SW3在直连活动链路F0/19失效后,没有可恢复的端口。

                                                                  返回目录

 

BackboneFast

 

还是以下图为例来解释BackboneFast的功能与作用:

 

 

 

 

 还是与UplinkFast同样的网络环境, 当SW2上直连的活动链路F0/23断掉之后,SW2可以立刻检测出来,并且通过UplinkFast功能可以立即启用Blocking的端口F0/21,提供网络快速收敛和恢复的功能。

 交换机SW3无论去往根交换机SW1还是去往SW2,都只能从F0/19走,如果SW3上的F0/19中断了,那么SW3去往SW1和SW2的唯一出口也就断掉了,此时的SW3不能与外界通信,正常情况下,需要等待SW2将自己的端口F0/21从Blocking状态过渡到转发状态后,才能为SW3提供一条新的通路。然而,即使是开启了UplinkFast功能的SW2,也并不能在SW3的F0/19中断后立刻检测到,因为UplinkFast只能检测到自己直连的链路中断,并不能检测到远程链路中断。要在SW3的F0/19中断时,让其它所有交换机都检测到,从而为中断链路的交换机打开一条新的通路,需要在网络中所有交换机上开启BackboneFast功能。

 因为正常网络中,除了根交换机,其它交换机不能发出BPDU,所以SW3不能发送BPDU,如果网络中出现了除根交换机发出的configuration BPDU之外的其它优先级更低的BPDU,则称为Inferior BPDU,当交换机收到Inferior BPDU时,默认是丢弃处理。

 如果SW3上开启了BackboneFast功能,则当自己使用中的链路中断时,并且自己又没有Blocking状态的端口可以立即启用来代替活动链路,在这种情况下,就可以以自己为根交换机,向网络中发出Inferior BPDU,inferior BPDU表示一台交换机即是根交换机,又是普通交换机,inferior BPDU用来宣靠自己的链路中断,已经与网络失去联系。当其它非根交换机,当SW2在Blocking端口收到Inferior BPDU后,如果自己也开启了BackboneFast功能,就会将Blocking端口变成转发状态,还会向根交换机发出一个root link query (RLQ)根链路查询,并且开启了BackboneFast功能的根交换机会做出回应,时此SW2就可以立刻启用自己Blocking状态的端口F0/21,为SW3连接网络提供一条新的通路。

 从上述可以看出,要网络中所有的交换机都能理解Inferior BPDU,要全部配合工作,为链路中断的交换机开劈一条新通路,就必须在网络中所有交换机上都开启BackboneFast功能。

 所以在开启BackboneFast功能时,需要在网络中所有交换机上开启,不能针对VLAN单独开启,也不支持MSTP模式。BackboneFast是对UplinkFast的强化与补充。

  

配置

 

1.在非根交换机上开启BackboneFast

(1)在交换机SW1上开启BackboneFast

sw1(config)#spanning-tree backbonefast

(2) 在交换机SW2上开启BackboneFast

sw2(config)#spanning-tree backbonefast

(3) 在交换机SW3上开启BackboneFast

sw3(config)#spanning-tree backbonefast

 

2.查看BackboneFast

(1)查看交换机SW1的BackboneFast

sw1#sh spanning-tree backbonefast

BackboneFast is enabled

 

BackboneFast statistics

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

Number of transition via backboneFast (all VLANs)           : 0

Number of inferior BPDUs received (all VLANs)               : 0

Number of RLQ request PDUs received (all VLANs)             : 0

Number of RLQ response PDUs received (all VLANs)            : 0

Number of RLQ request PDUs sent (all VLANs)                 : 0

Number of RLQ response PDUs sent (all VLANs)                : 0

sw1#

 

(2)查看交换机SW2的BackboneFast

sw2#sh spanning-tree backbonefast

BackboneFast is enabled

 

BackboneFast statistics

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

Number of transition via backboneFast (all VLANs)           : 0

Number of inferior BPDUs received (all VLANs)               : 0

Number of RLQ request PDUs received (all VLANs)             : 0

Number of RLQ response PDUs received (all VLANs)            : 0

Number of RLQ request PDUs sent (all VLANs)                 : 0

Number of RLQ response PDUs sent (all VLANs)                : 0

sw2#

 

(3)查看交换机SW3的BackboneFast

sw3#sh spanning-tree backbonefast

BackboneFast is enabled

 

BackboneFast statistics

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

Number of transition via backboneFast (all VLANs)           : 0

Number of inferior BPDUs received (all VLANs)               : 0

Number of RLQ request PDUs received (all VLANs)             : 0

Number of RLQ response PDUs received (all VLANs)            : 0

Number of RLQ request PDUs sent (all VLANs)                 : 0

Number of RLQ response PDUs sent (all VLANs)                : 0

sw3#

 

                                                                  返回目录

 

Root Guard

 

以下图为例来解释Root Guard的功能与作用:

 

 

 

 

 在上图中,交换机SW1,SW2与SW3为网络中运行正常的交换机,其中SW1被选为根交换机,当其它交换机之间要通信,都必须选出一个去往根交换机的端口,也就是根端口,所以当SW2与SW3承认SW1为网络中的根交换机时,SW2便将连接SW1的端口F0/23选为根端口,SW3将连SW1的端口F0/19选为根端口,此后网络通信正常。

 考虑到网络的合理性与稳定性,将SW1选为根交换机是最佳选择,如果要将其它交换机选为根交换机或网络需要变动,都会引起不必要的麻烦。由于可以任意将一台交换机接入网络,而新接入的交换机,有很大的可能会因为自己拥有更高的Bridge-ID而抢夺当前根交换机的角色,这样就会引起网络的麻烦。上图中新加入的交换机SW4,如果拥有比当前根交换机SW1更高的Bridge-ID,就会抢夺根交换机的角色。如果SW2要承认SW4为根交换机,就必须将连接SW4的端口F0/19变成根端口,.如果SW2将端口F0/19中断或者阻塞,都将禁止SW4对网络的影响。所以只要控制好连接新加入交换机的端口角色,就能够阻止对方成为根交换机。

 特性Root Guard正是利用上述原因,控制SW2用来连接新加入交换机的那个端口的角色,可以决定是否让其影响当前网络。开启了Root Guard功能的端口,如果在此端口上连接的新交换机试图成为根交换机,那么此端口并不会成为根端口,相反,此端口将进入inconsistent (blocked) 状态,从而防止新加入交换机抢占根角色来影响网络。

 

注:

运行MSTP时,开启了Root guard的端口强制成为指定端口。

开启Root guard的端口在哪个vlan,Root guard就对哪些vlan生效。

不能在需要被UplinkFast,使用的端口上开启Root Guard。

Root Guard在可能连接新交换机的端口上开启。

 

配置

 

 

 

 

 

 

1.开启Root guard

(1)在SW2上连接新交换机的端口F0/19上开启Root guard

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

 

2.查看Root guard

(1)查看SW2上的Root guard

 

sw2#sh spanning-tree detail

(输出被省略)

 Port 19 (FastEthernet0/19) of VLAN0001 is forwarding

   Port path cost 19, Port priority 128, Port Identifier 128.19.

   Designated root has priority 16385, address 007d.618d.0300

   Designated bridge has priority 32769, address 0013.805c.4b00

   Designated port id is 128.19, designated path cost 19

   Timers: message age 0, forward delay 0, hold 0

   Number of transitions to forwarding state: 1

   Link type is point-to-point by default

   Root guard is enabled on the port

   BPDU: sent 204, received 0

(输出被省略)

sw2#

说明:可以看到,F0/19已经开启Root guard

3.测试Root guard

(1)配置SW4为根

sw4(config)#spanning-tree vlan 1 priority 4096

说明:给SW4配置一个更高优先级的Bridge-ID,以此来抢夺根交换机的角色。

(2)查看SW2的状态

当开启了Root guard的端口对方如果要成为根交换机,则会有如下提示,并且接口被放入inconsistent (blocked) 状态:

sw2#

01:18:56: %SPANTREE-2-ROOTGUARD_BLOCK: Root guard blocking port FastEthernet0/19 on VLAN0001.

sw2#

 

(3)查看被放入inconsistent (blocked) 状态的端口:

sw2#sh spanning-tree inconsistentports

 

Name                 Interface              Inconsistency

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

VLAN0001             FastEthernet0/19       Root Inconsistent

 

Number of inconsistent ports (segments) in the system : 1

 

sw2#

说明:由于端口F0/19开启了Root guard,而对端要成为根交换机,所以此端口被放入inconsistent (blocked) 状态的端口。

 

                                                                  返回目录

 

Loop Guard

 

 在交换网络中,当两点之间存在多条冗余链路时,就会因为重复的数据包在网络中传递,引起广播风暴,并且还会造成交换机MAC地址表错误,使网络不稳定,因此造成环路。所以需要借助STP来阻塞网络中两点之间多余的链路,而只留一条活动链路,即为转发状态,其它多余链路变为Blocking状态,当转发状态的链路中断时,再启用Blocking状态的端口。

 当STP运行时,只有两点之间存在多条冗余链路时,才会阻塞多余链路而只留一条活动链路。如果STP认为两点之间并没有多条链路,也就不会产生环路,那么就不会有端口被Blocking。因为STP在判断两点之间是否有多条链路,是靠发送BPDU,如果从多个端口收到同一台交换机的BPDU,则认为与那个点之间有多条链路,所以会阻塞多余链路而只留一条。如果只从一个端口收到同台交换机的BPDU,或者是没有收到重复BPDU,则认为网络是无环的,也就没有端口被Blocking,其它不需要被Blocking的端口,都会被变为指定端口。

 

 

 

 

在上图中的网络环境中,如果交换机所有端口收发数据的功能正常,则交换机就能够靠收发BPDU来检测出网络中的多余链路,就会将其Block,从而避免环路。但是当网络中出现单向链路故障时,也就是某个端口只能收数据而不能发数据,或者只能发数据而不能收数据,这时网络会出现意想不到的麻烦。如上图,由于SW2的端口F0/21出现单向链路故障,导致从F0/21发出去的数据包能被SW3收到,而SW3发的数据包却不能被SW2收到,此时造成的结果是,SW3认为网络是正常的,又由于SW3拥有更高优先级的Bridge-ID,所以SW3上F0/19为根端口,F0/21为指定端口,SW3上所有端口都是转发状态,而没有Blocking的端口。但是由于SW2不能收到SW3发来的数据包,也就不能从SW3收到BPDU,最终SW2只能从F0/23收到数据包,所以SW2认为网络是无环的,因此做出了一个错误的决定,就是在STP计算结束后,认为网络无环,而将原本应该被Block的端口F0/21变为指定端口,造成SW上F0/23和F0/21同时为转发状态。不难看出,此时,网络中所有的交换机端口都为转发状态,结果如下:

 

 

 

 最终造成网络中所有的交换机端口都为转发状态,流量在所有端口上被转发,引起广播风暴,出现环路。此结果是非常严重的。

单向链路故障不仅会使Blocking状态的端口错误地变成指定端口,还会造成根端口错误地变成指定端口。

对于上述问题,可以通过Loop Guard来解决,开启了Loop Guard的端口在收不到BPDU的情况下,并不会认为网络是无环的,并不会错误地将端口变成指定端口,而是将收不到BPDU的端口变成loop-inconsistent状态,此状态等同于blocking状态。

 Loop Guard可以全局开启,也可以在接口下开启,但不建议在全局开启,请在相应接口下开启。什么端口最需要开,很明显,当然是被blocking的端口,但并不完全正确,准确答案是在所有非指定端口开启,其实就是根端口和blocking端口。

 当在接口开启后Loop Guard,接口所在的所有VLAN都会生效,如果是接口是trunk,哪个VLAN没有收到BPDU,接口就会在哪个VLAN被blocking。在EtherChannel上是对整条生效。

 

 只有交换机上的blocking端口和根端口才需要开启Loop Guard。如果一个网络中所有交换机没有blocking的端口,就表示此网络无环,所以就不需要开Loop Guard。并且根交换机上所有端口都是指定端口,所以在根上开Loop Guard是没有意义的。

 

注:

PortFast的接口不能开启Loop Guard

Root guardLoop Guard不能同时开。

Root guard支持PVST+,,rapid PVST+, MSTP。


配置

 

 

 

1.开启Loop Guard

(1)在SW2的根端口与Blocking端口开启Loop Guard

sw2(config)#int f0/21

sw2(config-if)#spanning-tree guard loop

 

sw2(config)#int f0/23

sw2(config-if)#spanning-tree guard loop

说明:在所有根端口与Blocking端口开启Loop Guard

 

2.查看Loop Guard

(1)查看开启了Loop Guard的端口

sw2#sh spanning-tree detail  

(输出被省略)

 Port 21 (FastEthernet0/21) of VLAN0001 is blocking

   Port path cost 19, Port priority 128, Port Identifier 128.21.

   Designated root has priority 16385, address 007d.618d.0300

   Designated bridge has priority 24577, address 0013.8065.bd80

   Designated port id is 128.21, designated path cost 19

   Timers: message age 3, forward delay 0, hold 0

   Number of transitions to forwarding state: 0

   Link type is point-to-point by default

   Loop guard is enabled on the port

   BPDU: sent 3, received 3917

(输出被省略)

sw2#

说明:可以看到,F0/21已经开启Loop Guard

3.测试Loop Guard

(1)过滤掉SW3从F0/21发往SW2的BPDU

sw3(config)#int f0/21

sw3(config-if)#spanning-tree bpdufilter enable

说明:让SW2开启了Loop Guard的端口F0/21收不到BPDU。

 

(2)查看SW2的Loop Guard状态

当SW2开启了Loop Guard的端口收不到BPDU时,会有如下提示:

sw2#

02:16:28: %SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port FastEthernet0/21 on VLAN0001.

sw2#

 

(3)查看被放入inconsistent (blocked) 状态的端口:

sw2#sh spanning-tree inconsistentports

 

Name                 Interface              Inconsistency

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

VLAN0001             FastEthernet0/21       Loop Inconsistent

 

Number of inconsistent ports (segments) in the system : 1

 

sw2#

说明:由于端口F0/21开启了Loop Guard,所有在收不到BPDU时,此端口被放入inconsistent (blocked) 状态的端口。

                                                                  返回目录

 

EtherChannel

 当在两台交换机之间连接多条线路来增加带宽时,由于STP的原因,最终会阻断其它多余的线路而只留下一条活动链路来转发数据,因此,在两台交换机之间连接多条线路,并不能起到增加带宽的作用。为了能够让两台交换机之间连接的多条线路同时提供数据转发以达到增加带宽的效果,可以通过EtherChannel来实现。

 EtherChannel将交换机上的多条线路捆绑成一个组,相当于逻辑链路,组中活动的物理链路同时提供数据转发,可以提高链路带宽。当组中有物理链路断掉后,那么流量将被转移到剩下的活动链路中去,只要组中还有活动链路,用户的流量就不会中断。

 EtherChannel只支持对Fast Ethernet接口或Gigabit Ethernet接口的捆绑,对于10M的接口还不支持。一个EtherChannel组中,最多只能有8个接口为用户转发数据。

 在两台交换机之间连接多条链路时,如果只有一边交换机做了EtherChannel捆绑,而另一边不做捆绑,那么接口会工作在异常状态,而不能正常转发流量。所以,必须同时在两边交换机都做EtherChanne捆绑。

 为了让两边交换机的接口都工作在EtherChannel组中,可以通过手工强制指定接口工作在组中,也可以通过协议自动协商。如果是手工强制指定,则不需要协议,自动协议的协议有以下两种:

 

Port Aggregation Protocol (PAgP)

Link Aggregation Control Protocol (LACP)

 

无论是手工指定,还是通过协议协商,交换机双方都必须采取相同的方式和协议,否则将导致接口异常。

EtherChannel自动协商协议PAgP为思科专有,只有在双方交换机都为思科交换机时,才可以使用,而LACP为IEEE协议,任何交换机,只要支持EtherChannel的都可以使用该协议。

 

 

当将接口使用PAgP作为协商协议时,有以下两种模式可供选择:

Auto

只接收PAgP协商消息,并做出回应同意工作在EtherChannel下,并不主动发出PAgP协商,属于被动状态。

Desirable

主动发送PAGP协商消息,主动要求对方工作在EtherChannel下,属于主动模式。

如果两边交换机都是Desirable模式,则可以协商成功,如果两边都是Auto模式,则不能工作在EtherChannel。

 

当将接口使用LACP作为协商协议时,有以下两种模式可供选择:

Passive

只接收LACP协商消息,并做出回应同意工作在EtherChannel下,并不主动发出LACP协商,属于被动状态。

Active

主动发送LACP协商消息,主动要求对方工作在EtherChannel下,属于主动模式。

 

如果两边交换机都是Active模式,则可以协商成功,如果两边都是Passive模式,则不能工作在EtherChannel

 

 在配置EtherChannel时,除了在接口上配置以上两种协议来自动协商外,还可以强制让接口工作在EtherChannel而不需要协商,配置为ON模式即可,如果配置ON,则两边都必须配置为ON,否则不能转发数据。

 

 

 

下表为配置EtherChannel的模式总结:

模式

协议

描述

ON

手工静态强制接口工作在EtherChanne下。

Auto

PAGP

只接收PAgP协商消息,并做出回应同意工作在EtherChanne下,并不主动发出PAgP协商。

Desirable

PAGP

主动发送PAGP协商消息,主动要求对方工作在EtherChanne下。

Passive

LACP

只接收LACP协商消息,并做出回应同意工作在EtherChanne下,并不主动发出LACP协商。

Active

LACP

主动发送LACP协商消息,主动要求对方工作在EtherChanne下。

 

 当配置PAGP时,可以使用关键字non-silent,如果不指定non-silent,默认为silent。

 Silent表示即使不能从对端设备收到PAGP协商数据,也使物理接口工作在EtherChannel组中,思科建议接口连接服务器或分析仪时使用。
non-silent表示只有在和对方协商成功之后,才使物理接口工作在EtherChannel组中。也就是说只有双方都支持PAGP的情况下,才才使物理接口工作在EtherChannel组中。

 因为三层交换机的接口即可以工作在二层模式,也可以工作在三层模式,所以EtherChannel捆绑后的逻辑接口也有二层和三层之分。

 当将接口EtherChannel捆绑后,会自动生成逻辑接口,称为port-channel接口,port-channel接口与EtherChannel组的号码相同,但范围是1-48。当使用二层接口时,在物理接口下配置参数后,port-channel接口将读取物理接口下的参数,但必须组成的所有接口都做相同的配置;在port-channel接口下做的配置也会自动在物理接口下生效。当使用三层接口时,必须先将物理接口变成三层接口后,再做捆绑,因为port-channel接口是不能在二层与三层之间转换的,配置三层接口,应该到port-channel接口下做的配置,而不应该直接配置物理接口。

 如果是使用2层EtherChannel,那么组中第一个正常工作的口接口的MAC地址就是port-channel接口接口的MAC地址。

注:

在配置EtherChannel组时,需要定义组号码,但不要配置超过48个组。   

两边交换机的EtherChannel组号码可以采用不同号码。

PAGP组中不能配超过8个接口。

LACP中不能超过16个接口,但只有8个活动接口。

两个协议可以配置在同台交换机上,但不能配置在同一个组中。

组中的接口不能是SPAN的目标接口和安全接口以及802.1x端口。

将接口配置为2层时,全部必须在相同VLAN,如果是trunk,native vlan必须相同。

 配好EtherChannel组后后,在port-channel下配的参数会对所有物理接口生效,但对单个物理接口配置的只对单物理接口生效。

 多个接口捆绑成单条EtherChannel后,在STP中,被当作单条链路来计算,同时Path Cost值会和原物理链路有所不同。

 

EtherChannel Load Balancing

 当将多个接口捆绑成EtherChannel组之后,流量将同时从多个接口上被发出去,称为Load Balancing,即负载均衡,对于流量以什么样的负载均衡方式从EtherChannel组中的多个接口上发出去,可以有以下几种方式:

 

Souce-MAC

基于源MAC,默认为此模式,不同源主机,流量可能从不同的接口被发出去,但相同源主机肯定走相同接口。

 

Source-and-Destination MAC

同时基于源和目标MAC,流量从主机A到主机B,从主机A到主机C以及从主机C到主机B都可能走不同的接口。

Source-IP

基于源IP,不能源IP的流量可能走不同接口,相同IP则走相同接口。

 

Destination-IP

基于目的IP,到不同目标IP的流量,会走不同接口,不同主机发往相同IP的流量会走相同接口。

 

Source-and-Destination IP

同时基于源和目标IP,流量从主机A到主机B,从主机A到主机C以及从主机C到主机B都可能走不同的接口。

 

注:并不是所有型号的交换机所有IOS都支持所有负载方式,需要视IOS版本而定。

 

 在交换机之间通过EtherChannel捆绑了多条链路后,默认执行基于源MAC的负载均衡,而每条链路的流量比例却是固定的,也就是说,你只能改变EtherChannel负载均衡方式,但却改不了每条物理链路上的流量比例,接口上的流量比例,执行以下标准:

 

 

 

配置

 

 

 

1.配置2层EtherChannel

(1)配置SW1

sw1(config)#int range f0/23 - 24

sw1(config-if-range)#channel-group 12 mode desirable

说明:在接口F0/23-24下选用PAGP配置EtherChannel

(2)配置SW2

sw2(config)#int range f0/23-24

sw2(config-if-range)#channel-group 12 mode desirable

说明:在接口F0/23-24下选用PAGP配置EtherChannel

(3)查看EtherChannel

sw1#show etherchannel summary

Flags:  D - down        P - in port-channel

        I - stand-alone s - suspended

        H - Hot-standby (LACP only)

        R - Layer3      S - Layer2

        U - in use      f - failed to allocate aggregator

        u - unsuitable for bundling

        w - waiting to be aggregated

        d - default port

 

 

Number of channel-groups in use: 1

Number of aggregators:           1

 

Group  Port-channel  Protocol    Ports

------+-------------+-----------+-----------------------------------------------

12     Po12(SU)        PAgP      Fa0/23(P)   Fa0/24(P)  

 

sw1#

说明:可以看到,已捆绑的接口为2层接口,并且所有物理接口都工作在EtherChannel下。

(4)在port-channel接口下配置接口

sw1(config)#int port-channel 12

sw1(config-if)#switchport mode access

sw1(config-if)#switchport access vlan 10

说明:port-channel接口下将接口划入VLAN。

(5)查看port-channel接口MAC地址

F0/23:

sw1#sh int f0/23

FastEthernet0/23 is up, line protocol is up (connected)

  Hardware is Fast Ethernet, address is 007d.618d.0317 (bia 007d.618d.0317)

(输出被省略)

sw1#

 

F0/24

sw1#sh int f0/24

FastEthernet0/24 is up, line protocol is up (connected)

  Hardware is Fast Ethernet, address is 007d.618d.0318 (bia 007d.618d.0318)

(输出被省略)

sw1#

 

 

port-channel:

sw1#sh int port-channel 12

Port-channel12 is up, line protocol is up (connected)

  Hardware is EtherChannel, address is 007d.618d.0318 (bia 007d.618d.0318)

(输出被省略)

sw1#

说明:port-channel使用了接口F0/24下的MAC地址,说明接口F0/24先工作正常。

 

2.配置3层EtherChannel

(1)配置SW1

sw1(config)#int range f0/23 - 24

sw1(config-if-range)#no switchport

sw1(config-if-range)#channel-group 12 mode active

 

 

sw1(config)#int port-channel 12

sw1(config-if)#ip address 10.1.1.1 255.255.255.0

说明:配置3层EtherChannel,需要先将物理接口变成3层接口后,才能正常配置,IP地址必须在port-channel下配置。

 

(2)配置SW2

sw2(config)#int range f0/23 - 24

sw2(config-if-range)#no switchport

sw2(config-if-range)#channel-group 12 mo active

 

sw2(config)#int port-channel 12

sw2(config-if)#ip address 10.1.1.2 255.255.255.0

说明:配置3层EtherChannel,需要先将物理接口变成3层接口后,才能正常配置,IP地址必须在port-channel下配置。

 

(3)查看EtherChannel

sw1#sh eth summary

Flags:  D - down        P - in port-channel

        I - stand-alone s - suspended

        H - Hot-standby (LACP only)

        R - Layer3      S - Layer2

        U - in use      f - failed to allocate aggregator

        u - unsuitable for bundling

        w - waiting to be aggregated

        d - default port

 

 

Number of channel-groups in use: 1

Number of aggregators:           1

 

Group  Port-channel  Protocol    Ports

------+-------------+-----------+-----------------------------------------------

12     Po12(RU)        LACP      Fa0/23(P)   Fa0/24(P)  

 

sw1#

说明:可以看到,已捆绑的接口为3层接口,并且所有物理接口都工作在EtherChannel下。

 

(4)测试port-channel连通性

sw1#ping 10.1.1.2

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

sw1#

说明:port-channel正常工作在3层。

 

3.配置Load Balancing

(1)配置基于目标MAC的负载均衡

sw1(config)#port-channel load-balance dst-mac

说明:开启了基于目标MAC的负载均衡,默认为基于源MAC,其它负载方式,可自行配置。

 

(2)查看EtherChannel Load Balancing

sw1#sh etherchannel load-balance

EtherChannel Load-Balancing Configuration:

        dst-mac

 

EtherChannel Load-Balancing Addresses Used Per-Protocol:

Non-IP: Destination MAC address

  IPv4: Destination MAC address

 

sw1#

说明:可以看到,EtherChannel已经基于MAC的负载均衡。

 

附:当配置PAGP时,可以选择配置non-silent,默认为silent,配置如下:

sw1(config)#int range f0/23 - 24

sw1(config-if-range)#channel-group 12 mode desirable non-silent

                                                                  返回目录

 

Protected Port

 在某些特殊需求下,需要禁止同台交换机上相同VLAN的主机之间通信,但又不能将这些不能通信的主机划到不同VLAN,因为还需要和VLAN中的其它主机通信,只是不能和部分主机通信。要限制交换机上相同VLAN的主机通信,通过将交换机上的接口配置成Protected Port来实现,如果交换机上某个VLAN有三个接口,其中有两个是Protected Port,有一个是正常端口,那么两个 Protected Port之间是不能通信的,但是Protected Port与正常端口之间的流量还是保持正常,而不受任何限制。

 Protected Port可以拒绝unicast,broadcast以及multicast在这些端口之间通信,也就是说Protected Port与Protected Port之间没有任何流量发送。Protected Port只在单台交换机上有效,也就是说只有单台交换机上的Protected Port与Protected Port之间是不能通信的,但是不同交换机的Protected Port与Protected Port之间通信还是保持正常。

 配置Protected Port时,可以在物理接口和EtherChannel上配置,如果是配在EtherChannel上,那么配置将对EtherChannel中的所有物理接口生效。

 

配置

 

 

说明:以上图为例,配置protected port,SW1的F0/1,F0/2,F0/3以及SW2的F0/4都在VLAN 10中。

1.配置交换机

(1)配置SW1

sw1(config)#vlan 10

sw1(config-vlan)#exit

 

sw1(config)#int range f0/1 - 3

sw1(config-if-range)#switchport mode access

sw1(config-if-range)#switchport access vlan 10

 

sw1(config)#int f0/23

sw1(config-if)#switchport trunk encapsulation dot1q

sw1(config-if)#switchport mode trunk

(2)配置SW2

sw2(config)#vlan 10

sw2(config-vlan)#exit

 

sw2(config)#int f0/4

sw2(config-if)#switchport mode access

sw2(config-if)#switchport access vlan 10

 

sw2(config)#int f0/23

sw2(config-if)#switchport trunk encapsulation dot1q

sw2(config-if)#switchport mode trunk

2.配置路由器

(1)配置R1

r1(config)#int f0/0

r1(config-if)#ip add 10.1.1.1 255.255.255.0

(2)配置R2

r2(config)#int f0/0

r2(config-if)#ip add 10.1.1.2 255.255.255.0

(3)配置R3

r3(config)#int f0/0

r3(config-if)#ip add 10.1.1.3 255.255.255.0

(4)配置R4

r4(config)#int f0/1

r4(config-if)#ip add 10.1.1.4 255.255.255.0

3.测试正常情况下的通信

(1)测试R1到R2的连通性

r1#ping 10.1.1.2

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

r1#

说明:因为没有配置protected port,所以R1到R2通信正常。

(2)测试R1到R3的连通性

r1#ping 10.1.1.3

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.3, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

r1#

说明:因为没有配置protected port,所以R1到R3通信正常。

 

(3)测试R1到R4的连通性

r1#ping 10.1.1.4

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

r1#

说明:因为没有配置protected port,所以R1到R4通信正常。

3.配置protected port

(1)在SW1上将F0/1和F0/2配置为protected port

sw1(config)#int f0/1

sw1(config-if)#switchport protected

 

sw1(config)#int f0/2

sw1(config-if)#switchport protected

(2) 在SW2上将F0/4 配置为protected port

sw2(config)#int f0/4

sw2(config-if)#switchport protected

4.测试配置了protected port的网络通信

(1)测试R1到同台交换机的正常端口F0/3的连通性

r1#ping 10.1.1.3

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.3, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms

r1#

说明:因为protected port与正常端口之间的通信不受影响,所以R1到R3通信正常。

(2)测试R1到同台交换机的protected port F0/2的连通性

r1#ping 10.1.1.2

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

r1#

说明:因为同台交换机上protected port与protected port之间的流量被拒绝,所以R1到R2通信失败。

(3)测试R1到远程交换机SW2的protected port F0/4的连通性

r1#ping 10.1.1.4

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.4, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

r1#

说明:因为只有单台交换机上的Protected Port与Protected Port之间是不能通信的,但是不同交换机的Protected Port与Protected Port之间通信还是保持正常,所以R1到R4的通信正常。

(4)在交换机上查看Protected Port

sw1#sh int f0/1 switchport

(输出被省略)

Protected: true

Unknown unicast blocked: disabled

Unknown multicast blocked: disabled

Appliance trust: none

sw1#

说明:可以看到交换机上接口的Protected Port功能已经开启。

  

                                                                  返回目录

 

 

Port Blocking

 默认情况下,交换机收到未知目标MAC的流量,也就是目标MAC地址不在MAC地址表中的流量,会将此流量在所有接口上泛洪。用户可以选择在交换机接口上拒绝泛洪未知目标MAC的流量,配置可以对unicast和 multicast生效,但不能限制广播流量。

 接口上默认是没有Port Blocking配置的。

 配置Port Blocking时,可以在物理接口和EtherChannel上配置,如果是配在EtherChannel上,那么配置将对EtherChannel中的所有物理接口生效。

 

配置

 
1.在接口上配置Port Blocking
(1)配置Port Blocking限制unicast
 
sw1(config)#int f0/1     
sw1(config-if)#switchport block unicast
(2)配置Port Blocking限制multicast

sw1(config)#int f0/1

sw1(config-if)#switchport block multicast

(3)查看Port Blocking

sw1#sh interfaces f0/1 switchport

(输出被省略)

Unknown unicast blocked: enabled

Unknown multicast blocked: enabled

Appliance trust: none

sw1#

说明:可以看到,交换机接口上已经开启拒绝泛洪未知目标MAC的单播流量和组播流量,并且两个可以同时开启。

                                                                  返回目录

 

Port Security

 交换机在转发数据包时,需要根据数据包的目标MAC地址来决定出口,因此,交换机会将MAC地址与相对应的接口记录在一张表中,以供转发数据包使用,这张表就是MAC地址表。在正常情况下,MAC地址表允许一个接口可以与多个MAC地址相对应,只要接口上有相应的MAC地址,那么数据包就可以从这个接口发出去。一个接口上对应着什么样的MAC地址,一个接口允许多少个MAC地址与之相对应,这都影响到交换机对数据的转发。为了让用户对交换机的MAC地址表有更高的控制权限,交换机接口上的Port Security功能提供更多的安全保护。

 Port Security可以控制交换机上特定的接口与特定的MAC地址的对应关系,也可以限制接口上最大的MAC地址数量。

 具有Port Security功能的接口,被称为secure port,secure port接口上通过控制数据包的源MAC地址来控制流量,绝不会转发预先定义好的MAC地址之外的流量。准确地说,是secure port只转发合法的流量,对于违规的流量,是不放行的。区别是否违则,有以下两种情况:

 

1.当接口上MAC地址数量达到最大允许数量后,还有更多的MAC要访问,就算违规。

2.一个secure port接口上的合法MAC在另外一个secure port接口上访问,也算违规。

 

 被Port Security允许的MAC地址,就是合法的MAC地址,称为安全MAC地址(Secure MAC Addresses),secure port接口只放行源MAC为安全MAC地址的数据包。

 

要在secure port接口上定义安全MAC地址,有以下几种方法:

 

静态手工配置

手工添加MAC地址与接口的对应关系,会保存在地址表和running configuration中。

 

动态学习

将接口上动态学习到的MAC地址作为安全MAC地址,但此MAC地址只保存在MAC地址表中,交换机重启后将丢失。

 

Sticky secure MAC addresses

为了结合静态手工配置与动态学习MAC地址的优势,Sticky将动态学习到的MAC地址作为安全MAC地址,并且将结果保存到running configuration中。

 

一个secure port接口上可以允许的MAC地址数量是系统可支持的最大MAC地址数量。对于违规的流量,可以采取以下四个可执行的动作:

 

 

Protect

只丢弃不允许MAC地址的流量,其它合法流量正常,但不会通知有流量违规了。

 

Restric

只丢弃不允许MAC地址的流量,其它合法流量正常,但会有通知,发送SNMP trap,并会记录syslog。

 

Shutdown

(默认模式) 将接口变成error-disabled并shut down,并且接口LED灯会关闭,也会发SNMP  trap,并会记录syslog。

 

shutdown vlan

相应VLAN变成error-disabled ,但接口不会关,也会发SNMP trap,并会记录syslog。

 

注:

当一个secure port接口上的MAC地址在另外一个secure port接口出现后,就算违规,而违规动作是对出现重复地址的接口实施的,是为了防止攻击。

当接口被error-disabled后,要恢复,请在接口上使用命令:shutdown 后no shutdown。

  

以下是来自思科官方的模式与结果对应表:

 

Security Violation Mode Actions 

Violation Mode

Traffic is forwarded1

Sends SNMP trap

Sends syslog message

Displays error message2

Violation counter increments

Shuts down port

protect

No

No

No

No

No

No

restrict

No

Yes

Yes

No

Yes

No

shutdown

No

Yes

Yes

No

Yes

Yes

shutdown vlan

No

Yes

Yes

No

Yes

No3

 

 

注:

默认接口上Port Security是关闭的,Port Security默认只允许1个安全MAC地址。

只能在静态access接口和静态trunk接口上配Port Security,不能在dynamic接口上配。

Port Security接口不能是SPAN的目标接口,不能在EtherChannel中。

 

Port Security Aging Time (Port Security MAC地址老化时间)

在正常接口下动态学习到的MAC地址,在老化时间到了之后,交换机会将它从MAC地址表中删除。

 而对于Port Security接口下的MAC地址,如果是通过安全命令静态手工添加的,则不受MAC地址老化时间的限制,也就是说通过安全命令静态手工添加的MAC在MAC地址表中永远不会消失。而即使在Port Security接口下动态学习到的MAC地址,也永远不会消失。

 基于上述原因,有时限制了Port Security接口下的最大MAC地址数量后,当相应的地址没有活动了,为了腾出空间给其它需要通信的主机使用,则需要让Port Security接口下的MAC地址具有老化时间,也就是说需要交换机自动将安全MAC地址删除。

 对于在Port Security接口下设置MAC地址的老化时间,分两种类型:absolute和inactivity,其中absolute表示绝对时间,即无论该MAC地址是否在通信,超过老化时间后,立即从表中删除;inactivity为非活动时间,即该MAC地址在没有流量的情况下,超过一定时间后,才会从表中删除。

 配置MAC地址老化时间的单位是分钟,范围是0-1440,对于sticky得到的MAC地址,不受老化时间限制,并且不能更改。

 

 

配置

 

 

 

1.查看当前路由器的MAC地址

(1)查看R1的接口F0/0的MAC地址

r1#sh int f0/0

FastEthernet0/0 is up, line protocol is up

  Hardware is AmdFE, address is 0013.1a85.d160 (bia 0013.1a85.d160)

  Internet address is 10.1.1.1/24

(输出被省略)

r1#

说明:R1的接口F0/0的MAC地址为0013.1a85.d160

 

(2)查看R2的接口F0/0的MAC地址

r2#sh int f0/0

FastEthernet0/0 is up, line protocol is up

  Hardware is AmdFE, address is 0013.1a2f.1200 (bia 0013.1a2f.1200)

(输出被省略)

R2:

说明:R2的接口F0/0的MAC地址为0013.1a2f.1200

 

2.配置交换机的port-security

(1)配置F0/1

sw1(config)#int f0/1

sw1(config-if)#switchport mode access

sw1(config-if)#switchport port-security

sw1(config-if)#switchport port-security maximum 1

sw1(config-if)#switchport port-security mac-address 0013.1a85.d160

sw1(config-if)#switchport port-security violation shutdown

说明:将接口静态配置成access后,再开启port-security,允许最大地址数量为1,默认也是为1,定义的最大地址数量值不能比已学到的MAC地址少,否则无效。手工静态指定的安全MAC地址为0013.1a85.d160,在违规后采取动作shutdown。

 

(2)查看F0/1的配置

sw1#sh run int f0/1

Building configuration...

 

Current configuration : 136 bytes

!

interface FastEthernet0/1

 switchport mode access

 switchport port-security

 switchport port-security mac-address 0013.1a85.d160

end

 

sw1#

说明:因为默认允许的最大地址数量为1,所有不显示出来。

 

(3)配置F0/2

sw1(config)#int f0/2

sw1(config-if)#switchport mode access

sw1(config-if)#switchport port-security

sw1(config-if)#switchport port-security maximum 2

sw1(config-if)#switchport port-security mac-address sticky

sw1(config-if)#switchport port-security violation shutdown

说明:将接口静态配置成access后,再开启port-security,允许最大地址数量为2,指定安全MAC地址的方式为sticky,在违规后采取动作shutdown。

 

(4)查看F0/2的配置

sw1#sh run int f0/2

Building configuration...

 

Current configuration : 224 bytes

!

interface FastEthernet0/2

 switchport mode access

 switchport port-security maximum 2

 switchport port-security

 switchport port-security mac-address sticky

 switchport port-security mac-address sticky 0013.1a2f.1200

end

 

sw1#

说明:因为指定安全MAC地址的方式为sticky,所以此接口连接的R2上的MAC地址0013.1a2f.1200已经被载入配置中。

 

3.测试port-security

(1)测试R1以合法MAC地址访问R2

r1#ping 10.1.1.2

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

r1#

说明:因为R1以源MAC0013.1a85.d160访问R2,交换机的接口F0/1认为0013.1a85.d160是安全MAC,所以R1访问R2成功。

 

(2)测试交换机的F0/1上的port-security违规

r1(config)#int f0/0

r1(config-if)#standby 1 ip 10.1.1.10

说明:因为交换机的F0/1允许的最大MAC地址数量为1,而R1已经有了一个MAC地址,在接口上配置HSRP之后,还会产生一个虚拟MAC地址,所以这个HSRP虚拟MAC地址就是第2个MAC地址,而第2个MAC地址在交换机的F0/1上出现就算是违规。

 

(3)查看交换机上port-security违规后的现象

 

sw1#

01:39:48: %PM-4-ERR_DISABLE: psecure-violation error detected on Fa0/1, putting Fa0/1 in

 

err-disable state

01:39:48: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC

 

address 0000.0c07.ac01 on port FastEthernet0/1.

01:39:49: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to

 

down

01:39:50: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to down

sw1#

sw1#sh int f0/1

FastEthernet0/1 is down, line protocol is down (err-disabled)

(输出被省略)

sw1#

说明:当交换机的port-security违规后,会出现以上log提示,并且查看交换机的接口为err-disabled状态,并且被shutdown。

 

 

(4)测试交换机上port-security另一种违规

r2(config)#int f0/0

r2(config-if)#mac-address 0013.1a85.d160

说明:将R1的MAC地址0013.1a85.d160添加到R2的接口上,因为一个secure port接口上的合法MAC在另外一个secure port接口上访问,也算违规。

 

(5)查看交换机上port-security违规后的现象

sw1#

01:46:27: %PM-4-ERR_DISABLE: psecure-violation error detected on Fa0/2, putting Fa0/2 in

 

err-disable state

01:46:27: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC

 

address 0013.1a85.d160 on port FastEthernet0/2.

01:46:28: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to

 

down

01:46:29: %LINK-3-UPDOWN: Interface FastEthernet0/2, changed state to down

sw1#

 

sw1#sh int f0/1

FastEthernet0/1 is up, line protocol is up (connected)

(输出被省略)

sw1#

sw1#sh int f0/2

FastEthernet0/2 is down, line protocol is down (err-disabled)

(输出被省略)

 

sw1#

说明:可以看见,当一个secure port接口上的MAC地址在另外一个secure port接口出现后,就算违规,而违规动作是对出现重复地址的接口实施的,是为了防止攻击。

 

  

4.配置Port Security MAC地址老化时间

(1)配置Port Security MAC地址老化时间

sw1(config)#int f0/1

sw1(config-if)#switchport port-security aging time 1

sw1(config-if)#switchport port-security aging type inactivity

说明:配置Port Security MAC地址老化时间为1分钟,并且相应MAC在1分钟没有流量的情况下被删除。但此配置只对接口下动态学习到的MAC地址生效。

 

(2)配置手工静态指定的MAC地址的老化时间

sw1(config)#int f0/1

sw1(config-if)#switchport port-security aging static

说明:配置手工静态指定的MAC地址在1分钟没有流量的情况下被删除。

 

                                                                  返回目录

 

 

IP Source Guard

 

 默认情况下,交换机在二层接口上转发数据时,只查看数据包的MAC地址,并不会查看数据包的IP地址,如果要让交换机根据数据包的IP或者同时根据IP与MAC做出转发决定,有多种方法可以实现。如根据IP转发,可以通过在接口上应用Port ACL来实现,如果要根据MAC转发,可以通过应用port-security来实现,但无论是Port ACL还是port-security,都存在一些局限性,下面介绍一种扩展性较高的安全防护特性- IP Source Guard,IP Source Guard可以根据数据包的IP地址或IP与MAC地址做出转发决定,如果数据包的IP或MAC是不被允许的,那么数据包将做丢弃处理。

 因为IP Source Guard需要根据数据包的IP或者同时根据IP与MAC做出转发决定,所以IP Source Guard在工作时,需要有一张IP和MAC的转发表,在这张表中,明确记录着哪些IP是可以转发的,哪些MAC可以被转发,其它不能被转发的统统丢弃。这表转发表称为IP source binding table,并且只能被IP source guard使用。而IP source binding table表,只有在交换机上开启DHCP snooping功能后,才会生成。

 IP Source Guard的这张转发表的条目可以自动学习,也可以手工静态添加,如果是自动学习,是靠DHCP snooping功能学习的,所以只有客户端是通过DHCP请求获得地址,并且DHCP服务器的回复是经过交换机时,才能被DHCP snooping学习到。

 当在交换机上同时开启了IP Source Guard与DHCP snooping后,交换机将在开启了的接口上拒绝所有流量通过,只放行DHCP流量,并且会自动应用一条ACL到接口上,也只有ACL允许的IP才能通过,这条ACL无法在正常配置中查看,只能通过表的方式查看。因为默认可以允许DHCP通过,所以主机的DHCP请求可以帮助他们从DHCP服务器获得地址,当DHCP服务器向主机提供地址时,这个信息在穿越交换机时,IP信息会被记录,并且被自动生成的ACL允许转发,这样以后,只有主机从DHCP服务器自动获得的IP可以通过交换机,而其它IP的流量都是被拒绝的,因此可以看出,IP Source Guard和DHCP snooping的配合使用,可以防止一个主机使用其它主机的IP地址来攻击网络,因为只有DHCP获得的地址能够被交换机转发,其它接口即使配置了相同IP,都会被IP Source Guard拒绝放行。

 

注:IP Source Guard自动生成的ACL优先于任何Router ACLs和VLAN map。

 

IP source binding table的条目除了靠DHCP snooping自动学习之外,还可以手工静态配置。

当IP source binding table表的内容有任何变化时,自动生成的ACL也会自动改变,自动生成的ACL总是与IP source binding table表中的条目同步。如果IP source binding table表是空的,那么ACL将拒绝所有流量通过,也就是最初的状态。

 

因为IP Source Guard可以根据数据包的IP地址做出转发,也可以同时根据IP与MAC地址做出转发,如果要开启同时根据IP与MAC做出转发,还必须在接口上开启port security功能,port security帮助识别流量的MAC地址,并将其添加到source binding table表中,最后被ACL设置为允许。

 

注:

IP source guard只能在二层接口上开启,并且不支持EtherChannel。

当IP source guard根据IP转发在接口上开启,这个接口所在的VLAN必须开启DHCP snooping,

如果是在trunk上开启,DHCP snooping应该在所有VLAN上开启,过滤也对所有VLAN生效。

如果在trunk上打开或关闭某一个VLAN DHCP snooping的,可能会出问题。

当IP source guard 根据IP和MAC转发在接口上开启,那么DHCP snooping和port security必须同时开启。

 

配置

 

 

 

 

 

1.网络初始

(1)配置交换机

sw1(config)#int range f0/1 - 3

sw1(config-if-range)#switchport mode access

sw1(config-if-range)#switchport access vlan 10

说明:已经将R1、R2、R3划到同一VLAN 10。

 

(2)测试R2到R3的连通性

r2#ping 10.1.1.30

 

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.30, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

r2#

说明:因为R2与R3在同一VLAN 10,所以通信正常。

 

2.在SW1上配置IP Source Guard

(1)在交换机上开启DHCP snooping

sw1(config)#ip dhcp snooping

sw1(config)#ip dhcp snooping vlan 10

 

sw1(config)#int f0/3

sw1(config-if)#ip dhcp snooping trust

说明:开启IP Source Guard,交换机上必须先开启DHCP snooping,并且将DHCP Server的接口设置为trust接口。

 

(2)在接口下开启基于IP的IP Source Guard

sw1(config)#int range f0/1 - 2

sw1(config-if-range)# ip verify source

3.查看结果

(1)查看IP source binding table

sw1#sh ip source binding

MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface

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

Total number of bindings: 0

说明:初始状态下,IP source binding table为空,意味着ACL会拒绝所有流量通过,只有DHCP能通过。

 

 

(2)查看自动生成的ACL

sw1#

##

sw1#sh ip verify source

Interface  Filter-type  Filter-mode  IP-address       Mac-address        Vlan

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

Fa0/1      ip           active       deny-all                            10

Fa0/2      ip           active       deny-all                            10

sw1#

说明:因为初始状态下,IP source binding table为空,所以ACL会拒绝所有流量通过,只有DHCP能通过。

 

(3)在R1开启DHCP自动获得地址

r1(config)#int f0/0

r1(config-if)#ip address dhcp

 

注:因为开启了DHCP snooping,交换机会在DHCP请求从插入option 82,所以DHCP server要接收此数据包:

R3:

r3(config)#int f0/0

r3(config-if)#ip dhcp relay information trusted

 

(4)查看R1 DHCP自动获得的地址

r1#sh protocols f0/0