跳轉至內容

區域網設計/虛擬區域網

來自 Wikibooks,開放世界中的開放書籍
Previous page
IGMP 監聽
區域網設計 Next page
區域網中第 3 層的冗餘和負載均衡
虛擬區域網

虛擬區域網 (VLAN) 允許在多個邏輯區域網上共享單個物理基礎設施(相同的裝置,相同的佈線):只有特定區域網的流量流經某些埠,只有另一個區域網的流量流經其他埠,依此類推→每個網橋為每個 VLAN 都有一個過濾資料庫。[1]

與以下方面相比,由多個 VLAN 組成的鏈路層網路更具優勢

  • 網路層網路,由於移動性支援:主機在移動時可以保持在同一地址(其 MAC 地址)可訪問;
  • 單個物理區域網,由於
    • 更大的可擴充套件性:廣播流量被限制在較小的廣播域內;
    • 更大的安全性:屬於 VLAN 的使用者無法對其他 VLAN 執行 MAC 泛洪攻擊;
    • 更好的策略實施:網路管理員可以根據 VLAN 配置不同的策略;
  • 從物理角度來看,完全分離的多個區域網,由於節省了更多資源和成本:網橋不會為每個區域網重複,而是由所有 VLAN 共享,網橋之間的電纜也可以傳輸任何 VLAN 的流量。

VLAN 應用的一個示例是校園網路:一個 VLAN 為學生保留,另一個 VLAN 為教師保留,並具有較少的限制性策略,依此類推。

互連 VLAN

[編輯 | 編輯原始碼]

資料無法在鏈路層跨越 VLAN 邊界:一個 VLAN 中的站點無法向另一個 VLAN 中的另一個站點發送幀,因為 VLAN 具有不同的廣播域。一個可能的解決方案可能是將一個 VLAN 的埠連線到另一個 VLAN 的埠,但這樣就會形成一個廣播域→這兩個 VLAN 實際上屬於同一個區域網。

因此,一個 VLAN 中的站點只能在網路層向另一個 VLAN 中的另一個站點發送資料→需要路由器才能將一個 VLAN 的埠連線到另一個 VLAN 的埠:一個 VLAN 中的站點向路由器傳送一個 IP[2]資料包,然後路由器重新生成資料包的鏈路層報頭(特別是更改 MAC 地址),並將資料包傳送到另一個 VLAN 中的站點。但是,此解決方案佔用路由器中的兩個介面和同一網橋中的兩個埠,並且需要兩根電纜來連線這兩個網路裝置本身→單臂路由器允許透過一根電纜互連兩個 VLAN,佔用一個網橋埠和一個路由器介面:兩個 VLAN 的流量都可以透過一根電纜和網橋埠流過。

鏈路層廣播流量仍然無法跨越 VLAN 邊界,因為路由器不會透過拆分廣播域將其傳播到其其他介面→一個 VLAN 中的站點想要聯絡另一個 VLAN 中的站點,無法透過 ARP 協議發現其 MAC 地址,但必須將其資料包傳送到其 IP 地址,該地址具有不同的網路字首,因為這兩個 VLAN 必須具有不同的定址空間。

將主機分配到 VLAN

[編輯 | 編輯原始碼]

每個網橋都提供一些埠,稱為接入埠,主機可以連線到這些埠。在接入鏈路中,流經的是未標記幀,即沒有VLAN 標籤;接入埠根據其成員 VLAN 對幀進行標記。

當主機連線到接入埠時,可以透過四種方式識別其成員 VLAN

基於埠的分配

[編輯 | 編輯原始碼]

每個接入埠都關聯到一個 VLAN→主機可以透過連線到相關的網橋埠來訪問 VLAN。

優勢
  • 配置:不應該在主機上配置 VLAN→與裝置的最大相容性。
劣勢
  • 安全:使用者可以連線到任何 VLAN→無法設定基於 VLAN 的不同策略;
  • 網路層移動性:儘管使用者可以連線到任何 VLAN,但他仍然無法在 VLAN 之間保持相同的 IP 地址。

透明分配

[編輯 | 編輯原始碼]

每個主機都基於 MAC 地址關聯到某個 VLAN。

劣勢
  • 配置:新使用者應聯絡網路管理員以記錄其裝置的 MAC 地址→對於使用者來說,查詢其自身裝置的 MAC 地址可能並不簡單;
  • 資料庫成本:需要一個伺服器以及管理人員來儲存一個數據庫,其中包含 MAC 地址和 VLAN 之間的繫結;
  • 資料庫維護:應清除不再使用的 MAC 地址對應的條目,但使用者在棄用其裝置時經常會忘記聯絡網路管理員讓他刪除其 MAC 地址→隨著時間的推移,資料庫會不斷增長;
  • 安全:使用者可以配置虛假的 MAC 地址並訪問另一個 VLAN,假裝是另一個使用者。

按使用者分配

[編輯 | 編輯原始碼]

每個使用者擁有一個賬戶,並且每個使用者賬戶都關聯到一個特定的VLAN。當用戶連線到橋接埠時,使用者透過802.1x標準協議插入自己的登入憑據進行身份驗證,如果成功,橋接裝置可以聯絡RADIUS伺服器檢查憑據併為使用者分配正確的VLAN。

劣勢
  • 相容性:身份驗證直接在資料鏈路層由網絡卡執行 -> 每個裝置都應該配備相容802.1x標準的網絡卡;
  • 配置:使用者必須在自己的裝置上設定一些配置引數(例如認證型別),才能訪問網路。

協作分配

[編輯 | 編輯原始碼]

每個使用者自己關聯到他想要的VLAN:主機上的作業系統標記出站幀,以便它們透過中繼鏈路到達橋接埠時已經帶有標籤。

劣勢
  • 配置:使用者必須手動配置自己的裝置才能訪問網路;
  • 安全:使用者可以連線到任何VLAN -> 無法設定基於VLAN的不同策略。

幀標記

[編輯 | 編輯原始碼]

中繼鏈路是可以傳輸不同VLAN流量的鏈路

在中繼鏈路中,標記幀,即具有IEEE 802.1Q(1998)標準化的VLAN標籤,流動

VLAN標籤格式(4位元組)。
16 19 20 32
TPID (0x8100) PCP CFI VLAN ID

其中欄位為

  • 標籤協議識別符號 (TPID) 欄位 (2 位元組):它識別標記幀 (值 0x8100);
  • 優先順序程式碼點 (PCP) 欄位 (3 位):它指定服務質量的使用者優先順序: 區域網設計/IEEE 802 區域網中的服務質量#IEEE 802.1p
  • 規範格式指示符 (CFI) 標誌 (1 位):它指定 MAC 地址是否為規範格式 (值 0,例如乙太網) 或不是 (值 1,例如令牌環);
  • VLAN 識別符號 (VID) 欄位 (12 位):它標識幀的 VLAN
    • 值 0:幀不屬於任何 VLAN -> 用於使用者只想為其流量設定優先順序的情況;
    • 值 1:幀屬於預設 VLAN;
    • 值 2 到 4094:幀屬於由該值標識的 VLAN;
    • 值 4095:保留。

IEEE 802.1Q 實際上並沒有封裝原始幀;相反,它在原始幀的源 MAC 地址和 EtherType/Length 欄位之間添加了標籤,使最小幀大小保持在 64 位元組不變,並將最大幀大小從 1518 位元組擴充套件到 1522 位元組 -> 中繼鏈路中不能有集線器,因為它們不支援超過 1518 位元組的幀

在乙太網幀中插入 VLAN 標籤。

網路骨幹

[編輯 | 編輯原始碼]
透過網路骨幹中的中繼鏈路傳輸幀的VLAN示例。

透過中繼鏈路將幀從一個站點傳輸到另一個站點的方式如下:[3]

  1. 源主機向接入埠傳送未標記的幀;
  2. 當幀到達接入埠時,橋接裝置會根據與埠關聯的VLAN標記幀;
  3. 橋接裝置將標記的幀傳送到中繼鏈路;
  4. 每個接收幀的橋接裝置都會檢視與標籤指定的VLAN相關的過濾資料庫
    • 如果目標是“遠端”,橋接裝置會將幀傳播到中繼鏈路,同時保持其VLAN標籤不變;
    • 如果目標是“本地”,即可以透過與幀VLAN關聯的接入埠之一到達,橋接裝置會從幀中刪除VLAN標籤,並將未標記的幀傳送到通往目標主機的接入鏈路。

虛擬網路介面

[編輯 | 編輯原始碼]
透過單臂路由器和伺服器中的虛擬網路介面傳輸幀的VLAN示例。

通常,伺服器需要同時被位於不同VLAN中的多個主機訪問 -> 由於每個網路介面只能關聯一個VLAN,因此伺服器需要為每個VLAN配備一個網路介面,每個介面都透過其自己的物理鏈路連線到橋接裝置。類似的問題也適用於單臂路由器,它需要接收和傳送來自/到多個不同VLAN的流量,以允許它們互連。

虛擬網路介面允許在同一物理網絡卡上同時擁有多個虛擬化的邏輯網路介面,其單個物理介面僅透過一箇中繼物理鏈路連線到橋接裝置:作業系統會看到系統上安裝了多個網路介面,並且基於VLAN標籤的網絡卡驅動程式會將每個幀暴露給作業系統,就好像它來自其中一個虛擬網路介面一樣。

虛擬網路介面具有不同的IP地址,因為每個VLAN都有其自己的地址空間,但它們具有相同的MAC地址,等於物理網絡卡的MAC地址;但是這不是問題,因為MAC地址只需要在廣播域(即VLAN內)內唯一。

標籤堆疊

[編輯 | 編輯原始碼]

標籤堆疊(也稱為“提供商橋接”或“堆疊VLAN”或“QinQ”),標準化為IEEE 802.1ad(2005),允許將多個VLAN標籤插入標記幀的堆疊中,從外標籤到內標籤

在乙太網幀中插入兩個VLAN標籤。

標籤堆疊可用於透過共享提供商網路傳輸使用VLAN的多個客戶的流量:兩個不同的客戶可能會決定在其公司網路中使用相同的VLAN識別符號 -> 提供商網路邊緣的橋接裝置會向傳入幀新增並從傳出幀中刪除外部標籤,這些標籤區分具有相同VLAN識別符號但屬於不同客戶的VLAN。

優勢
  • 靈活性:與定義具有更大VLAN識別符號的另一種標記格式相比,標籤堆疊更靈活且干擾更小;
  • 簡單性:與乙太網隧道相比,標籤堆疊更簡單
    • 乙太網隧道:邊緣橋接裝置必須將幀封裝到新的乙太網報頭中 -> 複雜操作;
    • 標籤堆疊:邊緣橋接裝置只需在標籤堆疊中執行更快的推送和彈出操作;
  • VLAN可擴充套件性:與VLAN轉換相比,標籤堆疊更具可擴充套件性
    • VLAN轉換:邊緣橋接裝置更改每個幀中的VLAN識別符號,以便每個VLAN識別符號在提供商網路中都是唯一的 -> 可擴充套件性問題:僅提供最多4094個VLAN;
    • 標籤堆疊:邊緣橋接裝置為每個客戶使用一個外部VLAN識別符號,而不管每個客戶正在使用多少個內部VLAN識別符號 -> 提供商網路最多可以服務4094個客戶,每個客戶都有4094個VLAN。
劣勢
  • MAC地址可擴充套件性:與乙太網隧道相比,標籤堆疊的可擴充套件性較差
    • 標籤堆疊:提供商網路內每個橋接裝置中的過濾資料庫都應該學習所有位於所有客戶VLAN中的網路介面的MAC地址 -> 可擴充套件性問題:橋接裝置的過濾資料庫儲存在大小有限的TCAM儲存器中;
    • 乙太網隧道:提供商網路內每個橋接裝置中的過濾資料庫僅檢視網路邊緣橋接裝置的MAC地址;

  • 安全:客戶VLAN上的廣播風暴可能會影響其他客戶的流量: #廣播流量最佳化

