留言板

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

FastEthernet0/0 is up, line protocol is up

  Internet address is 10.1.1.4/24

r1#

说明:R1从DHCP Server获得的地址为10.1.1.4。

 

(5)查看IP source binding table

sw1#sh ip source binding

MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface

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

00:13:1A:85:D1:60   10.1.1.4         86348       dhcp-snooping   10    FastEthernet0/1

Total number of bindings: 1

 

sw1#

说明:因为R1从DHCP Server获得的地址为10.1.1.4,所以DHCP snooping将该地址记录在IP source binding table中。

 

(6)查看自动生成的ACL

 

sw1#sh ip verify source

Interface  Filter-type  Filter-mode  IP-address       Mac-address        Vlan

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

Fa0/1      ip           active       10.1.1.4                            10 

Fa0/2      ip           active       deny-all                            10

sw1#

 

说明:因为R1从DHCP Server获得的地址被DHCP snooping记录在IP source binding table中,所以自动被ACL允许通过。

 

(7)测试R1到R3的连通性

r1#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

r1#

说明:因为R1的地址被DHCP snooping记录在IP source binding table中,并且自动被ACL允许通过,所以R1到R3通信正常。

 

(8)测试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 0 percent (0/5)

r2#

 

说明:因为IP source binding table通过DHCP snooping只记录了R1从DHCP自动获得的地址,但表中没有R2的地址,因此R2的地址默认被拒绝,所以R2到R3通信失败。

 

4.手工添加IP source binding table

(1)手工添加R2的IP地址到IP source binding table中

sw1(config)#ip source binding 0013.1a2f.1200 vlan 10 10.1.1.20 interface f0/2

说明:手工添加要,要同时指定MAC地址,IP地址,VLAN号,接口。

 

(2)查看IP source binding table

 

sw1#sh ip verify source

Interface  Filter-type  Filter-mode  IP-address       Mac-address        Vlan

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

Fa0/1      ip           active       10.1.1.4                            10 

Fa0/2      ip           active       10.1.1.20                           10 

sw1#

说明:R2的IP地址已经被手工添加到IP source binding table。

 

(3)查看自动生成的ACL

sw1#sh ip verify source 

Interface  Filter-type  Filter-mode  IP-address       Mac-address        Vlan

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

Fa0/1      ip           active       10.1.1.4                            10 

Fa0/2      ip           active       10.1.1.20                           10 

sw1#

说明:自动ACL已经允许IP source binding table表中的地址通过。

 

(4)测试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/1/4 ms

r2#

说明:因为R2的IP地址已经被手工添加到IP source binding table中,并且被自动ACL允许通过,所以R2到R3通信成功。

 

5.开启基于IP与MAC的IP Source Guard

(1)在接口上开启基于IP与MAC的IP Source Guard

sw1(config)#int f0/1

sw1(config-if)#ip verify source port-security

 

(2)开启port-security

sw1(config)#int f0/1

sw1(config-if)#switchport port-security

说明:启基于IP与MAC的IP Source Guard,必须开启port-security

 

(3)查看IP source binding table

sw1#sh sou

sw1#sh ip source binding

MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface

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

00:13:1A:85:D1:60   10.1.1.4         86034       dhcp-snooping   10    FastEthernet0/1

00:13:1A:2F:12:00   10.1.1.20        infinite    static          10    FastEthernet0/2

Total number of bindings: 2

 

sw1#

说明:可以看到,IP source binding table中不仅有IP地址记录,还有了MAC地址记录,只有当数据包的IP和MAC同时匹配时,才能被放行。

 

(4)查看自动生成的ACL

sw1#sh ip verify source

Interface  Filter-type  Filter-mode  IP-address       Mac-address        Vlan

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

Fa0/1      ip-mac       active       10.1.1.4         00:13:1A:85:D1:60  10 

Fa0/2      ip           active       10.1.1.20                           10 

sw1#

说明:自动ACL已经与IP source binding table表中的内容同步。

 

(5)测试R1到R3的连通性

r1#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

r1#

说明:因为R1的IP与MAC在IP source binding table中被记录,并且被自动ACL允许通过,所以R1到R3通信正常。

                                                                   返回目录 

 

Security with ACL

 

在三层交换机上,支持多种类型的ACL,有支持IP的ACL还有支持MAC的Ethernet ACL。

IP ACL只过滤IPv4流量,而Ethernet ACL过滤除IP之外的流量,也就是非IP流量。

根据ACL不同的应用,可以分成三种:Port ACL,Router ACL,VLAN ACL(VLAN map)

 

Port ACL

是应用在二层接口上的,并没有任何特别之处,将任何ACL应用到二层接口后,就称为Port ACL,但在二层接口只支持in方向,一个接口只能使用一条ACL,IP或MAC的ACL都可以应用到二层接口,但不不能在应用到EtherChannel。

 

Router ACL

和路由器接口上应用的ACL没有区别,将任何ACL应用到三层接口后,就称为Router ACL,但只能是IP ACL,不能是MAC ACL。Router ACL在in和out方向上都可以使用,每个接口每个方向只能使用一条ACL。

 

VLAN ACL(VLAN map)

是使用在VLAN与VLAN之间的ACL,相同VLAN也是可以过滤的,只要流量是进入或离开指定的VLAN,都会被过滤,可以同时控制二层与三层流量。准确地讲,VLAN  ACL并不是一个ACL,只是一个能调用ACL到VLAN的技术,只要被调用的ACL支持什么功能,那么VLAN  ACL就支持什么功能。当需要控制IPv4流量时,VLAN  ACL需要调用IP ACL,而其它流量则需要靠调用MAC ACL。当应用VLAN  ACL后,进入或离开VLAN的流量都会被检测,无论是通过二层转发的还是三层转发的。而VLAN  ACL是不能定义方向的,所以所有经过指定VLAN的流都都会被过滤到。

VLAN  ACL根据所调用的ACL匹配到的流量,来做出是转发还是丢弃的动作,当被调用的ACL匹配到流量后,默认动作是转发,可以改为丢弃,而没有被匹配到的流量,默认也全部丢弃。

 

以上三种方式的ACL可以同时使用,但Port ACL优先于任何ACL。

 

说明:

Port ACL支持标准,扩展ACL和MAC ACL,也就是支持所有类型ACL。

接口上可同时应用IP和MAC ACL,而MAC ACL是不能过滤IP流量的。

Router ACL可用在SVI,三层接口,或3层EtherChannel,每个接口每个方向只能使用一个。

