使用 3Com Switch 採 802.1Q 標準來設定 VLAN

作者:徐秉義(Albert Hsu)

在大多數的 IT 人員與網管人員的心中,可能會覺得 VLAN 的應用比較適合中大型網路或是 ISP 業者的網路等等,其實 VLAN 這種用在 Ethernet Switch 管理,越來越接近到中小企業的 IT 人員,怎麼說呢?近幾年來一方面這類型的設備在價位方面逐年下降,中小企業的業主投資購買的意願相對提高;另一方面切割規劃 VLAN 也真的是對於中小企業有著「增進網路安全」、「方便管理」及「增進網路效能」諸多優點。

在一般提到 VLAN(Virtual LAN)網管設定,幾乎會馬上聯想到 Cisco Switch 與 Router 等等的設備,雖然在網路設備市佔率幾乎是一面倒的由 Cisco 來主導,但比較便宜的品牌還是存在著,像是外包給大陸生產製造的 3Com 與台灣自有品牌的 D-Link 等等,俗話說的好:「一分錢一分貨」,說實在的 Cisco 真是高品質、高價位的網路設備,但一般中小企業不見得有足夠經費將全部網路配置 Cisco 等級設備,也許會遇到 3Com 或 D-Link 同級的產品來搭配使用,好在的是 VLAN 這一塊領域有著 802.1Q 的標準規格,使得不同廠商的設備能夠相容且相互溝通搭配應用,雖然本文並未實際測試這幾家廠商的設備之間相容性,但相信在未來廠商對於彼此之間的相容性應該會更好且問題更少才是。

底下介紹的流程會先以 VLAN 可能用在中小企業的方式以及能夠改善網路安全與效能的部份,進而與讀者分享設定非 Cisco 品牌設備(筆者以 3Com 設備為例)採用 802.1Q 標準來設定 VLAN。

溫馨提示:VLAN 也有可能串接到 Router 或是搭配應用 Layer 3 Switch 來規劃 VLAN 及 Routing。

中小企業應用 VLAN 的時機與實例

在小型企業的網路架構中,往往「一條 ADSL 線路」搭配「一台 IP 分享器或防火牆」與「幾個普通 Switch」就可以滿足其『區域網路的應用』以及『使用網際網路功能』。但若是 IT 人員面臨到需要「管理較多數量的 PC 及 Server」以及需要「加強網路安全以及網路效能」時,此刻最常遇到的管理就是規劃多個網路區段(在英文的說法是 Broadcast Domain)來滿足這樣的需求,想以事半功倍的方式來管理這類型的網路至少需要使用『具備管理功能的 Layer 2 Switch』,而所作的管理就是耳熟能詳的 VLAN 囉。

接下來先以下圖這款常見的中小企業網路架構,藉此帶出一些中小企業網路常見問題及案例,來說明如何應用 VLAN 來管控或是改善現有的網路架構,使得 IT 工作能夠更加的有效率,相對的機房也比較整齊好管控。

標準網路架構圖檔

溫馨提示:這裡提到的中小企業規模,大約是員工數量/電腦數量介於 30~50 人/台之間的公司或組織。

中小企業應用 VLAN 時機之案例一:
用在機房內機櫃中,放置伺服器的網路

機房所放置的主機,一般都是以伺服器居多,至於伺服器主機與網路設備在擺設數量方面,一個機櫃預設只會搭配一個 Switch,這樣子的擺設狀況就跟著來囉,舉例如下:假設機櫃內現有五台伺服器,其中三台伺服器會對外服務,應放置於 DMZ 網路區;另外兩台伺服器只會對內服務,故放置在 LAN 區,這時候若是使用一般無 VLAN 功能的 Switch,想要切開這兩個 Broadcast Domain 只能採用實體的方式,也就是使用兩台 Switch 來隔離。

倘若此時使用『具備管理功能的 Layer 2 Switch』來取代一般普通 Switch 的話,這樣就可以使用邏輯的方式來切開 Broadcast Domain(也就是在範例中的 DMZ 與 LAN 這兩區),甚至在未來的擴充性方面,不論您欲「增加伺服器主機」、「新增 Broadcast Domain(假設 DMZ 2 區)」或「切換主機所屬 Broadcast Domain」,如此您可以不用進入機房,插拔實體的網路線路,機房自然能夠保持整齊不凌亂,也就不需頻繁的將束線帶拆了又綁、綁了又拆。

像近年來流行的「刀鋒伺服器」,大多都建議搭配『具備管理功能的 Layer 2 Switch』模組兩個,分別提供給伺服器主機的兩個網路介面使用,這樣子的架構讓筆者感覺刀鋒像是『機櫃中的機櫃』,而優勢在於單位空間(U數)能夠擺放更多主機並整合 KVM 及 Switch 使得線路更加整齊好管理等等(線路包括了網路線、電源線、鍵盤、滑鼠與螢幕線)。

伺服器用 VLAN 圖檔

中小企業應用 VLAN 時機之案例二:
公司需要將「訪客專用網路」與「公司內網」區隔

依照往常的經驗,企業遇到來訪的客戶通常會使用客戶自行攜帶的筆記型電腦來借用公司線路上網,而最常使用到的網路區域應該算是「會議室網路」或是「無線網路」,但大多數的中小企業『會議室網路或無線網路並未與公司內部網路區隔開來』,這對於一些注重區域網路安全的中大型企業,通常是不允許這類情況發生,這時候使用 VLAN 方式來切割 Broadcast domain 形成不同安全等級的網路,會是一個不錯的方式。

