網絡小故事 10 · 進階

兩區之間的橋樑Inter-VLAN Routing(VLAN 間路由)

家人區和客人區分開了,可是有時也要溝通,怎樣做?

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

建議先讀:小故事 6「Trunk 與 802.1Q」、小故事 9「Router 與 Default Gateway」

1. 故事

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

序幕:溫習一下

第 1 步/共 12 步

兩區,互不相通

阿麥在家人區 VLAN 10,客人電腦 1 在客人區 VLAN 20。不同 VLAN(虛擬區域網絡)就是不同的 LAN,我不會在它們之間轉送 Frame(訊框)。

動畫文字版(全部步驟)
  1. 序幕:溫習一下
  2. 兩區,互不相通 八爪:阿麥在家人區 VLAN 10,客人電腦 1 在客人區 VLAN 20。不同 VLAN(虛擬區域網絡)就是不同的 LAN,我不會在它們之間轉送 Frame(訊框)。
  3. 第一幕:兩區需要溝通
  4. 客人要上網,阿麥要傳檔案 路路:客人需要上網,阿麥也想傳一份檔案給客人。兩區是兩個不同的網絡:家人區 192.168.1.0/24、客人區 192.168.20.0/24。去其他網絡,就要找我這位 Router(路由器)。
    • 在不同 VLAN 之間轉送 Packet(封包),叫 Inter-VLAN Routing(VLAN 間路由)
  5. 每一區都要一個 Default Gateway 路路:每個網絡都要有自己的 Default Gateway(預設閘道)。家人區交給我的 192.168.1.1;客人區交給我的 192.168.20.1。兩個位址,都在我身上。
  6. 做法一:每區一條線 路路:最簡單的做法:每個 VLAN 各拉一條線到我身上。左邊那條屬於 VLAN 10,右邊那條屬於 VLAN 20。可行,但 VLAN 一多,我的 Port 就不夠用了。
  7. 第二幕:Router-on-a-stick
  8. 一條 Trunk 就夠 八爪:記得 Trunk(中繼)嗎?我只用一條 Trunk 接路路,所有 VLAN 都經這條線上去。這個做法叫 Router-on-a-stick(單臂路由)。
  9. 一個 Port,兩個身份 路路:我在 G0/0 這個 Port 上設定兩個 Subinterface(子介面):G0/0.10 屬於 VLAN 10,位址 192.168.1.1;G0/0.20 屬於 VLAN 20,位址 192.168.20.1。
    • G0/0.10 VLAN 10 192.168.1.1/24
    • G0/0.20 VLAN 20 192.168.20.1/24
  10. 阿麥的檔案上樓 八爪:阿麥發現 192.168.20.10 不在自己的網絡,就把 Frame 送給 Default Gateway 192.168.1.1。我經 Trunk 把它送給路路,貼上「VLAN 10」標籤。
  11. 路路換袋、換標籤 路路:我由 G0/0.10 收到小比,看 IP 收件人 192.168.20.10:屬於 G0/0.20 的網絡!我換上新的 Frame,TTL 減 1,貼上「VLAN 20」標籤,經同一條 Trunk 送回八爪。
    • MAC Address、VLAN 標籤:換新
    • IP 收件人 192.168.20.10:不變
  12. 送到客人手上 八爪:我看到「VLAN 20」標籤,只在客人區找收件人,把 Frame 送到客人電腦 1,並拿走標籤。檔案送到了!
    • 缺點:同一個 Packet 在同一條 Trunk 上「上去一次、下來一次」
    • 流量一大,這條線就會成為樽頸
  13. 第三幕:八爪也學會看 IP
  14. Layer 3 Switch 八爪:公司網絡通常用 Layer 3 Switch(第三層交換器):我自己也懂得看 IP Address!我為每個 VLAN 建立一個 SVI(交換器虛擬介面),Packet 在我身體裡就轉到另一區,快得多。
    • SVI:VLAN 10 介面 192.168.1.1、VLAN 20 介面 192.168.20.1
    • Default Gateway 位址搬到 SVI,路路的 Subinterface 就會移除
    • 路路繼續負責通往互聯網
  15. 可以通行,也可以設規則 路路:兩區現在可以溝通了。不過我們通常只開放部分通道:客人可以上網、用打印機,但不可以找阿麥的電腦。這些規則由 ACL(存取控制清單)或 Firewall(防火牆)負責,小故事 19 再講。
  16. 總結:兩區之間的橋樑 路路:不同 VLAN 要溝通,就要經 Layer 3 設備:每區一條線、Router-on-a-stick 或 Layer 3 Switch。每一區都有自己的 Default Gateway,這邊走,這條路最快!

2. 問題在哪裡

八爪用 VLAN(虛擬區域網絡)把家分成兩區:家人區 VLAN 10,客人區 VLAN 20。VLAN 就是把一部 Switch(交換器)的 Port(連接埠)分組,每一組都是一個獨立的 LAN(區域網絡)。

分開之後,客人看不到家中的裝置,安全多了。可是新的問題來了:

  • 客人要上網,但互聯網不在客人區裡。
  • 阿麥想傳一份檔案給客人,但八爪不會在兩個 VLAN 之間轉送 Frame(訊框)。

兩區是兩個不同的網絡:家人區 192.168.1.0/24,客人區 192.168.20.0/24。只靠 Switch,永遠過不了這條界線。

3. 網絡怎樣解決

兩個 VLAN 好像河的兩岸,要過河就要建一條橋。這條橋就是 Router(路由器)。

在不同 VLAN 之間轉送 Packet(封包),叫 Inter-VLAN Routing(VLAN 間路由)。做法有三種:

  1. 每個 VLAN 各拉一條線到 Router。
  2. 只用一條 Trunk(中繼)接 Router,這叫 Router-on-a-stick(單臂路由)。
  3. 讓 Switch 自己學會看 IP Address(網絡位址),即 Layer 3 Switch(第三層交換器)。

不論哪一種,每一區都要有自己的 Default Gateway(預設閘道)。

4. 看深一點

每一區,一個 Default Gateway

Default Gateway 是裝置把「要送去其他網絡」的 Packet 交給的那個位址。它一定要在裝置自己的網絡之內:

區域 VLAN 網絡 裝置例子 Default Gateway
家人區 10 192.168.1.0/24 阿麥 192.168.1.10 192.168.1.1
客人區 20 192.168.20.0/24 客人電腦 1 192.168.20.10 192.168.20.1

兩個 Default Gateway 位址,都設在路路身上。

Router-on-a-stick:一個 Port,兩個身份

八爪只用一條 Trunk 接到路路的 G0/0。Trunk 上的 Frame 貼著 802.1Q 標籤,寫明屬於哪一個 VLAN。

路路把 G0/0 分成兩個 Subinterface(子介面)。Subinterface 就是在同一個實體 Port 上,用設定劃分出來的「虛擬 Port」:

G0/0.10   VLAN 10   192.168.1.1/24
G0/0.20   VLAN 20   192.168.20.1/24

阿麥的檔案怎樣過橋?

  1. 阿麥比較網絡部分:192.168.20.10 不在自己的 192.168.1.0/24,於是把 Frame 交給 Default Gateway 192.168.1.1。
  2. 八爪為 Frame 貼上「VLAN 10」標籤,經 Trunk 送上路路。
  3. 路路由 G0/0.10 收到,看 IP 收件人 192.168.20.10:屬於 G0/0.20 的網絡。
  4. 路路換上新的 Frame,寄件人和收件人 MAC Address(硬體位址)都換新,TTL(存活時間)減 1,貼上「VLAN 20」標籤,經同一條 Trunk 送回八爪。
  5. 八爪看到「VLAN 20」,只在客人區找收件人,拿走標籤,送到客人電腦 1。

整個過程中,IP 收件人 192.168.20.10 一直不變;MAC Address 和 VLAN 標籤則換了新的。

缺點是:同一個 Packet 在同一條 Trunk 上「上去一次、下來一次」。流量一大,這條線就成了樽頸。

Layer 3 Switch 與 SVI

公司網絡通常用 Layer 3 Switch。它既是 Switch,也懂得按 IP Address 轉送 Packet。

它為每個 VLAN 建立一個 SVI(交換器虛擬介面)。SVI 是 Switch 內部代表某個 VLAN 的虛擬介面,可以設定 IP Address,當作那一區的 Default Gateway:

interface Vlan10   192.168.1.1/24
interface Vlan20   192.168.20.1/24

