某局点用户测试组网如下:
使用两台S7506E设备做smart-link双上行,并分别通过两台上联防火墙设备连接到思科设备;两台75E设备下行使用我司S5500交换机做接入,并连接终端;S5500、75E以及防火墙之间的互联接口关系如图示:接口的pvid配置情况为:
两台s75E设备配置相同:
上联口1/0/5
port hybrid vlan 100 102 to 106 untagged
port hybrid pvid vlan 100
下联口1/0/1
port trunk permit vlan all
S5500两个上联口
trunk all
下联口1/0/6
port hybrid vlan 100 102 untagged
port hybrid pvid vlan 102
客户测试过程如下:
首先,PC-A连接在S5500下联口,对应pvid为102,PC-B连接在思科设备上,通过防火墙进入75E时会打上vlan标签100;初始状态S7506E-1设备为smart-link的master,S7506E-2设备为slave,PC-A与PC-B的互访报文经过S7506E-1设备以及防火墙A;
客户将防火墙A连接思科设备的链路断掉,模式故障现象并测试S7506E设备的主备切换可靠性,此时发现PC-A和PC-B不能正常互访,在S7506E-2设备上存在两个PC-A的mac地址条目,分别来自连接防火墙的上行口和连接S7506E-1的接口;并且未能正常老化,导致PC-B访问PC-A的报文不能正常发送到PC-A。
无
初始阶段,PC-A和PC-B访问正常,S7506E-1设备上的mac表项为:
dis mac-address
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
2c59-e501-c79a 100 Learned GigabitEthernet1/0/5 AGING
3c97-0e74-789d 102 Learned GigabitEthernet1/0/1 AGING
其中2c59-e501-c79a为PC-B的mac地址,从S7506E-1与防火墙A互联的上行口学到,属于接口1/0/5上pvid对应的vlan100;3c97-0e74-789d为PC-A的mac地址,从连接S5500的下行口1/0/1学到,属于S5500连接终端的接口对应的pvid102。
当客户模拟异常时,将防火墙A与思科设备之间的链路(箭头所示)断开,此时现网中防火墙上会有源mac为3c97-0e74-789d的报文发送到S7506E-A和S7506E-B设备上,此时查看S7506E-B设备上的mac表项如下:
disp mac-add
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
2c59-e501-c79a 100 Learned GigabitEthernet1/0/5 AGING
3c97-0e74-789d 100 Learned GigabitEthernet1/0/5 AGING
3c97-0e74-789d 102 Learned GigabitEthernet1/0/1 AGING
其中,mac地址为3c97-0e74-789d的条目分别学习在了vlan100和vlan102下,查看底层的mac条目命中情况如下:
debug l2 7 0 mac/find/vid=100/mac=3c:97:0e:74:78:9d
find mac 3c:97:0e:74:78:9d in vlan 100
unit 0: l2 entry found
mod 14, port 17,
flag(0x00000c00): SRC_HIT | DES_HIT |; group(0): Learnt
debug l2 7 0 mac/find/vid=102/mac=3c:97:0e:74:78:9d
find mac 3c:97:0e:74:78:9d in vlan 102
unit 0: l2 entry found
mod 14, port 1,
flag(0x00000400): SRC_HIT |; group(0): Learnt
在出现异常情况时,S75E-1端口g1/0/5收到源mac为789d的报文,交换芯片会记录SRC_HIT,同时创建对应的mac地址表项;
与此同时,在S7506E-B设备上通过基于mac的流量统计发现,接口1/0/5一直在收到目的mac为3c97-0e74-789d的报文,因此在debug信息中出现了DES_HIT命中的记录;
经过一段时间后,接口g1/0/5不再收到源mac为3c97-0e74-789d的报文,SRC_HIT超时老化,但此时PC-B访问PC-A的报文匹配了DES_HIT,而且目的mac和mac地址表中同一vlan的接口是相同的,在查找S7506E-B设备的mac表项时,发现出端口是本端口自己,将报文丢弃,无法正常访问PC-A;
另外,PC-B访问PC-A的报文持续在芯片上目的命中,打上DES_HIT的标记,导致mac地址表中的错误条目永远无法被主动老化。
当PC-A访问PC-B时,PC-B的回应报文也符合上述情况,仍然会将报文丢弃,即使PC-A认为PC-B无法访问,给PC-B发送ARP请求时,PC-B的ARP响应报文也会持续命中DES_HIT,该mac条目仍然不能正常老化。
1、S7506E设备上下行端口不要使用不同的pvid,如果是同一网段就划分在同一个vlan中;
2、排查防火墙侧问题,在主备倒换时不要将过期的报文从slave转为master的防火墙上错误发送到S7506E上;
1、交换机根据交换芯片的底层mac硬件表转发二层报文,从A口学习到mac地址1,之后从A口收到目的mac为1的报文时因为目的端口是A自己,因此将会丢弃此报文。
2、当有二层报文(目的mac不是交换机的接口mac)进入交换机后,交换机会将该二层报文的源MAC学习到报文进入交换机入端口所在的交换芯片上(报文经过该交换芯片就会学习),学习时会以mac、入端口、vlan等因子在交换芯片形成硬件mac表项,并且硬件上会对该mac有SRC_HIT命中的标记。
3、在步骤2完成后且在mac aging timer之前,如果有从此接口进入以该mac为目的mac的报文报文时,交换芯片硬件mac表会对硬件表项中的该mac打上标记DES_HIT,既此时会出现SRC_HIT | DES_HIT(一般出现SRC_HIT|DES_HIT的情况是源mac为1的二层报文从这个端口入,目的mac为上述mac的二层报文从这个口出)的情况。
4、交换芯片硬件mac表项分别对SRC_HIT和DES_HIT标记记录时间进行老化(如有报文匹配会刷新相应的标记,同时刷新mac老化时间),在达到aging timer前若没有符合的报文能继续激活两个标记(源mac匹配的刷新SRC_HIT,目的mac匹配的刷新DES_HIT),相应的HIT标记将会老化。
5、芯片硬件mac表中的某个mac表项只要存在SRC_HIT 或DES_HIT标记,该mac地址表项就不会老化,这个mac的学习过程是mac硬件表的学习过程非软件参与(硬件学习更快),二层转发是通过查找硬件mac表的硬件转发(比软件转发更快),而有这两种标记的情况说明有匹配该表项的报文在交换机的此交换芯片上在转发,因此硬件不会老化该表项。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作