在配置IP ACL时,可以使用数字,也可以使用名字,而命名ACL的好处是可以删除单条ACL语句,而数字ACL则不可以,只能删除整条ACL。

交换机上不支持Dynamic ACL和 Reflexive ACL。

VLAN  ACL是不能定义方向的,也就相当于会在两个方向上同时生效,所以在配置VLAN ACL时,所以请注意所写的ACL一定要考虑来回两个方向,否则只匹配到单向的流量,另外一方向可能被丢掉。

一个VLAN  ACL可以用于多个VLAN,但一个VLAN只能使用一个VLAN  ACL。

被ACL拒绝的ICMP,ACL将向源发送ICMP-unreachable。

 

 

配置

 

1.配置MAC ACL

说明:在VLAN或2层接口上过滤非IP流量,3层接口上不能使用MAC ACL。

 

(1)定义MAC ACL:

sw1(config)#mac access-list extended ccie

sw1(config-ext-macl)#deny host 0001.0001.0001 host 0002.0002.0002 netbios

sw1(config-ext-macl)#permit any any

说明:拒绝源MAC为0001.0001.0001发送到MAC为 0002.0002.0002的netbios流量,并允许其它所有,MAC ACL匹配的协议为非IP协议,协议可以不指定。

 

(2)应用MAC ACL

sw1(config)#int f0/1

sw1(config-if)#mac access-group ccie in

说明:在二层接口F0/1上使用,并且只能应用于in方向。因为MAC ACL只能过滤非IP流量,所以难以用实验来验证效果。

                                                                  返回目录

2.配置Port ACL

说明:将任何ACL应用于二层接口,便称为Port ACL。

以下图为例,在SW1上配置Port ACL拒绝R3去往R1的流量,并放行其它所有流量。

 

 

 

(1)测试在没有配置Port ACL之前的网络连通性

r3#ping 10.1.1.1

 

Type escape sequence to abort.

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

!!!!!

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

r3#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/1/4 ms

r3#

说明:在没有配置Port ACL之前,R3到R1与R2的通信正常。

 

(2)在SW1上配置Port ACL(只能用于in方向)

sw1(config)#access-list 100 deny ip host 10.1.1.3 host 10.1.1.1

sw1(config)#access-list 100 permit ip any any

 

sw1(config)#int f0/3

sw1(config-if)#ip access-group 100 in

 

(3)测试配置Port ACL之后的网络连通性

r3#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

r3#

r3#ping 10.1.1.1

 

Type escape sequence to abort.

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

.....

Success rate is 0 percent (0/5)

r3#

说明:可以看到,Port ACL拒绝了R3去往R1的流量,并放行其它流量。

                                                                  返回目录

 

3.配置VLAN ACL(VLAN map)

 

 

 

 

 

 

 

 

说明:以上图为例,所有接口在VLAN1,配置VLAN ACL,设置R4到R1的为默认动作,设置R4到R2的为丢弃动作,其它流量不作设置。

 

(1)测试在没有配置VLAN ACL之前的网络连通性

r4#ping 10.1.1.1

 

Type escape sequence to abort.

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

!!!!!

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

r4#

r4#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/1/4 ms

r4#

r4#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

r4#

说明:在没有配置VLAN ACL之前,所有通信正常。

  

(2)创建各ACL

sw1(config)#access-list 111 permit ip host 10.1.1.4 host 10.1.1.1       

sw1(config)#access-list 111 permit ip host 10.1.1.1 host 10.1.1.4

 

sw1(config)#access-list 112 permit ip host 10.1.1.4 host 10.1.1.2   

sw1(config)#access-list 112 permit ip host 10.1.1.2 host 10.1.1.4

说明:分别匹配R4到R1的流量,R4到R2的流量,因为VLAN ACL没有方向,也就是在两个方向生效,所以请注意所写的ACL一定要考虑来回两个方向,否则只匹配到单向的流量,另外一方向可能被丢掉。

 

(3)配置VLAN ACL

sw1(config)#vlan access-map ccie 10

sw1(config-access-map)#match ip address 111

sw1(config-access-map)#exit

 

sw1(config)#vlan access-map ccie 20

sw1(config-access-map)#match ip address 112

sw1(config-access-map)#action drop

sw1(config-access-map)#exit

 

说明:设置ACL 111的流量为默认动作,ACL 112的流量被明确丢弃,其它不匹配。

 

(4)应用VLAN ACL

sw1(config)#vlan filter ccie vlan-list 1

 

说明:将VLAN ACL应用于VLAN 1,也可以应用于多个VLAN,但不能设置方向。

 

(5)测试配置VLAN ACL之后的网络连通性

r4#ping 10.1.1.1

 

Type escape sequence to abort.

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

!!!!!

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

r4#

r4#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)

r4#

r4#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 0 percent (0/5)

r4#

说明:R4去往R1的流量是默认动作,证明默认动作是允许转发的,而R4去往R2的流量被明确丢弃了,最后其它没有设置的流量,全部是被隐含拒绝的。

                                                                  返回目录

 

Storm Control

 在默认情况下,交换机在接口上收到任何数据包,将尽全力转发,只有在硬件性能不足的情况下,才会丢弃数据包。在某些时候,由于协议错误,配置错误或人为攻击,导致网络流量增大时,将影响网络的性能,在这种情况下,需要在交换机上限制流量占用接口的带宽,则可以使用Storm control来实现。

 Storm control可以在交换机接口上限制broadcast,,multicast,以及unicast的流量带宽,在接口上开启了Storm control后,Storm control便开始监控流量从接口到交换机总线的速度,并统计每秒通过的数据包,将当前流量的速度与预先配置好的阀值作比较,阀值分为上限(rising suppression level))和下限(falling suppression level),当流量的速度达到上限的阀值后,流量就会被block,直到流量低于下限后,才会恢复正常。

在配置阀值时,可以使用以下标准来衡量带宽:

使用接口总带宽的百分比。

每秒通过的数据包个数(PPS-Packets Per Second)。

每秒通过的Bit数 (Bps-Bit Per Second)

