tft每日頭條

 > 生活

 > 如何分辨mac地址是哪一種

如何分辨mac地址是哪一種

生活 更新时间:2025-02-02 13:48:43

前言

MAC(Media Access Control)地址用來定義網絡設備的位置。MAC地址由48比特長、12位的16進制數字組成,其中從左到右開始,0到23bit是廠商向IETF等機構申請用來标識廠商的代碼,24到47bit由廠商自行分派,是各個廠商制造的所有網卡的一個唯一編号。

MAC地址可以分為3種類型:

  • 物理MAC地址:這種類型的MAC地址唯一的标識了以太網上的一個終端,該地址為全球唯一的硬件地址;
  • 廣播MAC地址:全1的MAC地址為廣播地址(FF-FF-FF-FF-FF-FF),用來表示LAN上的所有終端設備;
  • 組播MAC地址:除廣播地址外,第8bit為1的MAC地址為組播MAC地址(例如01-00-00-00-00-00),用來代表LAN上的一組終端。其中以01-80-c2開頭的組播MAC地址叫BPDU MAC,一般作為協議報文的目的MAC地址标示某種協議報文。

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地址表項是由對應業務維護的,一般是通過動态表項轉換來的。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)1

表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接口轉發出去。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)2

表2-2 MAC地址表項

MAC地址表的作用

MAC地址表用于指導報文進行單播轉發。如圖2-1中,PC1發往PC3的報文,在到達交換機Switch時,根據報文中的目的MAC地址MAC3和VLAN10查詢交換機的MAC地址表,獲取出接口Port3,然後報文直接從接口Port3轉發到PC3,完成數據的轉發。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)3

圖2-1 基于MAC地址表的轉發流程圖

MAC地址學習和老化

MAC地址學習過程

一般情況下,MAC地址表是設備根據收到的數據幀裡的源MAC地址自動學習而建立的。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)4

圖2-2 MAC地址學習示意圖

如圖2-2,HostA向SwitchA發送數據時,SwitchA從數據幀中解析出源MAC地址(即HostA的MAC地址)和VLAN ID。

  • 如果MAC地址表中不存在該MAC地址表項,設備則将這個新MAC地址以及該MAC地址對應的PortA和VLAN ID作為一個新的表項加入到MAC地址表中。
  • 如果MAC地址表中已經存在該MAC地址表項,設備将通過重置該表項的老化時間,對該表項進行更新。

所以設備在收到數據幀時,才會觸發MAC地址的學習和刷新。當設備有多塊接口闆時,為了避免不必要的廣播報文以及提高報文轉發的速度,每個接口闆學習到的MAC地址表項,都會自動同步到其他單闆。

MAC地址老化過程

為适應網絡的變化,MAC表需要不斷更新。MAC表中自動生成的表項(即動态表項)并非永遠有效,每一條表項都有一個生存周期,到達生存周期仍得不到更新的表項将被删除,這個生存周期被稱作老化時間。如果在到達生存周期前記錄被更新,則該表項的老化時間重新計算。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)5

圖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地址表項進行檢查。

  1. 在t2時刻,檢查到動态表項(MAC: 00e0-fc00-0001,VLAN: 1)的命中标志位為1,則将該表項的命中标志位置為0,但不删除這條表項。
  2. 在t2時刻和t3時刻之間沒有這種報文進入設備,那麼該表項的命中标志位會一直保持為0。
  3. 在t3時刻,設備檢查到該表項的命中标志位為0,認為該表項的老化時間到達,将删除此條表項。

如上所述,通過自動老化,一條動态表項在MAC地址表存在的最短時間是設備所配置的老化時間T到2T之間。

設備MAC地址老化時間可手動設置。通過設置此時間,可以靈活控制動态學習到的MAC表項在MAC地址表存在的時間。

MAC地址學習控制

由于MAC地址表的容量是有限的,當黑客僞造大量源MAC地址不同的報文發送到設備後,設備上的MAC地址表項資源可能會被耗盡。當MAC表被填滿後,即使它再收到正常的報文,也無法學習到報文中的源MAC地址,導緻報文廣播轉發,浪費帶寬資源。

為了解決以上問題,設備提供了兩種方式對MAC地址學習進行控制:

  • 基于VLAN或接口關閉學習MAC能力
  • 基于VLAN或接口限制MAC地址數

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)6

表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地址漂移的情況。出現這種現象一般都意味着網絡中存在環路,可以通過查看告警信息和漂移記錄,快速定位和排除環路。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)7

圖2-4 MAC地址漂移示意圖

如何進行MAC地址漂移檢測

MAC地址漂移檢測是利用MAC地址出接口跳變的現象,檢測MAC地址是否發生漂移的功能。

配置MAC地址漂移檢測功能後,在發生MAC地址漂移時,可以上報包括MAC地址、VLAN,以及跳變的接口等信息的告警。其中跳變的接口即為可能出現環路的接口。網絡管理員可以根據告警信息,手工排查網絡中環路的源頭,也可以使用MAC漂移檢測提供的後續動作,使跳變的端口down或者VLAN從端口中退出,實現自動破環。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)8