改用 Layer 3 Switch 後,Default Gateway 位址搬到 SVI,路路的 Subinterface 就會移除;八爪和路路之間改用另一段位址連接,路路只負責通往互聯網。

Packet 不用離開 Switch 就轉到另一區,速度快得多。路路則繼續負責通往互聯網,例如客人打開 example.com(192.0.2.80)。192 開頭不一定是 Private IP(私人位址),只有 192.168 開頭才是。

三種做法比較

做法 線的數目 優點 缺點
每個 VLAN 一條線 VLAN 數目 最容易理解 最浪費 Port 和網線
Router-on-a-stick 1 條 Trunk 省線、省 Port 流量在同一條線上來回,容易塞
Layer 3 Switch 跨 VLAN 不用額外的線 最快,公司最常用 設備較貴

可以通行,也可以設規則

能通行,不代表全部都要放行。通常只開放部分通道:客人可以上網、用打印機,但不可以連到阿麥的電腦。這些規則由 ACL(存取控制清單)或 Firewall(防火牆)負責,小故事 19 會詳細介紹。

5. 動手試試

任務:看看你的 Default Gateway

  1. 在手機的 Wi-Fi(無線網絡)設定中,點選已連接的網絡,找出「路由器」或「閘道」一欄。
  2. 記下你的 IP Address 和 Default Gateway。它們的網絡部分應該一樣。
  3. 如果家中 Router 有「訪客網絡」功能,連上訪客網絡再看一次:Default Gateway 可能變成另一個位址,因為那是另一個網絡!

小互動

三種做法比一比

以下每一句,描述的是哪一種 Inter-VLAN Routing 做法?

  1. 1每加一個 VLAN,就要多一條網線和一個 Router Port

  2. 2Router 只用一條 Trunk,為每個 VLAN 設 Subinterface

  3. 3在 Switch 內部完成路由,速度最快

  4. 4同一個 Packet 要在同一條線上來回一次

  5. 5用 SVI 作為每個 VLAN 的 Default Gateway

  6. 6最容易理解,但最浪費 Port

6. 比喻的極限

  • 橋不只一條。 真實網絡可以同時用幾種做法,例如公司內部用 Layer 3 Switch,通往互聯網再用 Router。
  • 路路其實是同一部 Router。 動畫中路路「上去又下來」,但兩個 Subinterface 都在同一個 Port 上,只是按 VLAN 標籤分開處理。
  • 八爪不是「變成」了路路。 Layer 3 Switch 用專門的晶片做路由,速度很快,但功能通常比真正的 Router 少,例如不一定支援 NAT(網絡位址轉換)。
  • 家用 Router 的「訪客網絡」不一定這樣做。 很多家用 Router 在內部自動分開兩區,不會讓你看到 VLAN 或 Subinterface 的設定。
  • 過了橋,還要過關。 動畫只示範「可以通行」,現實中必定配合 ACL 或 Firewall,決定哪些 Packet 可以過去。

7. 小測驗

第 1 題,共 3 題客人電腦 1(192.168.20.10)要上網,它的 Default Gateway 應該是什麼?
第 2 題,共 3 題Router-on-a-stick 是指什麼?
第 3 題,共 3 題路路把阿麥的 Packet 由 VLAN 10 轉送到 VLAN 20 時,以下哪一項不會改變?

8. 重點筆記

  • 不同 VLAN 就是不同的網絡,Switch 不會在它們之間轉送 Frame;要跨區,就要經 Layer 3 設備,這叫 Inter-VLAN Routing(VLAN 間路由)。
  • 每一區都要有自己的 Default Gateway,而且位址必須在該區的網絡之內。
  • 三種做法:每個 VLAN 一條線、Router-on-a-stick(一條 Trunk + Subinterface)、Layer 3 Switch(用 SVI)。
  • 經過 Router 時,MAC Address 和 VLAN 標籤會換新、TTL 減 1,但 IP 收件人不變。
  • 能通行不代表全部放行,跨區規則由 ACL 或 Firewall 負責。

延伸閱讀

現在家人區和客人區各有一組 /24 位址,中間由路路連接。可是如果樓上的工作室要三個網絡,卻只分到一組位址,怎麼辦?下一個故事,路路會拿起刀,教你「切蛋糕」:Subnetting(子網絡劃分)。