MAC 地址表(MAC Address Table,硬件實現上常稱 CAM 表)是交換機內記錄「哪個 MAC 地址在哪個端口」的核心資料結構:交換機從每個幀的來源地址被動學習,再依表把幀精準送往目的端口,而不是盲目複製到所有端口。理解這張表的學習、轉發、老化與容量機制,是排查第二層問題與防範內網攻擊的基礎。本頁講解 MAC 表的完整運作流程、與 ARP 表的分別、常見故障徵狀,以及端口安全的實務配置。
學習與轉發的完整流程
每個網絡介面出廠時都帶有一個全球唯一的 48 位元 MAC 地址,作為第二層通訊的身份。根據 Wikipedia 對網絡交換機的介紹,交換機正是依靠學習與查詢 MAC 地址,把幀只轉發到目的裝置所在的端口。流程如下:
交換機每收到一個幀,都會讀取幀的來源 MAC 地址,把「這個地址出現在這個端口(及這個 VLAN)」記入 MAC 地址表,並重設該表項的老化計時。整個過程完全被動,無需裝置配合:只要裝置發過任何一個幀,其位置便被學習。若某地址其後從另一端口出現(例如裝置搬遷或經無線漫遊),表項會更新為新端口,交換機始終以最近一次學習的位置為準。
查表找不到目的地址時交換機怎樣做?
執行洪泛(Flooding):把幀複製到同一 VLAN 內除來源端口以外的所有端口,稱為未知單播洪泛。目的裝置收到後回應,其來源地址隨即被學習,之後的幀便可精準單播轉發。廣播幀與多數多播幀同樣以洪泛方式處理。這解釋了交換網絡「初次通訊靠洪泛、其後靠查表」的行為,也說明為何 MAC 表失效(例如被攻擊塞滿)時,交換機會退化成把所有流量到處洪泛的集線器。