Catalyst 4000 6000配置经验谈

发布者:上海IT外包来源:http://www.lanmon.net点击数:5868

超级引擎流量
在一个交换网络中绝大多数特性需要两台或更多台的交换机配合才能实现,所以必须对存活信息、配置参数和管理的改变进行控制。这些协议包括cisco的私有协议如CDP,或者是标准的协议如802.1d(生成树协议),在Catalyst系列交换机中实现这些协议中有一些相通的地方。
首先,我们来复习一下基础的帧转发。从端结点发出的用户数据帧在通过第二层交换域时,它所包含的源MAC地址和目的MAC地址并不会改变。每个交换机上的超级引擎将根据帧的目的MAC地址在地址内容表(CAM)中查找发出端口。如果帧的目的地址未在cam表中找到,或者目的地址是一个广播或组播地址,将转发到该VLAN的所有端口。
交换机还必须确认哪些帧直接进行转发,哪些帧需要发送到交换机自身的CPU(通常被称为网络管理器或NMP)。
Catalyst 控制面是一个交换机内部端口,通过在CAM表中叫System entries的特殊条目创建,用于和NMP之间的流量传输。这样,协议使用一个周知的目的MAC地址,控制面流量可以和数据流量分离。在交换机上使用show cam system,可以看到如下信息:
S4B-6006> (enable) sh cam system
* = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry.
X = Port Security Entry $ = Dot1x Security Entry

VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type]
---- ------------------ ----- -------------------------------------------
1 00-30-b6-4a-eb-ff # 1/3
1 01-00-0c-cc-cc-cc # 1/3
1 01-00-0c-cc-cc-cd # 1/3
1 01-80-c2-00-00-00 # 1/3
1 01-80-c2-00-00-01 # 1/3
2 01-00-0c-cc-cc-cc # 1/3
2 01-00-0c-cc-cc-cd # 1/3
2 01-80-c2-00-00-00 # 1/3
2 01-80-c2-00-00-01 # 1/3
3 01-00-0c-cc-cc-cc # 1/3
3 01-00-0c-cc-cc-cd # 1/3
3 01-80-c2-00-00-00 # 1/3
3 01-80-c2-00-00-01 # 1/3
4 01-00-0c-cc-cc-cc # 1/3
4 01-00-0c-cc-cc-cd # 1/3
4 01-80-c2-00-00-00 # 1/3
4 01-80-c2-00-00-01 # 1/3
5 01-00-0c-cc-cc-cc # 1/3
5 01-00-0c-cc-cc-cd # 1/3
5 01-80-c2-00-00-00 # 1/3
5 01-80-c2-00-00-01 # 1/3
6 01-00-0c-cc-cc-cc # 1/3
Cisco保留了一段MAC地址和协议地址用于设备通讯。如下表所示:

