Learning Objectives
- 說明廣播網域太大會造成什麼問題,以及 VLAN 怎麼把一台交換器切成好幾個廣播網域
- 分辨存取埠與 trunk,說明 802.1Q 標籤的位置與 VLAN 編號的範圍
- 說明不同 VLAN 之間為什麼一定要經過路由器
- 說明交換器之間的迴圈為什麼會造成廣播風暴與 MAC 表不穩
- 說明 STP 怎麼封鎖多餘的埠留下一棵樹,以及線路斷掉時怎麼恢復
一個廣播網域太大會怎樣
上一課看到:交換器會把廣播送到每一個埠,整個用交換器串起來的網路就是同一個廣播網域。 想像一棟系館,系辦、教師研究室、學生電腦教室、訪客 Wi-Fi 全部接在同一組交換器上:
- 效能:每一台電腦送出的 ARP、DHCP 廣播,幾百台電腦都要收下來處理。人越多,廣播越多。
- 安全:訪客的電腦和系辦的電腦在同一個區域網路裡,可以直接互相連線,也看得到彼此的廣播。
- 管理:想讓「學生」和「行政」套用不同的規則,卻分不開。
最直接的做法是每一群人買一組交換器、拉各自的線,但成本高、搬位置就要重新接線。 VLAN(虛擬區域網路,標準是 IEEE 802.1Q)讓同一台交換器在邏輯上變成好幾台:管理者把每個埠指定到某個 VLAN 編號, 不同 VLAN 的埠之間,交換器完全不轉送訊框,連廣播都不會過去。每一個 VLAN 就是一個獨立的廣播網域,實務上也會各自用一個 IP 網段。
存取埠、trunk 與 802.1Q 標籤
VLAN 常常要跨越好幾台交換器:系辦在 1 樓和 2 樓都有電腦。兩台交換器之間如果每個 VLAN 拉一條線,VLAN 一多就不可行。 所以交換器的埠分成兩種:
| 存取埠(access port) | trunk | |
|---|---|---|
| 接什麼 | 一般的電腦、印表機 | 另一台交換器、路由器、執行很多虛擬機器的伺服器 |
| 屬於幾個 VLAN | 一個 | 好幾個,共用一條線 |
| 訊框有沒有標籤 | 沒有,電腦根本不知道有 VLAN | 有,每個訊框都標上它屬於哪個 VLAN |
trunk 上的訊框,在來源 MAC 之後多插入 4 位元組的 802.1Q 標籤:
| 欄位 | 位元 | 意思 |
|---|---|---|
| TPID | 16 | 固定 0x8100,表示「後面是 VLAN 標籤」 |
| 優先順序(PCP) | 3 | 服務品質用的優先等級 |
| DEI | 1 | 壅塞時可以優先丟掉 |
| VLAN 編號(VID) | 12 | 0~4095,其中 0 和 4095 保留,可用 1~4094 |
訊框最大長度也因此從 1,518 變成 1,522 位元組。交換器從存取埠收到訊框,要送上 trunk 時加上標籤;從 trunk 收到、要送到存取埠時拿掉標籤。 另外,trunk 上通常有一個不加標籤的「原生 VLAN」,兩端設定不一致會出問題,這是實務上常見的設定錯誤。
不同 VLAN 之間要怎麼通?一定要經過路由器(或具備路由功能的第 3 層交換器):VLAN 就是不同的廣播網域、不同的網段, 跨網段本來就是路由器的工作。這叫 VLAN 間路由,之後講路由時會再遇到。
小測驗:VLAN 與 trunk
一台 24 埠的交換器設定了 3 個 VLAN(沒有接路由器)。它有幾個廣播網域?
802.1Q 的 VLAN 編號有 12 位元,實際可以用的 VLAN 是哪個範圍?
兩台交換器之間要同時傳 VLAN 10、20、30 的流量,連接的埠應該設成什麼?
VLAN 10(192.168.10.0/24)的電腦要連到 VLAN 20(192.168.20.0/24)的印表機,需要什麼?
備援線路、迴圈與 STP
系館的核心交換器只有一條線連到每層樓,那條線斷了整層樓就斷網。所以實務上會多接備援線路,交換器之間繞成一圈。 可是乙太網路對迴圈很不友善:
- 廣播風暴:一個廣播被每台交換器泛洪到所有埠,又沿著迴圈繞回來,再被泛洪……乙太網路訊框沒有 TTL,永遠不會自己消失, 很快就塞滿每一條線,整個網路癱瘓。
- MAC 表不穩:同一個來源 MAC 一下從這個埠進來、一下從那個埠進來,交換器的 MAC 表一直改來改去。
- 重複的訊框:電腦收到同一個訊框的好幾份。
生成樹協定(STP,Spanning Tree Protocol,IEEE 802.1D)解決這個矛盾:交換器之間互相交換一種叫 BPDU 的訊息,
- 選出一台根交換器(root bridge),
- 每台交換器找出通往根的最佳路徑,
- 把會造成迴圈的多餘埠封鎖(blocking):不轉送一般訊框,只聽 BPDU。
結果整個網路剩下一棵沒有迴圈的「樹」。當使用中的線路斷掉,交換器收不到 BPDU,就重新計算,把原本封鎖的埠打開,網路換一條路繼續通。 傳統 STP 重新收斂要 30~50 秒;後來的快速生成樹 RSTP(IEEE 802.1w)通常只要幾秒以內,是今天較常用的版本。
根交換器怎麼選、哪個埠被封鎖,有一套比較優先值、MAC 位址與路徑成本的規則,這一課只看結果。 下面的模擬簡化成:根是名稱排序最前面的交換器,不在樹上的線由名稱較後面的那一端封鎖。
小測驗:迴圈與 STP
交換器之間形成迴圈、又沒有開 STP,一個廣播訊框為什麼會一直繞下去?
STP 對被封鎖的埠做了什麼?
下列哪一個說法正確?
重點整理
- 廣播網域太大會浪費效能、不安全、難管理;VLAN 讓一台交換器變成好幾個獨立的廣播網域,不同 VLAN 之間交換器不轉送。
- 存取埠屬於一個 VLAN、接電腦,訊框不帶標籤;trunk 載多個 VLAN,訊框插入 4 位元組的 802.1Q 標籤,VLAN 編號可用 1~4094。
- 不同 VLAN 之間一定要經過路由器(或第 3 層交換器)。
- 備援線路會形成迴圈;乙太網路訊框沒有 TTL,迴圈造成廣播風暴、MAC 表不穩、重複訊框。
- STP 選出根交換器、封鎖多餘的埠,留下一棵沒有迴圈的樹;線路斷掉時重新計算、打開備援的埠。RSTP 收斂得比傳統 STP 快。
到這裡,同一個廣播網域裡的事情都處理完了。下一課進入第 3 層:IPv4 位址的結構,以及哪些位址是私有、哪些有特殊用途。