通過mac碼獲取定位:路由器mac地址是什麼

前言

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地址,你了解多少呢?

表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地址,你了解多少呢?

表2-2 MAC地址表項

MAC地址表的作用

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

關於MAC地址,你了解多少呢?

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

MAC地址學習和老化

MAC地址學習過程

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

關於MAC地址,你了解多少呢?

圖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地址,你了解多少呢?

圖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地址,你了解多少呢?

表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地址,你了解多少呢?

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

如何進行MAC地址漂移檢測

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

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

關於MAC地址,你了解多少呢?

圖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地址,你了解多少呢?

圖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地址,你了解多少呢?

圖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地址,你了解多少呢?

圖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地址,你了解多少呢?

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

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

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

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

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

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

關於MAC地址,你了解多少呢?

表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地址,你了解多少呢?

圖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地址,你了解多少呢?

圖2-11 VRRP下掛伺服器組網圖

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

公眾號

關於MAC地址配置示例,請期待下期內容:

  • 1. 配置靜態MAC地址示例
  • 2. 配置黑洞MAC地址示例
  • 3. 配置基於介面的MAC地址學習限制示例
  • 4. 配置基於VLAN的MAC地址學習限制示例
  • 5. 配置基於VSI的MAC地址學習限制示例
  • 6. 配置MAC防漂移示例
  • 7. 配置MAC地址漂移檢測示例

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/214565.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 19:09
下一篇 2024-12-08 19:09

相關推薦

發表回復

登錄後才能評論