TCP/IP 協定與 Internet 網路:第三章 區域網路連結 上一頁 下一頁
3-10 虛擬區域網路
3-10-1 虛擬區域網路簡介
『虛擬區域網路』(Virtual Local Area Network, VLAN)(IEEE 802.1Q 規範)即是利用某一特定技術,將某些工作站(或電腦)組織設定一個『邏輯網路』(Logical Network)。經過 VLAN 技術的處理,一個網路區段 (或稱 IP 子網路) 裡可再區分成多個虛擬區域網路(VLAN),我們先來探討分割出來的現象,再來討論其功能。
圖 3-22 是 192.168.1.0/24 網路區段的區域網路,利用三只具有『虛擬區域網路功能』的 Switch/Hub 設備,串接了 12 部電腦(可能是工作站或伺服器)。吾人利用 VLAN 技術將此 12 部電腦組合成三個虛擬區域網路,被組合 VLAN 電腦可以不是同一 Switch/Hub 底下的電腦,可以跨接其他 Switch/Hub 下電腦的組合。譬如 VLAN0 中的 PC0、PC1 在 Sw0 上,又 PC4 與 PC5 在 SW1 交換器上。目前工業技術進步神速,網路連結設備幾乎很難買到 Hub,大多是具有 VLAN 的 Layer 2 Switch 或 Layer 3 Switch。我們這裡就用 Layer 2 Switch 做範例說明。
又每一個 VLAN 為何會連接那些電腦,大多為了劃分工作群組,也就是同一 VLAN 內的電腦通訊非常頻繁,期望他們之間通訊不要影響到其他電腦。假設 PC0 是一個資料庫伺服器,專供應 PC1、PC4、PC5 電腦使用,其他電腦甚少使用到,則將他們組合一個 VLAN。原因?稍後討論之。
圖 3-22 實體區域網路範例
圖 3-23 為圖 3-22 分割成三個 VLAN 的邏輯架構圖。假設圖 3-22 中 Switch/Hub 皆是 Layer 2 Switch,它們僅負責訊框轉送,並不理會 IP 位址。由外部來看圖 3-23 還是 192.168.1.0/24 網路區段,但它內部已被虛擬化三個 VLAN0 ~ VALN2,之間並利用一只『虛擬橋接區域網路』(Virtual Bridged LAN, VBLAN) 連結。VBLAN 如同實體橋接器相同,具有學習與訊框轉送(Relay) 功能(請參考 3-4 節橋接器說明)
圖 3-23 虛擬區域網路的邏輯概念圖
規劃虛擬區域網路的優點,如下:
(1) 減抵『廣播網域』(Broadcast Domain)
每一個虛擬區域網路即是一個廣播網域。在網路上廣播封包是非常普遍的,譬如發送 ARP、ARAP 或群播訊框時,會將廣播訊框(或封包)發送到網路區段的每一角落。如果經過虛擬區域網路分割後,廣播訊框會被 VBLAN 橋接器隔離,不會亂竄到所有網路角落上。以發送 ARP 為例,當 PC0 發送 ARP 訊框查詢某一工作站的 MAC 位址時,VBLAN 收到該訊框並由其內容得知查詢哪 IP 的 MAC 位址時,如果在它的 ARP Catch 裡查詢出來,便直接回應,不用再往後廣播,如此即可減低廣播訊框的流量。
(2) 具有『防火牆』(Firewall) 功能
訊框(或封包)僅限於虛擬網路上廣播,則其外部網路就很難偷竊窺視訊框內容,如此即具有隱藏訊框達到防火牆內容。
(3) 劃分『工作群組』(Workgroup)
就 CSMA/CD 協定(Ethernet 網路)的特性而言,傳送訊框都用廣播方式。當某一部電腦要傳送給另一部電腦時,它就將訊框廣播到網路上,網路上所有電腦都收到該訊框,再由訊框標頭內的目地位址判斷是否傳送給自己,如果是就將它收起來,如果不是,就將它拋棄。由此可見,任何訊框的發送都會影響到所有電腦。在企業內網路系統,大多有依其工作需求,劃分若干個工作群組。同一群組內電腦間通訊會比較頻繁,如果虛擬區域網路能配合工作群組劃分,則可減低許多不需要的訊框流量,如此可以提供網路效益許多,也可以達到安全隱密的功能(同 VLAN 網路之間無法收到訊息)。
3-10-2 VLAN 組態方法
劃分虛擬區域網路的方法大多與網路設備有關(Layer 2 或 Layer 3 Switch),有下列幾種方法:
(1) 『埠口基礎的虛擬區域網路』(Port-based VLAN):
劃分虛擬區域網路是依照交換器的埠口而定,即是指定某些埠口為一個 VLAN 範圍,但埠口可以在同一網路的不同交換器上。此方式 Layer 2 或 Layer 2 Switch 都可以。以 Layer 2 Switch 為例,大多僅具有訊框交換的功能,它依照訊框標頭的目地位址傳送到相對應埠口上,因此它具有學習(如橋接器)與轉送的功能,但大多沒有擴張樹展開的功能,無法避免網路迴圈會造成學習困難。如果我們將它設定成虛擬區域網路,則 VBVLAN 橋接器就具有擴張樹功能,可以避免網路迴圈的問題。
以 Port-based 劃分虛擬區域網路的缺點是工作站的位置不可隨意變遷,需固定連結在某一埠口上,有時候會造成許多困擾。埠口經過設定哪一個 VLAN 後,大致不能再任意改變,此方法又稱為『靜態虛擬區域網路』(Static VLAN)。
(2) 『MAC 基礎的虛擬區域網路』(MAC-based VLAN)
以連接埠口劃分 VLAN 的缺點是工作站位置不可以隨意變遷,連接在哪一埠口不可隨意變動。如果以 MAC 位址來區分,可能就能解決此問題,這種方式可適用於 Layer 2 或 Layer 3 Switch 上。但必須查詢每部電腦上網路卡的 MAC 位址,也會造成困擾。具有 MAC-based VLAN 功能的交換器(如 Cisco 5000 系列交換器)支援 VMPS(VLAN Management Policy Server) 功能,它內部有一個資料庫,可供輸入工作站的 MAC 位址,以及相對應的 VLAN 編號。
利用 MAC-based 分割的 VLAN,將不限制於工作站連接於哪一個傳輸埠口,並可以任意變更連接埠口及位置,又稱為『動態虛擬區域網路』(Dynamic VLAN)。
(3) 『IP 子網路基礎的虛擬區域網路』(IP subnet-based VALN)
如果以 IP 子網路來劃分虛擬區域網路,則該交換器須具備有處理 IP 封包之能力,須採用 Layer 3 Switch 才行。它的運作方法就如同在子網路下再劃分子網路,如以 Class B 網路的 192.168.1.* 子網路為例,可指定的 IP 位址範圍是 192.168.1.1 ~ 192.168.1.254,其中 192.168.1.0 與 192.168.1.255 保留給預定路由與廣播位址使用。如果取用主機位址(11111111) 中某些位元當作虛擬區域網路劃分,即可達到目的。如以圖 3-22 為例,劃分後如圖 3-23 虛擬區域網路架構中,VBVLAN 就具有路由器的功能,依照子網路範圍轉送封包。
Layer 3 Switch 又稱為多埠口路由器,在每一連接埠口可以設定靜態路由表,轉送子網路 IP 封包功能,但大多沒有動態路由功能。如果經由虛擬網路設定後,VBLAN 就具有動態路由的功能,就好像多個路由器共用一只動態路由功能一樣。
看起來利用 IP 子網路劃分可以解決許多工作站配置的問題,但它還是有缺點。利用 IP subnet 劃分子網路後,還是必須保『預定路由』與『廣播位址』兩個 IP 位址,無形之中也浪費了兩個 IP 位址,這也是考慮的因素之一。
3-10-3 VLAN 訊框轉送
了解 VLAN 運作原理之後,接下來討論其『訊框轉送』(Frame Relay)方式如何。我用幾個網路架構來探討
(A) 單一交換器架構
圖 3-24 是利用一個交換器依照埠口劃分兩個 VLAN 的架構圖。圖 3-24(A) 表示由同一交換器上,依照埠口劃分 VLAN0 與 VLAN1 兩個虛擬區域網路。同 3-22(B) 是它的內部示意圖。當 PC0 欲傳送訊框給 PC3 時,兩者不在同一 VLAN 上。對 PC0 而言,它根本無須理會到底在哪一個 VLAN 上,他將原訊框發送出去,但它所接的埠口已經被設定為 VLAN0 成員,埠口會將收到的訊框包裝成 VLAN 訊框,以 CISCO ISL 為例,則將 ISL 標頭加在訊框前面,再傳送 VBLAN,VBLAN 橋接器再依照內部過濾資料庫轉送到 PC3 所接的埠口,該埠口也是被設定成具有 VLAN 功能,它會將 VLAN 訊框還原,再發送給 PC3。到底如何轉送,則由 ISL 內訊息而定,下一節將會討論到。
圖 3-24 單一交換器劃分虛擬區域網路架構
(B) 多交換器架構
圖 3-25 是利用 3 個交換器架構網路,並劃分為 VLAN0、VLAN1 與 VLAN2 等 3 個虛擬區域網路。以 CISCO 交換器為例,其傳輸埠口如設定為 Trunk 功能,則具有傳輸骨幹的功能列用 Trunk 埠口將若干個交換器組織成一個較大的區域網路。如 VLAN0 的 PC0 電腦欲傳送訊息給 PC2,PC0 發送原訊框到 SW0,SW0 交換器將訊框前面加入 ISL 標頭(下一節討論),再發送給 SW2 交換器,再傳送給 SW1,SW1交換器拆解回原來訊框,再發送給 PC2 電腦。
虛擬區域網路即是利用 ISL 訊框標頭來註明,該訊框是屬於哪一個 VLAN(VLAN0 ~ VLAN2) 網路下的成員,虛擬化功能即是利用 ISL 標頭內訊息來達成。
圖 3-25 多交換器架構
(C) Trunk、Native VLAN 與 VLAN ID
Trunk Protocol 是建構 VLAN 的主要功能,並非所有交換器都具有,但隨著時代的進步,目前 Cisco 交換器上 Fast Ethernet、Gigabit Ethernet 連接埠口都具有此功能。交換器之間利用 Trunk protocol 交換訊息達到 VLAN 的功能。另外,一般交換器都具有多種 VLAN 的組態方法,但較普遍使用的還是 Port-based VLAN 較常見。設定方法是分別指定傳輸埠口是屬於哪一個 VLAN 成員,如果沒有指定的話,該埠口就屬於『原生 VLAN』(Native VLAN)。內定 Native VLAN 成員的傳輸埠口都可以相互通訊,簡單的說,就是所屬埠口沒有被規劃 VLAN 功能的意思。
每一個 VLAN 都需指定一個『VLAN ID 』(VID) 識別碼,由 12 位元組合,由 0 ~ 212-1之間號碼。
3-10-4 VLAN 協定標準
如圖 3-25 所示,利用多個交換器連結並建構若干個 VLAN 時,交換器之間需傳遞 VLAN 訊框,來達到虛擬化的功能,又稱為 Trunk Protocol。可能會以連結不同廠商所提供的交換器,因此就需要制定一套標準化的協定與訊框包裝。目前 VLAN 有 IEEE 802.1Q 與 Cisco 專屬的 ISL 兩種協定,以下分別敘述之。
(A) 802.1Q 協定
802.1Q 是 IEEE 所制定的標準,各家廠牌的交換器或路由器都有此協定標準,包含 Cisco 公司發生的交換器。透過 802.1Q 標準,不同廠商之間的交換器才可共同達到 VLAN 的功能。圖 3-26 為 802.1Q 的封裝格式,它作法很簡單,將 802.1Q 標頭 ( 4 Bytes) 插入原訊框(如 Ethernet II 訊框)的 Type 欄位前面。Type 欄位的功能是顯示後面訊框承載的訊息格式,可能是 IP、ARP 或 RARP 等等並以大於 1500 數字,來辨識 Ethernet I 或 Ethernet II 訊框。因此,以 0x8100 (2 Bytes) 來辨識此是 802.1Q 訊框。其他欄位功能說明如下:
(1)『標籤協議識別碼』(Tag Protocol Identifier, TPID):內容是 0x0810。。
(2)『優先權代碼點』(Priority Code Point, PCP):3 位元。承載訊框的優先參考值,由 0 ~ 7(最高)。
(3) 『虛擬區域網路識別碼』(VLAN Identifier, VID):12 位元。可任意授予 VLAN 一個識別碼,但 0x000 與 0xFFF 保留。
(4) 『典型格式指示』(Canonical Format Indicate, CFI):1 位元。如 CFI=1 則 MAC 非標準格式,如 CFI=0 為標準格式。在 Ethernet 網路中皆 CFI=0。
(5) FCS 欄位:拋棄原來 FCS 欄位內容,加入 802.1Q 標頭內容,重新計算新值填入。
圖 3-26 802.1Q 封裝格式
對於比較複雜的網路系統,可能需要轉送 VLAN 封包到其他網路組態的 VLAN,即是 VLAN 網路內再分割 VLAN 網路,則需用『雙重標記』的封裝,此為 IEEE 802.1ad 標準規範,封裝格式如圖 3-27 所示。
圖 3-27 802.1ad 封裝格式
(B) ISL 協定
『交換器之間鏈路』(Inter-Switch Link, ISL) 協定是 Cisco 公司所制定,是該公司設備專用。ISL 是運作於 OSI 協定中的第二層(鏈路連結層),與任何協定無關,因此它可以承載任何網路協定,譬如 Ethernet、Token-Ring、、等等。ISL 封裝如圖 3-28 所示,包含 ISL Header、原承載訊框與 FCS 兩大部分。其中 FCS 是 CRC 計算訊框內容的檢查值,包含 ISL Header 與原訊框內容,如承載是 Ethernet 訊框的話,長度介於 64 ~ 1518 位元組之間。
圖 3-28 ISL 封裝格式
『ISL Header』(ISL 標頭) 包含下列欄位:
● Address 欄位:112 bits。表示該訊框發送位址、接收位址與相關資料,如:
▄ Destination Address(DA):40 bits。表示該訊框傳送目的位址,它是群撥位址,該訊框是廣播給某一虛擬區域網路內的所有工作站。Cisco 將此位址設定為 0x01-00-0C-00-00 表示一個 ISL 訊框到達。
▄ Type:4 bits。紀錄承載訊框的格式,如 Ethernet(0000)、Token-ring(0001)、FDDI(0010)、ATM(0011)。
▄ User:4 bits。紀錄訊框的優先權(Priority),如 (xx00)、(xx01)、(xx10)、(xx11)(最高優先權,x 為 0/1 任意值。
▄ Source Address(SA):48 bits。訊框來源的 MAC 位址。
▄ Length:16 bits。紀錄此 ISL 訊框的長度,包含 ISL Header、原訊框與 FCS 等欄位。
● Constant Value 欄位:24 bits。內容固定為 0xAA-AA-03 常數。
● Hight-Bits Address(HB)欄位:24 bits。紀錄 MAC 位址中廠商代碼,被設定為 0x00-00-0C。
● Virtual LAN Identifier(VLAN ID) 欄位:15 bits。紀錄 VLAN 的識別碼(ID)。
● Bridge Protocol Data Unit(BPDU) 欄位:1 bit。紀錄該訊框是否 BPDU 訊框,依此建立擴張樹。
● Index 欄位:16 bits。顯示由哪一連接埠口發送出訊號,作為診斷故障使用,一般不予理會。
● Resv 欄位:16 bits。預留欄位。
至於 VLAN 實際操作,我們在另一章節說明。