這幾天在公司實驗VLAN設定的心得筆記:
網路上可以查到的資料實在是太抽象了,沒有實驗過根本看不懂,因此有這篇擬人化比喻
802.1Q VLAN 有幾個主要選項
- VLAN Tag
- PVID
- tagged vs untagged
- access mode vs trunk mode
switch可以當成是一座隔離中的旅館,每個房間(port)中可以有1~多個住客(電腦設備)
這些住客可以聯繫其他住客,但不能出門只能透過旅館裡的服務員傳遞消息
旅館私底下有一個協議 (802.1Q)
不知情的住客在入住時,櫃台不會主動解說這個訊息,而是偷偷在住客的房間寫了一個標籤
比如說這個住客是來自台灣的,那就會被偷偷登記成台灣 (PVID = 886)
而且櫃台也會告知服務員這個住客並不知道802.1Q,那服務員在送消息時就會先把標籤撕掉
免得住客收到訊息時一頭霧水 (access mode) (untagged)
當這個住客想要發訊息給其他住客時,服務員就會偷偷把他的訊息貼上標籤 (看PVID是多少) (VLAN Tag)
如果這個訊息的收件者一樣是台灣的住客 (他的房間門口也貼了VLAN 886),那麼才轉交給他
否則信就會被退回
每個房間可以貼很多個標籤 例如 台灣人(886) 台中人(04) 交大校友(113)
服務員如果發現這個訊息的標籤是 中國人(86) 或清大校友(114) 就不會把訊息送上門了
然而一個旅館的房間數量終究是有上限的,這時候可以把某個房間讓很多人一起住 (VLAN aware)
或是直接改造成一個天橋,連接到另一個旅館的門口
這時候房間裡負責收訊息的人就必須是一個知情的內奸 (trunk mode)
他必須了解這個協議 (802.1Q) 並把標籤先撕下來再轉給房間裡的某個人
無論是哪種方式,門口的服務員都不能把標籤先撕下來,否則內奸就不知道要發給誰 (tagged)
然而這種方法也不是甚麼訊息都能收,有可能美國人的訊息是機密資料,被中國的內奸拿去偷看解碼就不得了
所以只有櫃台在門口貼的標籤符合,這個內奸才能收到資料
因此在櫃台先判斷這個內奸可以拿到的資料,設定1~多個標籤在門口,
讓服務員不會亂發訊息給不該發的人,而在這個模式底下櫃台仍然會設定他的PVID
如果訊息拿給服務員的時候沒有貼標籤,就會被貼上PVID。