1. 故事
按「下一步」一步一步看。每一步都有一位角色出場,解釋自己正在做什麼。
序幕:溫習一下
第 1 步/共 11 步
一個 LAN,一個 Broadcast Domain
接在我身上的裝置都在同一個 LAN(區域網絡)。收到 Broadcast(廣播),我會送到所有其他 Port(連接埠),這個範圍叫 Broadcast Domain(廣播域)。
動畫文字版(全部步驟)
- 序幕:溫習一下
- 一個 LAN,一個 Broadcast Domain 八爪:接在我身上的裝置都在同一個 LAN(區域網絡)。收到 Broadcast(廣播),我會送到所有其他 Port(連接埠),這個範圍叫 Broadcast Domain(廣播域)。
- 第一幕:客人來了
- 兩位客人接上網線 阿麥:兩位客人來探我,把手提電腦接到八爪的 P5 和 P6 上網。歡迎歡迎!不過……他們現在和我們在同一個 LAN 裡了。
- 客人的 Broadcast 人人收到 小比:客人電腦 1 發出一個 ARP(位址解析協定)Broadcast。八爪照規矩送到所有 Port,阿麥、桌面電腦和電視全部都收到了!
- 這樣安全嗎? 阿麥:客人的電腦可以看到家中每一部裝置,甚至可以嘗試打開我的共享資料夾。萬一它中了病毒,也可以直接找上我們。可以把客人分開嗎?
- 問題一:私隱——大家都看得到對方
- 問題二:安全——病毒可以直接找上家中裝置
- 問題三:效率——Broadcast 越多,大家越忙
- 第二幕:VLAN 出場
- 八爪放下屏風 八爪:不用另外買 Switch!我把自己的 Port 分組:P1 至 P3 是家人區 VLAN 10,P5 和 P6 是客人區 VLAN 20。這叫 VLAN(虛擬區域網絡),每一區就是一個獨立的 LAN。
- V10 = VLAN 10(家人區);V20 = VLAN 20(客人區)
- 接一般裝置、只屬於一個 VLAN 的 Port,叫 Access Port(存取連接埠)
- 電腦本身不知道自己在哪個 VLAN,全由八爪按 Port 決定
- Broadcast 只留在自己一區 小比:客人電腦 1 再發出 Broadcast。這次八爪只把我送到同樣是 VLAN 20 的 P6,家人區完全收不到!
- 家人區也一樣 小比:阿麥發出 Broadcast,我只會去到桌面電腦和電視。現在一部 Switch 裡,有兩個互不相干的 Broadcast Domain。
- 跨區?此路不通 八爪:客人電腦 1 想直接送 Frame(訊框)給阿麥。可是阿麥在 VLAN 10,我在 VLAN 20 的筆記簿裡找不到他,也不會把 Frame 送過去。
- 不同 VLAN = 不同的 LAN
- 找不到收件人時,最多只在 VLAN 20 內 Flooding(例如送到 P6),阿麥永遠收不到
- 要跨區溝通,就要經 Router(路由器),而且可以設定規則(小故事 10)
- 筆記簿多了一欄 八爪:有了 VLAN,我的 MAC Address Table(MAC 位址表)多了一欄「VLAN」。送貨時,我只會在同一個 VLAN 的記錄裡找收件人。阿麥寄給電視?收到!馬上送到正確的連接埠!
- VLAN 10:
…:01→ P1、…:04→ P2、…:02→ P3 - VLAN 20:
…:05→ P5、…:06→ P6
- VLAN 10:
- 一個 VLAN,一個 Subnet 阿麥:每一區通常也會用自己的一組 IP Address(網絡位址):家人區是
192.168.1.0/24,客人區是192.168.20.0/24。一個 VLAN,就是一個網絡。- 家人區 VLAN 10:
192.168.1.0/24(阿麥192.168.1.10) - 客人區 VLAN 20:
192.168.20.0/24(客人電腦 1192.168.20.10)
- 家人區 VLAN 10:
- 總結:一屋分兩區 八爪:只用一部 Switch、不用重新接線,我就把家分成兩區。可是樓上也有一部 Switch,同樣有家人和客人的裝置,兩部 Switch 之間要拉多少條線呢?下一個故事揭曉!
- VLAN:把一部 Switch 的 Port 分成幾個獨立的 LAN
- Broadcast 和 Frame 只在同一個 VLAN 內傳送
- 跨 VLAN 要經 Router
2. 問題在哪裡
接在同一部 Switch(交換器)上的裝置,全部在同一個 LAN(區域網絡),也就是同一個 Broadcast Domain(廣播域):一個 Broadcast(廣播)Frame(訊框)可以去到的範圍。
當客人把電腦接到八爪身上,就會出現三個問題:
| 問題 | 發生了什麼事 |
|---|---|
| 私隱 | 客人的 ARP(位址解析協定)Broadcast 去到家中每一部裝置,大家都看得到對方 |
| 安全 | 客人的電腦可以嘗試打開阿麥的共享資料夾;萬一它中了病毒,也可以直接找上家中裝置 |
| 效率 | 裝置越多,Broadcast 越多,每部裝置都要花時間處理 |
最直接的方法,是另外買一部 Switch 給客人用,再拉一套新的網線。但這樣又貴又麻煩,而且每次想改分組,都要重新接線。
3. 網絡怎樣解決
好像在大廳放一道屏風,把一間屋分成家人區和客人區。屋還是同一間,但兩區的人互相看不見、聽不到。
VLAN(虛擬區域網絡)就是把一部 Switch 的 Port(連接埠)分組,每一組變成一個獨立的 LAN。Broadcast 和 Frame 只會在同一個 VLAN 內傳送。
不用買新 Switch,也不用重新接線,改一改設定就可以。
4. 看深一點
八爪的 Port 分組
每個 VLAN 用一個號碼識別,叫 VLAN ID(VLAN 編號)。故事中八爪的設定是這樣:
| Port | 接著 | VLAN |
|---|---|---|
| P1 | 阿麥 | 10(家人區) |
| P2 | 桌面電腦 | 10(家人區) |
| P3 | 電視 | 10(家人區) |
| P4 | Access Point(家人手機) | 10(家人區) |
| P5 | 客人電腦 1 | 20(客人區) |
| P6 | 客人電腦 2 | 20(客人區) |
像這樣接一般裝置、只屬於一個 VLAN 的 Port,叫 Access Port(存取連接埠)。
留意:電腦本身完全不知道自己在哪個 VLAN。它送出的是普通的 Frame,由八爪按「Frame 從哪個 Port 進來」決定它屬於哪個 VLAN。
VLAN ID 是一個 12 位元的數字,可用範圍是 1 至 4094。很多 Switch 出廠時,所有 Port 都預設在 VLAN 1。
設定大約是這樣
不同品牌的寫法不同,以下是一個常見的寫法,把 P5 設為 VLAN 20 的 Access Port:
vlan 20
name guest
interface P5
switchport mode access
switchport access vlan 20
(真實設備上的介面名稱會是 GigabitEthernet0/5 之類,這裡用 P5 方便對照。)
筆記簿多了一欄
有了 VLAN,八爪的 MAC Address Table(MAC 位址表)多了一欄「VLAN」:
| VLAN | MAC Address | Port | 裝置 |
|---|---|---|---|
| 10 | 00:00:5E:00:53:01 |
P1 | 阿麥 |
| 10 | 00:00:5E:00:53:04 |
P2 | 桌面電腦 |
| 10 | 00:00:5E:00:53:02 |
P3 | 電視 |
| 20 | 00:00:5E:00:53:05 |
P5 | 客人電腦 1 |
| 20 | 00:00:5E:00:53:06 |
P6 | 客人電腦 2 |
八爪的規則都一樣:Learning(學習)、Flooding(泛洪)、Forwarding(轉發)。唯一分別是,所有動作都只在同一個 VLAN 內進行:
- Flooding:只送到同一個 VLAN 的其他 Port。
- Forwarding:只在同一個 VLAN 的記錄裡找收件人。客人電腦 1(VLAN 20)送 Frame 給阿麥,八爪在 VLAN 20 的記錄裡找不到阿麥,最多只會在 VLAN 20 內 Flooding,永遠不會送到 VLAN 10 的 Port。
一個 VLAN,一個 Subnet(子網絡)
每個 VLAN 是一個獨立的 LAN,通常也會用自己的一組 IP Address(網絡位址):
| VLAN | 名稱 | Subnet(子網絡) | 例子 |
|---|---|---|---|
| 10 | 家人區 | 192.168.1.0/24 |
阿麥 192.168.1.10 |
| 20 | 客人區 | 192.168.20.0/24 |
客人電腦 1 192.168.20.10、客人電腦 2 192.168.20.11 |
VLAN 在 Layer 2(第二層)把 LAN 分開,Subnet 在 Layer 3(第三層)把 IP Address 分開。兩者是不同的東西,但一般會一對一配合使用。
跨 VLAN 要經 Router
不同 VLAN 就是不同的網絡。要互相溝通,就要經 Router(路由器)或 Layer 3 Switch(第三層交換器)轉送,這叫 Inter-VLAN Routing(VLAN 間路由),小故事 10 會詳細講。
好處是:Router 可以設定規則,例如「客人區可以上網,但不可以連接家人區」。
回到訪客 Wi-Fi(無線網絡)
很多 Access Point(無線基地台)可以發出幾個 SSID(無線網絡名稱),並把每個 SSID 對應到一個 VLAN,例如「阿麥的家」→ VLAN 10,「阿麥的家-訪客」→ VLAN 20。
連接訪客 Wi-Fi 的手機,就好像接在客人區的 Port 上:可以上網,卻看不到家中的電腦。家用路由器的「訪客網絡」功能,也是用類似的隔離方法。
5. 動手試試
任務:找找「訪客網絡」
- 看看家中 Wi-Fi 路由器底部的標籤,找出管理頁面的位址(通常是
192.168.1.1之類)和登入方法。 - 登入後,找一找「訪客網絡」或「Guest Network」的選項(名稱視乎品牌而定)。
- 看看有沒有「允許訪客存取區域網絡」之類的設定。想一想:關掉它,客人還可以打開你的共享資料夾嗎?
如果路由器不是你負責管理的,請先問問家人,不要隨便更改設定。
小互動
八爪會把 Frame 送到哪裡?
八爪把 P1 至 P3 設為 VLAN 10,P5 和 P6 設為 VLAN 20。以下每一個情況,Frame 會去到哪裡?
-
1阿麥(P1)發出 Broadcast
-
2客人電腦 1(P5)發出 Broadcast
-
3阿麥(P1)送 Frame 給電視(P3)
-
4客人電腦 1(P5)直接送 Frame 給阿麥(P1)
-
5客人電腦 2(P6)送 Frame 給客人電腦 1(P5)
-
6阿麥(P1)直接送 Frame 給客人電腦 2(P6)
全部分對了!同一個 VLAN 內照常送貨;不同 VLAN 就是不同的 LAN,Switch 不會直接轉送,要經 Router。
6. 比喻的極限
- 屏風不是真的東西。 VLAN 只是八爪記憶裡的分組設定,Port 和網線完全沒有改變;所以叫「虛擬」區域網絡。
- 屏風不是萬能的保安。 VLAN 設定錯了(例如把客人的 Port 放錯 VLAN),隔離就會失效。重要的網絡還需要 Firewall(防火牆)等其他保護。
- 兩區不是完全不能溝通。 經 Router 就可以跨 VLAN 溝通,而且是否放行由規則決定;屏風只是擋住了「直接」的 Frame。
- 一部 Switch 可以分很多區。 故事只分兩區,現實中一部 Switch 可以有數十甚至數百個 VLAN。
- 八爪不是唯一可以設定 VLAN 的設備。 VLAN 可以跨越幾部 Switch,Access Point 和 Router 也懂得 VLAN;它們之間怎樣分辨每個 Frame 屬於哪個 VLAN,下一個故事會講。
7. 小測驗
8. 重點筆記
- VLAN(虛擬區域網絡)把一部 Switch 的 Port 分成幾組,每一組是一個獨立的 LAN,也就是一個獨立的 Broadcast Domain。
- 接一般裝置、只屬於一個 VLAN 的 Port 叫 Access Port(存取連接埠);裝置本身不知道自己在哪個 VLAN。
- Switch 的 Learning、Flooding、Forwarding 全部只在同一個 VLAN 內進行。
- 一個 VLAN 通常對應一個 Subnet;跨 VLAN 要經 Router,並可以設定規則。
- 訪客 Wi-Fi 看不到家中的電腦,就是因為它被放在另一個 VLAN(或類似的隔離網絡)。
延伸閱讀
八爪只改設定,就把一間屋分成家人區和客人區。可是樓上還有一部 Switch,同樣有家人和客人的裝置。兩部 Switch 之間,要為每個 VLAN 各拉一條線嗎?下一個故事,我們會看看怎樣用一條線載多區:Trunk(中繼)與 802.1Q 標籤。