圖2-5 MAC地址漂移檢測組網圖

如圖2-5網絡中,若SwitchC和SwitchD之間誤接網線,則SwitchB、SwitchC、SwitchD之間形成環路。當SwitchA上Port1接口從網絡中收到一個廣播報文後轉發給SwitchB,該報文經過環路,會被SwitchA上Port2接口收到。配置MAC地址漂移檢測功能,SwitchA就會感知到MAC地址出接口跳變的現象。若連續出現此現象,SwitchA就會上報MAC漂移告警,提醒管理員進行維護。

如何防止MAC地址漂移

網絡中産生環路或非法用戶進行網絡攻擊都會造成MAC地址發生漂移,導緻MAC地址不穩定。

在規劃網絡時,可以通過下面兩種方式來避免這種情況:

  • 提高接口MAC地址學習優先級。當不同接口學到相同的MAC地址表項時,高優先級接口學到的MAC地址表項可以覆蓋低優先級接口學到的MAC地址表項,防止MAC地址在接口間發生漂移。
  • 不允許相同優先級的接口發生MAC地址表項覆蓋。當僞造網絡設備所連接口的優先級與安全的網絡設備相同時,後學習到的僞造網絡設備的MAC地址表項不會覆蓋之前正确的表項。但如果網絡設備下電,仍會學習到僞造網絡設備的MAC地址,當網絡設備再次上電時将無法學習到正确的MAC地址。

如圖2-6所示,為防止非法用戶僞造服務器MAC地址入侵Switch,可以提高服務器側接口Port1的MAC地址學習優先級。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)9

圖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表項的出接口是不可用的,會導緻不同網段間設備的通信中斷。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)10

圖2-7 配置MAC刷新ARP功能之前

MAC刷新ARP可以實現在MAC出接口更新時,直接刷新ARP表項的出接口的功能。如圖2-8所示,在配置MAC刷新ARP功能後,在T2時間點,MAC地址表項出接口刷新為GE1/0/2後,直接把ARP表項的出接口刷新為GE1/0/2。解決了T2時間點和T3時間點之間,ARP表項出接口不可用的問題,避免了業務通信的中斷。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)11

圖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地址出接口漂移。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)12

圖2-9 MAC地址防漂移組網圖

2.2 通過MAC漂移檢測快速發現環路

在組網發生環路時,環路上的故障點一定存在MAC地址漂移現象。利用這一現象,可以快速的判斷網絡中是否存在環路。

當設備出現如下現象時,可以開啟MAC漂移檢測功能,判斷是否是環路導緻的。

  • MAC地址表項時有時無
  • ping操作時通時不通
  • CPU使用率升高,出現超過阈值的告警

MAC漂移檢測功能相比其他環路檢測功能的優點是配置簡單。各類環路檢測特性對比如表2-4所示。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)13

表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的連線上。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)14

圖2-10 VRRP典型組網圖

而在有些情況下如圖2-11,VRRP備份組下挂的設備,不是交換機而是服務器Server。Server發送報文時,一般情況下隻會選擇一個網口發包,當檢測到網絡故障或者流量異常時,切換到另外一個網口發包。

  • SwitchA為VRRP主設備,一開始服務器使用Port2發送報文,此時SwitchA學習到的服務器ARP表項和MAC表項都在Port2接口上,SwitchB學習的服務器MAC在Port1接口;
  • 當服務器檢測到Port2故障時,服務器切換至Port1繼續發送業務報文,這時SwitchA學習到的服務器MAC地址會刷新到Port1,但如果服務器切換轉發接口後不主動發送ARP請求報文的話,ARP表項還是在Port2接口上。這樣SwitchA發往服務器的報文就會從接口Port2接口發出去,而不能被正确轉發,直到該ARP表項老化。

這種情況下就可以在Switch上配置MAC刷新ARP功能,當MAC表項的出接口變化時,會即時更新ARP表項的出接口,從而保證MAC表項和ARP表項的一緻性。

如何分辨mac地址是哪一種(關于MAC地址你了解多少呢)15

圖2-11 VRRP下挂服務器組網圖

網絡民工網絡民工專注于IT技術領域,結合實戰經驗,為您分享網絡技術、系統集成、網絡工程等一線技術解析和實踐案例等深度幹貨文章,願我們一起悅享技術,成就夢想!70篇原創内容

公衆号

關于MAC地址配置示例,請期待下期内容:

  • 1. 配置靜态MAC地址示例
  • 2. 配置黑洞MAC地址示例
  • 3. 配置基于接口的MAC地址學習限制示例
  • 4. 配置基于VLAN的MAC地址學習限制示例
  • 5. 配置基于VSI的MAC地址學習限制示例
  • 6. 配置MAC防漂移示例
  • 7. 配置MAC地址漂移檢測示例
,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved