前文我們瞭解了二層埠安全技術相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/16631222.html;今天我們來聊一聊MAC地址防漂移技術;
首先我們來了解下什麼叫做MAC地址漂移呢?所謂MAC地址漂移是指在交換機上的一個埠學習到的MAC在同VLAN下的其他埠也學習到了相同的MAC地址;即該MAC地址在同一交換機下的相同VLAN的多個埠之間來回漂浮,一會在這口,一會在那口;我們把這種現象叫做MAC地址漂移現象;發生MAC地址漂移現象的原因只有兩種,一種是網路中存在環路;一種就是網路中存在惡意使用者偽造MAC地址來欺騙交換機;
防止MAC地址漂移核心思想
1、我們知道預設情況下交換機的所有埠學習MAC地址的優先順序是相同的(優先順序為0),同時預設情況下交換機也是允許相同優先順序學習到的MAC地址漂移;所以我們想要防止某個埠下學習到的MAC不會漂移到其他介面下,我們可以提高該埠學習到MAC地址的優先順序,這樣一來交換機如果再從其他埠學習到相同MAC地址,會對比優先順序;這樣一來我們就可以優先的防止相同MAC在其他埠學習到(相同MAC是指在我們設定的埠下正常該學習到的MAC);
2、預設交換機是開啟了允許相同優先順序學習到的MAC漂移,我們關閉了該功能即可;
3、MAC-Spoofing-Defend,該技術是用來設定信任埠來防止MAC地址漂移;具體就是我們在全域性開啟該功能以後,然後在信任的埠下使用相同命令設定對應埠為信任埠;這樣一來,在信任埠下學習到的MAC地址在其他非信任埠下就不能夠被學習;
MAC地址漂移懲罰動作
MAC地址漂移懲罰是指當交換機檢查到有MAC地址漂移時,觸發的保護動作;
1、quit-VLAN:該動作表示退出當前VLAN;即當交換機檢測到有MAC地址漂移,就就會把對應埠提出對應VLAN,從而來保護現有網路的穩定;
2、err-down:該動作表示關閉介面,即一旦交換機檢測到有MAC地址漂移,即把對應埠給shutdown掉;
防止MAC地址漂移設定
實驗:如下拓撲,設定防止MAC地址漂移
如上設定,我們在三個pc1和pc2正常通訊的情況下,來檢視mac地址表
提示:可以看到pc1和pc2正常通行,交換機正常學習和記錄對應mac地址和對應介面;
當pc3模擬pc1發包,看看對應mac地址會發生變化呢?
提示:可以看到當pc3一發包,對應交換機的mac地址表項就發生了變化,從原來的1口變為了3口;這是因為交換預設開了相同優先順序的mac地址可以漂移;
1、通過設定優先順序來限制MAC地址漂移現象
提示:上述命令表示在g0/0/1口學習到的mac地址,優先順序為1;
驗證:先pc1發包,然後pc3再發包,看看對應交換機的mac地址表項是否會發生變化呢?
提示:可以看到現在設定了mac地址學習優先順序以後,pc3再次發包欺騙,對應交換機是不會學習pc3傳送的源mac;同時交換機也告警,介面g0/0/1的mac在g0/0/3上浮動,請檢查網路;
2、通過取消相同優先順序允許mac地址漂移來防止mac地址漂移
刪除優先順序設定
取消允許相同優先順序為0的mac漂移
提示:該命令在全域性模式下使用,表示取消所有埠執行相同優先順序為0mac地址浮動;
驗證:先pc1發包,然後pc3再發包,看看對應交換機的mac地址表項是否會發生變化呢?
提示:可以看到交換機的mac地址表項沒有發生變化,對應pc1的mac對應g0/0/1,pc2的mac對應g0/0/2;pc3攻擊欺騙交換機,對應交換機沒有學習pc3的源mac,同時也給出了告警;
3、通過MAC-Spoofing-defend來限制mac地址漂移
恢復交換機預設設定
在交換機全域性開啟MAC-Spoofing-Defend
在信任的介面下開啟mac-spoofing-defend
提示:這個是模擬器bug,在真機是可以正常開啟的;
設定發生MAC漂移的懲罰動作
quit-vlan懲罰動作的設定
把三個介面都加入到vlan10
全域性開啟MAC地址漂移檢測
提示:不管後面的懲罰動作是quit-vlan,還是err-down,都需要先在全域性開啟MAC地址漂移檢查功能,對應設定才會生效;
在g0/0/3下設定發生mac地址漂移時,退出vlan10
提示:需要懲罰那個介面,就在那個介面下設定即可;
驗證:先pc1正常發包,然後pc3攻擊欺騙交換機,看看對應g0/0/3口是否會退出vlan 10 呢?
提示:可以看到當交換機檢側出發生了MAC地址漂移後,對應會把g0/0/3口踢出vlan10,從而阻斷g0/0/3的介面的流量流入vlan10;這裡需要注意檢測需要檢測出一定次數才會觸發這個保護動作;
檢視MAC地址漂移記錄
修改mac地址漂移記錄老化時間
提示:預設老化時間為300秒;
修改quit-vlan預設恢復時間
提示:預設quit-vlan恢復時間為10分鐘;設定為0表示不自動恢復;
再次檢視漂移記錄?對應介面是否回到vlan呢?
提示:可以看到現在g0/0/3已經恢復到vlan10;
err-down懲罰動作的設定
驗證:先pc1發包,然後pc3發包,看看對應介面是否會被down掉?
提示:可以看到當mac地址漂移發生一定次數以後,對應介面就會down,並行出告警;
檢視err-down
提示:可以看到g0/0/3是因為mac地址漂移而觸發的err-down;並且對應沒有恢復時間;
設定err-down的恢復時間
提示:設定了err-down恢復時間,它這個不針對之前的err-down,只對設定後發生mac地址漂移觸發的err-down生效;如果在沒有設定自動恢復時間,我們可以先把介面shutdown,然後再undo shutdown,來恢復介面;
重新觸發err-down,看看對應介面是否會自動恢復呢
提示:可以看到當觸發了err-down以後,對應介面會被down掉;當自動恢復時間到期以後,對應介面又會重新恢復到up狀態;