中大型企業難免會跨樓層,每一層也都有可能配備有會議室與無線網路基地台,在切割這類型網路的實做則是需將這些需要被區隔的網路設備與網路孔號,利用『具備管理功能的 Layer 2 Switch』將之隔離開來,來增強網路的實體安全性,至於跨樓層則透過 VLAN Trunk 的功能來銜接即可;若此時不使用 VLAN 區隔,而使用一般 Switch 替代的話,勢必會添購許多小型的 Switch 容易使得機房較凌亂造成架構較複雜等等缺點。

規劃這類型網路最繁雜的是遇到需要合中帶分、分中帶合的規格,例如「會議室網路」為了安全性而隔開使得無法存取「區域網路」,但卻有員工硬是需要從「會議室網路」來列印到「內部網路」的網路印表機,而這些需求並不是無法解決,像是使用帳號密碼認證方式存取網路(例如 802.1x 方式)只是通常需要較多的人力、物力來達成。

在 Layer 2 Switch 切割 VLAN 後,若有不同 VLAN 之間互通的需求時,此時可使用 Router 來解決這個需要(或是 Layer 3 Switch 也可以),至於封包要通過 Router 沒意外的話就是使用 TCP/IP 囉,這樣說吧!之所以切 VLAN 規劃成不同的子網路(Subnet)很有可能就是為了未來應用 Layer 3 Routing 來連接用的。

訪客專用 VLAN 圖檔

中小企業應用 VLAN 時機之案例三:
分分合合的關係企業(集團企業)

集團企業型態的公司面臨到的網路環境更趨複雜,原因在於關係企業之間有著「分中帶合、合中帶分」的血緣關係,一些大公司的部門之間也會面臨到很類似這樣的情況,舉例來說:關係企業各公司的不同人員可能分散在不同樓層,並且關係企業之間卻需要相互隔離條件下,卻又需要共用某些設備。此時還是一樣利用劃分 VLAN 來區隔關係企業,在搭配 VLAN Trunk 連結各個樓層之間的網路,至於「合中帶分、分中帶合」的規劃,則交給 Layer 3 Switch 搭配 ACL 設定,或是 Router 搭配 ACL 也行,附帶一提的有些 Layer 2 Switch 提供 VLAN Overlapping(重疊)功能,這樣子就可以規劃將「需要被共同使用的設備」(例如 網路印表機)放在『重疊區域』來共用。

溫馨提示:利用 ACL(Access Control List)設定允許存取的列表,通常是以 Host-Based/IP-Based 方式來決定可否存取相關主機。

中小企業應用 VLAN 時機之案例四:
隔絕散佈廣播封包的主機(增進網路效能)

有一些應用程式(或是設備上的程式)不停的會散佈廣播封包,不論她是故意的或是不得已的,能避免去使用這些程式的話是最好,但是遇到一定要使用這些程式或設備的話,建議您為了網路效能著想,將之隔離到不同的 Broadcast Domain 此時也就是可以應用 VLAN 技術來區隔這些影響網路效能的問題主機。簡單的說:「相同 Broadcast Domain 主機越多,廣播封包所影響的網路效能越嚴重。」

為了效能著想,若是單一個 Broadcast Domain 主機數量過多時,則需要考慮使用 VLAN 來切割成多個 Broadcast Domain,至於 Broadcast Domain 之間的溝通,還是老話一句:『利用 Layer 3 Switch 或路由器來完成』,並且還能兼顧主機存取權限(應用 ACL)的優點。

溫馨提示:筆者就有遇到一種『無線投影接收盒』(接在投影機用的,主要利用無線網路來接收筆記型電腦所發出的資料,將筆電螢幕資料無線傳輸到投影機),她會不停的發送其特有的廣播封包。

中小企業應用 VLAN 時機之案例五:
病毒像瘟疫,一發不可收拾(增進網路安全)

現代化的電腦病毒不再是以「摧毀電腦作業系統」或「毀損使用者資料」為主要目的,而是著重於「癱瘓網路」、「搞的電腦怪怪地」(運作不順暢)且伺機「尋找下一台電腦主機來攻擊」並「長長久久的傳播下去」特性。針對「癱瘓網路」與「找尋下一個目標電腦」這兩點來說,切割越多個不同的 VLAN(這裡意思是 Broadcast Domain),電腦病毒散佈的速度也會比較緩慢,影響所及的電腦數量也許會比較少,若是將主機統統都放在同一個 Broadcast Domain底下,相當容易發生機瘟(與「雞瘟」同音)的情況,而當中毒的主機數量一多,很容易加深查詢病毒的根源主機難度。

溫馨提示:對付網路型病毒的傳播,最好是搭配異常流量警訊,用以壓低病毒所能夠影響的範圍。

中小企業應用 VLAN 時機之案例六:
隔開 LAN 與 SAN(網路安全與效能兼顧)

現今企業資料量越來越大,使用 Storage(儲存設備)的機會也越來越多,甚至會用到 Storage 專用的網路(也就是 SAN,Storage Area Network),若使用到的像是 iSCSI(或 AoE,ATA Over Ethernet)的 SAN,則免不了會使用到原來既有的「乙太網路」(也就是 LAN),這時候切開成不同的 VLAN 能夠提高 SAN 安全性,另外在效能方面也會有所提昇喔!

iSCSI 本身就有許多存取設定(Host-Based)與使用者認證機制(User-Based),所以切開 VLAN 對於安全影響不大但對於整體效能則較有幫助;另外像 AoE(ATA Over Ethernet)因為本身沒有許多的安全機制(類似 Fibre Channel 的情況),所以搭配 VLAN 來增加安全性會是一個不錯的選擇,這就好比 Fibre Channel 搭配 Fibre Channel 的 SAN Switch,這個時候 SAN Switch 來切割存取的 Initiator 與 Target 的道理類似。

溫馨提示:常見 SAN 的組成有 Fibre Channel、iSCSI 與 AoE(ATA Over Ethernet)這三種,前兩者較為知名,後者價廉物美。

VLAN 與 802.1Q 標準規格

談到設定 VLAN 最好先行了解 802.1Q 標準規格,雖然 VLAN 其他可行通訊協定還有 Cisco ISL(Inter-Switch Link)與 3Com VLT(Virtual LAN Trunk)的私家規格,但我們在本文中將目標縮小只針對「802.1Q」通訊規格以及使用「Port-Based」VLAN (以埠號為主)。

溫馨提示:除了 Port-Based VLAN 常見的還有 Mac-Based VLAN 或利用 802.1x 認證方式的 VLAN。

802.1Q 規格與用途

802.1Q 規格設計主要是將 Switch 傳輸的 Frame(框架)資料,藉由定義出標準的 Tag(標籤),附加到 Frame 上去,其中 Tag 內註明著此 Frame 所屬的 VLAN ID(號碼),如此一來促使所有支援 802.1Q 規格的 Switch 與 Switch 之間,利用加上 Tag 或解讀 Tag 的能力,進而利用 VLAN ID 相同或不同,建構成一個或數個跨越 Switch 之間的 Broadcast Domain 也就是 Virtual LANs。

溫馨提示:事實上 802.1Q 加上去的 Tag(標籤)內容不只是有 VLAN ID 的資料。

至於連接 Switch 與 Switch 之間的網路連接埠,也就是負責傳遞多個不同 VLAN ID 的連線,則稱為「Trunk」。Port-Based VLAN 主要是運行在 OSI 七層的 Layer 2,而 Switch 主要也就是利用 MAC 來判斷傳輸來源端主機與目的端主機,應用 802.1Q Tag 後,使得我們能在一堆實體 Switch 交錯網路之中,分割出許多「邏輯上」的虛擬網路。

預設的 VLAN

快要到我們實戰設定 VLAN 的時候了,在設定之前需先行了解一下預設的情況;當我們拿到一個從未設定過的 Switch 時,預設值會將所有的 Port 都同屬於 VLAN 1(VLAN one),這個 Default VLAN 在傳輸 Frame 期間預設都不會加上 Tag,這個網路同時也是我們遠端管理 Switch 時,預設所使用的網路。

下圖為 3Com Switch 4900 於終端機管理模式下,選單 bridge/vlan/detail 下所顯示預設 VLAN 的情形,可看到所有的 Port(共 16 個埠)皆屬於 VLAN ID: 1 名稱為 Default VLAN

--------------------------------------sw4900 (1)------------------------
Select menu option (bridge/vlan): detail
Select VLAN ID (1,all)[all] :

VLAN ID: 1      Name: Default VLAN      stpIgnoreMode: Disabled

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 1-16                       none
Aggregated Links  AL1-AL13                   none

Unicast Frames:      2736675515    Octets:              1773744401
Multicast Frames:    9059800       Broadcast Frames:    99580296

Select menu option (bridge/vlan):

3Com Switch 設定 VLAN 範本

終於來到我們實戰 VLAN 的部份,首先來介紹此次實做所使用到的設備與連接情形,首先出場的是一台 3Com 4900 Switch 搭配 RS-232 序列線(此線材主要用於 Console 下管理 Switch 用的,連接到 PC 的 Com1/Com2 埠)以及電腦三台,那三台電腦主要是用來設定與測試 VLAN 正常與否。在此情形下只有一台 Switch 設定多個 Port-Based VLAN 而尚未使用到 Switch 與 Switch 之間的 Trunk 功能。

溫馨提示:這台型號 4900 的 Switch 有 Layer 3 Routing 功能,此次介紹中主要只用到 Layer 2 的功能。

接下來出場的是一台 3Com 4200 Switch,設定 VLAN 的操作方式類似 4900,而測試的主要目的則是實際操做 Trunk 功能,使得 VLAN 應用 Trunk 能夠跨越到不同的實體 Switch 上。

與 Switch 的 Console 埠連接及相關設定

有管理功能的 Switch 在其主機上通常會有著 RS-232 的 Console 接頭,透過序列線來與電腦用的序列埠相連,連線軟體在 Linux 使用 minicom;Windows 則使用超級終端機,依 Switch 說明書上的指示,在此筆者調整成「9600 8 n 1」以及「無流量控制」來連線,請注意 Linux 上的 minicom 要按下 Ctrl+A 再放掉「Ctrl 與 A」後再按 Z 才能叫出主要的功能畫面。

Linux minicom 畫面

Windows 使用超級終端機(Hyper Terminal)連線的設定畫面,點選「還原預設值」即可。

Windows 超級終端機畫面

