【精品網絡乾貨】二層VLAN隔離技術詳解

v2-546988690a4afc3de31464b8117cab71_720w.jpg


VLAN 基本概念


  1. VLAN 的幀格式

傳統的以太網數據幀在目的 MAC 地址和源 MAC 地址之後封裝的是上層協議的類型字段


傳統的以太網數據幀格式


v2-95245652e9d0a7c2cb879a050ed2d204_720w.jpg



802.1q 幀格式


v2-942b82ac25f0816b9f96c4d4395cd857_720w.jpg




v2-5b0d2a626540bf9cb4ff0f2e6149ec08_720w.jpg



每臺支持 802.1q 協議的交換機發送的數據包都會包含 VLAN ID,以指明交換機屬於哪一個 VLAN。
因此,在一個 VLAN 交換網絡中,以太網幀有以下兩種形式:
有標記幀(tagged frame):加入了 4 字節 802.1q Tag 的幀
無標記幀(untagged frame):原始的、未加入 4 字節 802.1q Tag 的幀




  1. 鏈路類型


VLAN 中有以下兩種鏈路類型:
接入鏈路(Access Link):用於連接用戶主機和交換機的鏈路。

通常情況下,主機並不需要知道自己屬於哪個 VLAN,主機硬件通常也不能識別帶有 VLAN 標記的幀。因此,主機發送和接收的幀都是 untagged 幀。


幹道鏈路(Trunk Link):用於交換機間的互連或交換機與路由器之間的連接。

幹道鏈路可以承載多個不同 VLAN 數據,數據幀在幹道鏈路傳輸時,幹道鏈路的兩端設備需要能夠識別數據幀屬於哪個 VLAN,所以在幹道鏈路上傳輸的幀都是 Tagged 幀。



v2-4fd3399efe8de6f8ea33a3ab29999b3d_720w.jpg


說明:
對於主機來說,它不需要知道 VLAN 的存在。主機發出的是 untagged 報文。
交換設備接收到報文後,根據配置規則(如接口信息)判斷出報文所屬的 VLAN 後,再進行處理。
如果報文需要通過另一臺交換機轉發,則該報文必須通過幹道鏈路透傳到對端交換設備上。

爲了保證其它交換設備能夠正確處理報文中的 VLAN 信息,在幹道鏈路上傳輸的報文必須都打上了 VLAN 標記。
當交換設備最終確定報文出接口後,將報文發送給主機前,需要將 VLAN 標記從幀中刪除,這樣主機接收到的報文都是不帶 VLAN 標記的以太網幀。


所以,一般情況下,幹道鏈路上傳輸的都是 tagged 幀,接入鏈路上傳送到的都是 untagged 幀。這樣處理的好處是:網絡中配置的 VLAN 信息可以被所有交換設備正確處理,而主機不需要了解VLAN 信息。

3、接口類型

在 802.1Q 中定義 VLAN 幀後,設備的有些接口可以識別 VLAN 幀,有些接口則不能識別 VLAN幀。根據對 VLAN 幀的識別情況,將接口分爲 4 類:
Access 接口:

Access 接口是交換機上用來連接用戶主機的接口,它只能連接接入鏈路。

僅僅允許唯一的 VLAN ID 通過本接口,這個 VLAN ID 與接口的缺省 VLAN ID 相同, Access 接口發往對端設備的以太網幀永遠是不帶標籤的幀。


Trunk 接口

Trunk 接口是交換機上用來和其他交換機連接的接口,它只能連接幹道鏈路,允許多個 VLAN 的幀(帶 Tag 標記)通過。


Hybrid 接口

Hybrid 接口是交換機上既可以連接用戶主機,又可以連接其他交換機的接口

Hybrid 接口既可以連接接入鏈路又可以連接幹道鏈路。Hybrid 接口允許多個 VLAN 的幀通過,並可以在出接口方向將某些 VLAN 幀的 Tag 剝掉。


QinQ 接口
QinQ(802.1Q-in-802.1Q)接口是使用 QinQ 協議的接口。 QinQ 接口可以給幀加上雙重 Tag,即在原來 Tag 的基礎上,給幀加上一個新的 Tag,從而可以支持多達 4094× 4094 個 VLAN(不同的產品支持不同的規格),滿足網絡對 VLAN 數量的需求。
QinQ 幀的格式如圖所示。外層的標籤通常被稱作公網 Tag,用來存放公網的 VLAN ID。內層標籤通常被稱作私網 Tag,用來存放私網的 VLAN ID。


v2-b039b1c10336761c019b7aeabd6e6106_720w.jpg



4、缺省 VLAN

每種類型的接口都可以配置一個缺省 VLAN,對應的 VLAN ID 爲 PVID(Port Default VLAN ID)。接口類型不同,缺省 VLAN 的含義也有所不同。



VLAN 的劃分


可以基於接口、 MAC 地址、子網、網絡層協議、匹配策略方式來劃分 VLAN。

v2-21f04b34b494b36c08e034604a6d2ed6_720w.jpg


劃分 VLAN 的實現流程圖



v2-cf64d09a98a8f9b3d5df88e153e9628c_720w.jpg



VLAN 通信原理

v2-d8b996841d3902bd28fdd93c0c99449f_720w.jpg

  1. VLAN 基本通信原理


爲了提高處理效率,交換機內部的數據幀一律都帶有 VLAN Tag,以統一方式處理。

當一個數據幀進入交換機接口時,如果沒有帶 VLAN Tag,且該接口上配置了 PVID(Port Default VLAN ID),那麼,該數據幀就會被標記上接口的 PVID。如果數據幀已經帶有 VLAN Tag,那麼,即使接口已經配置了 PVID,交換機不會再給數據幀標記 VLAN Tag。


由於接口類型不同,交換機對幀的處理過程也不同。下面根據不同的接口類型分別介紹。


v2-df4195576f0df53f694801c0181f96b4_720w.jpg


  1. VLAN 內跨越交換機通信原理


有時屬於同一個 VLAN 的用戶主機被連接在不同的交換機上。當 VLAN 跨越交換機時,就需要交換機間的接口能夠同時識別和發送跨越交換機的 VLAN 報文。這時,需要用到 Trunk Link 技術。


Trunk Link 有兩個作用:
中繼作用:把 VLAN 報文透傳到互聯的交換機。
幹線作用:一條 Trunk Link 上可以傳輸多個 VLAN 的報文。



v2-f4d9318431ceb359775bbcf60f545d1c_720w.jpg



如圖所示的網絡中,爲了讓 DeviceA 和 DeviceB 之間的鏈路既支持 VLAN2 內的用戶通訊又支持 VLAN3 內的用戶通訊,需要配置連接接口同時加入兩個 VLAN。即應配置 DeviceA 的以太網接口 Port2 和 DeviceB 的以太網接口 Port1 同時加入 VLAN2 和 VLAN3。


當用戶主機 Host A 發送數據給用戶主機 Host B 時,數據幀的發送過程如下:
1. 數據幀首先到達 DeviceA 的接口 Port4。

2. 接口 Port4 給數據幀加上 Tag, Tag 的 VID 字段填入該接口所屬的 VLAN 的編號 2。
3. DeviceA查詢自己的MAC地址表中是否存在目的地址爲DeviceB的MAC地址的轉發表項。
如果存在, DeviceA 將數據幀轉發給接口 Port2。
如果不存在, DeviceA 會將數據幀發送到本設備上除 port4 接口外的所有屬於 VLAN2的接口。
4. 接口 Port2 將幀轉發到 DeviceB 上。
5. DeviceB 收到數據幀後,會查詢自己的 MAC 地址表中是否存在目的地址爲 Host B 的 MAC地址的轉發表項。
如果存在, DeviceB 會將數據幀發送給出接口 Port3。
如果不存在, DeviceB 會將數據幀發送到本設備上除 port1 接口外的所有屬於 VLAN2的接口。
6. 接口 Port3 將數據幀發送給主機 Host B。




  1. VLAN 間通信原理


劃分 VLAN 後,不同 VLAN 之間不能直接通信。如果要實現 VLAN 間通信,可以採取以下方案:


方式一:子接口
如圖所示, DeviceA 爲支持配置子接口的三層設備, DeviceB 爲二層交換設備。 LAN 通過DeviceB 的以太網接口(交換式以太網接口)與 DeviceA 的以太網接口(路由式以太網接口)相連。用戶主機被劃分到兩個 VLAN: VLAN2 和 VLAN3。可通過如下配置實現 VLAN 間互通。


在 DeviceA 的以太網接口(與 DeviceB 相連的以太網接口)上創建 2 個子接口 Port1.1和 Port2.1,並配置 802.1Q 封裝與 VLAN2 和 VLAN3 分別對應。
配置子接口的 IP 地址,保證兩個子接口對應的 IP 地址路由可通。
將 DeviceB 與 DeviceA 相連的以太網接口類型配置爲 Trunk 或 Hybrid 類型,允許 VLAN2和 VLAN3 的幀通過。

將用戶設備的缺省網關設置爲所屬 VLAN 對應子接口的 IP 地址



v2-b274ce2d30a91f3a79b984927de53521_720w.jpg



主機 A 和 C 的通信過程如下:
1. 主機 A 將主機 C 的 IP 地址和自己所在網段進行比較,發現主機 C 和自己不在同一個子網。
2. 主機 A 發送 ARP 請求給自己的網關 DeviceA,請求網關的 MAC 地址。
3. DeviceA 收到該 ARP 請求後,返回 ARP 應答報文,報文中源 MAC 地址爲 VLAN2 對應子接口的 MAC 地址。
4. 主機 A 學習到網關的 MAC 地址。
5. 主機 A向網關發送目的 MAC爲子接口 MAC地址、目的 IP 爲主機 C的 IP 地址的報文。
6. DeviceA 收到該報文後進行三層轉發,發現主機 C 的 IP 地址爲直連路由,報文將通過VLAN3 關聯的子接口進行轉發。
7. DeviceA 作爲 VLAN3 內主機的網關,向 VLAN3 內發送一個 ARP 廣播,請求主機 C的 MAC 地址。
8. 主機 C 收到網關發送的 ARP 廣播後,對此請求進行 ARP 應答。
9. 網關收到主機 C 的應答後,就把主機 A 的報文發送給主機 C。主機 A 之後要發給 C 的報文都先發送給網關,由網關做三層轉發。



方式二:VLANIF 接口

三層交換技術是將路由技術與交換技術合二爲一的技術,在交換機內部實現了路由,提高了網絡的整體性能。三層交換機通過路由表傳輸第一個數據流後,會產生一個 MAC 地址與 IP地址的映射表。當同樣的數據流再次通過時,將根據此表直接從二層通過而不是通過三層,從而消除了路由器進行路由選擇而造成的網絡延遲,提高了數據包轉發效率。

爲了保證第一次數據流通過路由表正常轉發,路由表中必須有正確的路由表項。因此必須在三層交換機上部署三層接口並部署路由協議,實現三層路由可達。 VLANIF 接口由此而產生。VLANIF 接口是三層邏輯接口,可以部署在三層交換機上,也可以部署在路由器上。
在圖 3 所示的網絡中,交換機上劃分了 2 個 VLAN: VLAN2 和 VLAN3。可通過如下配置實現 VLAN 間互通。

在 Device 上創建 2 個 VLANIF 接口並配置 VLANIF 接口的 IP 地址,保證兩個 VLANIF接口對應的 IP 地址路由可通。

將用戶設備的缺省網關設置爲所屬 VLAN 對應 VLANIF 接口的 IP 地址。




v2-7fa1240a2535c07c3af924e15be4aec9_720w.jpg



主機 A 和 C 的通信過程如下:
1. 主機 A 將主機 C 的 IP 地址和自己所在網段進行比較,發現主機 C 和自己不在同一個子網。
2. 主機 A 發送 ARP 請求給自己的網關 Device,請求網關的 MAC 地址。
3 Device 收到該 ARP 請求後,返回 ARP 應答報文,報文中源 MAC 地址爲 VLANIF2 的MAC 地址。
4. 主機 A 學習到網關的 MAC 地址。
5. 主機 A 向網關發送目的 MAC 爲 VLANIF 接口 MAC 地址、目的 IP 爲主機 C 的 IP 地
址的報文。
6. Device 收到該報文後進行三層轉發,發現主機 C 的 IP 地址爲直連路由,報文將通過
VLANIF3 接口進行轉發。
7. Device 作爲 VLAN3 內主機的網關,向 VLAN3 內發送一個 ARP 廣播,請求主機 C 的
MAC 地址。
8. 主機 C 收到網關發送的 ARP 廣播後,對此請求進行 ARP 應答。
9. 網關收到主機 C 的應答後,就把主機 A 的報文發送給主機 C。主機 A 之後要發給 C 的
報文都先發送給網關,由網關做三層轉發。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章