天天看點

以太網交換故障案例——Linux伺服器重新開機後ping不通虛拟網關IP

作者:運維法拉令

1、問題現象描述及組網

1.1 網絡拓撲

兩台CE12808組成VRRP主備網關,分别和兩台接入交換機互聯,每台接入交換機下挂一台Linux伺服器,如下圖所示。

以太網交換故障案例——Linux伺服器重新開機後ping不通虛拟網關IP

1.2 問題現象描述

将Linux虛拟機1重新開機後,會發現虛拟機1(IP:10.69.3.66)ping不通CE12808-A上的虛拟網關10.69.3.254,要等20分鐘後才能ping通。

2、告警資訊

故障期間存在MAC漂移告警:

hwMflpVlanLoopAlarm_active(l):CID=0x807f0477-alarmID=0x095e0012;MAC flapping detected, VlanId = 315, MacAddress = 0050-569f-1439, Original-Port = Eth-Trunk13, Flapping port = Eth-Trunk23, -. Please check the network to which the interface learning a flapping MAC address is connected.

3、問題根因說明

現場排查發現重新開機Linux虛拟機1之後,CE12808上虛拟機1對應的ARP出接口不是Eth-Trunk13,而是Eth-Trunk23這個端口,導緻ping回程流量轉發到錯誤端口。20分鐘後可以ping通是因為ARP表項老化,重新學習正确。

進一步分析确認,Linux虛拟機1重新啟動後,虛拟機2的IPv6服務發出了以虛拟機1的MAC位址為源MAC的IPv6多點傳播封包,觸發MAC漂移,進而觸發MAC關聯ARP機制,造成交換機上的ARP表項端口學習錯誤,最終導緻ping不通。

4、問題判斷方法

  1. 虛拟交換機1重新開機後,CE12808-A上10.69.3.66的ARP出接口變成了ETH-TRUNK23,正常情況下應該為Eth-Trunk13。<CE12808-A> display arp interface Vlanif 315ARP timeout:1200s ARP Entry Types: D - Dynamic, S - Static, I - Interface IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE VLAN/CEVLAN ------------------------------------------------------------------ 10.69.3.66 0050-569f-1439 18 D-0 Eth-Trunk23 VRF 315/-
  2. 在CE12808-A上發現12秒内發生了幾百次MAC漂移,漂移MAC為0050-569f-1439,漂移端口為Eth-Trunk13、Eth-Trunk23等。(以下回顯僅為示例,具體以裝置為準)<CE12808-A> display mac-address flappingMac-address Flpping Configurations : ----------------------------------------------------------------------------- Flapping detection : Enable Aging time(s) : 300 Quit-vlan Recover time(m) : -- Exclude VLAN-list : -- ----------------------------------------------------------------------------- S : start time E : end time (D) : error down ----------------------------------------------------------------------------- Time VLAN MAC-Address Original-Port Move-Ports MoveNum ----------------------------------------------------------------------------- S:2014-01-08 17:58:13 315 0050-569F-1439 Eth-Trunk13 Eth-Trunk11 268 E:2014-01-08 17:58:25 Eth-Trunk23
  3. 在CE12808-A上檢視MAC表項,MAC表裡面0050-569f-1439的出接口正常為Eth-Trunk13,如下圖:<CE12808-A> display mac-address ------------------------------------------------------------------ MAC Address VLAN/VSI Learned-From Type ------------------------------------------------------------------ 0050-569f-1439 315/- Eth-Trunk13 dynamic
  4. 對CE12808-A裝置的Eth-Trunk23端口做入方向封包鏡像,發現此端口确實收到了源MAC位址異常的IPv6封包,如下:
  5. 綜合上述資訊确認:因為MAC漂移懲罰保護機制,在端口發生大量漂移事件時,沒有觸發ARP表項實時更新。

5、解決方案

通過修改配置關閉虛拟機2上的IPv6服務後,重新開機驗證,CE12808-A裝置上不再産生MAC漂移現象,虛拟機1上可以正常ping通網關位址。

6、經驗總結

  • 當網絡中發生大量MAC漂移時,一般首先排查是否有實體環路,其次要排查是否有其他端口發出了相同源MAC的封包。
  • CE交換機上的MAC關聯ARP機制是為了能在二層網絡發生變化時,快速更新ARP表項,但為了防止占用系統資源過多,有了MAC漂移懲罰機制(MAC漂移過多後放棄關聯ARP),是以MAC頻繁漂移一般表示網絡發生了震蕩。

繼續閱讀