生成树协议
交换机端口广播抑制技术
总的来说,这是一次失败的割接。虽然前后准备了两个星期,方案也拿给几位甲方领导过目了,但最后还是因为STP区域过大导致了割接失败。不过不得不说,失败的案例其中也有可圈可点的地方,就算是失败的原因也可以说给大家听,让大家可以从中总结经验和教训。本讲有用的知识点就是交换机端口广播抑制技术,在交换网络中,为核心交换机配置端口广播抑制,可以有效防止广播风暴。
网络中有6个业务区域,分别是:协同办公区、综合业务区、资产管理区、办公局域网区、营销系统区、财务系统区。这6个区域都要访问到NAS服务器,但是区域之间又不能相互访问。网络在最初设计的时候,就没有采用OSPF路由协议,因为OSPF路由协议会使得所有网络区域的网段收敛,如果要限制区域之间的互相访问就必须在核心设备上写大量的ACL,所以最后采用的方法是一个区域走一个VLAN到NAS服务器,6个业务区域就创建了6个VLAN,然后每个NAS服务器上也安装了6张网卡,分别接在6个区域的VLAN内,这样就可以实现“6个区域都访问NAS,6个区域都不能互访”的要求了。
既然采用了“超大规模二层”的网络结构,于是STP协议这种用于防止二层环路的协议就显得相当重要了。
省数据中心NAS区域两台接入交换机(型号为ZTE8905E)分别接入业务区两台汇聚交换机(型号为Cisco 6509E)。因为ZTE交换机与Cisco交换机的STP协议不兼容,导致ZTE交换机无法自动切换HA的主备。另外,营销系统区和综合业务区使用的H3C 7505交换机的STP与ZTE交换机之间的STP也存在不兼容现象。
a、改造之前的总拓扑图
b、协同办公区区域拓扑图
两台NAS服务器的网关位于业务区汇聚交换机,ZTE 8982交换机只作VLAN透传。例如:协同办公区NAS服务器的网关的VLAN ID是181,在ZTE8982和协同办公区Cisco 6509之间就形成了一个“口字形”VLAN 181的物理环路,所以必须开启STP进行环路控制。
由于STP不兼容的问题,导致环路无法避免,所以在现行的网络环境中,将ZTE 8982之间的心跳线拆除,现在各个业务区域访问NAS,都只是单链路在跑单边设备。当这条单链路断开的时候必须手动把流量切换到备用设备上,无法实现自动切换。
非结构化存储系统两台接入交换机,型号为ZTE8905E。为了提高可靠性,预备将这两台ZTE8905E交换机配置为HA组。但由于ZTE8905E与各个办公区域的Cisco 6509E交换机的STP不兼容,所以两台ZTE8905E之间的心跳线目前处于断开状态以防止出现环路。此时两台ZTE8905E无法自动切换HA的主备状态,网络故障隐患较大。
网络经过改造后,使用Cisco 4507交换机替换原有ZTE交换机,并连接心跳线。改造完成后,可以避免ZTE与Cisco之间STP不兼容的问题,同时达到防环和可以自动切换HA主备设备的目的。
改造后的协同办公区拓扑图:
a、消除STP不兼容的问题
在改造之前的网络环境中,由于ZTE设备与Cisco、H3C设备带来的STP不兼容的问题,导致两台ZTE交换机无法连接心跳线,这也直接导致了两台ZTE的HA不可用。网络经过改造以后,可以到达Cisco与Cisco设备之间、Cisco与H3C设备之间的STP相互兼容,可以启用Cisco设备之间的HA组,也能够更好的防止二层环路。
b、防止各个VLAN的广播风暴
网络经过改造以后,网络中的每个访问NAS服务器业务被分割在每个VLAN之间。为了防止某个VLAN中出现广播风暴,影响交换机的性能,进而影响其他VLAN的正常通信,必须在NAS区域两台接入交换机与业务区交换机连接的接口上配置广播抑制,当广播报文数量达到限制的时候就阻塞接口,防止广播风暴。
本次网络改造涉及到设备的更换,所以必须考虑到更换后设备的互联接口。更换设备前和更换设备后对应互联接口信息如下表所示:
更换前设备 | 更换前接口 | 更换后设备 | 更换后接口 | 描述 |
zte8908E-A | gei-0/5/0/3 | Cisco4503E-A | Gi 5/ 0/3 | To_DMZ |
xgei-0/3/0/1 | Gi 3/1 | Trunk 151,159,163,181,247 | ||
xgei-0/3/0/2 | Gi 3/2 | Vlan 163 | ||
xgei-0/3/0/3 | Gi 3/3 | Trunk 151,159,163,181,247 | ||
xgei-0/3/0/4 | Gi 3/4 | Trunk 151 | ||
xgei-0/3/0/5 | Gi 3/5 | Trunk 181 | ||
xgei-0/3/0/6 | Gi 3/6 | 无 | ||
xgei-0/3/0/7 | Gi 3/7 | Trunk 132 | ||
xgei-0/4/0/11 | Gi3/8 | trunk 151,159,163 | ||
xgei-0/4/0/12 | Gi3/9 | trunk 151,159,163 | ||
gei-0/5/0/1 | Gi2/1 | trunk 247 | ||
gei-0/5/0/2 | Gi2/2 | trunk 159 | ||
gei-0/5/0/3 | Gi2/3 | trunk 132 | ||
gei-0/5/0/5 | Gi2/4 | trunk 151,159,163,247 | ||
gei-0/5/0/6 | Gi2/5 | trunk 151,159,163,247 | ||
gei-0/5/0/7 | Gi2/6 | trunk 151,159,163,247 | ||
gei-0/5/0/8 | Gi2/7 | trunk 151,159,163,247 |
更换前设备 | 更换前接口 | 更换后设备 | 更换后接口 | 描述 |
zte8908E-A | gei-0/5/0/3 | Cisco4503E-A | Gi 5/ 0/3 | To_DMZ |
xgei-0/3/0/1 | Gi 3/1 | Trunk 151,159,163,181,247 | ||
xgei-0/3/0/2 | Gi 3/2 | Vlan 163 | ||
xgei-0/3/0/3 | Gi 3/3 | Trunk 151,159,163,181,247 | ||
xgei-0/3/0/4 | Gi 3/4 | Trunk 151 | ||
xgei-0/3/0/5 | Gi 3/5 | Trunk 181 | ||
xgei-0/3/0/6 | Gi 3/6 | 无 | ||
xgei-0/3/0/7 | Gi 3/7 | Trunk 132 | ||
xgei-0/4/0/11 | Gi3/8 | trunk 151,159,163 | ||
xgei-0/4/0/12 | Gi3/9 | trunk 151,159,163 | ||
gei-0/5/0/1 | Gi2/1 | trunk 247 | ||
gei-0/5/0/2 | Gi2/2 | trunk 159 | ||
gei-0/5/0/3 | Gi2/3 | trunk 132 | ||
gei-0/5/0/5 | Gi2/4 | trunk 151,159,163,247 | ||
gei-0/5/0/6 | Gi2/5 | trunk 151,159,163,247 | ||
gei-0/5/0/7 | Gi2/6 | trunk 151,159,163,247 | ||
gei-0/5/0/8 | Gi2/7 | trunk 151,159,163,247 |
本次网络改造涉及更换汇聚层的设备,所以受到影响的业务比较多。在设备更换期间,连接在该设备上的业务都会掉线。本次网络改造将会使以下业务受到影响:
n 协同办公区
n 综合业务区
n 资产管理区、生产管理区
n 办公局域网区
n 营销系统区
n 财务系统区
由于Cisco4503E与ZTE8908E的板卡数量,光口、电口数量不匹配。在Cisco4503E交换机上出现了光口数量不足而电口数量过剩的现象,所以在必要的时候,应该将部分原先在ZTE8908E为光口的链路在Cisco4503E上改为电口。另外,Cisco4503E上只有两个万兆接口,数量可能会不足,所以必要的时候需要在核心交换机或接入交换机上做速率设置,防止接口速率不匹配而造成无法通信。
查看ZTE8982的配置信息,发现在ZTE-8982-A上有一个VLAN 163的配置:
interface vlan163
ip address10.115.163.254 255.255.255.0
在ZTE-8982-B上有一个VLAN 247的配置
interface vlan247
ip address10.115.247.254 255.255.255.0
VLAN163是协同办公区的业务VLAN,而VLAN 247是办公局域网区的业务VLAN,可以说,NAS服务器针对协同办公区、办公区域网区的网关都设置在ZTE-8982上了。对于这两个区域而言,区域的交换机和ZTE 8982之间只需要trunk透传VLAN 163或VLAN 247到ZTE 8982上。而对于其他的业务区域,ZTE 8982只做Trunk透传工作,网关位于区域交换机上。
从配置可以看出来:VLAN 163的网关在A机上,VLAN 247的网关在B机上,在改造以后,可以让4503E-A担任VLAN 163的Active设备,VLAN 247担任VLAN 247的Active设备。
根据上面的描述,协同办公区和办公局域网区不管是NAS服务器的网关还是区域的网关都在ZTE8982上,所以在ZTE8982更换为Cisco 4503E以后,要针对这两个业务区域配置HSRP双机热备(VLAN 163和VLAN 247)。
不管网关的位置是否在ZTE8982上,都要在ZTE8982更换为Cisco 4503E以后配置生成树,考虑到6个网络区域里面的设备厂商复杂,应该选择使用通用的生成树协议,即MSTP,让Cisco 4503E-A担任主要根桥,让Cisco4503E-B担任备份根桥。
只有确保设备能够正常工作了以后,才可对设备进行上架操作。所以,必须对两台Cisco4503E设备进行前期测试,保证设备电源、引擎板卡、数据业务板卡没有故障,运行完全正常以后才可进行设备的更换。
本次网络改造涉及更换汇聚层的设备,所以受到影响的业务比较多。在设备更换期间,连接在该设备上的业务都会掉线。本次网络改造将会使以下业务受到影响:
协同办公区
综合业务区
资产管理区(生产管理区)
办公局域网区
营销系统区
财务系统区
先将Cisco4503E-01按照ZTE8908E-01的原始配置进行配置好,然后将ZTE8908E-01上所有接口按照3.1表项中列出的接口全部更换到Cisco4503E-01,更换完一台设备以后,再更换第二台设备。等两台设备运行正常,业务正常以后,再连接心跳线,配置HSRP。
在Cisco4503E上接口的配置命令(A、B配置相同)
interfacegi 3/1
switchport
switchport mode trunk
switchport trunk vlan allow151,159,163,181,247
interfacegi 3/2
switchport
switchport mode trunk
switchport trunk vlan allow 163
interfacegi 3/3
switchport
switchport mode trunk
switchport trunk vlan allow151,159,163,181,247
interfacegi 3/4
switchport
switchport mode trunk
switchport trunk vlan allow 151
interfacegi 3/5
switchport
switchport mode trunk
switchport trunk vlan allow 181
interfacegi 3/7
switchport
switchport mode trunk
switchport trunk vlan allow 132
interfacegi 3/8
switchport
switchport mode trunk
switchport trunk vlan allow 151,159,163
interfacegi 3/9
switchport
switchport mode trunk
switchport trunk vlan allow 151,159,163
interfacegi 2/1
switchport
switchport mode trunk
switchport trunk vlan allow 247
interfacegi 2/2
switchport
switchport mode trunk
switchport trunk vlan allow 159
interfacegi 2/3
switchport
switchport mode trunk
switchport trunk vlan allow 132
interfacegi 2/4
switchport
switchport mode trunk
switchport trunk vlan allow 151,159,163,247
interfacegi 2/5
switchport
switchport mode trunk
switchport trunk vlan allow 151,159,163,247
interfacegi 2/6
switchport
switchport mode trunk
switchport trunk vlan allow 151,159,163,247
interfacegi 2/7
switchport
switchport mode trunk
switchport trunk vlan allow 151,159,163,247
在Cisco 4503E上将VLAN 163、VLAN247配置为HSRP组,虚拟IP为ZTE8908-E上VLANIF的IP地址。为了实现流量的负载分担,将A机作为VLAN163的Active设备,B机作为VLAN 247的Active设备。
Cisco 4503E-A配置HSRP命令如下:
interfacevlan163
ip address 10.115.163.252 255.255.255.0
standby 163 ip 10.115.163.254
standby 163 pri 120
standby 163 preem
interfacevlan 247
ip address 10.115.247.252 255.255.255.0
standby 163 ip 10.115.247.254
standby 163 pri 100
standby 163 preem
Cisco 4503E-B配置HSRP命令如下:
interfacevlan163
ip address 10.115.163.253 255.255.255.0
standby 163 ip 10.115.163.254
standby 163 pri 100
standby 163 preem
interfacevlan 247
ip address 10.115.247.253 255.255.255.0
standby 163 ip 10.115.247.254
standby 163 pri 120
standby 163 preem
根据核心交换机的配置以及ZTE8905的原始配置可以得知当前环境中运行的生成树协议是MSTP,所以,Cisco4503E上配置的生成树协议也使用MSTP。
在配置生成树协议的时候,确保两台核心交换机分别担任Root Bridge角色与Backup Root Bridge的角色。另外,HSRP的组Active端也应该与RootBridge位于同一设备,防止因为STP阻塞端口造成网络不通等故障。
在2层交换机上做广播流量的控制
命令:
switch(interface-if)#storm-control ?
action:定义如果超过限定范围流量采取什么行为
broadcast:控制广播
multicast:控制组播
unicast:控制单播
Switch4(config-if)#storm-control broadcast ?
level:定义级别
Switch4(config-if)#storm-control broadcast level?
<0.00 - 100.00>:定义端口带宽下线值
bps:定义每秒流量传输的位(1字节=8位)数
pps :定义每秒包数量
Switch4(config-if)#storm-control broadcast level pps50 40 ?
定义广播每秒超过50/s个则端口阻塞(blocking)小于40/s个则端口恢复(下线值貌似没什么用,也可以只写一个上限值就可以)
Switch4(config-if)#storm-control action ?
定义包超过定义的最大数量时采取的行为,不定义此项就默认为block而不是shutdown。当广播小于40/s的时候端口又恢复通信,但是当配置了action为shutdown时当端口广播超过50/s就会被shutdown,就只能用下面的errdisable的恢复方法来恢复端口了。
示例:
Switch4(config)#interfacef0/5
Switch4(config-if)#storm-controlbroadcast level 10 5
Switch4(config-if)#storm-controlaction shutdown 或者
Switch4(config-if)#storm-controlaction trap
Switch4(config-if)#nosh
Switch4(config-if)#dowr
查看广播风暴端口状态
Switch#showstorm-control
Interface Filter State Upper Lower Current
--------- ------------- ----------- ----------- ----------
Fa0/2 Forwarding 50 pps 40 pps 0 pps
Fa0/3 Link Down 50 pps 40 pps 0 pps
Fa0/4 Link Down 50 pps 40 pps 0 pps
Fa0/5 Link Down 50 pps 40 pps 0 pps
Fa0/6 Forwarding 50 pps 40 pps 0 pps
Fa0/7 Forwarding 50 pps 40 pps 0 pps
Fa0/8 Forwarding 50 pps 40 pps 0 pps
Fa0/9 Forwarding 50 pps 40pps 0 pps
Fa0/10 Link Down 50 pps 40 pps 0 pps
Fa0/11 Forwarding 50 pps 40 pps 1 pps
Fa0/12 Link Down 50 pps 40 pps 0 pps
Fa0/13 Forwarding 50 pps 40 pps 0 pps
Fa0/14 Forwarding 50 pps 40 pps 0 pps
Fa0/15 Forwarding 50 pps 40 pps 0 pps
Fa0/16 Forwarding 50 pps 40 pps 0 pps
Fa0/17 Forwarding 50 pps 40 pps 0 pps
Fa0/18 Forwarding 50 pps 40 pps 0 pps
Fa0/19 Forwarding 50 pps 40 pps 0 pps
Fa0/20 Forwarding 50 pps 40 pps 0 pps
Fa0/21 Link Down 50 pps 40 pps 0 pps
Fa0/22 Link Down 50 pps 40 pps 0 pps
Fa0/23 Forwarding 50 pps 40 pps 0 pps
Fa0/24 Forwarding 50 pps 40 pps 0 pps
注:一个端口被策略down后会显示err-disable,恢复的方法有两个。一个手动一个自动,手动是到该接口下执行shutdown然后在执行noshutdown(直接noshutdown不行),自动是:
session 2 端口err-disable自动恢复
L3#showerrdisable detect 查看SW端口安全关闭支持哪些安全策略
ErrDisableReason Detection status
----------------- ----------------
udld Enabled
bpduguard Enabled
security-violatio Enabled
channel-misconfig Enabled
psecure-violation Enabled
unicast-flood Enabled
vmps Enabled
loopback Enabled
unicast-flood Enabled
pagp-flap Enabled
dtp-flap Enabled
link-flap Enabled
l3pxguard Enabled
sfp-config-mismat Enabled
gbic-invalid Enabled
dhcp-rate-limit Enabled
storm-control Enabled
inline-power Enabled
arp-inspection Enabled
community-limit Enabled
invalid-policy Enabled
L3#showerrdisable recovery 查看SW端口安全关闭策略开启了自动恢复功能,默认都没有开启
ErrDisableReason Timer Status
----------------- --------------
udld Disabled
bpduguard Disabled
security-violatio Disabled
channel-misconfig Disabled
vmps Disabled
pagp-flap Disabled
dtp-flap Disabled
link-flap Disabled
l3pxguard Disabled
psecure-violation Disabled
sfp-config-mismat Disabled
gbic-invalid Disabled
dhcp-rate-limit Disabled
unicast-flood Disabled
storm-control enable
inline-power Disabled
arp-inspection Disabled
loopback Disabled
Timerinterval: 300 seconds
Interfacesthat will be enabled at the next timeout:
Interface Errdisable reason Time left(sec)
--------- ----------------- --------------
Fa0/4 storm-control 1470
看到f0/4口再过1470s自动恢复up
L4#showinterfaces f0/4
FastEthernet0/4is down, line protocol is down (err-disable)
Hardware is Fast Ethernet, address is0022.916d.1e86 (bia 0022.916d.1e86)
MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec,
reliability 255/255, txload 1/255, rxload1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Auto-duplex, Auto-speed, media type is10/100BaseTX
input flow-control is off, outputflow-control is unsupported
ARP type: ARPA, ARP Timeout 04:00:00
Last input never, output 3w5d, output hangnever
Last clearing of "show interface"counters never
Input queue: 0/75/0/0(size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0packets/sec
887508 packets input, 666054421 bytes, 0 no buffer
Received 5177 broadcasts (0 multicasts)
0 runts, 0 giants, 0 throttles
2 input errors, 0 CRC, 0 frame, 0 overrun,0 ignored
0 watchdog, 1970 multicast, 0 pause input
0 input packets with dribble conditiondetected
761562 packets output, 100518453 bytes, 0underruns
0 output errors, 0 collisions, 5 interfaceresets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 PAUSEoutput
0 output buffer failures, 0 output buffersswapped out
L4(config)#errdisablerecovery cause storm-control
手工开启storm-control的自动恢复
L3(config)#errdisablerecovery interval 1800
恢复时间为1800s,当端口被err-disable后10分钟后自动恢复,如果再次检测到storm超标则自动被down然后再过10分钟再次自动恢复为up,这样循环。
配置SSH服务,使用VLAN 1的地址作为管理地址
配置SSH服务的目的是可以远程管理到两台交换机。使用SSH协议比Telnet更安全,因为使用SSH,用户名和密码是以密文的方式在网络中传输的,而Telnet会将用户名和密码以明文的方式传输。
最终这次网络割接以失败回退而告终。因为资产管理区、办公局域网区的交换机数量较多,导致生成树无法正常收敛,所以这两个区域的网络业务一直不通。
对于这种三层结构的网络环境,不建议单纯的为了节省IP地址而采用VLAN透传的方式进行组网。虽然说STP是一个很有效的二层防环协议,但毕竟该协议不是一个容易“受人控制”的协议。设备数量约多,STP收敛越慢。在实际的工作环境中,10台左右的交换机STP收敛大概需要5分钟左右。一般来说,在汇聚层和接入层之间使用STP,但是一旦到了核心层和汇聚层之间,就不能再把STP收敛区域弄到核心层了。
本文出自 “捷哥的IT小屋” 博客,谢绝转载!
原文地址:http://wzjxzht.blog.51cto.com/4866070/1952456