釐清網管型 Switch 裡與 VLAN + Tag + Untag 之間的觀念

前陣子大約有一段長達兩個月的時間被兩台網管型 Switch 折磨的不成人形,由於機房環境有切內外網,因此都用 VLAN 切開,由於我之前都沒用過網管型的 Switch 設備,因此也不太清楚原來有這麼多細節需要注意,原本網路通了就應該放棄研究的(就是不切 VLAN 即可),但一顆心懸在一個無法理解的問題讓我十分難受,最後還是花了兩個月時間不斷抽空跑機房、做測試、打電話尋求支援,最後終於徹底釐清觀念,但我不保證這篇文章可以寫的有多詳盡就是了,但可以供有興趣的人參考。

問題描述

以下是我第一台 Switch 的 VLAN 與接線示意圖與設定描述:( 廠牌為 D-Link,假設名稱為 Switch 1 )

image

  • Port 1 是 Router Port ( 也就是從 ISP 的 Router 接到我們機櫃的那條線 )
  • Port 01 ~ 08 為 VLAN 1
  • Port 09 ~ 16 為 VLAN 2

 

以下是我第二台 Switch 的 VLAN 與接線示意圖與設定描述:( 廠牌為 Intel,假設名稱為 Switch 2 )

image

  • Port 01 ~ 08 為 VLAN 1
  • Port 09 ~ 16 為 VLAN 2
  • Port 01 接上 Switch 1 的 Port 02
  • Port 09 接上 Switch 1 的 Port 10

由於兩台都已經設定了 VLAN,我原本以為說設定了 VLAN 就等同於在 Switch 實體隔離了這些 Ports,當我只接上 Switch 1 的 Port 02 接上 Switch 2 的 Port 01 是沒問題的,Switch 兩邊的網路會通,而且兩邊又是同樣的 VLAN 所以不覺得有異。

但是當我 Switch 1 的 Port 10 接上 Switch 2 的 Port 09 之後,VLAN 2 的網路就完全不通,可是 VLAN 1 的網路都是正常的!

就是這個詭異的問題卡了我兩個月才解決,各位可以在繼續看下去之前看能不能想到解決的方向或知道解決的方式與發生的原因。

 

連續的錯誤觀念導致錯誤假設

首先,我不認為我的接線方式有錯,畢竟兩台都已經切 VLAN 了,封包應該已經隔離了啊。 (錯誤觀念)

接著,D-Link 的 Spanning tree 預設是關閉的,如果有廣播風暴或迴路發生,應該會有更多 Ports 發生問題才是,因為我缺乏網管型 Switch 的使用經驗,因此直覺認為所有 Switch 的預設 Spanning tree 都是關閉的。 (錯誤觀念)

再來,我看了 ZMAN 在 酷!學園 上對 VLAN 的 tagged & untagged 觀念 的解釋之後,設定依然失敗 (其實是沒真正看懂,所以才設定錯誤),這狀況再度驗證朋友跟我說的「D-Link Switch 真的很爛」這句話。(錯誤觀念)

錯誤發生原因是我在解決問題後才歸納出來的,解決問題的過程中沒想到會這樣。

 

導正上述錯誤觀念

  1. 設定 VLAN 不代表對 Ports 的實體隔離,因此接了兩條網路線之後,其實兩條網路現都會彼此交換封包,以致於造成一個封包交換迴路,而 Intel 的 Switch 又正好啟用 Spanning tree 所以會將其中一個有問題的迴路給關閉,因此網路自然會斷線。
  2. 原來在我的網路環境下 Intel 的網管型 Switch 預設是將 Spanning tree 打開的,由於已經發生了迴路,因此 Spanning tree 發生了作用,而 Switch 2 ( Intel ) 會把從 Switch 1 (D-Link) Port 10 傳來的 packet 全部丟棄,因此 VLAN 兩邊的網路才無法連通!
  3. 學網管必須學會如何做 PoC (觀念驗證),不要相信別人告訴你的感覺。另外 tagged & untagged 可以非常靈活的運用,不單單只是文章寫的那樣而已,在 Switch 的使用手冊裡有提到一些應用的情境,還蠻複雜的。

以下是 Intel 的網管型 Switch 預設是將 Spanning tree 打開的示意畫面:

 

解決問題的方法

由於我不相信 D-Link 的設備有問題,還好 D-Link 的技術客服還不錯,都會有專業工程師回答,對方教了我許多觀念,最後還教我學會設定 Tag VLAN。免付費技術服務專線0800-002-615

以下是我對 Tag 與 Untag 的理解,這些就是因為解決這個問題學到的:

Tagged VLAN Ports / Tagged Packets

在複雜一點的網路架構裡,會用 VLAN 來切割網路環境,但在使用多台 Switch 之間做封包交換時如果兩邊都有設定 VLAN 的話,就很可能會遇到跟我一樣的問題。在多 Switch 的情況下,封包交換時必須依賴 Tag 資料封裝在 FRAME 最前面加一個 4 Bytes 的 TAG ( 前面 2 BYTES 固定是 8100h ),基本上來說 Tag 就代表著一個附帶的資訊,可告訴網路設備說我這次傳入的封包是一個帶有 Tag 資訊的封包。

對不支援 Tagged VLAN 的 Switch 來說,這類封包會自動丟棄 (因為看不懂),但是對網管型的 Switch 來說透過適當的設定就可以正確的識別封包,並將該封包交換到適當的 VLAN Ports。

Untagged VLAN Ports / Untagged Packets

Switch 裡預設的情況下所有的 Ports 都是 Untagged VLAN Ports,而所有從 Switch 流入、流出的封包也都應該是 Untagged 的封包,也就是說封包本身並沒有附帶任何 FRAME 以外的資訊,所有無論網管型或一般型的 Switch 都可以認識這種格式的封包。

 

實例解說

例如說我將 Switch 1 的 Port 02 被標注為 Tagged VLAN Port 時,就代表著從這個 Port 流出的封包都會帶有 802.1Q 的 Tag 資訊,而流入的封包也會自動識別該封包是否帶有 Tag 資訊,就算流入的封包是屬於 Untagged 封包,在 Tagged VLAN Port 是可以正常識別的。

任何其他標注為 Untagged VLAN Ports 的 Port,流入的封包如果含有 Tag 資訊,該封包就會被丟棄。而從這個 Port 流出的封包如果是帶有 VLAN Tag 的,其 Tag 資訊在封包流出時會自動被剔除。

因此,在兩台 Switch 都有設定多組 VLAN ID 的情況下,在兩台 Switch 對接的那個 Port 必須都調整為 Tagged VLAN Port 才行,而且也只能有這一條對接的實體線路,這樣一來兩邊的封包就統一透過這兩個對接的 Ports 交換封包。

在我的 Switch 1 我就同時把 Port 02 設定在 VLAN ID 1 的 Untagged VLAN Ports,以及設定在 VLAN ID 2  的 Tagged VLAN Port,如此一來我的 Port 02 就可以同時交換 VLAN ID 1 與 VLAN ID 2 的封包到另一台 Switch 2 了。設定如下圖示:

最後,我們到 Switch 2 的 Port 01 設定為 VLAN ID 2 的 Tagged VLAN Port 即可大功告成!

 

心得分享

其實在這兩個月的過程中,我問過許多對網管型 Switch 有許多經驗的人,但卻沒有人知道為什麼,且也沒人能將整個觀念說清楚,還有人跟我說 D-Link Switch 真的很爛,叫我換一個牌子(但我已經過七天鑑賞期了不能退貨),不然就是說一些國內的小廠 (相較於國外的大廠啦) 實做出來的 802.1Q 不夠標準,所以可能是因為這樣才不能用,諸如此類的,我個人一直處於半信半疑的狀態就是了。

在這幾年間「D-Link Switch 真的很爛」這句話我已經聽過太多遍,即便我跟朋友說我買了 D-Link 的「網管型」 Switch,他們還是覺得不可靠,但在我的下意識裡網管型這三個字就是代表比較高檔的 Switch,我實在不願意相信 D-Link 會推出一個真的有問題 (不符合 IEEE 規格) 的網管型產品來賣,畢竟 D-Link 也在市場上存在這麼久了,所以這篇文章應該可以幫他平反一些些吧。 XD

走過這一遭,讓我有個很深刻的體悟,那就是網管這東西真的不簡單,但很有趣的是,只要懂了,網管工作就會變的非常非常簡單!專業的網管,應該是準時上下班,每天上班都在打屁聊天的那種 (誤),呵呵。

Read more

世界越快心越慢

在晚飯後的休息時間,我特別享受在客廳瀏灠youtube上各樣各式創作者的影音作品。很大不同於傳統媒體,節目多是針對大多數族群喜好挑選的,在youtube上我會依心情看無腦的動畫、一些旅拍記錄、新聞時事談論。 尤其在看了大量的Youtube的分享後,我真的感受到會限制我的是我的無知,特別是那些我想都沒想過的實際應用,在學習後大大幫助到我的生活和工作層面。 休息在家時,我喜歡想一些沒做過的菜,動手去設計生活和工作上的解決方案,自己是真的很難閒著沒事做。 如創作文章,陪養新的習慣都能感覺到成長的喜悅,是不同於吃喝玩樂的快樂的。 創作不去限制固定的形式,文字是創作、影像聲音也是創作,記錄生活也是創作,我想留下的就是創造—》實現—》回憶,這樣子的循環過程,在留下的足跡面看到自己一路上的成長、失敗、絕望、重新再來。 雖然大部份的時候去做這些創作也不明白有什麼特別的意義,但不去做也不會留下什麼,所以呀不如反事都去試試看,也許能有不一樣的水花也許有意想不到的結果,投資自己永遠不會是失敗的決定,不是嗎?先問問自己再開始計畫下一步,未來沒人說得準。 像最近看youtube仍大一群人在為DOS開

By Phillips Hsieh

知識管理的三個步驟:一小時學會把知識運用到生活上

摘錄瓦基「閱讀前哨站」文章作為自己學習知識管理的內容 Part1「篩選資訊」 如何從海量資訊中篩選出啟發性、實用性和相關性的精華,讓你在學習過程中不再迷失方向。 1. 實用性 2. 啟發性 Part2「提高理解」 如何通過譬喻法和應用法,將抽象的知識與日常生活和工作緊密結合,建立更深刻的理解。 1. 應用法 2. 譬喻法 Part3「運用知識」 如何連結既有知識,跟自己感興趣的領域和專案產生關聯,讓你在運用知識的路途上游刃有餘。 1. 跟日常工作專案、人際活動產生連結 # 為什麼要寫日記? * 寫日記是為了忘記,忘卻瑣碎事情,保持專注力 * 寫日記就像在翻譯這個世界,訓練自己的解讀能力 * 不只是透過日記來記錄生活,而是透過日記來發展生活 #如何寫日記? * 不要寫流水帳式的日記,而是寫覆盤式的日記 當我們試著記錄活動和感受之間的關聯,有助於辦認出真正快樂的事 日記的記錄方式要以過程為主,而非結果 * 感恩日記的科學建議,每日感恩的案例

By Phillips Hsieh
2024年 3月30日 14屆美利達環彰化百K

2024年 3月30日 14屆美利達環彰化百K

這是場半小時就被秒報名額滿的經典賽事, 能順利出賽實屬隊友的功勞, 這次的準備工作想試試新買的外胎, 因為是無內胎用的外胎, 特別緊超級難安裝的, 問了其他朋友才知道, 要沾上肥皂水才容易滑入車框。 一早四點起床準備, 五點集合備好咖啡在車上飲用, 約了六點在彰化田尾鄉南鎮國小, 整好裝四人一起出發前往會場。 被排在最後一批出發, 這次的路線會繞行的員林148上139縣道, 其實在早上五點多天就開始有點飄雨, 大伙就開始擔心不會要雨戰吧! 果不其然才出發準備上148爬坡雨勢越來越大, 戴著防風眼鏡的我在身體的熱氣加上雨水冷凝效果下, 鏡面上滿是霧氣肉眼可視距離才剩不到五公尺, 只能緊依前前方的車友幫忙開路, 之後洪大跟上來我立馬請求他幫忙開路, 上了139停下車把防風眼鏡收起來, 反正下雨天又陰天完全用不到太陽眼鏡了。 雨是邊下邊打雷, 大伙都在這條139上一台一台單車好像避電針, 一時有點害怕不然想平時沒做什麼壞事, 真打到自己就是天意了。 下了139雨勢開始變小, 大伙的速度開始有所提昇, 開高鐵列車的時機己成熟, 物色好列車就跟好跟滿。 最後找了一隊似乎整團有固定在練

By Phillips Hsieh
2023 12月9號 美利達單車嘉年華

2023 12月9號 美利達單車嘉年華

第二次參加美利達環南投賽事, 還記得去年第一次參加這美利達環南投, 還特地提前一天跟車友在魚池住了一晚。 這回用上了剛在7月份剛安裝的車頂架, 安裝了二種不同的攜車架, 都樂這邊可以不用拆車輪直上車頂, YAKIMA這邊選了經濟的款式, 折掉前輪利用前叉固定在攜車架上。 約了唯一一位一起參加的朋友, 二人一早四點約見面, 幫朋友帶上了拿鐵咖啡, 開上日月潭在水社碼頭停好車, 騎往向山遊客中心, 路過美麗的日月潭簡直不要太美了拍一張。 抵達會場己是人山人海了, 跟著大伙排隊順便也看網紅也欣賞名車。 出發就先沿著日月潭順時針騎, 騎到玄裝寺很急停下來上一下廁所, 比賽時都會尿都特別的滿, 一方面是比較緊張,一方面是特別興奮。 這時己經跟車友失散了, 只能獨推沿路看有沒有車友可以一起組隊的, 很可惜在山區大家的實力不一只求平安順騎了, 原則就是有補給就停有食物就吃。 下到水里人群再次聚集起來, 光等紅綠燈就是一條車龍。 騎行了一大圈水里再回到131縣道, 這時背後傳來熟悉的聲音叫菲哥, 終於跟車友重新集合接下來就一路邊聊邊騎。 最後來幾張專業攝影師拍攝的照片 回到終點台上

By Phillips Hsieh