Switching

更新时间:2024-03-17 19:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

接口

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

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

接口宏(macro)定义

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

Switch#sh run | b inter Switch#sh run int f0/1

管理交换机接口错误

show interface status [err-disable]

Switch(config)#[no] errdisable detect cause … Switch(config)#errdisable recovery cause… Switch(config)#errdisable recovery interval *

show errdisable recovery SW1#show errdisable ?

detect Error disable detection

flap-values Flap values for error disable detection recovery Error disable recovery

交换机MAC地址表

一个接口可以对应多个MAC地址,一个MAC地址只能出现在一个接口上。 Switch#show mac-address-table [dynamic …] [interface f0/1] Switch#show mac-address-table count

Switch#show mac-address-table aging-time SW1#sho mac-address-table ?

address mac address name

aging-time Show address aging time

count Show address count

dynamic Show 802.1d dynamic addresses interface interface name

multicast Show multicast addresses for selected wildcard secure Show secure addresses self Show system self addresses static Show static addresses vlan vlan name

| Output modifiers

Switch#clear mac-address-table 可清除静态条目 Switch#clear mac-address-table dynamic

手工静态指定MAC地址

Switch(config)#mac-address-table static 0013.1a2f.0680 interface f0/2 vlan 1 静态条目不会过期(动态300s过期),保存在配置文件中,移除no …

SW1(config)#mac-address-table ?

aging-time Set MAC address table entry maximum age dynamic Configure a dynamic 802.1d address secure Configure a secure address

static Configure a static 802.1d static address

默认的MAC地址老化时间为300秒(5分钟)。

(如果交换机接口上直连的主机线拔掉,mac表中针对该接口的条目立即消失,不会等300s。) Switch(config)#mac-address-table aging-time 60 [vlan 1] 查看MAC地址的老化时间

Switch#sh mac-address-table aging-time

指定丢弃某个MAC地址

Switch(config)#mac-address-table static 0013.1a2f.0680 vlan 2 drop ??实验做不了

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

交换机自身MAC地址

2层交换机的VLAN 1为管理VLAN,一个表示整台交换机的MAC地址通常就是VLAN 1的MAC地址,但这种情况又需要根据交换机型号而定,并不适用于任何型号的交换机。 某些型号的交换机,所有VLAN的SVI接口MAC地址全部相同,但某些型号却是不同的,但是连续的。

但无论什么型号的交换机,物理接口的MAC地址一定是不同的。

查看表示整台交换机的MAC地址 Switch#sh version可见

所有接口的bia(烧录)MAC: Switch#show int | include bia

查看SVI接口的MAC地址 Show int vlan1 / show int f0/1

VLAN&SVI

创建VLAN

前提:交换机处于VTP服务器或透明模式。 vlan.dat中保存VLAN数据库和VTP修订值。 1) Switch(config)#vlan * name **

2) Switch#vlan database

vlan * [name **]

移除VLAN no …

VLAN Ranges 0,4095 系统使用 1 2-1001

默认 可配置

1002-1005 保留

1006-4094 扩展VLAN(交换机型号支持(3550及以上);VTP透明模式) Trunk的ISL封装只支持1024个VLAN(10bit来表示VLAN号) Trunk的802.1Q有12bit来表示VLAN号,4096个。

将接口分配给VLAN int f1/0 switchport mode access switchport access vlan 2

默认配置完后30s才能通,STP原因。

验证

show vlan-switch [brief]

show interface f0/1 switchport

将某个VLAN配置为3层接口,称为SVI(switch virtual interface)接口,将VLAN配置为3层接口的作用在于为VLAN内的流量与外部流量提供3层路由转发功能。

要将SVI接口激活并且变成UP状态,必须将一个活动的物理接口划入该VLAN。

另外注意的是,一个Trunk接口允许某个VLAN通过,就表示该Trunk接口属于该VLAN,也就是说某个VLAN被一个活动的Trunk接口允许通过时,那么就说明该VLAN中存在活动的物理接口。

Show int trunk查看允许的vlan Show vlan-switch查看vlan

Switch(config)#int vlan 2

Switch(config-if)#ip add 2.2.2.2 255.255.255.0

查看SVI接口状态:

Switch#sh protocols vlan 2 / sh protocols f0/1

SVI接口up:

1、vlan中有活动的物理接口; 2、活动的Trunk且允许此vlan通过。

建立一个vlan后(vlan 2),在show ip int brief中不会出现,但是int vlan 2进入此SVI接口后,在show ip int brief中出现。(即使没配vlan,int vlan *也能进入) show int vlan 2 show ip int brief show protocols vlan 2 才显示vlan2的信息。

vlan中有活动的物理接口: Switch(config)#int f0/1

Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 2

活动的Trunk允许此vlan通过: Switch(config)#int f0/23

Switch(config-if)#switchport trunk encapsulation dot1q Switch(config-if)#switchport mode trunk

Switch(config-if)#switchport trunk [allowed/encapsulation/native]

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

(Command rejected: Bad VLAN allowed list. You have to include all default vlans, e.g. 1-2,1002-1005)

Switch(config-if)#switchport trunk allowed vlan 1-3,1002-1005 要包含default vlans,中间逗号不用空格。

交换机IP地址和默认网关(远程管理第2层交换机): Switch(config)#int vlan 1

ip add ip-address subnet_mask exit

Switch(config)#ip default-gateway ip-address

Trunk

CDP/VTP/DTP/PAgP/UDLD的目标MAC地址01:00:0C:CC:CC:CC

进入Trunk的数据包被打上标记,写上相应的VLAN号,当传输到对端时,则被去掉标记,并且根据VLAN号将数据包转发到相应的VLAN中。 在access接口上的数据包,是没有VLAN号标记的,并且也不允许VLAN标记,如果一个access接口收到一个带有VLAN标记的数据包,是要将数据包丢弃的。

ISL收到一个没有标记的数据帧,直接丢弃。最多只支持1000个VLAN。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才有转发。

原始以太网帧类型字段:0x8100(802.1Q Virtual LAN),tag字段里类型:0x0800。 TAG: 类型 2B

优先级 3bit

令牌环封装

1bit

VLAN ID

12bit

0x8100

例1:

R1与R3能通信!!(R1与R3在不同vlan,但是是同一子网!)

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

当一台交换机上的VLAN与另外一台交换机的相同VLAN通信时,如果中间还有交换机,当中间交换机上没有配置一个相同VLAN时,并且无论Trunk是否允许该VLAN通过,两边的交换机流量无法通过此VLAN进行通信。 Show int trunk可见允许且活动的vlan通过。

此时查show int trunk,允许1-1005,但是有个允许且活动的vlan项(Vlans allowed and active in management domain)。SW3的show int trunk里只会allowed交换机本身有的VLAN。

例3:

show int f0/1 switcport

交换机接口有默认封装和默认trunk模式,有可能2台交换机连接起来,自动通过DTP协商起TRUNK。

DTP (Dynamic Trunking Protocol)

30s,show dtp int f0/1

DTP能够在需要将交换机接口配置为Trunk模式时,自动将接口配置为Trunk,并自动选择Trunk封装协议,默认ISL优先。

DTP采用协商的方式来决定是否将接口配置为Trunk。

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

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

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

以上三种接口模式都会产生DTP信息,ON和desirable是主动产生DTP信息,而auto是被动生产DTP信息。

如果手工将接口配置成Trunk模式后,可以关闭DTP信息以节省资源,关闭DTP的模式为sw1(config-if)#switchport nonegotiate

Access模式不是DTP的一部分。

开启DTP协商的双方都必须在相同的VTP域内。否则DTP协商会失败,如果为协商模式话,最终双方的工作模式为access模式。

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