Console 連線成功後,3Com 這台 Switch 預設使用 admin 就可以登入,接下來主要就是設定這台 Switch 的 IP/Netmask 以及 admin 的密碼,之後就可以透過網路來做遠端管理。近年來的網路設備通常能夠使用 Telnet / Web-Based 兩種方式來管理,因為筆者習慣文字模式管控,所以底下皆以文字模式管控畫面為主。事實上 3Com Web-Based 畫面只能使用 IE 來看,若用 Firefox 是行不通的(3Com 不支援 Firefox 瀏覽)。

下方為 3Com Switch 文字模式的主選單畫面,直接按下「Enter」可以看到選單說明。

Menu options: --------------3Com SuperStack 3 Switch 4900---------------
 bridge             - Administer bridge-wide parameters
 feature            - Administer system features
 gettingStarted     - Basic device configuration
 logout             - Logout of the Command Line Interface
 physicalInterface  - Administer physical interfaces
 protocol           - Administer protocols
 security           - Administer security
 system             - Administer system-level functions
 trafficManagement  - Administer traffic management

Type  ? for help

溫馨提示:我們也可以使用「gettingStarted」這個選單,以類似「精靈」的方式一步步來設定 IP/Netmask 以及 admin 密碼與更多額外的設定。

單獨針對 IP/Netmask 的相關設定

在 3Com Switch 選單模式下,選擇「protocol/ip/basicConfig」接著採 manual(手動)設定,輸入 IP/Netmask 及 Gateway(Gateway 可設定或不設定皆可,在本篇中 Gateway 沒應用到)

溫馨提示:許多時候可以使用簡寫,例如:protocol 輸入成「pr」、ip 輸入成「i」以及 basicConfig 輸入成「b」,只要沒有與其他選項簡寫相同即可。

--------------------------------------sw4900 (1)------------------------
Select menu option (protocol/ip): basicConfig
Enter configuration method (auto,manual,none)[none]: m
Enter IP address         [0.0.0.0        ]: 172.16.9.111
Enter subnet mask        [0.0.0.0        ]: 255.255.0.0
Enter gateway IP address [0.0.0.0        ]:

IP address:               172.16.9.111
Subnet mask:              255.255.0.0
Gateway IP address:       0.0.0.0

溫馨提示:階層式的選單使用「Enter」條列出當下階層所有的選項,輸入「quit」則可以回到上一階層。

若要確認設定的 IP 是否生效及正確,選擇「protocol/ip/interface/summary」

--------------------------------------sw4900 (1)------------------------
Select menu option (protocol/ip/interface): summary
Select IP interface (1-2,all)[all]:

The IP address for interface 1 has been configured Manually.

Index   Type       IP address        Subnet mask       State   VLAN ID
-------------------------------------------------------------------------
1       Primary    172.16.9.111      255.255.0.0       Up      1
2       SLIP       192.168.101.1     255.255.255.0     Up      n/a

Select menu option (protocol/ip/interface):

從畫面上可以看到 IP 是使用在 VLAN ID 1 的,也就是 Default VLAN。

溫馨提示:通常文字模式下的選單模式,無法使用滑鼠,請使用鍵盤來輸入與選擇。

設定 admin 密碼

要先設定 admin 密碼,才能 Telnet / Web 管理;接下來選擇「system/management/password」來設定 admin 的密碼。

--------------------------------------sw4900 (1)------------------------
Select menu option (system/management): password
Enter new password:
Retype password:
The command line interface password has been successfully changed.

Select menu option (system/management):

溫馨提示:更改 admin 密碼的方式也是一樣的。

使用 telnet 來遠端管理

來到 PC 設定網路 IP 位址與 Switch 同網段後(例 172.16.2.102/255.255.0.0),就可以使用 telnet 遠端連線到 Switch 來做管理。

al@172.16.2.102:~> telnet 172.16.9.111
Trying 172.16.9.111...
Connected to 172.16.9.111.
Escape character is '^]'.

Login: admin
Password:

Menu options: --------------3Com SuperStack 3 Switch 4900---------------
 bridge             - Administer bridge-wide parameters
 feature            - Administer system features
 gettingStarted     - Basic device configuration
 logout             - Logout of the Command Line Interface
 physicalInterface  - Administer physical interfaces
 protocol           - Administer protocols
 security           - Administer security
 system             - Administer system-level functions
 trafficManagement  - Administer traffic management

Type  ? for help
--------------------------------------sw4900 (1)------------------------
Select menu option:

觀察每個埠的情況

這台共有 12 + 4 = 16 port 的 Switch,可由選單「physicalInterface/ethernet/summary」觀察現況,要注意的是在選擇『單位:埠號』(Select Ethernet ports (unit:port...,all,?):)3Com 的編號方式是從 1 開始,這點與 Cisco 從 0 開始編號有點兒不同;底下是選擇「all」的情況。

溫馨提示:13~16 那 4 port 為光纖模組,其餘孔為一般 RJ45 接頭 的 Gigabit Ethernet。

Refresh Time:10 Second

Port State    Mode                 Rx Packets   Rx Octets    Errors
-------------------------------------------------------------------------------
1:1  enabled  100full (Auto)       354461364    2698911398   0
1:2  enabled  100full (Auto)       657390282    436111796    0
1:3  enabled  100full (Auto)       1204778587   1559529787   0
1:4  enabled  Link Down (Auto)     0            0            0
1:5  enabled  Link Down (Auto)     0            0            0
1:6  enabled  1000full (Auto)      298277310    2873502628   0
1:7  enabled  1000full (Auto)      1639804230   1075567329   0
1:8  enabled  Link Down (Auto)     0            0            0
1:9  enabled  100full (Auto)       0            0            0
1:10 enabled  Link Down (Auto)     0            0            0
1:11 enabled  Link Down (Auto)     0            0            0
1:12 enabled  Link Down (Auto)     0            0            0
1:13 enabled  1000full (Auto)      1155519842   2822631160   6
1:14 enabled  1000full (Auto)      767621570    2583369626   0
1:15 enabled  1000full (Auto)      850450799    1145571845   2
1:16 enabled  1000full (Auto)      482447614    2103889613   0

Quit    Counters      Differences

切出一個埠屬於 VLAN 2

先前提過,一開始 Switch 所有的埠預設都是 VLAN 1,待會先將主機 PC-A 連接到 1:10 埠,應該會是通的(與 VLAN 1 同 Broadcast Domain),之後預計將 1:10 的網路埠,切到 VLAN 2 且不加上 Tag,這樣 PC-A 就無法與 VLAN 1 的主機溝通才是。

溫馨提示:因為預設 Layer 2 Switch 的 IP 是設定在 Default VLAN,所以無法在 Default VLAN 以外的 VLAN 來遠端管理 Switch,例如 PC-A 位於 VLAN 2 就無法 Telnet / Web 管理 Switch。

切割前示意表:U 代表 Untagged、T 代表 Tagged

 

VLAN ID連接埠成員(Tag/Untag)
11-16(U)

PC-A(例如 IP 設定為 172.16.7.13/255.255.0.0)接到 1:10 埠測試通不通相當簡單,在尚未切割 VLAN 之前的結果應該要是通的,接下來先「建立 VLAN 2」,在選單中「bridge/vlan/create」建立 VLAN 2 如下所示

--------------------------------------sw4900 (1)------------------------
Select menu option (bridge/vlan): create
Select VLAN ID (2-4094)[2]:
Enter VLAN Name [VLAN 2]:

Select menu option (bridge/vlan):

再來用「bridge/vlan/modify/addPort」來將 1:10 埠,新增至 VLAN 2 且『不加上 Tag』(untagged)

--------------------------------------sw4900 (1)------------------------
Select menu option (bridge/vlan/modify): addPort
Select VLAN ID (1-2)[1]: 2
Select bridge ports (AL1-AL13,unit:port...,?): 1:10
Enter tag type (untagged,tagged): u

再來用「bridge/vlan/detail」可見到如下的情況,請注意:埠 1:10 已經屬於 VLAN 2 而不屬於 VLAN 1 了。

Select menu option (bridge/vlan): detail
Select VLAN ID (1-2,all)[all] :

VLAN ID: 1      Name: Default VLAN      stpIgnoreMode: Disabled

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 1-9,11-16                  none
Aggregated Links  AL1-AL13                   none

Unicast Frames:      3040602164    Octets:              2126838573
Multicast Frames:    9514426       Broadcast Frames:    104409335

VLAN ID: 2      Name: VLAN 2    stpIgnoreMode: Disabled

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 10                         none
Aggregated Links  none                       none

Unicast Frames:      8             Octets:              7994
Multicast Frames:    0             Broadcast Frames:    23

在設定好之後,此時 PC-A 就無法存取到 VLAN 1 的任何主機了。

切割後示意表:

 

VLAN ID連接埠成員(Tag/Untag)
11:1-9(U)1:11-16(U)
21:10(U)

溫馨提示:雖然 Layer 2 是以 MAC(Media Access Control)為主,但以 TCP/IP 利用 ping 來測試網路通不通卻很方便。

再切出一個埠加入 VLAN 2

接下來預計切出埠 1:11 同樣也是 untagged、屬於 VLAN 2 來測試 1:10 之間 1:11 通訊。

以下為切出埠 1:11 untagged,選單同樣也是「bridge/vlan/modify/addPort」

--------------------------------------sw4900 (1)------------------------
Select menu option (bridge/vlan/modify): addPort            
Select VLAN ID (1-2)[1]: 2
Select bridge ports (AL1-AL13,unit:port...,?): 1:11
Enter tag type (untagged,tagged): u

以下為「bridge/vlan/detail」資訊,VLAN 2 有兩個埠 1:10-11 皆為 untagged(請注意所處的選單層級不同),因此位於 1:11 Port 的 PC-B(假設 IP 為 172.16.8.8/255.255.0.0)應該與 PC-A(172.16.7.13)能夠互相 ping 的到而已。

--------------------------------------sw4900 (1)------------------------
Select menu option (bridge/vlan): detail
Select VLAN ID (1-2,all)[all] :

VLAN ID: 1      Name: Default VLAN      stpIgnoreMode: Disabled

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 1-9,12-16                  none
Aggregated Links  AL1-AL13                   none

Unicast Frames:      3043390409    Octets:              3370053192
Multicast Frames:    9517158       Broadcast Frames:    104435213

VLAN ID: 2      Name: VLAN 2    stpIgnoreMode: Disabled

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 10-11                      none
Aggregated Links  none                       none

Unicast Frames:      8             Octets:              8186
Multicast Frames:    0             Broadcast Frames:    26

此時 PC-A 與 PC-B 就都無法存取到 VLAN 1 的任何主機,但 PC-A 與 PC-B 可互相溝通(因為同屬 VLAN 2)。

切割後示意表:

 

VLAN ID連接埠成員(Tag/Untag)
11:1-9(U)1:12-16(U)
21:10-11(U)

新增一個埠屬於 VLAN 3(純屬測試)

新增一個埠屬於 VLAN 3 的手續基本上與『新增一個埠屬於 VLAN 2』相當類似,這樣做的結果只是為了表達如此能夠造成三個 VLAN 分別為:VLAN 1、VLAN 2 與 VLAN 3 各自獨立的 Broadcast Domain,因設定動作類似故不在贅述。

切割後示意表:

 

VLAN ID連接埠成員(Tag/Untag)
11:1-9(U)1:13-16(U)
21:10-11(U)
31:12(U)

新增一個 Switch:3Com 4200 實做 Trunk

還記得 3Com 4900 Switch 那台有四個光纖模組埠嗎?事實上依照筆者的環境,那四個光纖埠各自接到一台 3Com 4200 Switch 上(共四台),我們接下來只要看其中一台就可以了,緊接著就以「4900 的 1:13 埠」接到「4200 的 1:27 埠」來解說 Trunk(同時通行 VLAN 1 與 VLAN 2)。

如圖

觀察 3Com 4200 Switch 每個埠的情況

這台共有 26 + 2 = 28 port 的 Switch,也是由選單「physicalInterface/ethernet/summary」觀察現況,情形如下:

溫馨提示:27 與 28 那 2 port 為光纖模組,其餘孔為一般 RJ45 接頭 的 Gigabit Ethernet。

請注意畫面中只顯示到 1:18 埠,請按「n」顯示 1:11~1:28、按「p」回到上一頁、按「q」離開

Refresh Time:10 Second      Timestamp:   19 Seconds

Port State    Mode                 Rx Packets   Rx Octets    Errors
-------------------------------------------------------------------------------
1:1  enabled  100full (Auto)       46           6320         0
1:2  enabled  100full (Auto)       298          42095        0
1:3  enabled  100full (Auto)       6            635          0
1:4  enabled  100full (Auto)       220          36817        0
1:5  enabled  100full (Auto)       1554         222783       0
1:6  enabled  100full (Auto)       236          49143        0
1:7  enabled  100full (Auto)       0            0            0
1:8  enabled  100full (Auto)       0            0            0
1:9  enabled  100full (Auto)       114          8864         0
1:10 enabled  100full (Auto)       0            0            0
1:11 enabled  Link Down (Auto)     0            0            0
1:12 enabled  Link Down (Auto)     0            0            0
1:13 enabled  100full (Auto)       57           4178         0
1:14 enabled  Link Down (Auto)     0            0            0
1:15 enabled  Link Down (Auto)     0            0            0
1:16 enabled  Link Down (Auto)     0            0            0
1:17 enabled  Link Down (Auto)     0            0            0
1:18 enabled  Link Down (Auto)     0            0            0

Quit    Counters      Differences                              Next

下圖中的 1:27 埠就是連接到 4900 Switch 的 1:13 埠,也就是我們設定 Trunk 的重點。

Refresh Time:10 Second      Timestamp:   81 Seconds

Port State    Mode                 Rx Packets   Rx Octets    Errors
-------------------------------------------------------------------------------
1:11 enabled  Link Down (Auto)     0            0            0
1:12 enabled  Link Down (Auto)     0            0            0
1:13 enabled  100full (Auto)       252          18528        0
1:14 enabled  Link Down (Auto)     0            0            0
1:15 enabled  Link Down (Auto)     0            0            0
1:16 enabled  Link Down (Auto)     0            0            0
1:17 enabled  Link Down (Auto)     0            0            0
1:18 enabled  Link Down (Auto)     0            0            0
1:19 enabled  Link Down (Auto)     0            0            0
1:20 enabled  Link Down (Auto)     0            0            0
1:21 enabled  Link Down (Auto)     0            0            0
1:22 enabled  Link Down (Auto)     0            0            0
1:23 enabled  Link Down (Auto)     0            0            0
1:24 enabled  Link Down (Auto)     0            0            0
1:25 enabled  Link Down (Auto)     0            0            0
1:26 enabled  Link Down (Auto)     0            0            0
1:27 enabled  1000full (Auto)      9009         5337529      0
1:28 enabled  Link Down (Auto)     0            0            0

Quit    Counters      Differences              Prev

在 4200 同樣切出一個埠屬於 VLAN 2

為方便記憶,所以我們以相同的埠號,在兩台不同 Switch 的 1:10 埠,都切給 VLAN 2,請注意此時 4900 的 1:10 與 4200 的 1:10 雖然都是屬於 VLAN 2 但因為還沒有 Trunk 來連接,所以互相之間是不通的。

4200 Switch 設定新增 VLAN 2 且 Member Ports(成員埠)為 1:10 untagged 後的「bridge/vlan/detail」畫面

Select menu option (bridge/vlan): detail
Select VLAN ID (1-2)[1]:

VLAN ID: 1      Name: Default VLAN

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 1-9,11-28                  none
Aggregated Links  AL1-AL4                    none


Select menu option (bridge/vlan): det
Select VLAN ID (1-2)[1]: 2

VLAN ID: 2      Name: VLAN 2

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 10                         none
Aggregated Links  none                       none

設定好後就可以將原本插在 4900 1:11 埠的 PC-B(IP 172.16.8.8),插到 4200 1:10 來試試看能否 ping 到(PC-A 172.16.7.13),在還沒做好 Trunk 之前,結果應該是還不能夠互 ping 到。

3Com 4200 Switch 切割後示意表:

 

VLAN ID連接埠成員(Tag/Untag)
11:1-9(U)1:11-28(U)
21:10(U)

設定 4900 與 4200 之間 Trunk 埠加上有 VLAN 2 的 Tag

先從 4900 開始設定:在「bridge/vlan/modify/addPort」選單,將 1:13 埠新增到 VLAN 2 去要注意這裡是『加上 Tag』

--------------------------------------sw4900 (1)------------------------
Select menu option (bridge/vlan/modify): addPort
Select VLAN ID (1-2)[1]: 2
Select bridge ports (AL1-AL13,unit:port...,?): 1:13
Enter tag type (untagged,tagged): t

從底下「bridge/vlan/detail」看出,埠 1:13 屬於「VLAN 2 加上 Tag」並且屬於「VLAN 1 不加上 Tag」

Select menu option (bridge/vlan): detail
Select VLAN ID (1-2,all)[all] : all

VLAN ID: 1      Name: Default VLAN      stpIgnoreMode: Disabled

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 1-9,12-16                  none
Aggregated Links  AL1-AL13                   none

Unicast Frames:      3048561839    Octets:              1344189637
Multicast Frames:    9523008       Broadcast Frames:    104470774

VLAN ID: 2      Name: VLAN 2    stpIgnoreMode: Disabled

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 10-11                      13
Aggregated Links  none                       none

Unicast Frames:      410           Octets:              49460
Multicast Frames:    0             Broadcast Frames:    169

4900 設定 1:13 埠 Trunk 後示意表:

 

VLAN ID連接埠成員(Tag/Untag)
11:1-9(U)1:12-16(U)
21:10-11(U)1:13(T)

只設定 4900 這一邊兒是不夠的,接著設定 4200 這邊,一樣是將 Trunk 埠『1:27』新增到 VLAN 2 去且『加上 Tag』

同樣也是「bridge/vlan/modify/addPort」選單

Select menu option (bridge/vlan/modify): addPort
Select VLAN ID (1-2)[1]: 2
Select bridge ports (AL1-AL4,unit:port...,?): 1:27
Enter tag type (untagged,tagged): t

接下來不免俗的觀察一下設定後的情況,類似『4900 的 1:13 埠』;『4200 的 1:27 埠』屬於「VLAN 2 加上 Tag」並且屬於「VLAN 1 不加上 Tag」

-------------------------------------4200------------------------
Select menu option (bridge/vlan): detail
Select VLAN ID (1-2)[1]: 1

VLAN ID: 1      Name: Default VLAN

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 1-9,11-28                  none
Aggregated Links  AL1-AL4                    none

Select menu option (bridge/vlan): detail
Select VLAN ID (1-2)[1]: 2

VLAN ID: 2      Name: VLAN 2

Unit              Untagged Member Ports      Tagged Member Ports
------------------------------------------------------------------------
1                 10                         27
Aggregated Links  none                       none

4200 設定 1:27 埠 Trunk 後示意表:

 

VLAN ID連接埠成員(Tag/Untag)
11:1-9(U)1:11-28(U)
21:10(U)1:27(T)

最後就是測試接在 4900 之 1:10 埠 PC-A 是否 ping 的到接在 4200 之 1:10 埠 PC-B,答案是『可以』的,代表 Trunk 設定 OK 最終就完成我們的測試。

溫馨提示:在上例中,請勿將 Trunk 埠(也就是 4900 的 1:13、4200 的 1:27)設定成『VLAN 2 不加上 Tag』這樣會導致兩台 Switch 之間的通訊瞬間斷掉(因為 Default VLAN 的 VLAN 1 不通)。

觀念與後續

Layer 2 與 Layer 3 Switch 差異

後續發展最有可能的就是銜接 Layer 3 設備,也就是 Router 或是 Layer 3 Switch,而這些設備的主要任務就是「路由」囉。談到 L2 與 L3 Switch 之間的差異,從觀念與設定畫面來看的話:Layer 2 Switch 通常只有一個 IP 值,用在 Default VLAN 的;而 Layer 3 Switch 可針對不同的 VLAN ID 來設定 IP(因為後續可做 Routing 用途)。

4900(L3 Switch)設定 IP 為 192.168.8.8/255.255.255.0 屬於 VLAN 2 後的畫面。

--------------------------------------sw4900 (1)------------------------
Select menu option (protocol/ip/interface): summary
Select IP interface (1-3,all)[all]:

The IP address for interface 1 has been configured Manually.

Index   Type       IP address        Subnet mask       State   VLAN ID
---------------------------------------------------------------------------
1       Primary    172.16.9.111      255.255.0.0       Up      1
2       SLIP       192.168.101.1     255.255.255.0     Up      n/a
3       Primary    192.168.8.8       255.255.255.0     Up      2

Select menu option (protocol/ip/interface):

4200(L2 Switch)只能修改(modify)IP 卻無法新增 IP 給其他 VLAN 的畫面。

-------------------------------------4200 (1)------------------------
Select menu option (protocol/ip/interface): summary
Select IP interface (1-2,all)[all]:

The IP address for interface 1 has been configured Manually.

Index   Type       IP address        Subnet mask       State   VLAN ID
---------------------------------------------------------------------------
1       Network    172.16.9.112      255.255.0.0       Up      1
2       SLIP       192.168.101.1     255.255.255.0     Up      n/a

Select menu option (protocol/ip/interface):

Menu options: --------------3Com SuperStack 3 Switch 4200---------------
 modify             - Modify IP interface information (interface 1 or 2 only)
 summary            - Display summary information

Type "quit" to return to the previous menu or  ? for help

Layer 3 Switch 取代方案

Layer 3 Switch 的價格通常不菲(尤其是孔數多、有光纖的機型),所以並不是每一個企業都願意砸錢買來用,若是經費上確實有所不足,但仍然需要 Layer 3 Routing 功能時,一種便宜的方式是採用 PC 充當 Router 來用,但此舉卻面臨到的問題是:倘若 VLAN 數量一多(假設六個),一般 PC 卻也無法插上那麼多張網卡(大概三、四張網路卡就很了不起了),就算可以插多張網卡(假設六張吧),這六張卡的 RJ45 接頭就需要接到六埠 Layer 2 Switch 上,這樣會浪費 Layer 2 Switch 上面的埠數(一個 VLAN 就需要一個埠)而很傷成本。

較好的作法是,還是圍繞在「802.1Q」,讓您的『Router PC 能夠解讀及封裝(encapsulate)802.1Q Frame』,也就是 Router PC <-> Layer 2 Switch 本身就是一個 Trunk 連線,上述那六個 VLAN Routing 都走這個 Trunk 線路到 Router PC,此舉就只用了一張網路卡(相對的 Switch 上就只用一個埠),也就解決了這個問題。

溫馨提示:市面上的品牌 Router 設備(像 Cisco)或是 NAT / FireWall 這類設備,有些都已經提供與 802.1Q Trunk 功能(就是上述 Router PC 的功能)。

使用 Linux 做 Router PC 的話,簡單說就是先載入『能夠解讀及封裝(encapsulate)802.1Q』的核心模組,在使用 vconfig 指令來設定 VLAN,至於設定 Linux 的 IP/Netmask 以及允許 TCP/IP 封包 Forward,相信大家都不陌生,故不在贅述。

下方為 Linux 載入 802.1Q 模組以及 vconfig 指令執行的簡單說明。

[root@r2-101 ~]# modprobe 8021q
[root@r2-101 ~]# lsmod | grep 8021q
8021q                  18633  0
[root@r2-101 ~]# vconfig
Expecting argc to be 3-5, inclusive.  Was: 1

Usage: add             [interface-name] [vlan_id]
       rem             [vlan-name]
       set_flag        [interface-name] [flag-num]       [0 | 1]
       set_egress_map  [vlan-name]      [skb_priority]   [vlan_qos]
       set_ingress_map [vlan-name]      [skb_priority]   [vlan_qos]
       set_name_type   [name-type]

* The [interface-name] is the name of the ethernet card that hosts
  the VLAN you are talking about.
* The vlan_id is the identifier (0-4095) of the VLAN you are operating on.
* skb_priority is the priority in the socket buffer (sk_buff).
* vlan_qos is the 3 bit priority in the VLAN header
* name-type:  VLAN_PLUS_VID (vlan0005), VLAN_PLUS_VID_NO_PAD (vlan5),
              DEV_PLUS_VID (eth0.0005), DEV_PLUS_VID_NO_PAD (eth0.5)
* bind-type:  PER_DEVICE  # Allows vlan 5 on eth0 and eth1 to be unique.
              PER_KERNEL  # Forces vlan 5 to be unique across all devices.
* FLAGS:  1 REORDER_HDR  When this is set, the VLAN device will move the
            ethernet header around to make it look exactly like a real
            ethernet device.  This may help programs such as DHCPd which
            read the raw ethernet packet and make assumptions about the
            location of bytes.  If you don't need it, don't turn it on, because
            there will be at least a small performance degradation.  Default
            is OFF.
[root@r2-101 ~]# 

加上 Tag 或是不加上 Tag 的關鍵

在 802.1Q 的 Trunk 中,關鍵就是加上不加上 Tag 的問題,事實上多去了解其原理,就能夠幫助設定上的順不順利。不加上有 Tag 的埠就與一般埠運作方式類似,進來的 Frame 就原封不動的出去;所有來到 Switch 的 Frame 都需依照 VLAN ID 來分發到埠,分發的動作是不論 Frame 是否有加上著 Tag 都要做的;而加上有 Tag 的 802.1Q VLAN Trunk 埠:進入埠的要解讀 Tag;離開埠的則要封裝 Tag,動作其實很規律很死板,只是要好好的去理解與思考。

Native VLAN

請注意在「802.1Q Trunk 連線只能有一個 Native VLAN」,而 Frames 屬於這個 Native VLAN 在 Trunk 傳送與接收期間是『不加上』Tag 的,也意味著要經由此 Trunk 傳輸的其他 VLAN ID Frame 就需要加上 Tag,以我們先前的 VLAN 設定範本來說,此時的 4900 通 4200 那個 Trunk 連線的 Native VLAN 就是 VLAN 1,但 Native VLAN 不見得就是 VLAN 1(Default VLAN),只是在較為簡單的網路架構下 Native VLAN 通常就是 VLAN 1 囉。

 

Valid XHTML 1.0! Valid CSS! Get Firefox

Creative Commons License
This site is licensed under a Creative Commons Attribution 2.5 Taiwan License.