科普向-MAC地址
1.MAC地址
1.1.MAC地址作用
MAC地址用來定義網路裝置的位置,由48位元長、12位的16進位制數字組成,從左到右開始,1到24bit是廠商向IETF等機構申請用來標識廠商的程式碼,25到48bit由廠商自行分派,是各個廠商製造的所有網絡卡的一個唯一編號。
1.2.MAC地址分類
物理MAC地址:第8bit為0的MAC地址為物理MAC地址,用來唯一標識乙太網上的一個終端,全球唯一的硬體地址。
廣播MAC地址:全1的MAC地址(FF-FF-FF-FF-FF-FF),用來表示LAN上的所有終端裝置。
組播MAC地址:除廣播地址外,第8bit為1的MAC地址為組播MAC地址,用來代表LAN上的一組終端。
2.原理
2.1.組成及轉發原理
MAC地址表記錄裝置學習到的其他裝置的MAC地址與介面的對應關係,以及介面所屬VLAN等資訊。
MAC地址表用於指導報文進行單播轉發,裝置在轉發報文時,根據報文的目的MAC地址查詢MAC地址表:
如果MAC地址表中包含與報文目的MAC地址對應的表項,則直接透過該表項中的出介面轉發該報文;
如果MAC地址表中沒有包含報文目的MAC地址對應的表項時,裝置將採取廣播方式在所屬VLAN內除接收介面外的所有介面轉發該報文。
2.2.學習及老化
一般情況下,MAC地址表是裝置根據收到的資料幀裡的源MAC地址自動學習而建立的。
如果MAC地址表中不存在該MAC地址表項,裝置則將這個新MAC地址以及該MAC地址對應的Port和VLAN ID作為一個新的表項加入到MAC地址表中。
如果MAC地址表中已經存在該MAC地址表項,裝置將透過重置該表項的老化時間,對該表項進行更新。
裝置只有在收到資料幀時,才會觸發MAC地址的學習和重新整理。
裝置所有介面預設加入VLAN1,如果不做修改所有MAC地址表項的VLANID都是VLAN1。
裝置對於BPDU MAC(形如:0180-c200-xxxx)不會進行MAC地址學習。
為適應網路的變化,MAC表需要不斷更新。MAC表中自動生成的表項(即動態表項)並非永遠有效,每一條表項都有一個生存週期,到達生存週期仍得不到更新的表項將被刪除,這個生存週期被稱作老化時間,預設300S。如果在到達生存週期前記錄被更新,則該表項的老化時間重新計算。
2.3.MAC地址表項
由介面透過報文中的源MAC地址學習獲得,表項可老化。
在系統復位、介面板熱插拔或介面板復位後,動態表項會丟失。
透過檢視動態MAC地址表項,可以判斷兩臺相連裝置之間是否有資料轉發。
透過檢視指定動態MAC地址表項的個數,可以獲取介面下通訊的使用者數。
2.4.靜態表項
由使用者手工配置,並下發到各介面板,表項不可老化。
在系統復位、介面板熱插拔或介面板復位後,儲存的表項不會丟失。
介面和MAC地址靜態繫結後,其他介面收到源MAC是該MAC地址的報文將會被丟棄。
一條靜態MAC地址表項,只能繫結一個出介面。
一個介面和MAC地址靜態繫結後,不會影響該介面動態MAC地址表項的學習。
透過繫結靜態MAC地址表項,可以保證合法使用者的使用,防止其他使用者使用該MAC進行攻擊。
2.5.黑洞表項
由使用者手工配置,並下發到各介面板,表項不可老化。
在系統復位、介面板熱插拔或介面板復位後,儲存的表項不會丟失。
配置黑洞MAC地址後,源MAC地址或目的MAC地址是該MAC的報文將會被丟棄。
透過配置黑洞MAC地址表項,可以過濾掉非法使用者。
3.埠安全
定義與分類
埠安全(Port Security)透過將介面學習到的動態MAC地址轉換為安全MAC地址(包括安全動態MAC和Sticky MAC),阻止除安全MAC和靜態MAC之外的主機透過本介面和裝置通訊,從而增強裝置的安全性。
4.安全動態MAC地址
使能埠安全而未使能Sticky MAC功能時轉換的MAC地址。
裝置重啟後表項會丟失,需要重新學習。
預設情況下不會被老化,只有在配置安全MAC的老化時間後才可以被老化。
5.Sticky MAC地址
使能埠安全後又同時使能Sticky MAC功能後轉換到的MAC地址。
不會被老化,手動儲存配置後重啟裝置不會丟失。
說明:
未使能埠安全功能時,裝置的MAC地址表項可透過動態學習或靜態配置。
當某個介面使能埠安全功能後,該介面上之前學習到的動態MAC地址表項會被刪除,之後學習到的MAC地址將變為安全動態MAC地址,此時該介面僅允許匹配安全MAC地址或靜態MAC地址的報文透過。
若接著使能Sticky MAC功能,安全動態MAC地址表項將轉化為Sticky MAC表項,之後學習到的MAC地址也變為Sticky MAC地址。
直到安全MAC地址數量達到限制,將不再學習MAC地址,並對介面或報文采取配置的保護動作。
6.保護動作
介面上安全MAC地址數達到限制後,如果收到源MAC地址不存在的報文,埠安全則認為有非法使用者攻擊,就會根據配置的動作對介面做保護處理。
6.1.restrict
丟棄源MAC地址不存在的報文並上報告警。華為裝置預設處理動作。
6.2.protect
只丟棄源MAC地址不存在的報文,不上報告警。
6.3.shutdown
介面狀態被置為error-down,並上報告警。
預設情況下,介面關閉後不會自動恢復,只能由網路管理人員執行undo shutdown命令手動恢復,也可以在介面檢視下執行restart命令重啟介面。
7.MAC地址漂移
7.1.產生原因
MAC地址漂移是指裝置上一個VLAN內有兩個埠學習到同一個MAC地址,後學習到的MAC地址表項覆蓋原MAC地址表項的現象。
正常情況下,網路中不會在短時間內出現大量MAC地址漂移的情況。出現這種現象一般都意味著網路中存在環路,可以透過檢視告警資訊和漂移記錄,快速定位和排除環路。
若SwitchB和SwitchC之間誤接網線,則Router、SwitchB、SwitchC之間形成環路。當RouterA上Port1介面從網路中收到一個廣播報文後轉發給Router,該報文經過環路,會被RouterA上Port2介面收到。在介面Port2上配置MAC地址漂移檢測,此時RouterA會感知到MAC地址學習介面跳變的現象。若連續出現此現象,則在RouterA上可以判斷出現了MAC地址漂移。
7.2.MAC地址漂移檢測
MAC地址漂移檢測是利用MAC地址學習時介面跳變實現的,因此能提供的資訊與MAC地址學習相關,包括MAC地址、VLAN,以及跳變的介面等診斷資訊。其中跳變的介面即為可能出現環路的介面。網路管理員根據網路中每臺裝置上出現的跳變介面,以及網路拓撲,判斷環路的源頭。
MAC地址漂移檢測是單臺裝置根據MAC學習變化感知到流量拓撲變化,是一種單點技術,無法精確感知網路拓撲。因而該技術應用有一定的場景限制,建議使用在下掛網路成環場景(即上圖場景)。
解決方法
1)提高介面MAC地址學習優先順序;
2)不允許相同優先順序的介面發生MAC地址表項覆蓋。
下一篇:釣鱸魚釣底還是釣浮好?