標準STP和RSTP不支援VLAN:生成樹在整個網路中是唯一的,並且生成樹演算法獨立於VLAN工作。一些供應商提供專有的VLAN支援功能:例如,思科提供基於STP的每VLAN生成樹(PVST)和每VLAN生成樹Plus(PVST+),以及基於RSTP的快速每VLAN生成樹Plus(Rapid-PVST+)。

PVST允許網路中存在多個生成樹,每個VLAN一個;每個樹都是透過每VLAN配置生成樹協議引數來確定的。特別是,每個橋的優先順序應根據VLAN進行自定義,以便在不同的VLAN中區分根橋,否則所有VLAN都會產生相同的樹,透過識別STP Instance欄位(12位)引用的優先順序值,該欄位由IEEE 802.1t(2001)引入橋接識別符號。

IEEE 802.1t確定的橋接識別符號格式。
4 16 64
橋接優先順序 STP例項 橋接MAC地址
劣勢
  • 流量最佳化:即使考慮到現代網路中的高鏈路頻寬,PVST對流量負載執行的最佳化也不那麼顯著。
    • PVST最佳化整個網路的流量負載:如果生成樹得到良好平衡,則所有鏈路都將被使用→不再存在同時處於活動狀態但完全未使用的鏈路;
    • PVST不會最佳化VLAN內部的流量負載:VLAN中的流量仍然繫結到特定的生成樹→無法像在IP網路中那樣選擇到達目的地的最短路徑;
  • CPU負載:同時執行多個生成樹協議例項會增加橋接CPU的負載;
  • 互操作性:在同一網路中同時存在支援PVST的橋接和不支援PVST的橋接可能會導致廣播風暴;
  • 複雜性:網路管理員必須在同一網路中管理多個生成樹→故障排除更加複雜:流量路徑更難以理解,因為幀根據其所屬的VLAN跨越不同的鏈路。

廣播流量最佳化

[編輯 | 編輯原始碼]

廣播流量傳送到所有中繼鏈路,以及與廣播幀所屬VLAN關聯的訪問鏈路。

  • 一個鏈路上的廣播風暴(由一個VLAN的流量引起)可能會透過使中繼鏈路飽和而影響其他VLAN→儘管幀在資料鏈路層無法從一個VLAN到另一個VLAN,但由於鏈路是共享的,因此即使使用VLAN,網路隔離也不完整;
  • 屬於特定VLAN的廣播幀可以到達網路末端的橋接,該橋接上沒有屬於該VLAN的訪問埠→該橋接中的過濾資料庫將透過學習機制插入一個包含源MAC地址的無用條目。

為了減少中繼鏈路上的廣播流量並避免在過濾資料庫中出現無用條目,每個橋接都需要知道在每個中繼埠上要傳播哪些VLAN的廣播流量。

  • GVRP協議:它是一個標準的、非常複雜的協議,允許橋接交換網路拓撲中VLAN的資訊;
  • 專有機制:它們用於代替GVRP協議,因為它們更簡單,儘管它們會帶來互操作性問題;
  • 手動配置:網路管理員在每個橋接上顯式配置要傳播哪些VLAN的廣播流量→VLAN是靜態配置的,並且在鏈路故障後生成樹重新收斂的情況下無法更改。

互操作性

[編輯 | 編輯原始碼]

VLAN不是即插即用技術(如STP),並且家庭使用者沒有足夠的技能來配置它們→低端橋接通常不支援VLAN,並且可能會丟棄標記幀,因為它們太大。

不同供應商的網路裝置之間存在另一個不相容的原因是在中繼埠上的標記:一些橋接標記屬於所有VLAN的流量,而其他橋接則保留VLAN 1的流量未標記。

參考文獻

[編輯 | 編輯原始碼]
  1. 在實際實現中,過濾資料庫是唯一的,通常由網路裝置上的單個TCAM構成。
  2. 為簡單起見,此處將IP協議視為網路層協議。
  3. 假設採用基於埠的分配
Previous page
IGMP 監聽
區域網設計 Next page
區域網中第 3 層的冗餘和負載均衡
虛擬區域網
華夏公益教科書