HCIE_交換篇_MAC地址漂移


MAC地址漂移

什么是MAC地址漂移?

一個MAC地址一會出現在A接口,一會出現在B接口,這就是MAC地址漂移嗎?看起來是的,但是仔細一想的話,這句話是值得商榷的,如果同一個MAC地址出現在同一個交換機但不同的vlan接口上可以嗎?是可以的,那我要不要做一個實驗試一試呢?是要做的?我僅僅理解了,或寫了下來,那僅是知識,稱不上技能,只有做了之后,身體力行之后,才是身體記憶,身體記憶靠譜嗎?也不是很靠譜,我們還是會遺忘,因為我們的大腦就是這么設計的,哎~,分析到了大腦的物理層面,似乎再也無法向后進行了,重復,復習 ,通過復習可以加深我們的記憶,還要涉及到推理,只有涉及到推理,才是真正的學習。衡量自己是否在學習,就觀察一下自己是否在推理即可。好了,言歸正傳,那什么是MAC地址漂移呢?處在同一個廣播域中該MAC地址的所屬接口沒down、和沒有老化之前,在其它卻學到了這個MAC地址,我們將這種現象稱之為MAC地址漂移。

什么是假的MAC地址漂移?

同一交換機下的同一個vlan下,電腦原來接在了A接口,一會又接到B接口下,我在公司經常這么做?這樣算是地址漂移嗎?不算,為啥,因為當我的電腦從A接口拔下來之后,交換機所屬的接口就down了,該mac-address在mac地址表當中就消失了,接着又從別的接口學到了,這很正常呀,這種現象不能算做是MAC地址漂移;

接上文,那如果源接口沒有down呢?沒有down如果老化了之后,從別的接口學到, 這也不算是漂移?如果接口沒down,也同有老化之前,在別的接口學到了同樣的mac地址,這才算漂移,發生了漂移了之后有什么現象呢?命令行會報錯這是一個,還有一個就是MAC地址會發生變化,就是說,新學到將到覆蓋舊有的,這樣有什么壞處,壞處與arp欺騙有點相似,就是想找的人與找到的人對不上號!這是可以做為一種攻擊手段的。

什么情況下會產生mac地址漂移呢?

  1. 有人惡作劇,故意搗亂,這也有可能呀,少見而已
  2. 環路發生的時候,這應該是最經常的發生的
  3. 上面兩種是不太正常的,那正常情況下有沒有可能會發生MAC地址漂移呢?有的,常見的兩種情況,ap漫游,ap漫游是怎么回事呢?ap一般都是接在交換機之下的,假如我們有兩個ap,我們在這個房間使用某個AP,於是我們的MAC地址被記錄在交換機上的A接口了,然后我們去了另外一個房間,用了另外的AP,正好這個AP與剛才那個Ap都是處在同一個廣播域當中,上一個MAC地址還存在於MAC地址表當中,而且接口也沒有down,結果另一個接口又學到了,這樣不行嗎?行,而且是當然行,如果不讓它行,那我們的設備無法上網了,應該讓它做MAC地址的覆蓋,可見,mac漂移並不見得全是壞事。
  4. 在vrrp環境當中,為什么在VRRP環境下也會也會發生MAC地址漂移呢?如果我們對VRRP的原理理解夠深入的話,一下子就會明白其中的原理,VRRP虛擬出來的路由器有單獨的IP和MAC地址,這個虛擬出來的路由的MAC會向下游交換機刷新,一般都是主向下發送免費ARP進行刷新,但是一旦主掛了,那就是備向下游交換機刷新,主備處於不同的物理接口,這下明白了吧。

如何避免MAC地址漂移呢?

1、提高接口MAC地址學習的優先級,優先級越大越優先,默認所有接口的優先級都是0 ,假如現在A接口的優先級是2,B接口的優先級是0,都學到了某個MAC地址,這時候后學到不會覆蓋先學到的了,B接口不會學習,簡而言之一句話,優先級低的不會覆蓋優先級高的,但是同級別依然會覆蓋,怎么辦呢?
2、不允許相同優先級的接口發生MAC地址表覆蓋,默認是同vlan的相同優先級的接口是可以相互覆蓋的,比如我們公司,確認非研發人員經常拿着筆記本到處走,這就不行了,只能老老實實的呆在他的工位。