主要的cisco控制控制协议均使用802.3 SNAP封装,包括LLC 0xAAAA03,OUI 0x00000C,可以被LAN协议分析议跟踪到。这些协议的其它一些通用属性如下:
u使用点对点连接的情况下,为了使用两台cisco交换机能顺利通过中间的非Cisco交换机,故意使用multicast的目的地址,这样中间的设备就不能理解或截获这些帧,只会简单的转发它们。然而,在多供应商环境下的点对多点连接下,会起不一致的现象并一般可以避免。
u 这些协议仅在交换域内有效,终结于第三层的路由器。
u 这些协议在入口ASIC的处理和调度中具备比普通用户数据更高的优先权。
介绍完了控制协议的目的地址,现在我们来介绍这些协议的源地址,交换协议从机箱上EPROM所提供的一段MAC地址取用MAC地址。使用show module命令可以看到每个模块在发起如stp bpdu或ISL帧时可能使用到的源地址范围:
S4B-6006> (enable) sh module
………………
Mod MAC-Address(es) Hw Fw Sw
--- -------------------------------------- ------ ---------- -----------------
1 00-30-96-1a-72-00 to 00-30-96-1a-72-01 5.0 5.2(1) 6.3(4a)
00-30-96-1a-72-02 to 00-30-96-1a-72-03
00-30-b6-4a-e8-00 to 00-30-b6-4a-eb-ff
2 00-30-b6-30-5a-1c to 00-30-b6-30-5a-4b 1.1 4.2(0.24)V 6.3(4a)
3 00-d0-bc-eb-a8-04 to 00-d0-bc-eb-a8-33 1.1 4.2(0.24)V 6.3(4a)
4 00-30-b6-30-4a-d0 to 00-30-b6-30-4a-ff 1.1 4.2(0.24)V 6.3(4a)
VLAN 1
VLAN1在Catalyst交换网络中有着特殊的意义。
在有trunking存在时,Catalsy超级引擎通常使用缺省VLAN――VLAN1,用来标记一系列的控制和管理协议。诸哪CDP,VTP和PagP。所有的端口,包括内部的SC0,都被配置成VLAN1的成员。所有的trunk链路在缺省情况下都包括VLAN1。在CatOS5.4以前,不能阻断VLAN1中的数据。
澄清交换网络中的两个概念:
u SC0所在的是管理VLAN,这个VLAN可以被改变
u Native VLAN是在802.1Q trunk上定义的一个用户传送未打标记的VLAN。
调整VLAN1时需要注意如下几个事项:
u VLAN1的直径,和其它VLAN一样,直径太大将使网络的稳定性降低。在STP透视中这个问题特别显著。这将在带内管理一节中做详细的论述。
u VLAN1中的控制面数据和用户数据保持分离极大的简化故障诊断程序和解放CPU。
u 在设计没有STP的多层交换网络时,一定要注意避免在VLAN1中形成第二层的环,当然如果在访问层有多个VLAN/IP子网,则trunk是仍然需要的。在这种情况下,从trunk端口上手工清除VLAN1。
小结,在trunk链路上,如下部分是很有价值的:
u Trunk链路上的CDP、VTP和PagP更新通常都通过VLAN1进行,就算VLAN1在trunk上被清除了或VLAN1不再是native vlan也不例外。不允许VLAN1传输数据与控制面流量继续使用VLAN1进行发送之间并不冲突。
u 802.1Q IEEE BPDUs通过在VLAN1(通用生成树)上转发未标记的帧来实现和其它厂商设备的通过。直到VLAN1在trunk上被清除为止。Cisco每VLAN生成树(PVST+)的BPDU打过标记后在其它的VLAN中发送。在本文中生成树协议一节中有更详细的描述。
VLAN Trunking协议(VTP)
在创建VLAN前,应该决定在网络中使用何种VTP模式。在启用VTP的情况下,在一台交换机上对VLAN配置做出的改变将自动的繁殖到同一个VTP域中的其它交换机上。
操作概述
VTP是一个在第二层维护VLAN配置的消息协议,可以管理VLAN的添加、删除和重命名。VTP最大限度的减少了错误配置所引起的一系列问题:如果重复的VLAN名字、错误的VLAN类型定义、安全策略失效等 。VLAN数据库是一个存放在VTP server上的二进制文件,它和配置文件是分开存放的。
交换机之间的VTP协议通讯采用一个ethernet组播目的地址(01-00-0c-cc-cc-cc),SNAP HDLC协议类型为0x2002。它不会在非trunk口上支持(VTP是ISL或802.1Q的有效荷载)。所有在DTP使trunk在线之前是不会有消息发送的。
消息类型包括:每5分钟发送一次的"汇总通告",当有改变发生时的"子集通告和请求通告",配置了VTP修剪时的"加入"。每当VTP服务器有一个改变发生,VTP配置版本号加1,并自动繁殖到整个VTP域中。
如果一个VLAN被删除了,该VLAN中的端口将全部进入不活动(inactive)状态。与此类似地,一台在client模式的交换机在不能收到VTP的VLAN表之前,除了VLAN1的所有端口均将处于一种非活动状态。

VTP第二版包括下列灵活的特性,但和VTP第一版无法进行互操作:

u 支持令牌环

u 交换可以繁殖他不能解析的参数值

u 基于版本的透明模式:透明模式不再检查VTP域名,这支持多个VTP域穿越一个透明域

u 版本号可以得到繁殖:如果所有的交换机都支持V2,那个在一个交换机上配置v2模式,同一VTP域内所有交换机都可以启用v2模式。

更多的信息请参见:理解和配置VTP

推荐

对于使用VTP Client/Server或透明模式没有特殊的推荐,一般情况下在分布层交换机中采用两台VTP server。

大部分企业基于如下原因,都先采用VTP透明模式将交换机接入网络后。然后再修改为server或client模式:

u 使用VTP后,删除一个VLAN将在整个VTP域中删除它,误操作的风险很高。使用透明模式则不存在这个问题

u 没有新加入一个VTP修订版本更高的交换机时将引起整个VTP域内的VLAN配置信息丢失的风险

u  修剪了不必要的VLAN信息,带宽利用率更高。手工修剪也可以减小生成树的直径。

u 在CatOS6.x中开始支持的扩展VLAN范围(1025-4094),只能用于透明模式

u Campus manager3.1开始支持VTP透明模式,在此以前,在VTP域中至少要求有一个VTP server.

注意:在set trunk x/y 1-10命令中并没有设定在此trunk链路上仅允许VLAN1-10通过。需要用clear trunk x/y 11-1005来显式地指定。

其它选项:

在令牌环中,需要VTP v2,强烈推荐使用Client或server模式。

Set vtp pruning enable命令可以自动修剪VLAN,但和手工修剪不同,自动修剪不会改变生成树的直径。

从CatOS 6.x开始,Catalyst系列交换机和IEEE802.1Q保持一致,支持4096个VLAN,这些VLAN分成三部分,其中只有部分能通过VTP进行管理:

normal-range VLANs:1-1001

Extended-range VLANs:1025-4094,不能被VTP管理

Reserved-range VLANs:0,1002-1024,4095

IEEE组织提出了一个效果和VTP类似的标准,做为802.1Q通用属性注册协议(GARP)的一部分,通用VLAN注册协议(GVRP)允许在不同厂商的设备之间实现VLAN管理的互操作,它走出了本文档的范围。

在CatOS 7.x中,可以关闭VTP,关闭VTP后和VTP透明模式很类似,但交换机不再转发VTP的帧。这是一个相当有用的特性。
自动协商


以太网/快速以太网。
自动协商是快速以太网(802.3U)的一个可选项,它使设备可以交换一条链路的速率和双式模式,自动协商在第一层操作,常用于接入层端口。
运行机制
10/100自适应以太网链路上最常见的问题是双工模式不匹配。这种情况偶尔发生在一端或两端的端口复位,自动协商进程未能使用两端的配置一样中。另一个原因是配置了一端,忘记配置另一端了。双工模式不匹配导致的典型症状是交换机上的FCS、CRC、alignment和runts数量大幅增加。
对自动协商的一个最常见的误区是认为将一端手工配置为100M全双工,另一端就会自动变成全双工。实际上,这样做会导致双工模式不匹配,这是因为链路的一端发起协商,然而看不到另一端过来的任何参数,这样,缺省就会设置为半双工。
绝大多数Catalyst 以太网模块支持10/100M和半/全双工自适应,可以使用show port capabilities 命令来证实这一点。
FEFI
远端故障指示(FEFI)保护100Base Fx(光纤)和Giga接口,就象自动协商保护100BaseTX(钢缆)的物理层信号不匹配的一样。
远端故障是指在链路的一端能检测到,而另一端检查不到,就象一条未连接的tx链路一样。在这种情况下,发磅工作站发继续收到合法的数据包,通过链路检查监视器监测链路情况也是好的,然后,它却检查不到对方工作站并未收到自己发出的数据包。在100BaseFx链路上,工作商将发出一个特殊的FEFI IDLE位序列来检查这种错误,FEFI-IDLE序列会将远端端口标识为shutdown状态(ErrDisable)。在UDLD一节中有详细的讨论。
下列硬件模块支持FEFI:

Catalyst 5000:WS-X5201R、WS-X5305、WS-X5237、WS-U5538、WS-U5339
Catalyst 6000和4000:所有的100BaseFx模块和GE模块。

建议
将端口配置为自动协商还是固定的配置一种速度模式取决于接在交换机上的设备类型。Catalyst交换机兼容802.3u规范,和设备间的自动协商也工作良好,然而,不严格遵守规范的网卡或设备则会导致出现问题。硬件不兼容也有可能是因为一些未写进802.3U的一些供应商的高级特性造成的。这通常会在如下所示的注意事项文档中给出:
注意事项:Intel Pro/1000T网卡和Cat4k/6k连接时的性能提示。
这样,把工作站之间的端口速度、双工模式设置正常是值得期待的,下面是基本的调试步骤:

确认链路的两端都设置为固定的工作模式或都设置为自动协商
检查CatOS发行公告中的警告事项
检查网卡驱动和操作系统的版本号,通常需要最新的驱动或补丁程序。


原则上在任何链路上都应该首先使用自动协商模式,这对于使用笔记本电脑等暂时接入的设备具备相当明显的优点。自动协商在服务器、交换机到交换机和交换机到路由器之间也工作得很好。然而,就象上面所提及的一弱,在有些环境中自动协商是不可用的。在这种情况下可以使用如下的调试步骤:
如果端口的速度和双工模式都设置为自动协商,可以使用如下命令将端口模式设置为自动状态:

set port speed auto (缺省配置)

如果要将端口配置为固定速度,可以使用如下的配置命令:

set port speed <10 | 100>
set port duplex

其它:
交换机之间的链路一般用第二层的协议如UDLD等来增强检测能力。

千兆网

千兆网有一个比10/100兆网范围更大的自动协商机制(Ieee802.3z),用来交换流控参数、远程失效信息、双工信息(虽然绝大多数Catalyst上的千兆端口只支持全双工模式)。注意802.3z已经被IEEE802.3:2000标准给替代了。

运行机制

千兆端口的协商在缺省状态下的启用的,并且一条链路两端的端口必须是同样的设置。不象快速以太网,如果千兆链路两端的设置不一致,端口状态将不会up(交换的参数不一样)。和快速以太网的另一个不同点的,千兆端口不协商端口速度,也不能使用set port speed禁用自动协商。(译者注:最新的1000-baseTx规范中是可以协商端口速度的)
例如,假设有两个设备A和B,每个设备对自动协商都有启用一禁用两种状态,下面就是可能的端口状态

建议:

在千兆以太网中启用自动协商比在10/100兆环境中更为关键。实际上,只有在设备不支持自动协商或自动协商不成功的情况下才在交换机的端口上禁用自动协商。Cisco建议在所有的交换机到交换机链路上启用自动协商,在基本上所有的千兆以太网端口上都启用自动协商。使用以下的命令来启用自动协商:

set port negotiation enable (缺省配置)

一个已知的例外是在运行早于IOS12.0(10)S(该版本增加了流控和自动协商)的GSR上面。在这种情况下,需要关闭这两个特性,否则交换机端口将报务“未连接”,在GSR上会报错,配置如下:

set port flowcontrol receive off
set port flowcontrol send off
set port negotiation disable

交换机到服务器的连接则必须具体情况具体分析,已证实可以和Sun、HP和IBM的部分服务器可以自动协商。

其它:

流控是802.3x规范中的一个可选部件,如果要使用必须进行协商。设备不一定能发送和响应一个PAUSE帧慢(使用01-80-c2-00-00-00 0F的周知MAC),这样他们也许不允许远端设备的流控请求。端口在输入缓冲区快満时会给对方设备发出一个PAUSE帧请示暂停发送,将后续帧放到对端设备的发送缓冲区中。这不可能解决超量会聚时的稳定性问题,但对突发流量的控制相当有效。这个特性在端接点和访问层的连接中最有用,因为主机的发送缓冲和它的虚拟内存一样大,在交换机到交换机的连接中有一定的效果。
在交换机上使用下列的命令配置流控:

set port flowcontrol
>show port flowcontrol
Port Send FlowControl Receive FlowControl RxPause TxPause
admin oper admin oper
..... ........ ........ ........ ........ ....... .......
6/1 off off on on 0 0
6/2 off off on on 0 0
6/3 off off on on 0 0

注意:所有处于协商模式的Catalyst模块都会响应Pause帧,一部要模块(如WS-X5410,WS-X4306)则不会发送Pause帧,因为它们的非阻塞模块。
动态Trunking协议(DTP)
封装类型
Trunk通过在标准的以太网帧上增加临时的标记(在一条链路)来实现跨设备的VLAN,这样就可以在一条链路上传送多个VLAN的信息。也确保了在交换机之间隔离每个VLAN的广播域。在交换机内部使用内容地址存储(CAM)表来维护VLAN和帧之间的对应关系。Trunking在很多二层网络中都支持,如ATM LANE、FDDI 802.10和以太网等,本文只讨论以太网中的Trunk。

ISL运行机制
ISL做为Cisco的一个私有的标记方案,已以使用了相当长的一段时间,现在也可以使用IEEE的802.1Q标准。

ISL和tunnel协议很相似,使用一种两级封装机制将整个原始的帧封装起来,这样就便于封装非以太网状。ISL在在原始的以太网帧的基础上增加一个26字节的头和一个4字节的FCS字段,这种帧只能被配置成trunk的端口处理。ISL可以支持1024个VLAN。

ISL帧格式:

以太帧进行ISL封装后,最大长度可以达到1548字节。

802.1Q运行机制
IEEE 802.1Q标准除封装格式外,还定义了如生成树增强、通用VLAN注册协议(GARP)、802.1p QOS标记更等更多的内容。802.1Q帧格式中保留了原始的以太网帧中的源地址和目的地址;但为因为802.1Q将在帧头中增加一个长为4字节的标记,这样以太网帧长度达到1522字节,就仍然需要交换机处理能够处理大帧。对于access模式的端口,启用了802.1p用户特权标记的情况下,也需要能够处理1522字节的帧。802.1Q可以支持4096个VLAN。

在trunk链路上除了native VLAN(该VLAN中的数据对于交换机入口来说是隐式标记了的)外其它所有VLAN中的数据帧都将打上802.1Q帧标记,native vlan上发出的帧永远是不打标记的。

802.1Q/801.1p帧格式:

建议
由于所有的新硬件都支持802.1Q(一部分硬件如Catalyst4000系列和CSS11000系列只支持802.1Q),Ultra建议在所有的的新网络中都使用802.1Q标准,老的网络也应该逐步从ISL迁移到802.1Q、

IEEE标准可以在不同厂商的设备间实现互操作一,这使得Cisco环境中和支持802.1p的网卡和设备之间的互操作成为可能。虽然ISL和802.1Q都是很成熟的技术,但做为IEEE标准将有更多的第三方产品的支持。

因为交换机之间的封装类型通过DTP进行协商,在缺省情况下,如果双方都支持ISL,ISL将成为首选,要使用802.1Q,需要使用以下的使用进行手工设置:

set trunk  dot1q

如果在trunk链路上clear了VLAN1,虽然所有的用户数据帧均无法传送或接收,但网络管理处理器(NMP)上的控制流量如CDP或VTP将继续在VLAN1上传送。 CDP、VTP和PAgP包将永远在Trunk链路上的VLAN1中传输,如果交换机的native VLAN被改变了,这些控制帧将打上VLAN1标记。如果这个dot1Q链路的对端是一台路由器,在native vlan改变的情况下,路由器上的需要将一个子接口放到VLAN1中以接收标记过的CDP帧。

注:router上修改native vlan需要12.1(3)T及以上版本的IOS支持。

对于native VLAN的隐式标记将导致一个潜在的安全风险,它将可能导致不通过路由器就可以将帧转发到其它的VLAN中,Cisco强烈建议将vlan1用做native VLAN,把处于access模式的端口都放到其它的VLAN

Trunking模式
DTP是一个第二代的DISL(动态ISL)协议,用来确保一个trunk链路两端的ISL或802.1Q帧参数不会出现不一致的情况,如封装类型、native VLAN和硬件兼容性等。也可以通过确保端口两端状态的一致性来帮助避免出现在非Trunk链路上发现标记过的帧这样一个潜在的安全风险。

运行机制
DTP是一个用于协商一条链路的配置参数的一个二层协议,它使用一个SNAP协议类型为0x2004的组播MAC地址(01-00-0c-cc-cc-cc),参数如下表所示:


下面的该协议的一些注意事项:

DTP假定是一个点到点连接,Cisco设备只有在点到点连接的情况下支持802.1Q trunk.

在进行DTP协商的同时,端口将不参加STP计算,只有当端口成为三个DTP状态(Access、ISL或802.1Q)之一后,该端口才参加STP计算(如果配置了PAgP,PAgP处理程序将在STP计算前进行)。

如果端口是处于ISL trunk模式,DTP包在VLAN1上发出,在其它情况下(802.1Q或非trunk口),DTP包在native VLAN上发出。

在desirable模式下, DTP包传送VTP域名 (在一个trunk链路启动前,两端必须相符)。

在协商过程中,每秒发出一个消息,协商完后,每30秒发出一个消息。

必须相当明确"on," "nonegotiate,"和"off"这三个模式的最终转换状态,错误的配置将导致出现相当严重的后果。

处于"on," "auto,"或"desirable"模式的端口周期性的发出DTP帧,如果一个处于auto或desirable模式的端口在5分钟内没收到DTP包,它将切换为非trunk状态。

建议
Cisco在一条链路的两端均配置为"desirable"模式,在这种模式下,管理员可以通过syslog server和命令行状态信息清楚地看到一个端口up并切换到trunk状态,不象"on"模式,它可以使一个端口就算是在对方处于错误配置状态时这会出现up信息。 另外,"desirable"模式的trunk在链路的一端无法成为trunk或从trunk状态掉下来的情况下提供了一定的健壮性,使用如下使用来配置为desirable模式:

set trunk desirable

注意: 将所有的非trunk端口都配置为"trunk off"模式,这有助于连接主机的端口尽快处于up状态,更详细的信息可以参见本文的STP一节。可以使用set port host命令或如下命令进行配置:

set trunk off

其它选项
更为普通的一种配置模式是只在分布层使用"desirable"模式,而在接入层使用缺省的auto模式。这样可以简化配置。在对端设备不支持通过DTP进行Trunk协商时(如一些Catalyst 2900XL之类的基于IOS的交换机,或其它厂商的交换机),这样就需要使用"nonegotiate"模式来将端口无条件地配置为trunk模式,使用如下命令进行配置:

set trunk nonegotiate

由于在处理桥接时,从处于"on"模式的端口收到的DTP帧将有可能发回这个trunk端口,这将引起交换机进行不必要的重新协商(这意味着端口的trunk将不停地在trunk down/up状态之间切换)Cisco建议将连接到IOS路由器的trunk口设置为"nonegotiate"模式,在这种模式下,交换机不会发送DTP帧。

Cisco不支持DTP的交换机:

Catalyst 2900XL/3500XL

IOS版本早于12.1(6)EA2的Catalyst 2950/3550系列
生成树协议(STP)
基本含义
生成树是一个交换网络中检测交消除冗余链路以防止出现二层循环的一个协议。如果不运行STP,帧有可能会在网络中循环发送,流量极剧升高,最后使整个网络彻底瘫痪。STP最初是一个较慢的基于软件实现的一个桥接规范(IEEE802.1D),现在已经是一个相当成熟的协议了,可以在一个具有多VLAN、大量交换机、多厂商的复杂环境中很好的实施。

CatOS 6.x继续进行一些新的STP的开发,如多实例生成树(MISTP)、loop-guard、root-guards和 BPDU 到达时间检测等,在CatOS7.x版本中,支持新的一些标准化协议,如分享生成树(IEEE802.1S)和快速收敛生成树(IEEE802.1w)等。

运行机制
具有最低的桥ID(BID)的交换机每个VLAN的根桥(root bridge),BID由桥优先级和交换机的MAC地址组成。

最初,所有的交换出都将发出包括自己BID及到达自己的路径代价(path cost)在内的桥接协议数据单元(BPDUs),这样就可以检测出root bridge和到达root bridge的最小代价的路径,从root bridge发出的BPDUs中包含的附加设置将覆盖交换机的本地配置,这样整个网络就使用一个一致的时钟。

