01 核心概念 (Concept)
一句話定義
ARP (RFC 826) 是一個運作在 OSI 模型第 2.5 層的協定,其唯一任務是將已知的 IP 位址 (L3) 解析為實體 MAC 位址 (L2),讓封包能在區域網路(LAN)中正確傳遞。
生活化比喻
想像你在一個吵雜的會議室(LAN)裡,你想把一份文件交給「財務經理」(IP Address)。
你不知道誰是財務經理,所以你站起來大喊:「誰是財務經理?」(ARP Request - 廣播)。
某個人舉手回答:「我是,我的座位在 C 排 5 號。」(ARP Reply - 單播)。
於是你走過去把文件放到 C 排 5 號(MAC Address)。
02 運作原理 (Mechanism)
封包流向與技術細節
-
Step 1: 檢查 ARP Cache
當主機 A 要傳送資料給主機 B (同網段) 時,會先檢查自己的 ARP Table (快取)。若有紀錄,直接封裝 Frame 傳送;若無 (Cache Miss),則啟動 ARP 程序。 -
Step 2: 發送 ARP Request (廣播)
主機 A 發送廣播封包。
Dst MAC: FF:FF:FF:FF:FF:FF (Broadcast)
Opcode: 1 (Request)
Switch 收到後,會將此封包 Flood 到該 VLAN 的所有 Port (除了來源 Port)。 -
Step 3: 回傳 ARP Reply (單播)
只有主機 B 發現 "Target IP" 是自己,才會回應。
Dst MAC: Host A MAC (Unicast)
Opcode: 2 (Reply)
廠商視角:ExtremeXOS vs Cisco IOS
| 功能 | ExtremeXOS | Cisco IOS |
|---|---|---|
| 查看 ARP 表 | show iparp | show arp |
| 清除 ARP | clear iparp [all | vlan <name>] | clear arp-cache |
| Timeout 設定 | configure iparp timeout <sec> | arp timeout <sec> |
* 備註:在 ExtremeXOS 中,ARP 屬於 Layer 3 轉發的重要依據,常結合 "FDB (Layer 2)" 一起除錯。
03 架構視覺化 (Visuals)
標準 ARP 請求與回應流程 (Sequence Diagram)
查 ARP Table: MISS rect rgb(255, 240, 240) Note right of A: ARP Request (Broadcast) A->>S: Who has 192.168.1.20? Tell 192.168.1.10 S-->>C: Flood (Broadcast) S-->>B: Flood (Broadcast) end Note over C: IP 不符,丟棄 Note over B: IP 符合! 紀錄 A 的 MAC rect rgb(240, 255, 240) Note left of B: ARP Reply (Unicast) B->>S: 192.168.1.20 is at BB:BB:BB:BB:BB:BB S->>A: Forward to Port A end Note over A: 更新 ARP Table
開始傳送 Data Frame
ARP 解析決策流程 (Flowchart)
Dest MAC = Cache Entry] Encap --> Send[傳送至 L2 層] CheckCache -- Miss (無紀錄) --> Buffer[緩衝原始封包] Buffer --> GenReq[生成 ARP Request
Opcode=1, Dst=FF:FF...] GenReq --> Broad[廣播發送] Broad --> Wait{等待 Reply} Wait -- Timeout --> Drop[丟棄封包] Wait -- Receive Reply --> Learn[學習 MAC
更新 ARP Cache] Learn --> Unbuffer[取出緩衝封包] Unbuffer --> Encap
04 實務應用場景 (Use Case)
場景:預設閘道 (Default Gateway) 的 ARP 解析
企業網路中,當員工要連線到 Internet (例如 Google 8.8.8.8) 時,因為目的 IP 不在同一個網段,電腦必須將封包交給路由器 (Gateway)。
關鍵點: 電腦會發送 ARP Request 詢問 "Who has [Gateway IP]?" 而不是 "Who has 8.8.8.8?"。這是一個初學者常犯的觀念錯誤。得到的 MAC Address 將是 Router 介面的 MAC。
優點
- 即插即用: 使用者無需手動設定 MAC 與 IP 的對應,完全自動化。
- 靈活性: 更換網卡 (MAC 改變) 後,Gratuitous ARP (GARP) 可快速更新鄰居的 Cache。
- 低成本: 協定簡單,對設備 CPU 負擔通常較小。
缺點與風險
- 廣播風暴 (Broadcast Storm): 若 L2 Loop 未被 STP 阻擋,ARP 廣播會癱瘓網路。
- ARP Spoofing (欺騙): 駭客發送偽造的 ARP Reply,將 Gateway 的 IP 對應到駭客自己的 MAC,導致中間人攻擊 (MITM)。
- 不穩定性: 若 ARP Cache Timeout 設定過短,會增加廣播流量。
05 隨堂測驗 (Quiz)
Q1. 當主機 A (10.1.1.5) 想要 Ping 主機 B (10.1.1.6),發出 ARP Request 時,該 Ethernet Frame 的 Destination MAC 是什麼?
解析:ARP Request 是一個廣播封包 (Broadcast),目的是詢問網段內「所有人」,所以 L2 Destination MAC 必須是全為 1 的 FF:FF:FF:FF:FF:FF。
Q2. 在 ExtremeXOS Switch 中,若要查看目前的 ARP 對應表,應使用哪個指令?
解析:ExtremeXOS 的指令是 `show iparp`。`show arp` 是 Cisco IOS 的指令;`show mac-address-table` 是查看 L2 FDB 表,不包含 IP 資訊。
Q3. 什麼是 "Gratuitous ARP" (GARP)?
解析:GARP 通常用於 1. 偵測 IP 衝突 (Duplicate Address Detection) 2. 在 HA 架構 (如 VRRP/HSRP) 切換時,通知 Switch 更新 MAC table。