網絡小故事 9 · 入門

走出家門Router(路由器)與 Default Gateway(預設閘道)

八爪送不到其他網絡,那封信要交給誰?

主角:路路、八爪、小比閱讀時間約 10 分鐘

建議先讀:第 4 課、小故事 3「ARP」

1. 故事

按「下一步」一步一步看。每一步都有一位角色出場,解釋自己正在做什麼。

序幕:溫習一下

第 1 步/共 13 步

LAN 裡的送貨方法

在 LAN(區域網絡)裡,我按 MAC Address(硬體位址)送貨;不知道對方的 MAC Address,就用 ARP(位址解析協定)Broadcast(廣播)問。阿麥送相片給電視,就是這樣。

動畫文字版(全部步驟)
  1. 序幕:溫習一下
  2. LAN 裡的送貨方法 八爪:在 LAN(區域網絡)裡,我按 MAC Address(硬體位址)送貨;不知道對方的 MAC Address,就用 ARP(位址解析協定)Broadcast(廣播)問。阿麥送相片給電視,就是這樣。
  3. 第一幕:要去的地方不在家
  4. example.com 在哪裡? 小比:阿麥想打開 example.com,查查博士說它的 IP Address(網絡位址)是 192.0.2.80。可是它不在八爪的筆記簿裡;就算用 ARP 問,也不會有人答,因為它根本不在這個 LAN!
  5. 路路出場 路路:讓我來!我是 Router(路由器),連接家中的 LAN 和外面的互聯網。我對內的位址是 192.168.1.1,對外是 203.0.113.1。去其他網絡的小比,都交給我吧!
    • Router 看 IP Address,在不同網絡之間轉送 Packet(封包)
    • 每個 Port 屬於不同的網絡:對內 192.168.1.1、對外 203.0.113.1
  6. 同一個網絡嗎? 小比:出發前,阿麥先比較網絡部分。他的 Subnet Mask(子網絡遮罩)是 /24,即前三組數字:自己是 192.168.1,對方是 192.0.2,不一樣!所以要交給 Default Gateway(預設閘道)。
    • 阿麥的設定:IP 192.168.1.10、Subnet Mask 255.255.255.0(/24)、Default Gateway 192.168.1.1
    • 192 開頭不一定是 Private IP:只有 192.168 開頭才是
  7. 用 ARP 問路路的名牌 小比:阿麥用 ARP 問的不是 192.0.2.80,而是:「誰是 192.168.1.1?」路路回答:「是我,MAC Address 00:00:5E:00:53:FE。」
  8. 背包上的兩層地址 小比:我出發了!Frame(訊框)的收件人 MAC 寫路路的 …:FE,因為他是下一站;但背包裡的 IP 收件人寫 192.0.2.80,因為那才是最終目的地。
    • Frame 收件人 MAC:00:00:5E:00:53:FE(路路)
    • IP 收件人:192.0.2.80(example.com)
    • TTL(存活時間):64
  9. 第二幕:路路的工作
  10. 拆下送貨袋、看 IP 路路:我收到小比,先拆下 Frame 這個「送貨袋」,看看裡面的 IP 收件人:192.0.2.80。它不在我直接連接的網絡,於是按地圖交給下一站:ISP Router 203.0.113.254。
    • 地圖叫 Routing Table(路由表),小故事 12 詳細講
    • 每經過一部 Router,TTL 減 1:64 → 63
  11. 換一個新的送貨袋 路路:我幫小比換上新的 Frame:收件人是 ISP Router 的 MAC,寄件人是我對外那個 Port 的 MAC。IP 收件人仍然是 192.0.2.80,一個字也不改。
    • MAC Address:每一段都換
    • IP 收件人:由頭到尾不變
    • (家用 Router 還會用 NAT 把寄件人 IP 改成 203.0.113.1,小故事 14 再講)
  12. 一站一站到達 小比:ISP Router 也是一位路路,它同樣看 IP 收件人,再交給下一站。經過互聯網上幾部 Router 之後,我終於到達 example.com 的伺服器!
  13. 回程也一樣 路路:伺服器的回覆沿路交回給我。我看 IP 收件人是家中的阿麥,於是用 ARP 找到他的 MAC Address,交給八爪送到阿麥手上。
  14. 第三幕:路路不插手的事
  15. 家中的事,八爪處理 八爪:阿麥送相片給電視 192.168.1.11,網絡部分一樣,所以直接用 ARP 找電視,由我送過去。路路完全不用插手。
    • 同一個網絡 → 直接送(經 Switch)
    • 不同網絡 → 交給 Default Gateway(Router)
  16. Broadcast 到此為止 路路:我不會轉送 Broadcast。阿麥的 Broadcast 走到我這裡就停下,不會跑到互聯網去。所以我每個 Port 後面,都是一個獨立的 Broadcast Domain(廣播域)。
  17. 總結:走出家門 路路:記住:同一個網絡就直接送;不同網絡就交給 Default Gateway。經過 Router 時,MAC Address 每段都換、TTL 減 1,但 IP 收件人不變。這邊走,這條路最快!

2. 問題在哪裡

在家中的 LAN(區域網絡)裡,八爪這部 Switch(交換器)看 MAC Address(硬體位址)送貨。不知道對方的 MAC Address,就用 ARP(位址解析協定)發出 Broadcast(廣播)問:「誰是某某?」

可是阿麥想打開 example.com。查查博士告訴他,伺服器的 IP Address(網絡位址)是 192.0.2.80。

留意:192 開頭不一定是 Private IP(私人位址),只有 192.168 開頭才是。192.0.2.80 是互聯網上的位址,根本不在家中。

所以:

  • 八爪的筆記簿裡沒有它;
  • 就算阿麥用 ARP 問「誰是 192.0.2.80?」,也永遠不會有人回答(實際上電腦根本不會這樣問)。

八爪只懂得在同一個 LAN 裡送貨。要去其他網絡,必須找另一位幫手。

3. 網絡怎樣解決

想像你住在一幢大廈。寄信給同一層的鄰居,自己拿過去就可以;寄去另一個城市,就要交給樓下的郵局。

Router(路由器)就是這間郵局。它看 IP Address,在不同網絡之間轉送 Packet(封包)。家中裝置把「要送到其他網絡」的資料交給的那部 Router,叫 Default Gateway(預設閘道)。

阿麥每次出發前,都會先問自己一個問題:「對方和我在同一個網絡嗎?」一樣,就直接送;不一樣,就交給 Default Gateway。

4. 看深一點

路路身上有兩個位址

Router 每個 Port(連接埠)都接著一個不同的網絡,所以每個 Port 都有自己的 IP Address:

路路的 Port IP Address 接著哪個網絡
對內:家中 LAN 192.168.1.1,MAC Address 00:00:5E:00:53:FE 192.168.1.0/24
對外:接 ISP(互聯網服務供應商) 203.0.113.1 互聯網

家中裝置的 Default Gateway,填的是路路對內的位址 192.168.1.1。

阿麥的設定

阿麥的網絡設定有三項重要資料(通常由 DHCP(動態主機設定協定)自動分配):

IP Address:       192.168.1.10
Subnet Mask:      255.255.255.0(/24)
Default Gateway:  192.168.1.1

Subnet Mask(子網絡遮罩)/24 表示前 24 位元,即前三組數字,是網絡部分。

出發前的判斷

收件人 阿麥的網絡部分 對方的網絡部分 結果
電視 192.168.1.11 192.168.1 192.168.1 一樣 → 直接用 ARP 找電視,經八爪送過去
example.com 192.0.2.80 192.168.1 192.0.2 不一樣 → 交給 Default Gateway

留意:要交給 Default Gateway 時,阿麥用 ARP 問的是「誰是 192.168.1.1?」,而不是「誰是 192.0.2.80?」。他要的是路路的 MAC Address,因為路路才是下一站。

背包上的兩層地址

小比身上其實有兩層地址:外面的 Frame(訊框)是「送貨袋」,只管這一段路;裡面的 IP 標頭就是小比的「背包」,寫著最終目的地。

第 1 段:阿麥 → 路路 第 2 段:路路 → ISP Router
Frame 寄件人 MAC 阿麥 00:00:5E:00:53:01 路路對外 Port 的 MAC
Frame 收件人 MAC 路路 00:00:5E:00:53:FE ISP Router 的 MAC
IP 寄件人 192.168.1.10 203.0.113.1(NAT 改寫)
IP 收件人 192.0.2.80 192.0.2.80(不變)
TTL(存活時間) 64 63

每經過一部 Router:

  1. 拆下舊的 Frame,看裡面的 IP 收件人。
  2. 查 Routing Table(路由表),決定下一站。路路的下一站是 ISP Router 203.0.113.254,這種「下一站」業界稱為 Next Hop(下一跳)。
  3. TTL 減 1;如果減到 0,就丟棄這個 Packet。
  4. 換上新的 Frame,寄件人是自己出口 Port 的 MAC Address,收件人是下一站的 MAC Address。

MAC Address 每一段都換,IP 收件人由頭到尾不變。至於寄件人 IP 由 192.168.1.10 變成 203.0.113.1,那是家用 Router 另外做的 NAT(網絡位址轉換),小故事 14 再詳細講。

Router 不轉送 Broadcast

Switch 會把 Broadcast 送到所有其他 Port,但 Router 不會轉送 Broadcast。所以路路每個 Port 後面,都是一個獨立的 Broadcast Domain(廣播域),即 Broadcast 能夠到達的範圍。

如果 Router 也轉送 Broadcast,全世界每一部裝置的 ARP 詢問都會湧進互聯網,網絡馬上就會癱瘓。

Default Gateway 設錯了會怎樣?

如果阿麥的 Default Gateway 填錯了,或者路路關機了:

  • 阿麥仍然可以把相片送給電視,因為那是同一個網絡;
  • 但所有網站都打不開,因為「外出的信」沒有人接收。

「家中裝置可以互傳檔案,卻上不了網」,Default Gateway 是其中一個值得檢查的地方。

5. 動手試試

任務:找出你的 Default Gateway 和它的 MAC Address

  1. 在電腦上打開「命令提示字元」(Windows)或「終端機」(Mac),輸入 ipconfig(Windows)或 netstat -rn(Mac),找出 Default Gateway(Windows 顯示為「預設閘道」)。手機可以在 Wi-Fi 設定中查看,iPhone 顯示為「路由器」。
  2. 先打開一個網頁,再輸入 arp -a。
  3. 在列表中找出 Default Gateway 的 IP Address,看看它對應的 MAC Address。這就是你家的「路路」的名牌!
  4. 想一想:列表中有沒有 example.com 這類外面網站的 IP Address?為什麼沒有?(提示:阿麥只會用 ARP 找同一個網絡裡的裝置。)

小互動

直接送,還是交給路路?

阿麥的位址是 192.168.1.10/24。以下每一個收件人,他會直接送,還是交給 Default Gateway?

  1. 1192.168.1.11(電視)

  2. 2192.0.2.80(example.com)

  3. 3192.168.1.12(桌面電腦)

  4. 4203.0.113.2(鄰居家的 Router)

  5. 5192.168.20.10(客人區的電腦)

  6. 6198.51.100.1(咖啡店的 Router)

6. 比喻的極限

  • 路路不是真的「拆開」小比。 Router 讀取 Frame 標頭後,把舊的 Frame 標頭丟掉、換上新的,裡面的 IP Packet 只改動 TTL 等少量欄位,資料內容完全不看。
  • 回程其實要經過 NAT。 動畫中伺服器的回覆直接寫著阿麥;實際上回覆的 IP 收件人是 203.0.113.1,路路再用 NAT 把它改回 192.168.1.10,小故事 14 會解釋。
  • Default Gateway 不一定是「家用 Router」那個盒子。 家用 Router 其實是 Router、Switch、Access Point(無線基地台)合成一部;公司網絡的 Default Gateway 可以是一部 Layer 3 Switch(第三層交換器),小故事 10 會講。
  • 互聯網上的 Router 不止「幾部」。 由家中到一個網站,通常要經過十部或以上的 Router,而且來回的路線不一定一樣。
  • ARP 不是每次都要問。 阿麥會把路路的 MAC Address 記在 ARP Cache(ARP 快取)裡,之後一段時間不用再問。

7. 小測驗

第 1 題,共 3 題阿麥(192.168.1.10/24)要送資料給 192.0.2.80,他會把 Frame 的收件人 MAC Address 填成誰的?
第 2 題,共 3 題小比經過一部 Router 之後,以下哪一項不會改變?(不計 NAT)
第 3 題,共 3 題為什麼阿麥的 Broadcast 不會去到 example.com 的伺服器?

8. 重點筆記

  • Router(路由器)看 IP Address,在不同網絡之間轉送 Packet;它每個 Port 屬於不同的網絡,各有自己的 IP Address。
  • 出發前先比較網絡部分:同一個網絡就直接送;不同網絡就交給 Default Gateway(預設閘道)。
  • 要交給 Default Gateway 時,裝置用 ARP 找的是 Default Gateway 的 MAC Address,而不是最終目的地的。
  • 經過 Router 時,MAC Address 每一段都換、TTL 減 1,但 IP 收件人由頭到尾不變。
  • Router 不轉送 Broadcast,每個 Router Port 後面是一個獨立的 Broadcast Domain(廣播域)。

延伸閱讀

路路帶小比走出了家門:同一個網絡直接送,不同網絡就交給 Default Gateway。可是家中已經分成了家人區和客人區兩個 VLAN(虛擬區域網絡),兩區之間又要怎樣溝通?下一個故事,路路和八爪會合作搭一條橋樑:Inter-VLAN Routing(VLAN 間路由)。