注:使用接口带宽百分比时,100 percent表示不限制,0.0表示流量全部丢弃。

 默认情况下,接口上是没有流量限制的。在配置阀值时,上限(rising suppression level))必须配置,而下限(falling suppression level)却可以不配置,在没有配置下限时,下限将采用和上限相同的值。

 当配置了storm-control限制multicast时,如果multicast的流量超过上限,那么所有的multicast流量都会被丢弃,其中包含如OSPF,EIGRP的流量都会被丢弃,但是BPDU,CDP的流量不会被丢弃。

 配置storm-control时,可以在物理接口和EtherChannel上配置,如果是配在EtherChannel上,那么配置将对EtherChannel中的所有物理接口生效。

 在配置storm-control时,可以设置流量达到上限后,采取相应的处理动作,可配置的动作分为Shutdown和Trap,Shutdown是在流量达到上限后,将接口陷入error-disable状态,Trap是在流量达到上限后,产生一条SNMP Trap消息,而默认的动作是丢弃流量而不生产SNMP Trap消息。

 

配置

说明:在配置BPS和PPS作为标准时,可以使用K,M以及G为单位。

1.在交换机接口上配置storm-control

(1)在交换机上开启storm-control,并定义上限和下限:

sw1(config)#int f0/1

sw1(config-if)# storm-control unicast level pps 100 80

说明:定义的上限为PPS 100,下限为PPS 80。

(2)定义流量达到上限后,采限的动作:

sw1(config)#int f0/1

sw1(config-if)#storm-control action trap

说明:定义的违规动作为生产SNMP Trap。

(3)查看接口storm-control状态:

 

正常状态:

sw1#sh storm-control unicast

Interface  Filter State   Upper        Lower        Current

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

Fa0/1      Forwarding        100 pps       80 pps       10 pps

sw1#

说明:接口流量正常的状态,流量都被放行。

被丢的状态:

sw1#sh storm-control unicast

Interface  Filter State   Upper        Lower        Current

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

Fa0/1      Blocking          100 pps       80 pps      273 pps

sw1#

说明:接口流量达到上限的状态,流量都被丢弃。

                                                                  返回目录

 

SPAN and RSPAN

 交换机在收到数据包后,将根据数据包的目标MAC地址来做出转发决定,只有与目标MAC地址对应的接口才能收到数据包,交换机并不会将数据包转发到不相关的接口上。

 当网络管理者需要监控网络中的流量时,装有监控软件的主机接到交换机上之后,并不能像预期那样能够收到所要监控的流量,除非流量是原本就要发送给自己的,或者是广播流量。对于装有监控软件的主机想要从交换机上接收到其它流量,就必须依靠交换机的协助,通过交换机将其它正常流量复制一份发送到接有监控主机的接口即可。

 要让交换机将正常流量复制下来并发送到相关端口,需要靠SPAN(Switched Port Analyzer)来实现。SPAN允许将交换机的任意端口或任意VLAN上的流量复制之后发送到其它任何端口上。

 因为SPAN要将某端口或VLAN的流量复制一份发送到其它端口,所以SPAN需要明确源和目的,SPAN只复制从源收到的流量,然后只发送到目的。

 SPAN可以将某些接口或某些VLAN的流量复制下来,所以SPAN的源可以是物理接口,也可以是VLAN,并且可以定义多个物理接口或多个VLAN。复制的流量可以是接收到的,可以是发送出去的,也可以是双向的,默认为双向流量。而SPAN的目的有时只能是物理接口,有时只能是VLAN,需要视情况而定。

 并不是经过交换机的任何流量都能被SPAN复制,某些流量是不能被复制的,如三层流量需要被交换机路由到源VLAN的流量是不能被复制的,也就是说需要交换机查路由表将流量发送到源VLAN的流量是不能被复制的,但是从源VLAN被路由到外面去的流量还是可以被复制的。

 当物理接口或VLANSPAN定义为源之后,源端口或源VLAN的流量是不会受到任何影响的,但SPAN的目标端口除了接收SPAN的流量外,不能再接收其它任何正常的流量。因此在SPAN的源和目标在同台交换机与不同交换机时,操作是不一样的,当SPAN的源和目的在同台交换机上时,被称为Local SPAN,即SPAN,而当SPAN的源和目的在不同交换机上时,被称为Remote SPAN,即RSPAN

 因为RSPAN是跨越了多台交换机的,而目标端口除了接收SPAN的流量外,不能再接收其它任何正常的流量,所以在为RSPAN定义目标时,不能将目标定义为物理接口,因为连接交换机的物理接口通常还有其它流量传播,所以在实施RSPAN时,必须将SPAN复制的流量通过发送到某个VLAN,然后从Trunk上传到目标交换机,这个VLAN就是RSPAN VLAN,从源到目标的每台交换机都应该配置RSPAN VLAN。

 在配置RSPAN时,只需要在源交换机和目标交换机上配置即可,如果中间还有交换机,中间的交换机只需要配置RSPAN VLAN,而不需要配置其它任何参数。在源交换机上,将SPAN的源定义为物理接口或VLAN,且必须将目的定义为RSPAN VLAN,不能定义为物理接口。在目标交换机上将SPAN的源定义为RSPAN VLAN,并且将目的定义为物理接口,目标交换机从RSPAN VLAN中收到流量后,将转发到目标接口。

 在某些IOS版本中,配置RSPAN时,源交换机在定义目标时,不仅需要将RSPAN VLAN指定为目标,并且还需要指定一个reflector-port端口,系统是将流量发送到reflector-port端口后,再由reflector-port端口发送到RSPAN VLAN,最终发送到目标交换机。而当配置一个接口为reflector-port端口后,这个接口就不能正常使用了。

 

在配置SPAN时,会有以下一些限制条件:

交换机上支持最多两个SPAN会话。

最多可以有64个目标端口,而源端口无上限。

3层接口也可以作为源或目的。

源和目标的速率要一致。

源端口可以是EtherChannel, Fast Ethernet, Gigabit Ethernet以及其它接口

源也可以是access port, trunk port, routed port, voice VLAN port

如果一个目标端口在源VLAN中,则会被源排除在外。

当源端口是trunk时,那就是所有VLAN的流量都被复制,但可以过滤某些VLAN,配置时,

就只有在list中的vlan的流量才会被复制。

当一个接口变成SPAN的目标端口后,所有配置丢失,关闭SPAN后,则配置恢复。

如果目标端口在EtherChannel组中,将从组中消失。

目标不能是安全端口,也不能是源。

目标也不能是EtherChannel group或正常VLAN。

一个目标端口不能成为两个会话的目标。

目标端口不会转发SPAN流量之外的任何流量。

在配置源时,多个源可以一条命令配完,也可以分多条命令配置。

 

 

配置SPAN

 

 

 

 

1.测试网络连通性

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

r2#ping 10.1.1.1

 

Type escape sequence to abort.

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

!!!!!

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

r2#

说明:因为交换机为正常状态,所以R2到R1的通信正常。

 