接口配置模式与最终工作模式对照表如下: Port1 administrator mode trunk trunk trunk trunk access access

access

dynamic desirable dynamic desirable dynamic auto

Port2 administrator mode trunk

dynamic desirable dynamic auto access

access

dynamic desirable dynamic auto dynamic desirable dynamic auto dynamic auto

Port1&2 working mode trunk trunk trunk fault access access access trunk trunk access

sw1#sh int f0/23 switchport

如果配置一端为trunk,但关闭DTP,另一端dynamic desirable,结果造成Operational Mode一边是trunk,一边是access,这样会不会造成fault?还是能通信??? 做不了实验

*Mar 1 00:03:12.675: %DTP-5-TRUNKPORTON: Port Fa0/0 has become dot1q trunk

如果一段配置trunk,一段配置access:

*Mar 1 00:06:40.047: %DTP-5-NONTRUNKPORTON: Port Fa0/0 has become non-trunk(只会一边显示)

*Mar 1 00:06:40.491: %SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk FastEthernet0/0 VLAN1.

*Mar 1 00:06:40.491: %SPANTREE-7-BLOCK_PORT_TYPE: Blocking FastEthernet0/0 on VLAN1. Inconsistent port type.PVST+: restarted the forward delay timer for FastEthernet0/0 (BROKEN状态是自动恢复。)

SW2#sho spanning-tree vlan 1 brief

Interface Designated

Name Port ID Prio Cost Sts Cost Bridge ID Port ID -------------------- ------- ---- ----- --- ----- -------------------- -------

FastEthernet0/0 128.1 128 19 BKN 0 32768 cc01.0d58.0000 128.1 FastEthernet0/1 128.2 128 19 FWD 0 32768 cc01.0d58.0000 128.2

SW2#sho errdisable detect

ErrDisable Reason Detection status ----------------- ---------------- udld Enabled bpduguard Enabled rootguard Enabled pagp-flap Enabled dtp-flap Enabled link-flap Enabled

Trunk配置

SW1(config-if)#switchport ?

access Set access mode characteristics of the interface mode Set trunking mode of the interface priority Set 802.1p priorities

trunk Set trunking characteristics of the interface

voice Voice appliance attributes

SW1(config-if)#switchport trunk ?

allowed Set allowed VLAN characteristics when interface is in trunking mode

encapsulation Set trunking encapsulation when interface is in trunking mode native Set trunking native characteristics when interface is in trunking mode

配置封装

SW1(config-if)#switchport trunk encapsulation dot1q 配置模式

SW1(config-if)#switchport mode trunk

sw1(config-if)#switchport trunk native vlan *

CDP中包含native VLAN信息,show cdp neighbor details显示。 两端要一致。

SW1(config-if)#switchport trunk allowed vlan ?

WORD VLAN IDs of the allowed VLANs when this port is in trunking mode add add VLANs to the current list all all VLANs

except all VLANs except the following remove remove VLANs from the current list 可减少STP实例。

验证:

1) 查看物理层、链路层up

show int f0/1 show ip int brief show int status [errdiable]

2) 查看端口与vlan的状态(配置为trunk的端口不显示) show vlan-switch

是否在同一VLAN才能通信。

3) 查看端口配置属性(trunk两端都需配置) show int f0/1 switchport

4) 查看trunk情况(两端都要验证) show int trunk

5) 查看端口关联的MAC情况 show mac-address-table

VLAN和中继通信问题: 通信主机是否在同一子网; 通信主机是否在同一VLAN;

路径连通性;(检查VLAN数据流路径)

影响中继链路的问题: 两端配置;

同一VTP域;(仅当两台交换机属于同一VTP域,或其中至少一台交换机没定义VTP域,才能协商它们之间的中继链路。如在不同VTP域,可设置非协商模式,强行建立) 中继封装; 中继模式; 本征VLAN;(两端一致) 允许的VLAN。

sw1(config-if)#switchport nonegotiate 1) 两端都为trunk模式;

2) 交换机通过中继连接到非中继路由器或防火墙接口。

VTP(VLAN Trunking Protocol)

300s(5min)发一次汇总通告,或是在VLAN数据库有变化的时候立刻发送。Cisco专有。

VTP信息是通过所有的中继链路传输。目的MAC是0100.0ccc.cccc。

VTP的数据帧以SNAP(LLC代码为AAAA)的格式传输,SNAP数据类型为2003。

802.1Q帧使用以太类型代码0x8100。

Catalyst2900XL/2500G在client模式将VLAN信息存在交换机NVRAM。 3560、4000、5000、65000在client模式不保存VLAN数据库。

而对于在多台交换机上做相同的VLAN配置,则通过VTP来实现。

交换机上必须配置Trunk,IEEE 802.1Q和ISL都支持。

如果自己的域名为空,则表示与任何非空域名相同,也就是说如果对方有域名,而自己却没有域名,则自己和对方属于相同的域。

Server与Client的唯一区别在于,Server可以随意修改自己的VLAN信息和VTP参数,而Client则不能,除此之外,其它完全相同。(Client也可以将自己的VLAN信息向网络中发送) Server与Transparent的区别在于, Transparent不会将自己的VLAN信息发送到网络中,并且也不会向别人同步自己的VLAN数据库。

如果希望从网络中接收VLAN信息来同步自己的VLAN数据库,配置成Server与Client都可以实现。

要将自己的VLAN信息发送到网络中,Server与Client也都能实现。

如果要具有修改VLAN数据库的权限,只有Server与Transparent能做到,Client是不能自己更改VLAN数据库的。

Server与Client发出的VLAN信息,都有一个configuration revision号码,configuration revision号越高(数字越大),则说明VLAN信息越新。如果configuration revision号比自己的小或者相等,则放弃同步。

默认情况下,交换机的域名为空,无论是Server还是Client,在空域名的情况下,是不会将自己的VLAN信息往外发的;

在域名为空的情况下,无论收到任何VLAN信息,就会同步自己的VLAN数据库,并且添加上相同的域名。

域名在配置之后,只能更改,但不能删除。

在谈及VTP,不得不详细解释VLAN,交换机所支持的VLAN数为1-4094: VLAN 1-1005称为Normal VLAN,保存在VLAN数据库中(vlan.dat);

VLAN 1006 – 4094称为Extended VLAN,保存在startup-config中,只能在VTP模式为

Transparent时才能配置。

VTP只能将NormalVLAN(1-1005)在网络中更新。

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

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

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

当VTP模式为Transparent时,所有VLAN信息和VTP信息除了保存在vlan.dat中之外,还会保存在nvram存储器的startup-config中。(复制其startup-config可得所有vlan信息。) 当VTP模式为Server和Client时,所有VLAN信息和VTP信息只保存在vlan.dat。 另一说法client模式不保存VLAN信息???

要删除VLAN及VTP信息,要删除vlan.dat文件。

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

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

配置

sw1(config)#vtp domain **

配置(修改)域名后,修订号为0 仅透明模式创建扩展VLAN

sw1(config)#vtp mode server | client | transparent sw1(config)#vtp password ***

sw1(config)#vtp pruning 仅Server模式,仅当接收端交换机有位于VLAN中的端口时,才通过中继转发VLAN中的广播和未知单播。(默认VLAN2-1001都将受制于修剪)

验证

show vtp status show vtp counters show vtp password show int f0/0 pruning

VTP问题

Trunk上传播; 域;

VTP模式; 配置修订号; 密码。

域名都为空时,不会交换VLAN信息;

域名为空的交换机总是被有域名的交换机同步(即使为空的交换机修订号高);

