今天在學校的一個三層交換上看到持續的日誌信息:html
Host 00:E0:FC:09:BC:F9is flapping between fa0/x and fa0/y.
思科對此官方的解釋是:
Error Message SW_MATM-4-MACFLAP_NOTIF: Host [enet] in [chars] [dec] is flapping between port [chars] and port [chars]
某主機的MAC地址在某兩端口之間擺動。
Explanation This message means that the switch found the traffic from the specified host flapping between the specified ports. [enet] is the host MAC address, [chars] [dec] is the switch ID, and the first and second [chars] are the ports between which the host traffic is flapping.
Recommended Action Check the network switches for misconfigurations that might cause a data-forwarding loop.
思科推薦行動是檢查交換機的配置以防有數據傳輸環路。
在一個惟一環路冗餘只作在接入層(備用線路)上,且所有運行STP的網絡環境中,我認爲沒有環路的可能性。linux
也沒有服務器的網卡在兩端口間作過bonding(這種狀況的表現是flapping只在兩個特定的端口之間。解決方案
如此分析,這大路邊的可能故障也就是環路被排除掉了。
那麼再來從新分析一下LOG信息。
剛纔咱們關注的是flapping between,下面關注一下MAC地址和端口所能提供的線索。
這些flapping的端口,每次都不盡相同,可是有個特色就是,全都是華爲的端口,神碼的端口壓根沒參與過。
猜測,這會不會跟華爲的某種協議有關呢?
查了一下那個總在flapping的MAC地址
Host 00:E0:FC:09:BC:F9,
LZ還打了客服,華爲-3COM技術支持(800-810-0504-3)。
回答是:那是
華爲發送STP、loopback-detection、NDP、STDP、gratuitous-arp-learning用的組播所用的虛擬地址。
也就是說,網絡中全部華爲的設備都在用那個MAC在發信息。
「S3600系列交 換機開啓STP功 能後,對端設備可能出現報告MAC地址移動的現象。其緣由爲
S3600系列交換機的BPDU報文采用固定MAC地址爲源MAC。該狀況對正常業務沒有影響。爲了防止 該日誌信息對正常日誌信息的影響,能夠經過相似日誌信息過濾的功能對此種日誌信息過濾。
S系列交換機生成 樹協議報文的源MAC地址是00E0-FC09-BCF9或者 000F-E207-F2E0。」
以上紅黑聯盟的博主還說:
由於
多廠商間對協議的理解方式不一樣,各廠商按照各自的方式改動了實現的方式,因此應儘可能避免二層互聯,對接的時候必定要提早測試好保持謹慎。
H3C定義的LACP報文(DMAC=0180C200000二、H3C設備SMAC=000f-e207-f2e0、)也是BPDU報文的一種。因爲V3平臺交換機每端口沒有設置各自的MAC地址,所以BPDU源MAC都是使用上述固定的特殊MAC做爲源MAC地址的。但S3600/5600系列交換機最新版本支持在系統視圖下使用port-mac命令進行定義。
對於固定源MAC地址,H3C交換機是不學習BPDU報文的源MAC的,但有些友商設備對於BPDU的源MAC是進行學習的,所以在友商設備上有時會記錄MAC地址漂移的告警。
博主建議:對於V3平臺交換機如S3600/5600系列交換機能夠升級到最新版本經過port-mac命令更改BPDU報文的源MAC地址。可是須要注意的是,若是網絡中沒有環路,那麼該現象正常不影響業務使用,所以也不推薦使用port-mac命令進行更改。
緣由已經很明確了。大牛曾試驗過關掉loopback-detection就不會出現相似LOG了。
不過說來,這華爲事事還真多,我又發現了還有相似的固定MAC地址:
01-80-C2-00-00-00是STP、loopback detection的目的mac
loopback-detection環回監測使用及原理
以H3C交換機爲例
一、開啓全局監測 >loopback-detection enable
二、開啓相應端口監測 >int gig 1/0/1 loopback-detection enable
三、如爲trunk端口,1和2步只能對trunk端口的默認vlan進行監測,須要對全部vlan開啓監測 loopback-detection per-vlan en
四、如爲trunk端口,發現環路僅上報錯誤,須要設置端口受控,access端口不須要。 loopback-detection control en
loopback-detection監控從端口發出的報文是否又經過該端口回到設備,用於判斷端口下掛網絡是否存在環路。
對access端口,會刪除mac列表,block端口,對trunk端口會上報,不會禁用端口。
這個困擾了兩天的問題,終於能夠得出一個結論了。網絡
綜上所述,
接入層華爲設備的上行口LOOPBACK-DETECTION關閉就好,其餘照舊。
經過此次的事情呢,在老師的指導下,在各類論壇裏,我也有些感悟吧
1.園區網裏的二層設備儘量統一廠牌,不然要根據show log來肯定關閉某些端口的某些服務。
2.對於網絡中的任何改動,一切以保證網絡暢通爲首要目的。流量較爲正常,擁塞和延時都不嚴重的時候,千萬不要輕舉妄動。
3.STP仍是不要關的。