网络拓朴将按照下述步骤进行收敛:

在整个生成树域中选举出一个唯一的root bridge;

在每个非root bridge的交换机上选举出一个root端口(面向root bridge);

在每一段中选举出一个designated端口用于转发BPDU;

非designated端口切换到block状态。


在生成对中有两种BPDUs:用于配置的BPDUs和拓朴变化提示(TCN)BPDUs.

用于配置的BPDU流量
用于配置的BPDUs每隔一个hello间隔从Root Bridge的所有端口发到叶交换机上面,用于维护整个生成树的状态。在稳定状态,BPDU流量是单向的,Root端口和blocking端口仅接收用于配置的BPDUs,而指定端口只发送用于配置的BPDUs.

如果Root Bridge失效或所有连接到Root Bridge的链路都失效了,在Maxage计时器超时后重新进行选举。

拓朴变化提示(TCN)BPDUs流
拓朴变化提示BPDUs在检测到生成树的拓朴发生改变时由叶交换发到Root Bridge,Root端口只发送TCNs,而指定端口只接收TCNs.

TCN BPDU在发向Root Bridge中的每一步都被确认,这是一个可靠的机制,一旦到达Root Bridge,Root Bridge将通过一个将TCN标记设置为Maxage+Fwddely(缺省为35秒)的用于配置的BPDU向整个生成树域宣告这个拓朴变化的发生,使所有的交换机将它们的CAM老化计时器从5分钟(缺省的)修改为Fwddelay(缺省为15秒)所规定的时间间隔。

生成树模式
VLAN和生成树之间的关联有如下几种模式:

所有VLAN使用同一个生成树,称为Mono生成树,如IEEE802.1Q

每个VLAN一个生成树,或叫做分离生成树,如Cisco PVST。

几个VLAN一个生成树,或称为多生成树,如Cisco MISTP、IEEE802.1s等。

所有VLAN使用同一个生成树的模式只有一个活动的拓朴,无法进行负载均衡,一个STP blocked端口将对所有的VLAN均为Blocked状态,在所有的VLAN中都不转发数据。

每个VLAN一个生成树的模式提供负载均衡功能,但在VLAN数目增长是会消耗更多的CPU处理能力用于处理BPDU。在CatOS的发行公告中提供单个交换机中能支持的生成树个数的指导性意见,对于6000 SUP1的公式为:

端口数 + (Trunk数 * Trunk上的VLAN的数目) < 4000

Cisco MISTP和新的802.1s标准是一个发展方向,例如可以只定方两个STP进程,将所有的VLAN映射到这个两生成树中,这个技术可以在启用负载均衡的情况下支持到数千个VLAN。

BPDU 格式
为了支持IEEE 802.1Q标准, Cisco将现有的STP实现扩展为以支持穿越802.1Q单生成树域,这样PVST+同时支持802.1Q的MST和Cisco的PVST,而不需要额外的命令或配置。另外, PVST+提供用于确认交换机之间的Trunking和VLAN IDs不会出现不一致的配置的验证机制。

运行PVST+协议有如下注意事项:

PVST+通过在802.1Q trunk链路上的称做通用生成树(CST)的协议来实现和802.1Q MST的互操作。CST永远运行在VLAN1上面,为了和其它厂商的设备实现互操作,VLAN1在链路上应该存活。CST BPDUs是透明传输的,不打标记,发送到IEEE标准桥组地址(MAC地址01-80-c2-00-00-00, DSAP 42, SSAP 42). 为了描述的完整性,一组BPDUs被并行地发送到VLAN1上的Cisco分享生成树的MAC地址

PVST+将PVST BPDUs以组播数据的形式穿越802.1Q VLAN域. Trunk上每个VLAN中Cisco's分享生成树BPDUs被发送到MAC 地址01-00-0c-cc-cc-cd (SNAP HDLC协议类型0x010b),Native VLAN上的BPDUs不做标记,其它所有VLAN中的BPDUs将打上相应的标记。

PVST+检查端口和VLAN的冲突,PVST+阻塞收到不一致的BPDU的端口以避免出现循环,也通过syslog信息提示检测到的任何错误配置。

PVST+在运行在ISL trunk上的PVST提供后向的兼容,ISL封装的同样通过IEEE MAC进行接收和发送,换句话说,每个BPDU的类型都是针对一个链路的,不存在转换的说法。

建议
所有的交换机在缺省状态下都是启用了STP的,就算在不存在二层循环的情况下仍然推荐使用。因为如下原因,Cisco建议启用STP:

如果出现了循环(包括插错了线、电缆有问题等), STP可以防止由于组播和广播所引起的网络破坏。

保护EtherChannel不中断。

绝大多数网络配置了STP,最大限度地提高网络的透明度,越透明就意味着越稳定。

避免双网卡的误操作或服务器启用了桥接所导致的严重后果;