不管是server模式还是client模式,总是被配置修订号高的交换机同步(如果有client模式且配置号高的交换机接入网络,将破坏整个域); 如果一台中间交换机(SW2)的域名或密码不同,不会转发通告(另一说法是,ver2透明模式充当VTP中继器);SW1——SW2——SW3 改修订号为0(改为透明模式,此模式修订号0不变;改域名)

VTP Pruning

(不影响PVST+,只修剪数据流传输)

VTP Pruning限制交换机只将广播和未知单播发送到连接了终端的交换机。

在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。

sw1(config)#vtp pruning sw4#sh vtp status

VTP域中,只要在一台上开启VTP Pruning 与 VTP Ver 2,其它交换机全部开启。

但只有Server和Transparent才能更改VTP版本,而Transparent是不支持VTP Pruning的,所以只有Server模式才支持VTP Pruning。

更改Pruning VLAN

说明:默认剪除VLAN 2-1001,但可随意更改 在SW1的Trunk上更改Pruning VLAN

sw1(config)#int f0/21

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

SW3#sho int trunk

Port Mode Encapsulation Status Native vlan Fa0/2 on 802.1q trunking 1

Port Vlans allowed on trunk Fa0/2 1-1005

Port Vlans allowed and active in management domain Fa0/2 1-4

默认2-1001受制于pruning,将vlan10移除pruning。

Port Vlans in spanning tree forwarding state and not pruned Fa0/2 1,3

对端sw中vlan3有主机才会在此显示。如果没有默认就只有vlan1。

sw1#dir flash: sw1#dir nvram:

共享文件系统 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在网络中共享。

复制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:

Transparent模式下,VLAN信息不仅保存在vlan.dat中,还保存在startup-config中,并且VTP也成功保存在startup-config中。复制其stratup-config可得所有vlan信息。

如果是复制vlan.dat或config.text要重启才会更新信息。如果是复制stratup-config,copy flash:startup-config running-config即可。

Transparent会将所有VLAN,如VLAN 1006-4094存放在startup-config中,即使删了vlan.dat,所有内容还存在。 sw1#erase nvram:

只删startup-config(config.text会同时删除),VTP信息和VLAN 1-1005存放在vlan.dat中,所以VTP信息和VLAN 1-1005仍旧存在。

STP(Spanning-Tree Protocol)

交换机之间有多条链路时防环。(防止出现二层环路)

第2层环路带来的问题: 多个帧的副本; 广播风暴; 误解MAC地址。

BPDU组播地址:01-80-C2-00-00-00

STP会聚:

确定根交换机及端口的状态;

端口进入转发前,历经各种状态; 使用转发延迟定时器。

最低根网桥ID; 最低根路径成本; 最低发送者网桥ID; 最低发送者端口ID。

不管是RP还是DP,都是这个比较选举,比较发送者的。

根网桥上修改接口cost,不会影响发送出去BPDU的cost。cost值是入口计算。

2种BPDU类型:

configuration BPDU;

2s

topology change notification (TCN),TCN BPDU。 拓扑改变时(收敛) TCN BPDU:

活动交换机的端口启动或关闭(也就是说连接主机的端口如果启动(经历30s变FWD状态后)或关闭(down的接口不会在show spanning tree brief里显示)会导致发送TCN BPDU),在其根端口上发送,直到从上游邻居收到确认;

根网交换机收到TCN BPDU后,发送确认,配置BPDU中设置拓扑变更标记(设置了TC位),导致其他所有交换机将MAC地址表老化时间从300s变为转发延时(15s)。

发TCN BPDU是通知根交换机发送拓扑变更配置BPDU,让二层转发表快速老化。(控制二层转发表)

STP将交换网络中任何两个点之间的多余链路置于Blocking(关闭)状态,而只留一条活动链路。

一个广播域内独立选举STP。

Common Spanning Tree (CST) = IEEE 802.1D

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

Rapid Spanning Tree Protocol (RSTP) = IEEE 802.1w Rapid PVST+ = Per-VLAN IEEE 802.1w

Multiple Spanning Tree Protocol (MSTP) = IEEE 802.1s STP在发送数据包测试网络是否有多条链路,是靠发送bridge protocol data units (BPDUs)来完成的。

根交换机的bridge ID; 发送交换机的bridge ID; 到根交换机的Path Cost; 发送接口以及优先级;

Hello、forward delay、max-age时间。

bridge ID由两部分组成:Bridge优先级和MAC地址,默认优先级为32678。 交换机上的每个端口也是有优先级的,默认为128,范围为0-255。

根交换机(Root) 根端口(Root Port)

指定端口(Designated Port)

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

Path Cost值参数标准: 10 Mb/s:100 100 Mb/s:19 1000 Mb/s:4

10000 Mb/s:2

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

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

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

在交换网络中,只有根交换机的configuration BPDU 在转发。

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

forward delay时间,默认为15秒,接口在经过Listening 和Learning状态时,都会分别停留一个 forward delay时间。

直接链路故障——不用等待max-age,直接到listening状态; 见解链路故障——等max-age后,才到listening状态。

Common Spanning Tree (CST)

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

Per-VLAN Spanning-Tree plus (PVST+)

PVST+是思科自己的协议,在多数三层交换机,如3550、3560及以上型号,默认运行的STP版本为PVST+。

PVST+是基于CST(IEEE 802.1D)运行的,PVST+会在每个VLAN进行一次STP计算,也就是会根据VLAN数的不同,计算STP的次数也不同,并且每个VLAN的STP信息是单独保存的。

PVST+ 只支持128个实例(instance),如果交换机上配置的VLAN数超过128个,那么128个以外的VLAN将没有STP在运行,所以此时剩余的VLAN将出现环路。

可以单独在特定的VLAN上打开或关闭STP功能,即使一台没有运行STP的交换机或没有运行STP的VLAN,在收到BPDU时,也会转发的。

关闭VLAN 10 的STP :no spanning-tree vlan 10,恢复使用命令spanning-tree vlan 10

接口默认发送SPT,目的MAC:01-80-C2-00-00-00

当接口配置trunk口,除了发送SPT,还发送PVST+,目的MAC:01-00-0C-CC-CC-CD。 当交换机上除了vlan1外,还有其他vlan时,trunk口除了发送默认的SPT、vlan1的PVST+,还发送封装了tag的PVST+ BPDU。

802.1Q

在与第三方交换机连接时,本征VLAN一定要一致。

整个非思科的域对于思科的PVST+的VTP域看起来就像一个单独的广播域/生成树域。非思科域的单一生成树将会映射到思科域的CST,它默认使用的是思科的VLAN1.

在骨干链路上的本征VLAN发送到BPDU是不打标签的,发送到保留的IEEE802.1d的生成树组播MAC地址(0180.c200.0000);在骨干链路上的其他VLAN的BPDU是打了标签方式发送的目的地址为保留的思科共享生成树(SSTP)组播MAC地址(0100.0ccc.cccd)。

Rapid Spanning Tree Protocol (RSTP)

RSTP是快速STP,协议号为IEEE 802.1w,RSTP端口状态为discarding、learning和forwarding。

RSTP则只需要在3个hello时间,即6秒收不到根交换机BPDU,便认为根交换机已经失去

连接,就立刻启用discarding状态的接口,RSTP在根交换机失效后,并不会进行完整的STP计算,会在该启用备用端口时立即启用,因此网络收敛速度快,RSTP会在低于1秒的时间内恢复网络。

Extended System ID

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

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

BridgeID: 优先级 2B

MAC地址

6B

Extend System ID in Bridge ID Field: 优先级 扩展系统ID MAC地址 4bit 12bit 2^16=65536 2^4=16

65536/16=4096

Rapid PVST+

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

Multiple Spanning Tree Protocol (MSTP) MSTP的协议号为IEEE 802.1s,将需要进行相同STP计算的VLAN映射到同一个STP实例中。 MSTP是在RSTP的基础之上运行的,所以具有快速收敛的功能,RSTP是随着开启MSTP时自动开启的。MSTP最多支持65个STP实例,但是映射到实例的VLAN数量是没有限制的。默认所有VLAN都在实例0。 MSTP需要通过分区域管理,即region,交换机要在同一region进行相同的STP计算,必须region name和revision number一致,最重要的是VLAN和实例的映射也要一致。

拓朴变更

当网络中的链路出现变化时,也就需要进行新的STP计算,并且由于交换机的MAC地址在表中的老化时间默认为300秒(5分钟),所以基于拓朴变化的因素,还需要将MAC地址的老化时间设置的更短,此动作在STP拓朴变更时,会自动更改为forward_delay的时间。 当交换机检测到链路变化时,发送一种特殊的BPDU,叫做topology change notification (TCN),

6B

也就是TCN BPDU。TCN BPDU是用来告诉根交换机网络链路有变化,因此TCN BPDU只能从根端口发出去。

当根收到TCN BPDU后,需要回复该BPDU,方式为发送一个设置了TC位的configuration BPDU。

BPDU bit位??

Bridge-ID的优先级必须为4096的整数倍,端口优先级必须为16的整数倍。 交换机的Bridge-ID不能自动改的比1小。 根交换机的角色是可抢夺的。

是全双工(full-duplex),叫做point-to-point(P2p),如果是半双工,叫做(half-duplex)。接口下可以手工更改:spanning-tree link-type point-to-point。

配置PVST+

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

sw2(config)#int f0/20

sw2(config-if)#spanning-tree vlan 10-40 port-priority 112 (必须为16的整数倍)

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

sw1#sh spanning-tree brief

sw2(config-if)#spanning-tree cost *

sw2(config-if)#spanning-tree port-priority *

sw2(config-if)#spanning-tree vlan * [cost/port-priority] *

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

在sw4上配置计时器,仅影响自己!

如果还有下一跳是否改成这个发给下一跳?不会,都是转发root的BPDU,所以发送的都是root设置的值。

只有root上的计时器值才影响整个网络。

不能使用sw2(config)#spanning-tree vlan 10 root primary自动改比1小(可以改到1,但要考虑是否开启扩展ID)

可以sw2(config)#spanning-tree vlan 10-40 priority 0手工改到0(最优先)

根网桥配置:

sw(config)#spanning-tree extend system-id

32768+VLAN ID

sw(config)#spanning-tree vlan * priority * 0-61440,4096倍数

sw(config)#spanning-tree vlan * root [primary | secondary] [diameter *] [hello-time *]

网络直径,数据穿过整个第2层网络经过的交换机数目。

sw(config)#spanning-tree vlan * hello-time * sw(config)#spanning-tree vlan * forward-time * sw(config)#spanning-tree vlan * max-age *

show spanning-tree vlan * [brief]

调整根路径成本:

sw(config-if)#spanning-tree [vlan *] cost * show spanning-tree int f0/1

调整端口ID:

sw(config)#spanning-tree [vlan *] port-priority *

debu spanning-tree … show spanning-tree summary show spanning-tree detail 案例1:

0-255,默认128

当在SW2上关闭vlan2的spanning-tree时(vlan1还是保持): SW3#sh spanning-tree brief

VLAN1

Spanning tree enabled protocol ieee Root ID Priority 32768

Address cc00.1504.0000 Cost 19

Port 3 (FastEthernet0/2)

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

Bridge ID Priority 32768

Address cc02.1504.0000

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

Interface Designated

Name Port ID Prio Cost Sts Cost Bridge ID Port ID -------------------- ------- ---- ----- --- ----- -------------------- -------

FastEthernet0/2 128.3 128 19 FWD 0 32768 cc00.1504.0000 128.3 FastEthernet0/3 128.4 128 19 BLK 19 32768 cc01.1504.0000 128.4

VLAN2

Spanning tree enabled protocol ieee Root ID Priority 32768

Address cc00.1504.0001 Cost 19

Port 4 (FastEthernet0/3)

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

Bridge ID Priority 32768

Address cc02.1504.0001

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

Interface Designated

Name Port ID Prio Cost Sts Cost Bridge ID Port ID -------------------- ------- ---- ----- --- ----- -------------------- -------

FastEthernet0/2 128.3 128 19 BLK 0 32768 cc00.1504.0001 128.3 FastEthernet0/3 128.4 128 19 FWD 0 32768 cc00.1504.0001 128.2

SW3上vlan1的spanning-tree没变。

SW2上关闭了spanning-tree,但是SW2还是将vlan2的BPDU转发给SW3,没做任何修改。由上可知SW3从f0/2收到SW1的BPDU:cc00.1504.0001 128.3(SW1的f0/2口发出),从F0/3收到SW2转发SW1的BPDU:cc00.1504.0001 128.2(SW1的f0/1口发出)。

RSTP

802.1w

BPDU被设置为2。让每台交换机通过每个端口与邻居交互。

每2s发BPDU,3次(6s)没收到BPDU,就认为邻居交换机出现了故障,所有与邻居端口相关的信息都将删除。

端口角色:

端口状态:丢弃、学习、转发。

端口类型:边缘端口(即portfast端)、根端口、点到点端口、非点到点端口。

点到点端口与非点到点端口通过双工模式自动确定;

点到点端口,发送提议但没收到同意(不理解RSTP或不能应答)就采用传统802.1D类型会聚;

非点到点端口直接采用传统802.1D类型会聚;

RSTP会聚:

1) 选举一个根网桥,且所有交换机都知道它;

2) STP域中的每个交换机端口都从阻断状态切换到合适的状态,以防形成环路。

RSTP交换机首次加入拓扑(交换机启用)时或检测到现有拓扑发生故障时,RSTP会要求交换机根据端口类型做出转发决策: 边缘端口(portfast):立即进入转发状态。 根端口:

点到点端口:任何连接其他交换机并成为指定端口的点到点端口,不采用定时器,二是通过与邻居交换机快速握手来确定端口状态。以提议和同意的方式。 非点到点端口:用传统802.1D类型会聚。

同步:

非边缘端口首先处于丢弃状态;

交换BPDU后,确定了根网桥,如果端口从邻居那收到上级BPDU,该端口就成为根端口; 点到点端口通过提议和同意握手来确定链路两端的状态: 1) 提议(如果有上级BPDU,为指定交换机); 2) 同步;

3) 阻断(所有非边缘端口); 4) 同意;

5) 转发(指定、根端口);

6) 再提议(处于丢弃状态的非边缘端口); … …

拓扑变更:

RSTP仅在非边缘端口进入转发状态时,才检测拓扑变更。

收敛: 分段收敛

1) 交换机在所有非边缘指定端口上,发送设置了TC位的BPDU; (hello时间2倍,TC While定时器)???

2) 非边缘指定端口关联的MAC地址从CAM表中删除;

3) 收到TC消息的邻接交换机删除通过所有端口(收到TC消息的端口除外)获悉的MAC

地址;然后再通过非边缘指定端口向外发送TC消息。

配置:

默认交换机运行PVST+,启用MST或RPVST+后,才使用RSTP。 RSTP边缘端口: int f0/1

spanning-tree portfast

端口全双工,RSTP自动配置为点到点链路,也可手工配置: int f0/1

spanning-tree link-type [point-topoint | shared]

启用RSTP:

spanning-tree mode rapid-pvst 当前运行的STP进程都将重启,生产网络注意! 恢复到PVST+:spanning-tree mode pvst

RSTP要交换机支持,3550支持,2950不支持。

RSTP与不支持的交换机一起使用也没关系,不认识flag中间6位,RSTP兼容STP。

RSTP能接收次级BPDU,兼有了backbonefast功能,也集成了uplinkfast。

SPT和RSTP会聚比较:

STP:端口进入FWD状态和端口down,都会从根端口发TCN BPDU,根网桥收到后,发设置了TC位的配置BPDU,告之所有交换机。CAM表老化时间变为15s。

RSTP:仅非边缘端口进入FWD状态才检测拓扑变更,拓扑变更能自己告之所有交换机。

STP仅根交换机发BPDU;RSTP所有交换机都发BPDU。

MSTP

MSTP或MST,802.1s,解决STP实例过多或过少的问题。

MSTP是在RSTP的基础之上运行的,所以具有快速收敛的功能,RSTP是随着开启MSTP时自动开启的。

MSTP最多支持65个STP实例,但是映射到实例的VLAN数量是没有限制的。默认所有VLAN都在实例0。

MSTP需要通过分区域管理,即region,交换机要在同一region进行相同的STP计算,必须region name和revision number一致,最重要的是VLAN和实例的映射也要一致。

MST区域:属性相同,则属于同一MST区域。 MST配置名;

MST配置修订号(0-65535);

MST实例到VLAN的映射表(4096项)。

MST BPDU

MST实例(MSTI): IST(MSTI 0),内部生成树实例,可视为本地CST; MSTI 1-15。

只有IST发送和接收MST BPDU,其他MSTI信息作为M-record附加在MST BPDU上。

只有IST BPDU进入、离开区域,如区域连接的是允许PVST+的交换机,该IST BPDU将被复制到PVST+交换机中继线上的所有VLAN。

配置MSTP

改变所有交换机的STP模式为MSTP Sw1(config)#spanning-tree mode mst

映射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(config-mst)#[show pending]

默认所有VLAN被映射到实例0,IST。 显示为提交的修改

sw1(config-mst)#exit

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

启用并配置MST后,PVST+停止,交换机切换到RSTP。

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

sw1(config)#spanning-tree mst 1 priority *

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

sw4(config-if-range)#spanning-tree mst 1 port-priority *

sw1(config)#spanning-tree mst hello-time * sw1(config)#spanning-tree mst forward-time * sw1(config)#spanning-tree mst max-age *

sw1#sh spanning-tree [mst] [configuration] (输出被省略) MST1

Spanning tree enabled protocol mstp ……

Spanning-Tree Feature

PortFast

连接PC、服务器、路由器接口开启portfast: 不发TCN BPDU;

链路进入up,端口立即切换到转发状态。

生成树环路检查仍然运行。(portfast端口仍会发送BPDU,仍能接收BPDU。portfast只是加快了端口进入转发状态的时间和不发送TCN BPDU,至于收不收到BPDU没关系。收到了BPDU,没环路还是转发,有环路该阻塞还是阻塞。如果配置了BPDU Guard,才会一收到BPDU就进入err-disabled状态。)

当端口配置portfast时,如果有台交换机连接,BPDU正常发送:

如果配置portfast为根交换机,会继续发送BPDU,连接的交换机只接收,端口都为FWD;如果连接的交换机根ID大,那么portfast端口只接收BPDU,2端端口仍都为FWD。 即使相互连接的2个端口不在同一VLAN,BPDU正常交换,不加VLAN号;如果连接的交换的端口为TRUNK,会导致不一致状态出现。

配置portfast好处: 减少30s阻塞;

减少因端口up/down导致TCN BPDU发送。

一个端口在交换机启动后,至少需要30秒后才能够为用户提供数据转发。对于一个连接了主机或服务器的端口,进行STP计算是毫无必要的,因为此类端口即使直接转发数据,也不会造成环路。

当开启了Port Fast功能的接口,如果在接口上收到BPDU后,默认在接口收到BPDU后会立即关闭该接口的Port Fast功能。(此话错误,做实验,收到BPDU没关系,portfast端口的环路检测仍然运行,如果有环路存在,才会阻塞。)

连接主机的端口如果启动(经历30s变FWD状态后)或关闭(down的接口不会在show spanning tree brief里显示)会导致发送TCN BPDU。

down的接口不会显示在show spanning-tee中。show spanning-tee只显示up的端口,但是状态会因SPT而不同。

接口上开启:

sw1(config-if-range)#spanning-tree portfast [trunk]

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

另一说法是带trunk表示在连接到非交换机的中继线路上启用。

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

sw1(config)#spanning-tree portfast default 将所有非中继接口启用

sw1(config-if)#switchport host

宏配置,表示:access,portfast,channel group will be disabled。

BPDU Guard

BPDU Guard功能可以使端口在收到任何BPDU时(上级或下级BPDU),立即进入err-disabled状态(相当于shutdown,1、2层都down)。进一步保护portfast端口。

err-disabled状态恢复: 接口先shut,再no shut;

配置errdisabled recovery。(要先配置,如果已进入errdisabled状态再配置恢复没用) show int status err-disable

errdisable recovery cause bpduguard(默认300s恢复) show errdisabled recovery

SW1全局开启BPDU Guard(只对Port Fast端口有影响) sw1(config)#spanning-tree portfast bpduguard default

如果BPDU Guard是接口下开启,将对任何端口有影响,无论是正常端口还是portfast端口; sw1(config-if-range)#spanning-tree bpduguard enable

Root Guard

开启了Root Guard功能的端口,如果在此端口上连接的新交换机试图成为根交换机,此端口将进入inconsistent (blocked) 状态,从而防止新加入交换机抢占根角色来影响网络。 端口收到上级BPDU(网桥ID更佳的BPDU),该端口就处于根网桥不一致状态(BROKEN状态,自适用恢复)。 一般在接入层配置。

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

开启Root guard的端口在哪个vlan,Root guard就对哪些vlan生效。 不能在需要被UplinkFast,使用的端口上开启Root Guard。 Root Guard在可能连接新交换机的端口上开启。

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

查看被放入inconsistent (blocked) 状态的端口: sw2#sh spanning-tree inconsistentports show spanning-tree int f0/1 detail

++++++++++++++++++++++++++++++++++++++++++

配置了switchport mode access的接口收到802.1Q BPDU会变为BRN状态。

*Mar 1 00:06:40.491: %SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk FastEthernet0/0 VLAN1.

*Mar 1 00:06:40.491: %SPANTREE-7-BLOCK_PORT_TYPE: Blocking FastEthernet0/0 on VLAN1. Inconsistent port type.PVST+: restarted the forward delay timer for FastEthernet0/0 (BROKEN状态是自动恢复。)

一端配置trunk口就会发送PVST+ BPDU(access接口是发SPT BPDU),另一端如果是默认配置的话,就会BRN。

native vlan不一致也会发生Broken:

*Mar 1 00:11:00.471: %SPANTREE-2-RECV_PVID_ERR: Received BPDU with inconsistent peer vlan id 1 on FastEthernet0/0 VLAN2.

*Mar 1 00:11:00.471: %SPANTREE-2-BLOCK_PVID_PEER: Blocking FastEthernet0/0 on VLAN1. Inconsistent peer vlan.

*Mar 1 00:11:00.499: %SPANTREE-2-BLOCK_PVID_LOCAL: Blocking FastEthernet0/0 on VLAN2. Inconsistent local vlan.

++++++++++++++++++++++++++++++++++++++++++

BPDU Filtering 实验做不了??

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

如果BPDU Filtering是全局开启的,则只能在开启了portfast的接口上过滤BPDU,并且只能过滤掉发出的BPDU,并不能过滤收到的BPDU。

而当一个开启了portfast功能的接口,在开启了BPDU Filtering后,如果还能收到BPDU,则BPDU Filtering特性会丢失,因此,还会造成接口portfast特性的丢失。 sw1(config)#spanning-tree portfast bpdufilter default

在接口模式下开启的,则可以过滤掉任何接口收到和发出的BPDU。

sw1(config-if-range)#spanning-tree bpdufilter enable(能过滤掉了portfast端口下的BPDU,那么就是说在portfast端口下,配置此接口命令后,配置bpdu guard不起作用,因为收不到BPDU,所以bpdu guard没起作用,如果出现环路,不能检测出来。)

在接口上过滤掉接收和发送任何BPDU,如果出现环路的话环路仍然存在,过滤掉BPDU后不能检测到环路。(过滤收到BPDU是很危险的!!)

如果过滤掉收到BPDU,那么bpdu guard就没作用了。

在SPT中只有根交换机才发送BPDU,所以SW1——SW2相连,如果SW1是根,那么只会SW1发出BPDU。

防止意外的BPDU: BPDU Guard Root Guard

防止突然丢失BPDU: Loop Guard UDLD

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

当同时启用bpduguard与bpdufilter时,bpdufilter优先级较高,bpduguard将失效。 如果在一个启用了root guard的端口上启用loop guard,loop guard将禁用root guard功能。就是说它俩不能同时使用

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Loop Guard

跟踪非指定端口上的BPDU活动,不能收到BPDU时,端口置位环路不一致状态。 避免当网络中出现单向链路故障,引起的环路。防止BPDU丢失。 开启了Loop Guard的端口在收不到BPDU的情况下,并不会认为网络是无环的,并不会错误地将端口变成指定端口,而是将收不到BPDU的端口变成loop-inconsistent状态,此状态等同于blocking状态。自恢复。

Loop Guard可以全局开启,也可以在接口下开启,但不建议在全局开启,请在相应接口下开启。什么端口最需要开,很明显,当然是被blocking的端口,但并不完全正确,准确答案是在所有非指定端口开启,其实就是根端口和blocking端口。

当在接口开启后Loop Guard,接口所在的所有VLAN都会生效,如果是接口是trunk,哪个VLAN没有收到BPDU,接口就会在哪个VLAN被blocking。在EtherChannel上是对整条生效。

只有交换机上的blocking端口和根端口才需要开启Loop Guard。所以在根上开Loop Guard是没有意义的。

PortFast的接口不能开启Loop Guard。 Root guard和Loop Guard不能同时开。

sw2(config)#spanning-tree loop guard default

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

当SW2开启了Loop Guard的端口收不到BPDU时,会有如下提示:

sw2# 02:16:28: %SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port FastEthernet0/21 on VLAN0001.

sw2#sh spanning-tree inconsistentports

全局开启将自动判断哪些是非指定端口,然后生效。

虽然是在端口上配置,但是阻断措施是针对每个VLAN采取的。

UDLD (UniDirectional Link Detection) 单向链路检测,光纤介质的端口上。

当接口上使用了模块后,如光纤模块,当模块上出现故障后,交换机并不能保证在任何时候都能察觉。当交换机的接口如果自己不能发送或接收数据,而对方却能发送或接收数据时,这可能会引起STP环路,这样的故障被称为单向链路故障。

UDLD使用一层协议来做单向链路检测,开启了UDLD的接口会向外发送Udld hello,收到Udld hello的交换机必须向邻居回复。

两端都必须开启,两端都会主动发送udld包,对端都要回复!

UDLD的运行分为两种模式:normal (默认) 和aggressive。 Normal模式只能检测光纤上的单向链路故障,而aggressive模式不仅能够检测光纤上的单向链路故障,还能检测双绞线上的单向链路故障。

当使用normal模式时,检测到单向链路故障后,接口没有变化,生成系统日志;而使用aggressive模式时,检测到单向链路故障后,接口会被errdisable。

必须相连的链路两端都要配置UDLD,并且要配置成相同的模式。

配置UDLD

在所有接口上开启UDLD(必须为光纤接口) sw1(config)#udld {enable | aggressive | message time *}

查看UDLD: sw1#show udld

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

在接口下开启UDLD(接口下的配置将覆盖全局模式下的配置) (可以为双绞线) sw1(config)#int f0/8

sw1(config-if)#udld port aggressive / sw1(config-if)#udld {enable | aggressive | disable}

查看接口下的UDLD

sw1#show udld f0/8 udld reset 重新启用因错误而被禁用的UDLD激进模式端口

STP Security

BPDU Guard:err-disabled ROOT Guard:Broken

BPDU Filter:Drop

STP Loop

Loop Guard:Physical UDLD: Software

Broken

err-disabled

show spanning-tree summary totals

show spanning-tree [vlan *] [summary | root | bridge | detail] show spanning-tree int f0/1 debug spanning-tree events

Flex Links

替代的STP技术,也可以与STP共存。 收敛时间小于50毫秒。

在访问层交换机定义一对二层接口对,任意时间只能有一个接口是活动、转发流量的。当Active接口down,Standby接口才起来,但是当Active接口恢复,不会抢占。 仅支持2层接口和端口信道。

同一时间,一个接口只能属于一个接口对。 STP将会在Flex Links的接口上禁用。

可配置抢占(根据带宽大小或延迟高低抢占):

begins forwarding traffic after 60 seconds.

switchport backup interface preemption mode bandwidth switchport backup interface preemption delay

int f0/1

主接口 定义备份接口

switchport backup int f0/2 show interface switchport backup

UplinkFast

开启了UplinkFast交换机就能够在检测到交换机上直连的转发状态的接口失效后,立即启用Blocking的端口,提供网络快速收敛和恢复的功能。

UplinkFast要真正起到作用,交换机上必须有Blocking的端口存在才行,UplinkFast只适合在非根交换机。

UplinkFast只能在交换机上全局开启,不能针对VLAN单独开启,也不支持MSTP模式。UplinkFast恢复网络的时间大约在1到5秒。

让叶节点交换机(生成书分支末端交换机的交换机),当主根端口链路出现故障时,另一条阻断的上行链路能立即使用。 节约30s,私有。

Sw2(config)#spanning-tree uplinkfast [max-update-rate *]

不能在根网桥使用;只能用于离根网桥最远的叶节点交换机。

配置此命令后:

1) 记录所有前往根网桥的路径;

2) 网桥优先级变为49152,所有端口成本增加3000(确保不会成为根网桥,且不会成为中间交换机);

3) 当主根端口出现故障时,通知上游交换机通过新激活的上行链路到达下游工作站,具体为:

以CAM表中的MAC为源,0100.0ccd.cdcd为目标发送虚拟组播帧(默认150分组/秒)——修改二层转发表。因为上游交换机不一定知道链路更改了: 如果上游交换机直接感知链路down,删除端口相关的MAC;

如果上游交换机没直接感知链路down,MAC地址要经过300s老化才删除。

SW1 SW2

SW3 uplinkfast启用后,当主根端口恢复时,要持续一段时间,主根端口才恢复(Root port delay timer 35s):备用(FWD)根端口(BLK) 备用(BLK)根端口(FWD)(根端口是jump到FWD)。

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) : 2

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

Name Interface List -------------------- ------------------------------------ VLAN1 Fa0/1(fwd), Fa0/2

BackboneFast

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

当SW2在Blocking端口收到Inferior BPDU后,如果自己也开启了BackboneFast功能,就会将Blocking端口变成转发状态,还会向根交换机发出一个root link query (RLQ)根链路查询。 需要在网络中所有交换机上开启,不能针对VLAN单独开启,也不支持MSTP模式。BackboneFast是对UplinkFast的强化与补充。

冗余骨干路径,检查非直连链路出现问题,节约20s,私有。 收到下级BPDU时,发生了间接链路故障。

