arp
位址解析協定(Address Resolution Protocol, ARP)在同一個第 2 層網段裡,把 IPv4 翻譯成 MAC。你要傳給 192.168.1.1 時,乙太網路幀其實寫的是閘道的 MAC。作業系統把對應關係存在 ARP 快取;arp 用來查看這張表。
IPv6 不用 ARP,改用鄰居探索(Neighbor Discovery)。Linux 上可用 ip -6 neigh。
基本用法
三個平台都可以:
Linux 另外建議:
輸出會列出 IP、MAC、介面,以及動態(靠詢問學來)或靜態(人手寫入)項目。閘道、本機其他電腦、印表機通常會出現;沒溝通過的 IP 不會在表裡。
先 ping 再查,表才會更新:
若閘道 IP 對到的 MAC 和路由器貼紙/管理頁上的不同,要懷疑 IP 衝突或 ARP 被汙染(同一網段有人回了不該回的 MAC)。家用環境先重開路由器與電腦;公司環境交給網管。
清除快取(需系統管理員):
arp -d 可刪單一項目,語法因作業系統略有差異。一般除錯清快取再 ping 就夠,不必手動 arp -s 寫靜態項目——靜態項目忘了刪會變成之後難查的幽靈對應。
ARP 只作用於本網段
不會為網際網路上的主機建立 ARP 項目。表裡看到的遠端 IP 若帶「閘道 MAC」,代表那些封包是交給閘道代轉的。
教學影片
ARP Explained - Address Resolution Protocol(PowerCert Animated Videos)從空的 ARP 快取開始:廣播詢問、對方回 MAC、寫入快取,並示範 arp -a 與靜態項目。約數分鐘,觀念與指令都有。
ARP & Netstat Commands Explained 在命令提示字元實際刪除、再 ping 讓項目回來,並順便介紹 netstat。想看「動手改表」時看這支;日常除錯仍以查看為主。