许多协议(如PAgP、IGMP snooping和trunking)的软件都和STP紧密相关,所以不运行STP将引起一些不必要的麻烦。

不要改变计时器,这可能会影响网络的稳定性。在绝大多数网络布署中都没有修改计时器,因为虽然可以很方便地通过命令行进行修改,但很难周全地考虑修改后所引起的各个可能的变化。

在理想状态下,不应该上用户数据在管理VLAN上传送,特别是在老的Catalyst交换机处理器的尾部 下,最好将用户数据和管理VLAN相分离以避免STP出现问题,一个有问题的工作问可以使用超级引擎疲于处理广播包而无法处理BPDU。

不要设计过量的冗余,这会造成故障诊断的恶梦--太多的blocking端口将严重影响网络的稳定性。保持整个STP直径在七跳以内,条件允许的情况下,在设计中使用多层模块,减小交换域和,使用确定的blocked端口。

手工设计Root特性和Blocked端口,并在拓朴图上明确标注,STP的故障诊断往往从blocked端口开始,使Block端口从blocking状态切换到转发状态是诊断过程中的一个关键组成部分,选择分布层或核心层交换机做为Root/Secondary Root Bridge,因为这是整个网络中最为稳定的,使用最优化的第三层和HSRP来覆盖每二层数据转发路径,可以使用下述宏命令将交换机设置为Root或secondary root:

set spantree root
注意:这个宏命令将交换机的优先级设置为8192(缺省状态下)、当前root优先级减1(如果存在另一个root bridge)或当前root优先级(交换机Mac地址比当前Root Bridge小)。

在Trunk端口上清楚不需要的VLAN,(需要进行双向配置),这可以限制STP的范围并减轻NMP的处理负担, VTP的自动修剪不会将这些VLAN从STP计算中移除。从CatOS5.4开始,VLAN1同样可以从Trunk链路上修剪掉。

其它选项
Cisco还有一个叫做VLAN-Bridge的STP协议,它使用01-00-0c-cd-cd-ce的目标MAC地址,协议类型为0x010c.

当需要在VLAN间桥接不可路由的信息或使用一些无法和IEEE生成树无法协同工作的传统协议时这是一个相当有用的功能。如果VLAN间的桥接因为第二层被阻塞时,第三层的流量同样会出被阻塞掉,这是一个不希望发生的副作用,这时使用VLAN-bridge就可以创建一个独立于STP的单独的实例,提供一个单独的拓朴,这样就可以不会影响到第三层的IP流量。

Cisco建议在需要在如MSFC之类的路由器上VLAN之间做桥接时使用VLAN-bridge。

PortFast
PortFast用于在访问层端口上跳过正常的生成树操作,加快终端工作站接入到网络中的速度,在一些如IPX/SPX中,需要工作站一接入网络就立即转发数据以避免出现GNS的问题。

运行机制
当一台主机接入到网络时,PortFast跳过了STP正常的listening和learning状态,直接从blocking状态进入到转发状态,如果没有启用这个特性,STP在它认为端口可以进入转发状态前将抛弃所有的用户数据包,这会用到两个ForwardDelay计时器(在缺省情况下是30秒)。

PortFast模式也避免了端口状态改变发出STP TCN后需要众learning状态到forwarding状态的转变。STP PortFast在Catalyst 5000多层交换网络和Multicast CGMP中都相当重要,这些环境中的TCNs可能会引起CGMP CAM表超时。结果就会丢失在下一个IGMP报前的组播包,也会引起多层交换Cache的清空,并增加router CPU的负担。(对Catalyst 6000中的MLS实现没有影响)

建议
Cisco建议在所有接计算机端口上启用portfast,在所有接交换机或未使用的端口上禁用portfast.

在接计算机的端口上同样应该禁用Trunking和Channeling,在缺省状态下,每个访问层端口都是启用了Trunk和channeling的。如果任由这些协议的协商,将引起一些不希望发生的后或,如DHCP请求不被发送等。使用如下宏命令达到上述要求:

set port host

该命令是如下三个命令的集合:
set spantree portfastenable
set trunkoff
set port channelmode off


注意:PortFast并不意味着生成树协议在这些端口上完全不运行了,实际上BPDU仍然在发送、接收并处理。

其它选项
PortFast BPDU-Guard提供了一个防止循环的机制,在一个Portfast端口上收至BPDU时,将会把该端口设置为errdisable状态。

在一个接入层端口上应该不会收到BPDU包,因为这些端口不是接在交换机上面。一但在这上面收到了BPDU包,就说明出现非常危险的错误配置,需要管理员及时采取行动。当启用BPDU-Guard特性后,生成树协议将关闭portfast配置,并将这些端口设置为生成树Blocking状态。

使用如下命令进行配置:

set spantree portfast bpdu-guard enable


可以使用SNMP trap或syslog消息通知管理员这个端口down了,也可以为ErrDisabled的端口配置一个自动恢复时间。

注意:从CatOS7.x版本开始提供Trunk端口上的PortFast特性,Trunk口上的Port特性用于加快第三层网络的收敛,为了实现这个特性,CatOS7.x也提供了每端中的PortFast BPDU-Guard配置命令。

UplinkFast
UplinkFast在接入层提供了一个在出现直接链路失效时的STP快速收敛功能。它不需要改变STP协议,就可以在特殊环境中将收敛时间从30秒减少到3秒

运行机制
在接入层使用Cisco的多层交换模型进行设计,如果转发的上行链路出现了问题,则处于blocking状态的上行链路可以直接转换为转发状态,而不必经过listening和learning状态。

每个VLAN中的一个上行组由一个root端口和备份root端口组成,在通常情况下,root端中保证到root bridge的连接能,如果主"root-connection"因为任何原因而失效,备用root链路立即成为转发状态,而不必要经过传统的30秒收敛延时。

因为这个特性跳过了通常的STP拓朴收敛,在域中的交换机上一个候选的拓朴修正机制,以便能够通过候选的链路到达本地终端工作端。这样,运行UplinkFast的接入层交换机将会把它的CAM表的每一个MAC地址放到一个多播帧中传送到01-00-0c-cd-cd-cd( HDLC 协议类型0x200a),用于更新域中其它交换机的CAM表。

建议
Cisco建议在有block端口的交换机上启用UlinkFast,典型的就是接入层交换机,不要在没分布层或核心层交换机上使用uplinkfast,使用如下命令:

set spantree uplinkfast enable

这个命令同时也会提高bridge优先级和port优先级以降低交换机成为root bridge和指定端口的风险。

注意: 在启用"protocol filtering"特性的情况下,需要使用 "all protocols"关键字,因为CAM表中会和MAC、VLAN信息一样记录协议类型。UplinkFast需要产生每个MAC地址的每个协议,"rate"关键字指出每秒产生一个Uplink拓朴更新帧。

Backbone Fast
Backbone Fast通过在STP协议上增加功能的方式提供间接失效环境下的快速收敛,典型地,收敛时间可以从缺省的50秒减少到30秒。

运行机制
在一个root端口或blocked端口从它的指定bridge收到"inferior BPDUs"就进行初始化,这可能会在下级交换机在丢失它到root的接时并发出它自己的BPDUs的时候发生,inferior BPDU意味着交换机即是一个root bridge又是一个指定gridge。

根据通常的生成树规则,收到BPDU的交换机将根据配置的Maxage计时器(缺省为20秒)忽略该BPDU,然而在配置了backbone Fast的情况下,交换机在收到inferior BPDU时就认为拓朴可能发生了改变,并开始尝试通过Root链路查询(RLQ) BPDUs检测是否存在一个通向root bridge的候选路径,不管root是否可用,这个协议都允许交换机进行检测,并以更少的时间将block端口切换为转发状态,并提示发出inferior BPDU的交换机root仍然可用。

该协议应该注意如下事项:

只在root端口上发送RLQ包。

如果收到RLQ的交换机是root交换机或丢失了到root的连接,则这个交换机则会进行回复,如果它不知道这些情况,它必须从它的root端口转发这些查询。

如果一个交换机丢失了到root的连接,它必须回答一个否定答案。

只能在收到查询的端口上发出答复

Root交换机必须给一个肯定的答复

丢弃在非Root端口上收到的答复

这样STP的收敛时间可以减少约20秒,因为不需要等待Maxage超时。

建议
Cisco建议在所有支持STP的交换机上启用Backbone Fast,它不会造成生产环境的中断。使用如下命令配置Backbone Fast:

set spantree backbonefast enable


注意:需要在域中的所有交换机上配置这条全局命令,这样才能理解这个增加的特性。

其它说明
2900xl和3500xl系列交换机不支持BackboneFast,在有这些交换机的环境中不能启用Backbone Fast.在未来,IEEE 802.1w快速收敛STP将提供类似的功能,这样就可以和其它厂商的设备进行互操作了。
1998年,蓝色学苑www.bluestudy.net创立了,我们翻译了大量路由交换的资料和调试案例,启蒙了大批网络技术爱好者。我们的创始人也在1999年通过CCIE认证,成为国内为数不多的老牌CCIE之一。2002年,蓝色学苑骨干成员成立蓝盟www.lanmon.com 专注于网络维护、网管外包、电脑维护、服务器升级、网络改造、系统集成、网络咨询、服务管理、运维咨询、ITIL培训、ITSS咨询等一站式IT外包服务。我们拥有近200名工程师,正在为近500家客户提供“一站式” 的IT外包服务。网址:www.lanmon.net 官方微博:http://weibo.com/lanmon2012 咨询电话:4008200159
版权声明:本站文章90%以上为蓝盟原创,转载请注明出处:www.lanmon.com。如有版权疑问随时致电:021-51693198-226,我们将第一时间给予答复。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部