int g0/0/1
mac-learning proority 3
#不允許同優先級的接口MAC地址漂移
undo mac-learning prooircy ID allow-flapping

無論是第一種方法還是第二種方法,其相同之處就是在第一個地方學習了某個MAC地址,然后在另外的地方就不學習了,這樣就能防止MAC地址漂移了。

其應用場景呢?比如我們公司,研發人員都接了兩個網線接口,然后都用着封條封着,防止他們接到別的地方去,如果使用了這這種MAC地址防漂移的機制的話,不允許同優先級的接口發生MAC地址表覆蓋,會有用嗎?不會有用的,為什么?一個員工原本電腦從A接口接着,現在把線拔了下來接到同vlan的另外接口,依然是可以使用的?為啥?因為A接口拔線之后就down了,down了mac地址表就消失了,再出現B接口的話就不算漂移了,所以這兩種機制是不會生效的。其它還是有辦法的,在上述兩種方法后還可以加入懲罰的機制,如果從別的地方又學到相同的MAC地址,檢測到后將其阻塞,阻塞一段時間(自定義),如果不是有這種情況的話,還可以徹底將其阻塞。

問答題

能否從一個物理接口學到相同的MAC地址,其實是可以的,比如交換機上聯接口是路由器的情況下,路由器用了子接口做了單臂路由,和子接口是沒有單獨的MAC地址的,其實子接口就應該沒有自己的MAC地址,因為MAC地址全球唯一的,除了物理接口能給,虛擬接口是不能給的固態的MAC地址的,VRRP的虛擬路由器是有自己獨立的MAC地址,那這個地址是華為給他預留的嗎?並不是的,前半部分是華為給它預留的,后一部分是根據ID號自己產生的。

mac地址漂移默認是開啟的,也就是說我們什么都不配置的話,就會有報警提示的,如下所示:

Oct 17 2020 11:01:04-08:00 Huawei L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5
.25.160.3.7 MAC move detected, VlanId = 1, MacAddress = 5489-98df-6666, Original
-Port = GE0/0/5, Flapping port = GE0/0/1. Please check the network accessed to f
lapping port.

配置方法:

配置mac地址漂移檢測
新版本:配置全局MAC地址漂移檢測(默認開啟 新版本)
[Huawei]mac-address flapping detection  需檢測10次漂移現象才會彈出上述日志
[Huawei]mac-address flapping action { error-down | quit-vlan } (缺省只發出告警,模擬器不支持)

相當於優先級,但沒有優先級靈活,先學習才是合法的

老版本:
[Huawei]vlan 1
[Huawei]loop-detect eth-loop alarm-only 
或者
[Huawei-vlan1]loop-detect eth-loop block-time 10 retry-times 2
\\配置MAC地址漂移檢測功能  檢測到mac漂移后阻塞接口10s,重試2次,如果檢測到2次漂移后則一直阻塞
注意:如果接口一直被阻塞,需全局:reset loop-detect eth-loop vlan 1 all  才可以恢復被阻塞的接口。shut/undo shut
無用。
## 查看當前接口的阻塞狀態
[Huawei]dis loop-detect eth-loop
VLAN            Block-time      RetryTimes      Block-action    
--------------- --------------- --------------- --------------- 
1               10              2               block-port      

Total items:1

Blocked ports:

PortName                 Vlan      Status          Expire(s)       Leave times  
   
------------------------ --------  -------------   -------------   -------------

GigabitEthernet0/0/5     1         Block           9               0            
   

Total items:1

Blocked Mac Address:

Mac Address              Vlan      Status          Expire(s)       Leave times  
   
------------------------ --------  -------------   -------------   -------------

# 僅是暫時把阻塞接口恢復,清空上面阻塞,但是配置並沒有被取消
[Huawei]reset loop-detect eth-loop vlan 1 all
   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM