前言
MAC(Media Access Control)地址用來定義網絡設備的位置。MAC地址由48比特長、12位的16進制數字組成,其中從左到右開始,0到23bit是廠商向IETF等機構申請用來标識廠商的代碼,24到47bit由廠商自行分派,是各個廠商制造的所有網卡的一個唯一編号。
MAC地址可以分為3種類型:
01 認識MAC地址
交換機上面的MAC地址分為系統MAC和接口MAC兩種。
公衆号 網絡民工 專注于IT技術領域,結合實戰經驗,為您分享網絡技術、系統集成、網絡工程等一線技術解析和實踐案例等深度幹貨文章,願我們一起悅享技術,成就夢想!70篇原創内容
其中接口MAC又包括管理網口MAC、VLANIF接口MAC、二層物理接口MAC、三層路由主接口MAC、子接口MAC、二層Eth-Trunk接口MAC、三層Eth-Trunk接口MAC。
系統MAC也就是我們所說的設備MAC,可以通過命令display bridge mac-address查看。管理網口MAC、子接口MAC、二層物理接口MAC和二層Eth-Trunk接口MAC是相同的,使用的就是系統MAC。其他接口MAC與系統MAC不一緻,具體MAC地址可以通過display interface查看。
1.1 MAC原理
MAC地址的定義和分類
MAC地址表的定義
MAC地址表記錄了交換機學習到的其他設備的MAC地址與接口的對應關系,以及接口所屬VLAN等信息。設備在轉發報文時,根據報文的目的MAC地址查詢MAC地址表,如果MAC地址表中包含與報文目的MAC地址對應的表項,則直接通過該表項中的出接口轉發該報文;如果MAC地址表中沒有包含報文目的MAC地址對應的表項時,設備将采取廣播方式在所屬VLAN内除接收接口外的所有接口轉發該報文。
MAC地址表的分類
MAC地址表中的表項分為:動态表項、靜态表項和黑洞表項。另外交換機的MAC地址表中還存在一種業務類型的MAC地址表項,譬如:安全MAC、MUX MAC、Authen MAC、Guest MAC等。該類MAC地址表項是由對應業務維護的,一般是通過動态表項轉換來的。
表2-1 不同MAC地址表的特點和作用
MAC地址表的組成和作用
MAC地址表的組成
MAC地址表是以MAC地址和VLAN ID或VSI為索引來唯一标識。當一台目的主機屬于多個VLAN或VSI時,在MAC地址表中就會存在相同MAC地址擁有多個不同VLAN ID或VSI的情況。表2-2中是四條不同的MAC地址表項。如第一條MAC地址表項的作用是:從設備任意接口進入的目的MAC為0011-0022-0034,VLAN ID為10的報文,都會從GE3/0/1接口轉發出去。
表2-2 MAC地址表項
MAC地址表的作用
MAC地址表用于指導報文進行單播轉發。如圖2-1中,PC1發往PC3的報文,在到達交換機Switch時,根據報文中的目的MAC地址MAC3和VLAN10查詢交換機的MAC地址表,獲取出接口Port3,然後報文直接從接口Port3轉發到PC3,完成數據的轉發。
圖2-1 基于MAC地址表的轉發流程圖
MAC地址學習和老化
MAC地址學習過程
一般情況下,MAC地址表是設備根據收到的數據幀裡的源MAC地址自動學習而建立的。
圖2-2 MAC地址學習示意圖
如圖2-2,HostA向SwitchA發送數據時,SwitchA從數據幀中解析出源MAC地址(即HostA的MAC地址)和VLAN ID。
所以設備在收到數據幀時,才會觸發MAC地址的學習和刷新。當設備有多塊接口闆時,為了避免不必要的廣播報文以及提高報文轉發的速度,每個接口闆學習到的MAC地址表項,都會自動同步到其他單闆。
MAC地址老化過程
為适應網絡的變化,MAC表需要不斷更新。MAC表中自動生成的表項(即動态表項)并非永遠有效,每一條表項都有一個生存周期,到達生存周期仍得不到更新的表項将被删除,這個生存周期被稱作老化時間。如果在到達生存周期前記錄被更新,則該表項的老化時間重新計算。
圖2-3 MAC地址老化過程示意圖
如圖2-3所示,設備MAC地址老化時間設置為T。在t1時刻有源MAC地址為00e0-fc00-0001、VLAN為1的報文從某接口進入。假定該接口已加入VLAN 1。如果之前MAC地址表不存在關于(MAC: 00e0-fc00-0001,VLAN: 1)的任何種類表項,那麼這個地址就會作為動态MAC地址表項學習到地址表裡,同時該表項的命中标志位被置1。
設備周期性(每經過T時間)地對所有學習到的動态MAC地址表項進行檢查。
如上所述,通過自動老化,一條動态表項在MAC地址表存在的最短時間是設備所配置的老化時間T到2T之間。
設備MAC地址老化時間可手動設置。通過設置此時間,可以靈活控制動态學習到的MAC表項在MAC地址表存在的時間。
MAC地址學習控制
由于MAC地址表的容量是有限的,當黑客僞造大量源MAC地址不同的報文發送到設備後,設備上的MAC地址表項資源可能會被耗盡。當MAC表被填滿後,即使它再收到正常的報文,也無法學習到報文中的源MAC地址,導緻報文廣播轉發,浪費帶寬資源。
為了解決以上問題,設備提供了兩種方式對MAC地址學習進行控制:
表2-3 MAC地址學習控制方式說明
MAC地址漂移
什麼是MAC地址漂移
MAC地址漂移是指設備上一個VLAN内有兩個端口學習到同一個MAC地址,後學習到的MAC地址表項覆蓋原MAC地址表項的現象。圖2-4所示,MAC地址為0011-0022-0034,VLAN ID為2的表項,出接口由GE1/0/1刷新為GE1/0/2,這就是MAC地址漂移。設備出現MAC地址漂移時,設備CPU占用率會有不同程度的升高。
正常情況下,網絡中不會在短時間内出現大量MAC地址漂移的情況。出現這種現象一般都意味着網絡中存在環路,可以通過查看告警信息和漂移記錄,快速定位和排除環路。
圖2-4 MAC地址漂移示意圖
如何進行MAC地址漂移檢測
MAC地址漂移檢測是利用MAC地址出接口跳變的現象,檢測MAC地址是否發生漂移的功能。
配置MAC地址漂移檢測功能後,在發生MAC地址漂移時,可以上報包括MAC地址、VLAN,以及跳變的接口等信息的告警。其中跳變的接口即為可能出現環路的接口。網絡管理員可以根據告警信息,手工排查網絡中環路的源頭,也可以使用MAC漂移檢測提供的後續動作,使跳變的端口down或者VLAN從端口中退出,實現自動破環。
圖2-5 MAC地址漂移檢測組網圖
如圖2-5網絡中,若SwitchC和SwitchD之間誤接網線,則SwitchB、SwitchC、SwitchD之間形成環路。當SwitchA上Port1接口從網絡中收到一個廣播報文後轉發給SwitchB,該報文經過環路,會被SwitchA上Port2接口收到。配置MAC地址漂移檢測功能,SwitchA就會感知到MAC地址出接口跳變的現象。若連續出現此現象,SwitchA就會上報MAC漂移告警,提醒管理員進行維護。
如何防止MAC地址漂移
網絡中産生環路或非法用戶進行網絡攻擊都會造成MAC地址發生漂移,導緻MAC地址不穩定。
在規劃網絡時,可以通過下面兩種方式來避免這種情況:
如圖2-6所示,為防止非法用戶僞造服務器MAC地址入侵Switch,可以提高服務器側接口Port1的MAC地址學習優先級。
圖2-6 MAC防漂移應用組網圖
MAC刷新ARP
在以太網中,主機設備是根據MAC地址來發送、接收以太網數據幀。ARP用于提供IP地址到MAC地址的映射。當不同網段間通信時,需要使用ARP表項來将IP地址映射到正确的MAC地址及相應的出接口上。
一般來說設備上的MAC表項和ARP表項的出接口是一緻的。如圖2-7所示,在T1時間點,MAC地址表項和ARP表項的出接口是一緻的,都是GE1/0/1。當端口切換後,在T2時間點,MAC地址表項的出接口在收到報文時立即刷新為GE1/0/2,但是ARP表項的出接口還是GE1/0/1,需要等待T3時間點即ARP表項的老化時間到達後,通過ARP老化探測,才會刷新為GE1/0/2。這樣就在T2時間點和T3時間點之間,ARP表項的出接口是不可用的,會導緻不同網段間設備的通信中斷。
圖2-7 配置MAC刷新ARP功能之前
MAC刷新ARP可以實現在MAC出接口更新時,直接刷新ARP表項的出接口的功能。如圖2-8所示,在配置MAC刷新ARP功能後,在T2時間點,MAC地址表項出接口刷新為GE1/0/2後,直接把ARP表項的出接口刷新為GE1/0/2。解決了T2時間點和T3時間點之間,ARP表項出接口不可用的問題,避免了業務通信的中斷。
圖2-8 配置MAC刷新ARP功能之後
MAC刷新ARP功能多用在VRRP主備環境下挂服務器的組網中(通過MAC刷新ARP加快VRRP流量切換),也可以用在二層破環協議STP、SmartLink等進行三層流量切換的場景。
02 MAC應用場景
2.1 通過MAC防漂移防止用戶攻擊
在部署二層網絡時,可以使用MAC地址防漂移的功能,防止非法用戶的攻擊。
如圖2-9所示,某企業網絡中,用戶需要訪問企業的服務器。如果某些非法用戶從其他接口假冒服務器的MAC地址發送報文,則服務器的MAC地址将在其他接口學習到。這樣用戶發往服務器的報文就會發往非法用戶,不僅會導緻用戶與服務器不能正常通信,還會導緻一些重要用戶信息被竊取。為防止非法用戶僞造服務器MAC地址入侵Switch,在Switch上可配置MAC防漂移功能,設置合法用戶的MAC學習優先級高于非法用戶的MAC學習優先級,在非法用戶攻擊時就不會觸發MAC地址出接口漂移。
圖2-9 MAC地址防漂移組網圖
2.2 通過MAC漂移檢測快速發現環路
在組網發生環路時,環路上的故障點一定存在MAC地址漂移現象。利用這一現象,可以快速的判斷網絡中是否存在環路。
當設備出現如下現象時,可以開啟MAC漂移檢測功能,判斷是否是環路導緻的。
MAC漂移檢測功能相比其他環路檢測功能的優點是配置簡單。各類環路檢測特性對比如表2-4所示。
表2-4 環路檢測特性比較
2.3 通過MAC刷新ARP加快VRRP流量切換
VRRP備份組下挂的設備是服務器時,使用MAC刷新ARP的功能,可以加快VRRP主備切換的性能,減少業務中斷時間。
虛拟路由冗餘協議VRRP(Virtual Router Redundancy Protocol)通過把幾台路由設備聯合組成一台虛拟的路由設備,将虛拟網關設備的IP地址作為用戶的默認網關實現與外部網絡通信。當網關設備發生故障時,VRRP機制能夠選舉新的網關設備承擔數據流量,從而保障網絡的可靠通信。
一般情況下,如圖2-10所示用戶HostA通過Switch雙歸屬到SwitchA和SwitchB。在SwitchA和SwitchB上配置VRRP備份組,實現鍊路冗餘備份。當SwitchA和Switch之間的連線壞掉時,MAC和ARP表項可以及時切換到Switch和SwitchB的連線上。
圖2-10 VRRP典型組網圖
而在有些情況下如圖2-11,VRRP備份組下挂的設備,不是交換機而是服務器Server。Server發送報文時,一般情況下隻會選擇一個網口發包,當檢測到網絡故障或者流量異常時,切換到另外一個網口發包。
這種情況下就可以在Switch上配置MAC刷新ARP功能,當MAC表項的出接口變化時,會即時更新ARP表項的出接口,從而保證MAC表項和ARP表項的一緻性。
圖2-11 VRRP下挂服務器組網圖
網絡民工網絡民工專注于IT技術領域,結合實戰經驗,為您分享網絡技術、系統集成、網絡工程等一線技術解析和實踐案例等深度幹貨文章,願我們一起悅享技術,成就夢想!70篇原創内容
公衆号
關于MAC地址配置示例,請期待下期内容:
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!