sw1(config)#spanning-tree backbonefast sw1#sh spanning-tree backbonefast

SW1为根,当SW1与SW2之间链路down,SW2收不到Root BPDU,它认为自己是根,于是向外发自己的BPDU。SW3收到下级BPDU,如果配置了BackboneFast,SW3会从根端口发RLQ查询,得到答复后,SW3的阻塞端口不用等20s直接到LIS状态。

SW1 SW2

SW3

SW1与SW2之间链路down:

SW2直接感知,不会等待20s,立即认为自己是根,向外发自己的BPDU; SW2非直接感知,也会等待20s,才认为自己是根。

SW3从阻塞端口收到次级BPDU,会从RP(根端口)发一个RLQ(二层包),查询根是否存在,根收到后会回应,那么SW3就知道阻塞端口收到的是次级BPDU,BLK状态立即转到LIS状态,不会等待20s。

(此例中,也可只在SW1和SW3启用BackboneFast,交换RLQ即可)

portfast uplinkfast

应用 接入端口 接入层交换机

节约时间 30s 30s

backbonefast

所有骨干交换机 20s

EtherChannel

2-8条,共可有6个EtherChannel。

当在两台交换机之间连接多条线路来增加带宽时,由于STP的原因,最终会阻断其它多余的线路而只留下一条活动链路来转发数据

当组中有物理链路断掉后,那么流量将被转移到剩下的活动链路中去,只要组中还有活动链路,用户的流量就不会中断。

只支持对Fast Ethernet接口或Gigabit Ethernet接口的捆绑,最多只能有8个接口。

如果只有一边交换机做了EtherChannel捆绑,而另一边不做捆绑,那么接口会工作在异常状态,而不能正常转发流量。但做实验on模式(不用协商)ping通了??捆绑的一端已经起来,端口也是up。

可以通过手工强制指定接口工作在组中,也可以通过协议自动协商。如果是手工强制指定,则不需要协议,自动协议的协议有以下两种:

Port Aggregation Protocol (PAgP) 思科专有 Auto Desirable Link Aggregation Control Protocol (LACP) Passive Active

还可以强制让接口工作在EtherChannel而不需要协商,配置为ON模式即可,如果配置ON,则两边都必须配置为ON,否则不能转发数据。

模式 协议 描述 ON Auto

无 PAGP

手工静态强制接口工作在EtherChanne

下。

只接收PAgP协商消息,并做出回应同意工作在EtherChanne下,并不主动发出PAgP协商。

主动发送PAGP协商消息,主动要求对方工作在EtherChanne下。

只接收LACP协商消息,并做出回应同意工作在EtherChanne下,并不主动发出LACP协商。

主动发送LACP协商消息,主动要求对方工作在EtherChanne下。

当配置PAGP时,可以使用关键字non-silent,默认为silent。

Silent表示即使不能从对端设备收到PAGP协商数据,也使物理接口工作在EtherChannel组中,思科建议接口连接服务器或分析仪时使用。

non-silent表示只有在和对方协商成功之后,才使物理接口工作在EtherChannel组中。也就是说只有双方都支持PAGP的情况下,才才使物理接口工作在EtherChannel组中。

Desirable Passive

PAGP LACP

Active LACP

当将接口EtherChannel捆绑后,会自动生成逻辑接口,称为port-channel接口,port-channel接口与EtherChannel组的号码相同,但范围是1-48。

在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 Load Balancing

默认执行基于源MAC的负载均衡,而每条链路的流量比例却是固定的,也就是说,你只能改变EtherChannel负载均衡方式,但却改不了每条物理链路上的流量比例,接口上的流量比例,执行以下标准:

Sw1(config)#port-channel load-balance **

show etherchannel port-channel [load-balance]

两端的负载均衡方法可不同,负载均衡不对称。 最开始配置负载均衡方式,如果要更改,以太信道要删除重新配置才会生效新的负载均衡方式。

sw1(config)#port-channel load-balance dst-mac

Warning: Delete and re-create existing port channels to apply new load balance method to them

配置

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

Sw1(config-if-range)#channel-protocol [pagp | lacp]

Sw1(config-if-range)#channel-group 12 mode desirable

LACP(802.3ad):

Sw1(config)#lacp system-priority * Sw1(config-if)#lacp port-priority *

设置接口优先级,小的优先。

当配置PAGP时,可以选择配置non-silent,默认为silent,配置如下: sw1(config-if-range)#channel-group 12 mode desirable non-silent

sw1#show etherchannel summary sw1#show int port-channel 12 CAM表中是一个Po12端口。

配好EtherChannel组后后,在port-channel下配的参数会对所有物理接口生效,但对单个物理接口配置的只对单物理接口生效。

多个接口捆绑成单条EtherChannel后,在STP中,被当作单条链路来计算,同时Path Cost值会和原物理链路有所不同。?? 在port-channel接口下配置接口: sw1(config)#int port-channel 12

sw1(config-if)#switchport mode access / switchport mode trunk sw1(config-if)#switchport access vlan 10

排故:

所有接口都支持EtherChannel; 以太网介质类型一致; 相同的速度、双工;

捆绑的端口属于同一VLAN;

捆绑的端口如果是中继则native VLAN要一致; STP设置相同;

不能是SPAN的目标接口和安全接口以及802.1x端口;

如果配置ON模式,对端也只能配置ON模式,不会发协商信息。

第3层EtherChannel 实验做不了??

优势是路由协议将EtherChannel当做单条链路,不会在组中单条链路失效时进行收敛。

当使用三层接口时,必须先将物理接口变成三层接口后,再做捆绑,因为port-channel接口是不能在二层与三层之间转换的。

配置三层接口,应该到port-channel接口下做的配置,而不应该直接配置物理接口。

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

802.1Q Tunneling(Q in Q)

打2次tag:

D S tag Data D S tag tag Data

int f0/1

switchport access vlan 30 switchport mode dot1q-tunnel

不是接入端口,是dot1q-tunnel,打双层tag的端口。

802.1Q只能在三层交换机上做。

交换机安全特性

Protected Port

要限制交换机上相同VLAN的主机通信,通过将交换机上的接口配置成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中的所有物理接口生效。

sw1(config-if)#switchport protected

sw1#sh int f0/1 switchport (输出被省略) Protected: true

Unknown unicast blocked: disabled Unknown multicast blocked: disabled 没做实验!!

Port Blocking

默认情况下,交换机收到未知目标MAC的流量,也就是目标MAC地址不在MAC地址表中的流量,会将此流量在所有接口上泛洪。

用户可以选择在交换机接口上拒绝泛洪未知目标MAC的流量,配置可以对unicast和 multicast生效,但不能限制广播流量。

配置Port Blocking时,可以在物理接口和EtherChannel上配置

配置Port Blocking限制unicast sw1(config)#int f0/1

sw1(config-if)#switchport block unicast

配置Port Blocking限制multicast sw1(config-if)#switchport block multicast

sw1#sh interfaces f0/1 switchport (输出被省略)

Unknown unicast blocked: enabled

Unknown multicast blocked: enabled

交换机接口上已经开启拒绝泛洪未知目标MAC的单播流量和组播流量 没做实验!!

Storm Control

在默认情况下,交换机在接口上收到任何数据包,将尽全力转发,只有在硬件性能不足的情况下,才会丢弃数据包。

在某些时候,由于协议错误,配置错误或人为攻击,导致网络流量增大时,将影响网络的性能,在这种情况下,需要在交换机上限制流量占用接口的带宽,则可以使用Storm control来实现。

Storm control可以在交换机接口上限制broadcast,,multicast,以及unicast的流量带宽。 阀值分为上限(rising suppression level))和下限(falling suppression level),当流量的速度达到上限的阀值后,流量就会被block,直到流量低于下限后,才会恢复正常。接收还是发送,还是both??

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

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

