National Central University
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try an AI Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

3

Local AI

--

Uedu Code

--

中央大學 AQI 80 24°C PM2.5 21
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 08

ARP 與預設閘道

同網段怎麼找到對方的 MAC,跨網段為什麼要交給閘道
Interaction 25 minute(s)

Learning Objectives

  • 說明為什麼送出 IP 封包前要先知道下一站的 MAC 位址
  • 描述 ARP 的請求(廣播)與回覆(單播),並解讀 ARP 表
  • 說明跨網段時封包交給預設閘道:目的 MAC 是閘道的,目的 IP 仍然是最終的對方
  • 從症狀判斷預設閘道沒設、設成不存在的位址或設成一般主機

知道 IP 位址還不夠

PC1 要 ping 同一個網段的 192.168.1.20。IP 封包要裝進乙太網路訊框(frame)才能在線上傳送, 而訊框的目的地寫的是 MAC 位址(第 3 課):交換器只看 MAC,不看 IP。

層 用什麼位址 PC1 現在知道嗎
網路層(IP 封包) 目的 IP 192.168.1.20 知道,使用者輸入的
資料鏈結層(乙太網路訊框) 目的 MAC ??:??:??:??:??:?? 不知道

所以 PC1 需要一個「IP 位址 → MAC 位址」的查詢方法,這就是 ARP(Address Resolution Protocol,位址解析協定,1982 年的 RFC 826):

  1. PC1 送出 ARP 請求:「誰是 192.168.1.20?請告訴 192.168.1.10。」目的 MAC 是 ff:ff:ff:ff:ff:ff,也就是廣播,同一個網段的每台主機都會收到。
  2. 只有 192.168.1.20 回 ARP 回覆:「192.168.1.20 在 02:00:00:00:03:01。」回覆直接送給 PC1,是單播。
  3. PC1 把答案記進 ARP 表(ARP 快取),再把 ping 裝進目的 MAC 是 PC2 的訊框送出。

下次再送給同一個位址就直接查表,不必再問。ARP 表的記錄會在一段時間後過期(各作業系統的時間不同),以免對方換了網卡還用舊的 MAC。 在自己的電腦上,Windows 與 macOS 可以用 arp -a 看 ARP 表,Linux 用 ip neigh。

互動練習:看 ARP 怎麼找到對方

三台電腦在同一個網段。點拓撲圖上的設備可以切換命令列;ping 之後下方的封包紀錄會列出每個訊框(橘色是 ARP),點一列可以看欄位。 設備指令是本課程自訂的教學用指令,各作業系統實際的指令以手冊為準。

小測驗:ARP

1.

ARP 請求的目的 MAC 位址是什麼?

2.

PC1 剛 ping 過 PC2,十秒後再 ping 一次。第二次會怎樣?

3.

ARP 的請求能不能穿過路由器,問到另一個網段的主機?

第 1 次作答

跨網段:交給預設閘道

PC1(192.168.1.10/24)要連 10.0.2.10。它先用遮罩判斷(第 6 課):10.0.2.10 不在 192.168.1.0/24 裡, 不能直接送;ARP 請求也問不到別的網段。這時封包交給預設閘道(default gateway),也就是同網段裡那台路由器的介面。

關鍵在於兩層位址的分工:

欄位 PC1 送出的訊框 R1 轉送出去的訊框
來源 MAC PC1 R1 的 g1
目的 MAC R1 的 g0(閘道) SRV
來源 IP 192.168.1.10 192.168.1.10(不變)
目的 IP 10.0.2.10(最終的對方) 10.0.2.10(不變)
  • PC1 用 ARP 問的是閘道 192.168.1.1 的 MAC,不是 10.0.2.10 的 MAC。
  • IP 位址從頭到尾不變(第 12 課的 NAT 例外),MAC 位址每經過一台路由器就換一次:每一段只負責送到下一站。
  • 路由器收到後查路由表(第 9 課),再用 ARP 問下一站的 MAC,重新裝進新的訊框。

所以 PC1 的 ARP 表裡只會有閘道,不會有 10.0.2.10。閘道的位址通常是網段的第一個或最後一個可用位址(例如 .1 或 .254),這只是習慣,不是規定。

互動練習:設定預設閘道

PC1 要連另一個網段的伺服器 SRV。R1 與 SRV 已經設定好。ping 成功後,在封包紀錄裡點 PC1 送出的 ping 請求,看它的目的 MAC 與目的 IP。

閘道設錯的症狀

閘道設錯時,同網段的通訊完全正常,只有跨網段不通,這是最典型的線索。常見的錯誤:

錯誤 症狀 封包紀錄看得到什麼
沒有設定閘道 跨網段立刻失敗 沒有任何封包送出,主機說「沒有路由」
設成不存在的位址(例如打錯成 .254) 跨網段失敗 主機一直問「誰是 192.168.1.254?」,沒有人回答
設成同網段的一般主機 跨網段失敗 ARP 問得到(那台主機會回覆),封包送到了,但主機不轉送別人的封包
閘道不在自己的網段(第 6 課的遮罩問題) 跨網段失敗 主機說「沒有路由」

排錯的順序:先 ping 自己的閘道(同網段,確認第 2 層與 ARP 正常),再 ping 外面的位址。前者通、後者不通,就檢查閘道設定與路由。

安全預告:ARP 沒有任何驗證,主機收到回覆就相信。有心人可以不斷送出假的 ARP 回覆,宣稱「閘道的 IP 在我的 MAC」, 讓別人的封包先經過自己的電腦,這叫 ARP 偽冒(ARP spoofing)。第 23 課會說明它的原理與防禦方法(例如交換器的動態 ARP 檢查)。

互動練習:修好兩台設錯閘道的電腦

PC1 的設定是正確的。PC2 和 PC3 都連不到伺服器 SRV,各有一種閘道錯誤。用 ping 與封包紀錄找出原因,再修正。

小測驗:預設閘道

1.

PC1(192.168.1.10)送給 10.0.2.10 的訊框,離開 PC1 時的目的 MAC 與目的 IP 分別是?

2.

封包從 PC1 經過兩台路由器到達伺服器。途中哪一個欄位沒有改變?

3.

同學的電腦能 ping 到同網段的印表機,也能 ping 到 192.168.1.1(學校的路由器),但連不上任何外面的網站。最該先檢查什麼?

第 1 次作答

重點整理

  • 乙太網路訊框靠 MAC 位址送達;知道 IP 之後,還要用 ARP 問出下一站的 MAC。
  • ARP 請求是廣播、回覆是單播;答案記進 ARP 表,一段時間後過期。只有被問的主機會記下發問者。
  • 目的地在同一個網段:直接問對方的 MAC。不在:交給預設閘道,問的是閘道的 MAC。
  • 一路上 IP 位址不變、MAC 位址每一段都換。
  • 閘道設錯的共同症狀:同網段正常、跨網段不通。先 ping 閘道,再 ping 外面,看封包停在哪裡。
  • ARP 沒有驗證,可能被偽冒;防禦方法在第 23 課。

封包交給閘道之後,路由器怎麼決定下一步往哪裡送?下一課講路由表與靜態路由。

這一課完成了!
Next lesson:路由表與靜態路由
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。