iT邦幫忙

2023 iThome 鐵人賽

DAY 24
1
自我挑戰組

網路通訊隨意聊系列 第 24

VLAN(三),如何切分子網路的?

  • 分享至 

  • xImage
  •  

我們聊了 VLAN 的主要目的是可以用相對於實體 LAN 切分來說,簡單且便宜些的來設定切分子網路,而子網路可以透過隔離不同區域的流量,來提高安全性和流量控管。

那麼今天我們來聊聊,實際上 VLAN 是如何做到切分子網的?

Ethernet Frame 中的 VLAN Header

前面聊過,VLAN Switch 透過標示網路孔不同的 VLAN,如 VLAN 10、VLAN 20 這樣的形式來區分子網。如果透過 VLAN 在 Switch 中被轉送的封包,都會以 Layer 2(資料連結層)的封包被區分到不同的子網路中。

而 VLAN 的概念主要是在我們最常用且主要的 Layer 2 協議:Ethernet 中實現的,在 Layer 2 的資料我們通常稱作 Frame,Ethernet Frame 的內容則包含 Ethernet Header 和 Payload。其中 Header 裡面有 Preamble、MAC 等資訊,用來標示這個 Frame 從哪來並且要往哪裡去。

我們今天要談到的 VLAN Header 被定義在 IEEE 802.1Q 中,其做法是插入一個 4 Bytes 的資料在 Ethernet Frame 當中,讓 Switch 知道這個 Frame 是屬於哪個 VLAN 的。

Ethernet Frame 插入 VLAN Header(802.1Q Header)
*Ethernet Frame 插入 VLAN Header(802.1Q Header)

VLAN Header 包含的內容有

  • TPID(Tag Protocol Identifier),用來標示這是 802.1Q 的 Tag

  • PCP(Priority Code Point),用來定義 Frame 的優先級

  • CFI(Canonical Format Indicator),與 Token Ring(檢測封包碰撞)的相容有關

  • VID(VLAN ID)

當一個 Switch 接收到某個裝置送來的 Frame 時,就會根據進入的網路孔所設定的 VLAN ID 來幫此 Frame 加上 VLAN Header,然後轉送到下一個 Switch,或是直接送到與此 Switch 相連的目標設備。

並且在將 Frame 送離 Switch 時,把這個 VLAN Header 拿掉,復原成原本的樣子。而終端的設備不需要會,也不用知道 VLAN,就能自動被 Switch 分配在某個子網路底下了。

理解了 VLAN 基本的原理,我們接著來看看更多 VLAN Header 的細節。

VLAN ID

每個用 VLAN 技術所切分的子網,我們都可以稱作一個 VLAN,而每個 VLAN 都有一個其獨特的 ID 來互相區別。

這個 ID 通常可以選用一個介於 1 到 4095 之間的數字,是因為在定義 VLAN 的 IEEE 802.1Q 標準中,指定了 VLAN ID 儲存的長度為 12 bits,所以從 0 開始算的話,最多有 2^12,也就是 4096 個數字可以用。

當我們在設定不同 VLAN 時,就可以指定 ID 來區分不同的 VLAN,例如可以在公司 10 樓的子網稱作 VLAN 10,也可以將某 Range 為 192.168.20.0/24 的子網命名成 20,但是不能選用 0 以及避免使用 1。

其中 VLAN 0 為保留值,除了兼容不支持 VLAN 的舊設備外,還用來將此封包設為優先的封包(Priority Tagging);而 VLAN 1 通常是大部分 Switch 的預設 VLAN,沒有被分配到 VLAN 1 的裝置都會歸屬在 VLAN 1 之下,而這將容易導致上一講所提到的廣播流量遽增。

除了 VLAN ID 外,還有 PCP 等等資訊,讓我們繼續深究。

參考資料

  1. Wiki - VLAN

  2. Wiki - IEEE 802.1Q

  3. Wiki - Ethernet Frame

  4. Wiki - Token Ring


上一篇
VLAN(二),切分子網路的優點
下一篇
VLAN(四),優先級和 VLAN Trunking
系列文
網路通訊隨意聊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言