每秒通过的数据包个数(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的流量不会被丢弃。

限制multicast时要注意,有可能限制后会丢弃动态路由协议的流量!!

配置storm-control时,可以在物理接口和EtherChannel上配置。

可以设置流量达到上限后,采取相应的处理动作,可配置的动作分为Shutdown和Trap。而默认的动作是丢弃流量而不生产SNMP Trap消息。

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

sw1(config-if)# storm-control unicast level pps 100 80 说明:定义的上限为PPS 100,下限为PPS 80。

可以在接口下分别定义broadcast、multicast、unicast流量占接口带宽的比例。

也可以在全局下定义。

定义流量达到上限后,采限的动作: sw1(config)#int f0/1

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

接口流量达到上限的状态,流量都被丢弃,还会发trap。

sw1#sh storm-control unicast

确保交换机接入安全

1. 端口安全 Port Security

在正常情况下,MAC地址表允许一个接口可以与多个MAC地址相对应。

具有Port Security功能的接口,被称为secure port。区别是否违则,有以下两种情况: 当接口上MAC地址数量达到最大允许数量;

一个secure port接口上的合法MAC在另外一个secure port接口上访问,也算违规。

要在secure port接口上定义安全MAC地址,有以下几种方法:

1) 静态手工配置手工添加MAC地址与接口的对应关系,会保存在地址表和running configuration中。

2) 动态学习 将接口上动态学习到的MAC地址作为安全MAC地址,但此MAC地址只保存在MAC地址表中,交换机重启后将丢失。

3) Sticky secure MAC addresses 为了结合静态手工配置与动态学习MAC地址的优势,Sticky

将动态学习到的MAC地址作为安全MAC地址,并且将结果保存到running configuration

中。

对于违规的流量,可以采取以下四个可执行的动作: 1) Protect 只丢弃不允许MAC地址的流量,其它合法流量正常,但不会通知有流量违规了。 2) Restric 只丢弃不允许MAC地址的流量,其它合法流量正常,但会有通知,发送SNMP

trap,并会记录syslog。 3) Shutdown (默认模式) 将接口变成err-disabled并shut down,并且接口LED灯会关闭,

也会发SNMP trap,并会记录syslog。 4) shutdown vlan 相应VLAN变成err-disabled ,但接口不会关,也会发SNMP trap,并会

记录syslog。??

默认接口上Port Security是关闭的,Port Security默认只允许1个安全MAC地址。

Port Security接口不能是SPAN的目标接口,不能在EtherChannel中,不能是中继端口。但与802.1X、语音VLAN兼容。

只能在静态access接口和静态trunk接口上配Port Security,不能在dynamic接口上配??

Port Security Aging Time (Port Security MAC地址老化时间)

在正常接口下动态学习到的MAC地址:端口shutdown或300s超时后,交换机会将它从MAC地址表中删除。

而对于Port Security接口下的MAC地址,如果是通过安全命令静态手工添加的,则不受MAC地址老化时间的限制。

对于sticky得到的MAC地址,不受老化时间限制,并且不能更改。

在Port Security接口下设置MAC地址的老化时间,分两种类型:absolute和inactivity,其中

absolute表示绝对时间,inactivity为非活动时间。单位是分钟,范围是0-1440, 只针对动态学习到的??

配置

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 shutdown:errdisabled;

restrict:up,违规MAC分组丢弃,记录; protect:up,违规MAC分组丢弃,不记录。

sw1(config-if)#switchport port-security mac-address 0013.1a85.d160 sw1(config-if)#switchport port-security mac-address sticky 默认动态学习

Port Security接口不能是SPAN的目标接口,不能在EtherChannel中,不能是中继端口。 但与802.1X、语音VLAN兼容。

show run显示:

interface FastEthernet0/1 switchport mode access switchport port-security

switchport port-security mac-address 0013.1a85.d160

默认允许的最大地址数量为1,默认违规,所以不显示出来。但静态配置的MAC在running-config中。

配置粘贴性后:

sw1(config-if)#switchport port-security mac-address sticky sw1#sh run int f0/2

……

switchport port-security mac-address sticky

switchport port-security mac-address sticky 0013.1a2f.1200 因为指定安全MAC地址的方式为sticky,所以此接口连接的R2上的MAC地址0013.1a2f.1200已经被载入配置中。

r2(config)#int f0/0

r2(config-if)#mac-address 0013.1a85.d160

一个secure port接口上的合法MAC在另外一个secure port接口上访问,也算违规。而违规动作是对出现重复地址的接口实施的。

默认1

sw1(config-if)#switchport port-security violation [shutdown | restrict | protect]

配置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地址生效。

配置手工静态指定的MAC地址的老化时间

sw1(config)#int f0/1

sw1(config-if)#switchport port-security aging static ???

说明:配置手工静态指定的MAC地址在1分钟没有流量的情况下被删除。

clear port-security dynamic [address mac-add | interface f0/1] show prot-security [interface f0/1 | address]

2. 基于端口的认证

交换机、PC要支持802.1X标准,使用可扩展认证协议(EAPOL,第二层协议,此时PC无IP地址)。

如果交换机配置了802.1X,PC必须配置;

如果交换机没配置,PC配置了也会以常规方式通信。

端口首先处于未授权状态,除802.1X协议相关的数据外,其他都不通过。 注销时,客户端通知交换机,或超时而中断,返回未授权状态。

802.1X支持RADIUS认证。 配置

sw1(config)#aaa new-model sw1(config)#radius-server host *.*.*.* [key string]

启用AAA

定义外部radius服务器

sw1(config)#aaa authentication dot1x default group radius sw1(config)#dot1x system-auth-control 启用802.1X(启用后,所有接口都down) sw1(config)#int f0/1

sw1(config-if)#dot1x port-control [force-authorized | force unauthorized | auto] 总是授权(默认) 总不授权 802.1X认证

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

IEEE 802.1x(DOT1X)Authentication

允许多台主机连接同一个交换机端口

IEEE 802.1x是一种认证技术,是对交换机上的2层接口所连接的主机做认证。

在接口上开启IEEE 802.1x认证后,在没有通过认证之前,只有IEEE 802.1x认证消息,CDP,以及STP的数据包能够通过。

交换机提供给IEEE 802.1x认证的数据库可以是交换机本地的,也可以是远程服务器上的,这需要通过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中。

当认证超时或主机不支持认证时,接口将被划到guest VLAN ,当认证失败时,将被划失败VLAN,也就是受限制的VLAN(restricted VLAN),guest VLAN和restricted VLAN可以定义为同一个VLAN。

如果主机通过了认证,交换机还可以根据主机输入的不同账户而将接口划入不同的VLAN,此方式称为IEEE 802.1x动态VLAN认证技术,并且需要在RADIUS服务器上做更多的设置。

认证接口状态:

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模式,表示可以有多台主机连上来,并且一台主机认证通过后,所有主机都可以访问网络。

当主机认证失败后,交换机可以让主机多次尝试认证,称为重认证(re-authentication),在交换机上开启re-authentication功能即可,默认是关闭的。

并且还可以配置认证时间间隔,默认60秒,默认可以尝试2次重认证。

如果要手工对某接口重认证,在enable模式输入命令dot1x re-authenticate interface ?? 在交换机接口上开启认证后,只要接口从down状态到up状态,就需要再次认证。

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认证

sw1(config)#int f0/1

sw1(config-if)#switchport mode acce

sw1(config-if)#dot1x port-control auto 此句要配置,默认是force-authorized

本文来源:https://www.bwwdw.com/article/obd8.html

Top