在ACG中vlan 10、11、800-810 为内部域,vlan 1000为外部域。Vlan 1000是S95E与防火墙三层互联vlan(图中防火墙未画出)。
ACG上只划分了内部域和外部域,启用了带宽限制功能。
在S95E上启用环回检测功能,在S95E上查看S95E与ACG-1互联端口为Down(loopback detection)状态,与ACG-2互联端口为UP状态,两块ACG插卡为主备,且配置相同。
Ten-GigabitEthernet1/1/0/1 current state: DOWN ( Loopback detection-protected )
Ten-GigabitEthernet2/1/0/1 current state: UP
客户的困惑在于为什么主ACG内联口会被loopback detection Down,而备设备对称配置却没有该问题。
(1)首先了解环路检测的原理:
设备通过发送环路监测报文、并监测其是否返回本设备(不要求收、发端口为同一端口)以确认是否存在环路。若某端口收到了由本设备发出的环路监测报文,就确认该端口存在环路。环路检测报文具有如下特征:
DMAC:使用组播MAC地址010F-E200-0007。当设备使能了环路监测功能时,会将该目的地址的报文送给CPU处理,并将该报文在VLAN内广播。
SMAC:报文的源MAC地址,采用发送该报文的设备的桥MAC。
Type:协议类型,取值为0x8918。
(2)查看设备关键配置
loopback-detection action shutdown
loopback-detection enable vlan 1 to 4094
acl number 4000
description Match-Multicast-Broadcast-ARP
rule 0 permit dest-mac 0100-0000-0000 ff00-0000-0000
rule 5 permit dest-mac ffff-ffff-ffff ffff-ffff-ffff
rule 10 permit type 0806 ffff
traffic classifier out-bond-broadcast operator and
if-match acl 4000
traffic behavior out-bond-broadcast
filter deny
qos policy deny-multicast-broadcast-arp
classifier out-bond-broadcast behavior out-bound-broadcast
interface Ten-GigabitEthernet1/1/0/1
port link-mode bridge
port link-type trunk
port trunk permit vlan 1 10 to 11 49 800 to 810 1000
stp disable
qos apply policy deny-multicast-broadcast-arp inbound
qos apply policy deny-multicast-broadcast-arp outbound
mac-address max-mac-count 0
interface Ten-GigabitEthernet2/1/0/1
port link-mode bridge
port link-type trunk
port trunk permit vlan 1 10 to 11 49 800 to 810 1000
stp disable
qos apply policy deny-multicast-broadcast-arp inbound
qos apply policy deny-multicast-broadcast-arp outbound
mac-address max-mac-count 0
(3)抓包流统定位
主ACG内联口被环回检测Down肯定是收到了设备发出的loopback detection检测报文,可以通过抓包和流统计对比下主备ACG内联口收发loopback detection报文的情况。这就需要用到loopback detection的报文特征,目的MAC为组播MAC010F-E200-0007或者eth.type协议号为0x8918。
需要注意该内联口不支持出方向的流镜像,可以支持入方向流镜像、出入方向的本地镜像和流统计。另外一般会配置对上ACG的组播流量进行过滤,此处loopback detection报文也是组播报文,若要进行流统计需要先去除对应rule (rule 0 permit dest-mac 0100-0000-0000 ff00-0000-0000)。
通过本地镜像抓包发现(2分钟左右):
主ACG内联口有不少loopback detection检测报文,且报文连续,应该是收发方向都有(缺省情况下,环路监测的时间间隔为30秒)
备ACG内联口只有两个loopback detection检测报文,且间隔时间较长,很可能是周期性的检测报文。
主ACG内联口抓包:
备ACG内联口抓包:
实验室搭环境复线,发现主ACG内联口出入方向均有loopback detection报文,备ACG内联口出入方向均无loopback detection检测报文。
(4)原理上分析
loopback detection检测报文只有master S95E会发送。在master侧所有端口出方向均有loopback detection检测报文;同时master设备IRF端口的出方向loopback detection检测报文会通过堆叠线路透传至备S95E,在备S95E的所有端口出方向也均有loopback detection检测报文。
差别的形成是因为ACG单板以下特性:
未知单播&未知组播&广播报文在ACG单板后插板出方向都会被过滤掉。
环路检测报文从主用主控板发出,在ACG主设备上环回报文描述符带有CPU属性,不会被当作未知组播给过滤掉,所以环路检测报文可以在内联口经前插板环回,导致ACG主设备内联口被环路检测Down。
ACG备设备的环回检测报文,是经由堆叠口发送ACG单板,由于报文描述符里的CPU属性被堆叠口过滤掉,ACG单板认为环路检测报文是未知组播报文,所以在出方向给过滤掉了。因此,ACG备设备内联口没有Down。
所以主ACG被loopback detection Down,而备设备没有该问题是正常的。至于在备ACG抓包看到的loopback detection报文应该是本地镜像组监控端口的出方向周期性loopback detection检测报文。
现版本上端口被环路检测Down后,无法自动恢复。建议在主备ACG上将环路检测报文过滤掉,再undo shutdown进行恢复。
过滤环路检测报文配置请参考:
[H3C] acl number 4000
[H3C-acl-ethernetframe-4000]rule 0 deny dest-mac 010f-e200-0007 ffff-ffff-ffff
主备内联口都需要配置上:
[H3C-Ten-GigabitEthernet2/1/0/1]packet-filter 4100 outbound
[H3C-Ten-GigabitEthernet1/1/0/1]packet-filter 4100 outbound
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作