言
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地址配置示例,請期待下期內容:
含筆電、手機以及幾乎所有連接到網絡的設備都有一個唯一的標識符,稱之為 Media Access Control Address,簡稱為 MAC 地址,而它就像網卡的身份證,獨一無二綁定于硬件之上, 也正是用來確認連網裝置所在的地址的方式。一般人對這個比較不熟悉,但難保會有需要用到的時候,這次一口氣把在 Windows 10 上查找 MAC 的五種方法一次教給你!
雖然大多數公司里都有 IT 工程師來幫你解決這些計算機、網絡方面的疑難雜癥,但若你家中計算機或是忽然有需求,還是要自己動手來的ˊ時候,5 種查找 MAC 的方法學起來,就等你大顯身手,成為辦公室的英雄!
方法一:從設置中查找
1、打開設定,點擊進入「網絡和Internet」。
2、點選以太網絡或 WLAN,主要根據你目前的網絡聯機方式來選擇,并且在這個分頁中點選你已經連接的網絡。
3. 拉到最下面即可看到 MAC 位址。
方法 二:從控制面板找
1、 打開控制面板后,點選「網絡和Internet」。
2. 進入「網絡和共享中心」,選擇旁邊的「更改適配器設置」。
3、雙擊目前正在連接的網絡(以太網絡或 WLAN)。
4. 在接下來的窗口中點選「詳細信息」,即可從接下來的窗口中看到「實體地址」。
方法 三:從系統信息找
1、在搜尋中輸入「系統信息」,并點擊開啟。
2. 展開「組件」,從底下項目展開「網絡」并選擇「適配器」,向下滾動到所需的網絡卡名稱下方,即可看到該網絡卡的 MAC。
方法 四:用命令提示字符找
1、在搜尋處輸入「命令提示字符」,點擊開啟。
2、輸入「ipconfig /all」指令后,按下 Enter。
3、接下來,你可以從出現的信息中看到「物理地址」。
方法 五:利用 PowerShell 找1、 搜尋「PowerShell」,點擊開啟(或win + x)。
2. 輸入「Get-NetAdapter」指令后按下 Enter。
3、接下來你就可以看到網卡與其對應的 MAC 地址。
5 種方法,殊途同歸,大家可以依照實際狀況自己斟酌選用,條條大路通 MAC 地址,這次教學就到這里,你學會了嗎?
過cmd命令查看局域網內所有IP地址和MAC地址的方法:
1、搜索運行,點擊打開;
2、在運行中輸入cmd,回車;
3、在命令提示符中輸入:arp -a,點擊回車,就可以看到當前局域網中所有的IP地址和MAC地址。