(2)测试R2到主机 A的网络连通性

r2#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

r2#

说明:因为交换机为正常状态,所以R2到主机 A的通信正常。

 

2.在SW1上配置SPAN

(1)指定接口F0/1为SPAN源

sw1(config)#monitor session 1 source interface f0/1

说明:指定连接R1的接口F0/1为SPAN源接口,并且监控双向流量(默认为双向)。

 

(2)指定接口F0/3为SPAN目的

sw1(config)#monitor session 1 destination interface f0/3

说明:指定连接主机 A的接口F0/3为SPAN目的。

 

3.测试配置SPAN后的网络连通性

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

r2#ping 10.1.1.1

 

Type escape sequence to abort.

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

!!!!!

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

r2#

说明:因为SPAN不影响源接口的通信,所以R2到R1的通信正常。

 

(2)测试R2到主机 A的网络连通性

r2#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 0 percent (0/5)

r2#

说明:因为SPAN的目标端口除了接收SPAN的流量外,不能再接收其它任何正常的流量,所以R2到R1的通信失败。

 

配置RSPAN

 

 

 

 

1.测试网络连通性

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

r2#ping 10.1.1.1

 

Type escape sequence to abort.

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

!!!!!

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

r2#

 

说明:因为交换机为正常状态,所以R2到R1的通信正常。

 

2.交换机上配置RSPAN

(1)在两台交换机上配置RSPAN VLAN 10

SW1:

sw1(config)#vlan 10

sw1(config-vlan)#remote-span

 

SW2:

sw2(config)#vlan 10

sw2(config-vlan)#remote-span

 

说明:VLAN号可任意配置,只需将其定义为RSPAN  VLAN即可。

 

(2)在源交换机上指定RSPAN源

sw1(config)#monitor session 1 source interface f0/1

说明:指定连接R1的接口F0/1为RSPAN源接口,并且监控双向流量(默认为双向)。

 

(3)在源交换机上指定RSPAN目的

sw1(config)#monitor session 1 destination remote vlan 10 reflector-port f0/2

说明:RSPAN的目的只能为RSPAN  VLAN,并且此IOS版本需要指定reflector-port,将连接R2的接口F0/2指定为reflector-port。

 

(4)在目标交换机上指定RSPAN源

sw2(config)#monitor session 1 source remote vlan 10

说明:目标交换机上的RSPAN源只能为RSPAN  VLAN。

 

(5)在目标交换机上指定RSPAN目的

sw2(config)#monitor session 1 destination interface f0/3

说明:目标交换机上的RSPAN目的是物理端口。

 

3.测试配置RSPAN后的网络连通性

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

r2#ping 10.1.1.1

 

Type escape sequence to abort.

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

.....

Success rate is 0 percent (0/5)

r2#

说明:虽然SPAN不影响源接口的通信,但是当配置一个接口为reflector-port端口后,这个接口就不能正常使用了,所以R2到R1的通信失败。

 

4.更多SPAN配置命令

(1)配置过滤Trunk上的VLAN

sw1(config)#monitor session 1 filter vlan 1 - 3 , 5

说明:当将Trunk接口配置为SPAN源时,Trunk上所有的VLAN流量都会被复制,以上配置为只复制Trunk上VLAN 1,VLAN2,VLAN3,VLAN5的流量。

 

                                                                  返回目录

 

 

UDLD (UniDirectional Link Detection)

在交换机没有使用任何模块的接口上,如果接口出现故障,如物理故障,或不能发送数据与接收数据,自己能够快速察觉;而当接口上使用了模块后,如光纤模块,当模块上出现故障后,交换机并不能保证在任何时候都能察觉。当交换机的接口如果自己不能发送或接收数据,而对方却能发送或接收数据时,这可能会引起STP环路,这样的故障被称为单向链路故障,而交换机上的特性UDLD则是用来专门检测此类单向链路故障的。

UDLD使用一层协议来做单向链路检测,开启了UDLD的接口会向外发送Udld hello,可以理解为交换机之间的心跳,收到Udld hello的交换机必须向邻居回复,如果超过一定时间没有回复,那么就认为单向链路故障已经出现,就会采取相应措施。

UDLD的运行分为两种模式:normal (默认) 和aggressive。

Normal模式只能检测光纤上的单向链路故障,而aggressive模式不仅能够检测光纤上的单向链路故障,还能检测双绞线上的单向链路故障。当使用ormal模式时,检测到单向链路故障后,接口没有变化,而使用aggressive模式时,检测到单向链路故障后,接口会被disable。

当交换机一端支持UDLD,而另一端不支持UDLD,这样的链路连在一起,是不能做UDLD检测的,所以在配置UDLD时,必须相连的链路两端都要配置UDLD,并且要配置成相同的模式。

 

 

配置

 

1.配置UDLD

(1)在所有接口上开启UDLD(必须为光纤接口)

sw1(config)#udld enable

sw1(config)#udld aggressive

 

 

(2)查看UDLD:

sw1#show udld

说明:没有光纤口,没有结果。

 

(3)在接口下开启UDLD(接口下的配置将覆盖全局模式下的配置)

sw1(config)#int f0/8

sw1(config-if)#udld port aggressive

(4)查看接口下的UDLD

sw1#show udld f0/8

 

Interface Fa0/8

---

Port enable administrative configuration setting: Enabled / in aggressive mode

Port enable operational state: Enabled / in aggressive mode

Current bidirectional state: Unknown

Current operational state: Link down

Message interval: 7

Time out interval: 5

No neighbor cache information stored

sw1#

说明:可以看到,接口下已经开启UDLD。

2.恢复被UDLD关闭的接口

(1)恢复被UDLD关闭的接口

先Shut再no shut

 

                                                                  返回目录

 

 

Fallback Bridging

 

 

 从上图中的网络环境可以看出,当R1,R2和R3使用IP协议互相通信时,只需要让SW1支持IP路由转发功能即可,方法为在SW1上输入命令ip routing。

 当R1,R2和R3不使用IP协议互相通信时,如使用DECnet.等非IP协议通信时,交换机并不能为其提供VLAN与VLAN之间的数据转发以及VLAN与三层接口之间的数据转发。要让这些在不同VLAN的主机能够以非IP协议通信,交换机必须将这些需要通信的VLAN或三层接口配置到同一个组中即可,这个组就是VLAN bridging,通常称为fallback bridging。

 fallback bridging为交换机上VLAN与VLAN之间以及VLAN与三层接口之间提供数据转发,需要通信的VLAN或三层接口,需要配置到同一个组中。可以看出,既然使用非IP协议进行通信,交换机上无论是VLAN,还是三层接口,都是不需要配置IP地址的。

 

交换机上最多可配置32个fallback bridging组。

一个接口或VLAN只能属于一个组。

fallback bridging除了不能转发IP协议外, Address Resolution Protocol (ARP), reverse ARP (RARP), LOOPBACK, and Frame Relay ARP都可以转发。

 

 

配置

 

 

 

 

1.在交换机上配置fallback bridging
(1)在交换机上开启fallback bridging
sw1(config)#bridge 10 protocol vlan-bridge
说明:创建fallback bridging组,组号为10。
 
(2)将相应接口与VLAN划入fallback bridging组中
sw1(config)#int vlan 10
sw1(config-if)#bridge-group 10
 
sw1(config)#int vlan 20
sw1(config-if)#bridge-group 10
 
sw1(config)#int f0/3
sw1(config-if)#bridge-group 10
 
说明:将VLAN 10,VLAN 20,F0/3划入组10中,VLAN 10,VLAN 20与F0/3可以使用非IP协议进行通信。
2.查看fallback bridging
(1) 查看fallback bridging
sw1#show bridge group  
 
Bridge Group 10 is running the VLAN Bridge compatible Spanning Tree protocol
 
   Port 31 (Vlan10) of bridge group 10 is forwarding
   Port 32 (Vlan20) of bridge group 10 is forwarding
   Port 30 (FastEthernet0/3) of bridge group 10 is forwarding
 
sw1#

说明:VLAN 10,VLAN 20,F0/3已经划入组10中。

 

(2)查看fallback bridging转发状态

sw1#sh bridge

Br Group    Mac Address       State      Type        Ports

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

  10        0013.1a2f.0380    Forward    DYNAMIC     Fa0/3

  10        0013.1a2f.1200    Forward    DYNAMIC     Vl20 Fa0/2

  10        0013.1a85.d160    Forward    DYNAMIC     Vl10 Fa0/1

  10        0013.805c.4b17    Forward    DYNAMIC     Vl10 Fa0/23

sw1#

说明:因为是以太网交换机,即使不使用IP协议,也会有MAC地址,fallback bridging开启后,交换机也需要根据主机的MAC地址做出转发决定,并且可以手工定义哪些MAC被丢弃或被转发。

3.手工定义fallback bridging转发表

(1)定义转发表

sw1(config)#bridge 10 address 0001.0002.0003 discard

sw1(config)#bridge 10 address 0004.0005.0006 forward

说明:定义MAC地址为0001.0002.0003的流量被丢弃,MAC地址为0004.0005.0006的流量被转发。

(2)查看fallback bridging的地址表

sw1#sh bridge

00:11:32: %SYS-5-CONFIG_I: Configured from console by console

Br Group    Mac Address       State      Type        Ports

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

  10        0001.0002.0003    Discard    STATIC      -

  10        0004.0005.0006    Forward    STATIC      -

  10        0013.1a2f.0380    Forward    DYNAMIC     Fa0/3

  10        0013.1a2f.1200    Forward    DYNAMIC     Vl20 Fa0/2

  10        0013.1a85.d160    Forward    DYNAMIC     Vl10 Fa0/1

  10        0013.805c.4b17    Forward    DYNAMIC     Vl10 Fa0/23

sw1#

说明:存在动态学习的,根据交换机MAC地址为准,也有手工静态配置的。

 

                                                                  返回目录

 

 

IEEE 802.1x(DOT1X)Authentication

 

 简单的说,IEEE 802.1x是一种认证技术,是对交换机上的2层接口所连接的主机做认证,当主机接到开启了IEEE 802.1x认证的接口上,就有可能被认证,否则就有可能被拒绝访问网络。在接口上开启IEEE 802.1x认证后,在没有通过认证之前,只有IEEE 802.1x认证消息,CDP,以及STP的数据包能够通过。

 因为主机接到开启了IEEE 802.1x认证的接口后,需要通过认证才能访问网络,要通过认证,只要输入合法的用户名和密码即可。交换机收到用户输入的账户信息后,要判断该账户是否合法,就必须和用户数据库做个较对,如果是数据库中存在的,则认证通过,否则认证失败,最后拒绝该用户访问网络。

 交换机提供给IEEE 802.1x认证的数据库可以是交换机本地的,也可以是远程服务器上的,这需要通过AAA来定义,如果AAA指定认证方式为本地用户数据库(Local),则读取本地的账户信息,如果AAA指定的认证方式为远程服务器,则读取远程服务器的账户信息,AAA为IEEE 802.1x提供的远程服务器认证只能是RADIUS服务器,该RADIUS服务器只要运行Access Control Server Version 3.0(ACS 3.0)或更高版本即可。

 

当开启IEEE 802.1x后,并且连接的主机支持IEEE 802.1x认证时,将得出如下结果:

如果认证通过,交换机将接口放在配置好的VLAN中,并放行主机的流量。

如果认证超时,交换机则将接口放入guest vlan。

如果认证不通过,但是定义了失败VLAN,交换机则将接口放入定义好的失败VLAN中。

如果服务器无响应,定义放行,则放行。

 

注:不支持IEEE 802.1x认证的主机,也会被放到guest vlan中。

 

提示:

当交换机使用IEEE 802.1x对主机进行认证时,如果主机通过了认证,交换机还可以根据主机输入的不同账户而将接口划入不同的VLAN,此方式称为IEEE 802.1x动态VLAN认证技术,并且需要在RADIUS服务器上做更多的设置。本文档并不对IEEE 802.1x动态VLAN认证技术做更多的介绍,如有需要,本文档将补充对IEEE 802.1x动态VLAN认证技术的详细介绍与配置说明。

 

当主机认证失败后,交换机可以让主机多次尝试认证,称为重认证(re-authentication),在交换机上开启re-authentication功能即可,默认是关闭的。并且还可以配置认证时间间隔,默认60秒,默认可以尝试2次重认证。

如果要手工对某接口重认证,在enable模式输入命令dot1x re-authenticate interface

在交换机接口上开启认证后,只要接口从down状态到up状态,就需要再次认证。

dot1x port-control auto接口开认证

对于开启了认证的接口,分为两种状态,unauthorized(未认证的)和authorized(认证过的)。

接口的状态,可以手工强制配置,接口可选的配置状态分以下3种:

 force-authorized:就是强制将接口直接变认证后的状态,即authorized状态。

force-unauthorized:就是强制将接口直接变没有认证的状态,即unauthorized状态。

Auto:就是正常认证状态,主机通过认证,则接口在authorized状态,认证失败,则在unauthorized状态。.

 

注:当交换机接口从up到down,或者主机离开了发送logoff,都将合接口重新变成unauthorized状态。

  

开启了IEEE 802.1x 认证的接口除了有状态之外,还有主机模式,称为Host Mode,分两种模式:single-host和multiple-host。

在single-host模式(默认),表示只有一台主机能连上来。

在multiple-hosts模式,表示可以有多台主机连上来,并且一台主机认证通过后,所有主机都可以访问网络。

 

当认证超时或主机不支持认证时,接口将被划到guest VLAN ,当认证失败时,将被划失败VLAN,也就是受限制的VLAN(restricted VLAN),guest VLAN和restricted VLAN可以定义为同一个VLAN,并且每接配置的。其实即使划入这个VLAN后,也会告诉客户是认证通过,要不然会得不到DHCP。

 

注:

IEEE 802.1x认证只能配置在静态access模式的接口上。

正常工作在IEEE 802.1x的接口被称为port access entity (PAE) authenticator。

在认证超时或主机不支持认证时,才会将接口划入guest-vlan,在IOS 12.2(25)SE之前,是不会将支持认证但认证失败的接口划入guest-vlan的,如果要开启guest-vlan supplicant功能,要全局配置dot1x guest-vlan supplicant。

 

 

配置

 

1.定义认证方式

(1)定义IEEE 802.1x使用本地账户数据库认证

sw1(config)#aaa new-model

sw1(config)#aaa authentication dot1x default local

(2)定义IEEE 802.1x使用RADIUS服务器认证

sw1(config)#aaa new-model

sw1(config)#aaa authentication dot1x default group radius

(3)定义RADIUS服务器

sw1(config)#radius-server host 10.1.1.1 auth-port 1645 acct-port 1646 key cisco

说明:定义RADIUS服务器地址为10.1.1.1,密码为cisco,认证端口UDP 1645,默认为1812,accounting端口为1646,默认为1813.。

2.开启IEEE 802.1x认证

(1)全局开启IEEE 802.1x认证

sw1(config)#dot1x system-auth-control

说明:必须在全局开启IEEE 802.1x认证。

(2)在接口下开启IEEE 802.1x认证

说明:接口模式必须为静态access

sw1(config)#int f0/1

sw1(config-if)#swi

sw1(config-if)#switchport mo

sw1(config-if)#switchport mode acce

sw1(config-if)#switchport mode access

sw1(config-if)#dot1x port-control auto

说明:将接口设置为auto状态,即正常认证状态。

 

(3)定义guest VLAN和restricted VLAN

sw1(config)#vlan 10

sw1(config-vlan)#exit

 

sw1(config)#vlan 20

sw1(config-vlan)#exit

sw1(config)#int f0/1

sw1(config-if)#dot1x guest-vlan 10

sw1(config-if)#dot1x auth-fail vlan 20

说明:先在交换机上配置好VLAN,然后定义guest-vlan和restricted VLAN(auth-fail vlan),两个VLAN可以设置为同一个。

3.查看配置

(1)查看接口配置信息

sw1#sh run int f0/1

Building configuration...

 

Current configuration : 153 bytes

!

interface FastEthernet0/1

 switchport mode access

 dot1x pae authenticator

 dot1x port-control auto

 dot1x guest-vlan 10

 dot1x auth-fail vlan 20

end

 

sw1#

说明:可以看到,将接口配置为IEEE 802.1x后,接口自动设置为dot1x pae authenticator。

(2)查看接口IEEE 802.1x状态

sw1#sh dot1x interface f0/1

Dot1x Info for FastEthernet0/1

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

PAE                       = AUTHENTICATOR

PortControl               = AUTO

ControlDirection          = Both

HostMode                  = SINGLE_HOST

ReAuthentication          = Disabled

QuietPeriod               = 60

ServerTimeout             = 30

SuppTimeout               = 30

ReAuthPeriod              = 3600 (Locally configured)

ReAuthMax                 = 2

MaxReq                    = 2

TxPeriod                  = 30

RateLimitPeriod           = 0

Auth-Fail-Vlan            = 20

Auth-Fail-Max-attempts    = 3

Guest-Vlan                = 10

 

sw1#

说明:以上是IEEE 802.1x的默认参数。

4.设置其它IEEE 802.1x参数

(1)开启重认证功能(默认关闭)

sw1(config)#int f0/1

sw1(config-if)#dot1x reauthentication、

(2)重认证次数(默认2次)

sw1(config)#int f0/1

sw1(config-if)#dot1x max-reauth-req 3

(3)在划到限制VLAN之前,可以尝试几次输入(默认是3次)

sw1(config)#int f0/1

sw1(config-if)#dot1x auth-fail max-attempts 2

(4)设置主机模式(默认Single-host)

sw1(config)#int f0/1

sw1(config-if)#dot1x host-mode multi-host

(5)查看配置

sw1#sh dot1x interface f0/1

Dot1x Info for FastEthernet0/1

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

PAE                       = AUTHENTICATOR

PortControl               = AUTO

ControlDirection          = Both

HostMode                  = MULTI_HOST

ReAuthentication          = Enabled

QuietPeriod               = 60

ServerTimeout             = 30

SuppTimeout               = 30

ReAuthPeriod              = 3600 (Locally configured)

ReAuthMax                 = 3

MaxReq                    = 2

TxPeriod                  = 30

RateLimitPeriod           = 0

Auth-Fail-Vlan            = 20

Auth-Fail-Max-attempts    = 2

Guest-Vlan                = 10

 

sw1#

说明:以上的配置已经显示。

5.强制接口为authorized状态

(1)直接将接口F0/2配置为authorized状态

sw1(config)#int f0/2

sw1(config-if)#switchport mode access

sw1(config-if)#dot1x port-control force-authorized

(2)查看接口F0/2的配置

sw1#sh run int f0/2

Building configuration...

 

Current configuration : 82 bytes

!

interface FastEthernet0/2

 switchport mode access

 dot1x pae authenticator

end

 

sw1#

说明:可以看到,接口只有dot1x pae authenticator,没有auto字样

(3)查看接口F0/2的状态

sw1#sh dot1x interface f0/2

Dot1x Info for FastEthernet0/2

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

PAE                       = AUTHENTICATOR

PortControl               = FORCE_AUTHORIZED

ControlDirection          = Both

HostMode                  = SINGLE_HOST

ReAuthentication          = Disabled

QuietPeriod               = 60

ServerTimeout             = 30

SuppTimeout               = 30

ReAuthPeriod              = 3600 (Locally configured)

ReAuthMax                 = 2

MaxReq                    = 2

TxPeriod                  = 30

RateLimitPeriod           = 0

 

sw1#

说明:接口已经为authorized状态。

(4)直接将接口F0/3配置为authorized状态

sw1(config)#int f0/3

sw1(config-if)#switchport mode access

sw1(config-if)#dot1x pae authenticator

说明:命令dot1x pae authenticator也将接口直接设置为authorized状态。

(5)查看接口F0/3的配置

sw1#sh run int f0/3

Building configuration...

 

Current configuration : 82 bytes

!

interface FastEthernet0/3

 switchport mode access

 dot1x pae authenticator

end

 

sw1#

说明:可以看到,命令dot1x pae authenticator等同命令dot1x port-control force-authorized。

(6)查看接口F0/2的状态

sw1#sh dot1x interface f0/3

Dot1x Info for FastEthernet0/3

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

PAE                       = AUTHENTICATOR

PortControl               = FORCE_AUTHORIZED

ControlDirection          = Both

HostMode                  = SINGLE_HOST

ReAuthentication          = Disabled

QuietPeriod               = 60

ServerTimeout             = 30

SuppTimeout               = 30

ReAuthPeriod              = 3600 (Locally configured)

ReAuthMax                 = 2

MaxReq                    = 2

TxPeriod                  = 30

RateLimitPeriod           = 0

 

sw1#

说明:接口已经为authorized状态。

 

6.guest-vlan supplicant

说明:在认证超时或主机不支持认证时,才会将接口划入guest-vlan,在IOS 12.2(25)SE之前,是不会将支持认证但认证失败的接口划入guest-vlan的,如果要开启guest-vlan supplicant功能,做如下配置:

sw1(config)#dot1x guest-vlan supplicant

说明:某些IOS版本,此命令是隐藏命令,需要手工全部输入。

 

7.主机设置网卡IEEE 802.1x认证

说明:下面以XP操作系统的主机说明如何开启网卡的IEEE 802.1x认证

(1)点击本地连接的“属性”,出现如下窗口:

 

 

 

说明:勾选“启用此网络的IEEE 802.1x验证”,并选择EAP类型为“受保护的 EAP (PEAP)”,然后点“属性”,出现如下窗口:

 

 

 

说明:请不要勾选“验证服务器证书”,选择验证方法为“安全密码 (EAP-MSCHAP v2)”,然后点击“配置”,出现如下窗口:

 

说明:请不要勾选“自动使用Windows 登录名和密码(以及域,如果有的话)”。

 

(2)当将此网卡连上开启IEEE 802.1x认证的交换机端口后,如出现如下提示:

说明:点击对话框,会弹出输入用户名和密码的窗口,如下图:

 

 

 

说明:只要在此对话框中输入正确的用户名和密码,即可通过IEEE 802.1x认证。

                                                                  返回目录

 

 

交换机故障恢复管理

 

交换机密码恢复

 

通常情况下,可以为交换机设置enable密码来提供安全,在没有enable密码的情况下,无法对交换机修改任何配置,因此,在忘记enable密码的时候,就意味着无法改动交换机信息。但是,如果能够物理上接触到交换机,便可以通过某些方法来清除已经配置的enable密码,甚至是交换机的所有配置。

Cisco交换机有个叫做nvram:的存储器,类似于PC机的硬盘,断电后数据不会丢失,交换机的配置都会存放在nvram:里面,配置文件名为startup-config,只要配置保存过,nvram:里面都会出现startup-config这个文件,每当交换机启动时,都会读取nvram:里面的startup-config文件,如果有密码,我们就无法进入enable模式,在这里需要提示,在cisco低型号的交换机中,如3750以下(包括3750), nvram:里面的startup-config文件会同时在flash:存储器里再生成一份名为config.text的文件,要注意的是这两个文件属同一文件,删除任何一个,两个同时丢失;在高型号的交换机中,如4500系列以上(包括45系列),只有nvram:,并没有名为flash:的这个存储器,所以就没有config.text这个文件,与flash:存储器相对应的存储器叫做bootflash:,在这里面除了IOS文件,没有别的。

 所以我们在交换机有enable密码的情况下,要清除密码,只需要让交换机不读取nvram:中的startup-config即可,由于上述原因,需要分两种情况来进行操作。

 

 

操作步骤:

 

第一种情况(3750以下系列)

(1)通常在交换机前面板(正视有端口的一面)左侧,有一个名为“mode”的按钮,用手按住此按钮不放,然后拔掉交换机电源线,过5秒钟再次插回该电源线,如果是3550,这时会看到交换机所有端口都会亮,等到交换机第一个端口熄灭后,则把按按钮的手放开;如果是3560,则端口灯不会亮,但左侧面板的灯会闪烁,等到第一个灯变为绿色不闪时,放开按按钮的手,(其它型号交换机类同),这时会看到登陆交换机的界面如下

switch:

 

(2)接下来我们要改掉nvram:里面的startup-config文件,让交换机找不到此配置文件,便认为没有密码,但我们只须改flash:下的config.text即可。

switch: flash_init    (初始化flash文件系统)

switch: load_helper  (装载并初始化辅助映像ROM中的最小IOS映像)

switch: dir flash:     (显示flash文件内的文件和目录)

switch: rename flash:config.text flash:config.old  (修改配置文件名,以便跳过密码)

switch: boot        (重启)

(3)这时我们不需要密码便可顺利进入交换机enable模式,但此时交换机并未装载任何配置,此时我们在enable模式便可把配置文件名改回config.text:

Swith#rename flash:config.old flash:config.text

 

然后再将配置导入内存正常运行

Switch#copy startup-config running-config

 

最后再改掉之前忘记的enable密码即可,并且之前的配置也没有丢失。

Switch(config)#no enable secret

 

第二种情况(4500以上系列)

(1)将交换机的电源直接拔掉,并反复按 ctrl   C  两个组合键,直到出现

rommon 1 >

模式为止。

(2)输入confreg:

rommon 1 > confreg

(3)照以下情况选择

Configuration Summary :

=> load ROM after netboot fails

=> console baud: 9600

=> autoboot from: commands specified in 'BOOT' environment variable

do you wish to change the configuration? y/n [n]: y  (重要)

enable "diagnostic mode"? y/n [n]: n

enable "use net in IP bcast address"? y/n [n]: n

disable "load ROM after netboot fails"? y/n [n]: n

enable "use all zero broadcast"? y/n [n]: n

enable "break/abort has effect"? y/n [n]: n

enable "ignore system config info"? y/n [n]: y      (重要)

change console baud rate? y/n [n]: n

change the boot characteristics? y/n [n]: n

Configuration Summary :

=> load ROM after netboot fails

=> ignore system config info

=> console baud: 9600

=> autoboot from: commands specified in 'BOOT' environment variable

do you wish to save this configuration? y/n [n]: y     (重要)

You must reset or power cycle for new configuration to take effect

rommon 2 > reset                             (最后重启)

 

(4)此时可不需要密码便能进入交换机enable模式,但交换机此时也是按默认的引导方式从CF卡中启动系统,如果没有CF卡,那么再次重启交换机,将会再进入rommon 1>这个模式,所以必须现在将交换机引导模式改为bootflash:中的IOS启动,

如果bootflash:中只有一个IOS,则输入:

Switch(config)#boot system bootflash:

如果bootflash:中有两个文件名分别为a.bin和b.bin的IOS,如想从a.bin引导,则输入:

Switch(config)#boot system bootflash:a.bin

(5)最后保存所有改动信息:

Switch#write

                                                                  返回目录

 

 

交换机密码恢复管理

 

 即使是一个规模较大的公司,可能需要的路由器设备是少数的,可以将路由器放在机房的机柜里,锁上机房门和机柜门,一般人是碰不到路由器设备的。但是如果由于公司人数众多,或者由于场地的原因,或者再由于别的原因,如双绞线的有效传输范围为100米,也就表示主机离交换机的距离不能超过100米,在这些情况下,可能需要将交换机放置在离员工近距离的地方,有时选择直接放在员工办公的Office房间里。因为我们知道,当交换机放置在一个能让人物理接触到的位置时,就可以通过绕过密码的方式对交换机进行配置修改,比如网络管理员在交换机上对网络做过某些访问限制,或者QOS带宽限制,那么就有人会尝试着接触交换机修改其中的配置,这对于网络管理员来说,是不容易发现的。

因为无论是路由器还是交换机,都可以通过物理接触来绕过密码,从而修改配置信息,而由于交换机的特殊性,所以交换机系统集成了一个特殊的功能,就是可以开启或关闭对交换机密码恢复功能,如果此功能打开,则可以通过物理接触来绕过密码,如果关闭,则交换机的全部配置信息会自动全部删除,在因为交换机被别人误动而造成配置全部丢失,作为网络管理员,是有足够的理由发现的。

 

配置管理密码恢复

 

1.查看当前的密码恢复功能

(1)查看默认的交换机密码恢复功能

Switch#sh version

Cisco IOS Software, C3560 Software (C3560-ADVIPSERVICESK9-M), Version 12.2(35)SE1, RELEASE SOFTWARE (fc1)

Copyright (c) 1986-2006 by Cisco Systems, Inc.

Compiled Tue 19-Dec-06 10:54 by antonino

Image text-base: 0x00003000, data-base: 0x01362CA0

(输出被省略)

cisco WS-C3560-24TS (PowerPC405) processor (revision D0) with 122880K/8184K bytes of memory.

Processor board ID CAT1047RJNU

Last reset from power-on

1 Virtual Ethernet interface

24 FastEthernet interfaces

2 Gigabit Ethernet interfaces

The password-recovery mechanism is disabled.

(输出被省略)

 

Switch#

说明:可以看到,3560默认的密码恢复功能是关闭的,此特性会因为交换机型号的不同,默认会有所不同,如3550是默认打开的。

 

2.测试关闭了密码恢复功能的效果

(1)为交换机配置enable密码

Switch(config)#enable secret cisco

 

(2)保存配置

Switch#wr

Building configuration...

[OK]

Switch#

 

(3)通过物理接触来做密码恢复

说明:密码恢复方法,请参见上一节

 

在做密码恢复时,交换机会出现以下提示:

Switch#

Base ethernet MAC Address: 00:1a:6c:6f:fb:00

Xmodem file system is available.

The password-recovery mechanism is disabled.

Initializing Flash...

flashfs[0]: 30 files, 3 directories

flashfs[0]: 0 orphaned files, 0 orphaned directories

flashfs[0]: Total bytes: 32514048

flashfs[0]: Bytes used: 11811840

flashfs[0]: Bytes available: 20702208

flashfs[0]: flashfs fsck took 13 seconds.

...done Initializing Flash.

Boot Sector Filesystem (bs) installed, fsid: 3

done.

 

 

The password-recovery mechanism has been triggered, but

is currently disabled.  Access to the boot loader prompt

through the password-recovery mechanism is disallowed at

this point.  However, if you agree to let the system be

reset back to the default system configuration, access

to the boot loader prompt can still be allowed.

 

Would you like to reset the system back to the default configuration (y/n)?

 

说明:提示信息说明交换机的密码恢复功能已被关闭,并给出提问,如果回答n,则等于什么都没有做,交换机将做正常启动,如下:

Would you like to reset the system back to the default configuration (y/n)?n

 

Boot process continuing...

Loading "flash:c3560-advipservicesk9-mz.122-35.SE1.bin"...@@@@@@@

 

(4)回答y

说明:如果上一问中回答y,则像上述所说一样,配置将被全部清除,以下是回答y后,进行配置密码恢复的结果:

 

Would you like to reset the system back to the default configuration (y/n)?y

 

 

The system has been interrupted, and the config file

has been deleted.  The following command will finish

loading the operating system software:

 

    boot

 

 

switch:

 

switch: flash_init

Initializing Flash...

...The flash is already initialized.

Setting console baud rate to 9600...

 

switch: load_helper

 

switch: dir flash:

Directory of flash:/

 

2    -rwx  8450865   <date>               c3560-advipservicesk9-mz.122-35.SE1.bin

3    drwx  832       <date>               crashinfo_ext

26   -rwx  24        <date>               private-config.text

7    drwx  832       <date>               crashinfo

 

20706304 bytes available (11807744 bytes used)

 

switch:

说明:可以看到,回答y,交换机已经自动删除配置,而进入之后会发现flash:中根本就已经没有了config.text这个文件。被人误清除了配置的交换机,管理员是应该有责任发现的。

                                                                  返回目录

 

 

注:本人能力有限,如遇不足之处,还请指正!

China-CCIE  QQ交流群:676621441   点击与作者QQ交谈