文章目錄
VLAN介紹
主要介紹VLAN的802.1Q報文、VLAN的二層通信以及三層通信原理、VLAN相關技術等
802.1Q幀格式以及VLAN的劃分方式
報文字段 | 說明 |
---|---|
前導符 | 由0101…交替組成,用於是PLS(物理層信號)子層與收到的幀進行時鐘同步; |
幀起始 | 數值爲10101011,表示一個幀的開始部分; |
SMac | 源MAC地址 |
DMac | 目的MAC地址 |
長度/類型 | 在Ethernet I和II中表示類型,802.3表示長度; |
TPID | 標籤協議標識符字段,表明這是一個802.1q協議,用於與未添加VLAN的數據幀進行區分;固定值爲0x8100; |
PRI | 優先級字段,數值範圍爲0-7(越大越優),用於QoS服務; |
CFI | 標準格式化兼容器字段,用於兼容令牌網和以太網,0表示以太網,1表示令牌網,默認爲0; |
VID | VLAN標識字段,表明VLAN的ID,範圍爲0-4095,可用範圍爲1-4094; |
數據 | 數據字段 |
FCS | 校驗序列字段,用於校驗整個數據幀的完整性和可靠性; |
VLAN的劃分方式:
- 基於端口劃分VLAN:最常見的VLAN劃分方式,將物理端口劃分進固定的VLAN裏,當主機接入改端口就會劃分進相應的VLAN裏,配置簡單;
- 基於MAC劃分VLAN:手動配置好MAC地址與VLAN的對應關係,MAC地址有48位,手動配置好每個MAC地址與VLAN的對應關係,工作量大;
- 基於IP子網劃分VLAN:手動配置好IP地址與VLAN間的對應關係,每次都需要解析IP協議,反響速度慢;
- 基於協議劃分VLAN:手動配置好IP報文中的“協議號”字段與VLAN的對應關係,次都需要解析IP協議,反響速度慢;
- 基於策略劃分VLAN:按照安全策略劃分(MAC地址+IP地址策略和MAC地址+IP地址+端口號策略),手動配置每一條策略與VLAN的對應關係工作量大;
VLAN擴展技術
- 管理VLAN:是一種特殊的VLAN,爲用戶提供遠程訪問,該VLAN中不能有業務流量,只能是管理流量;
- VLAN聚合:又稱爲Super VLAN,用於解決不同VLAN所處同一網段之間的通信(正常情況下,不同VLAN所處的網段是不同的);包含兩種VLAN,Super-VLAN(主VLAN,只需配置VLANIF IP地址作爲從VLAN的缺省網關,不加入任何物理接口)和Sub-vlan(從VLAN,不能配置IP地址,劃分物理接口進入該端口);
- MUX VLAN:實現VLAN間各成員的二層隔離。可以使得同一VLAN同一網段的成員間不能相互訪問,分爲三種VLAN,Principal VLAN(主VLAN)、Subordinate VLAN(Separate VLAN,隔離型從VLAN;Group VLAN,互通型從VLAN);
- VLAN 映射:在物理接口上將數據幀的VLAN ID替換爲其他的VLAN ID,使得用戶能夠在公網VLAN裏傳遞;
- Voice VLAN:語音VLAN,用於語音通信環境,提高語音通信質量和傳輸速率;
- VLAN 透傳:使交換機直接透明傳輸指定的VLAN,不用上報CPU,也不用識別數據幀的VLAN標籤,提高了傳輸速率;
- QinQ:簡單的二層隧道技術,在帶有標籤或未帶標籤的數據幀中再添加一個公網tag標籤,提高了VLAN的使用數量(4094x4094);
- QinQ映射:在路由子接口上將VLAN ID替換爲其他VLAN ID;
VLAN端口類型
- Access端口:剝離或打上標籤,常用於與終端相連的端口,當收到一個沒有標籤的數據幀,就會打上一個數值爲PVID的tag標籤;當收到一個帶有標籤的數據幀,查看數據幀的VID是否與該接口的PVID相同,相同就剝離,不相同就丟棄;
- Trunk端口:帶標籤傳輸的通道,常用於與其他二層設備或三層設備相連的端口,當收到一個沒有標籤的數據幀,就會打上一個數值爲PVID的tag標籤(默認爲1);當收到一個帶有標籤的數據幀,查看數據幀的VID是否與端口的PVID相同,相同就剝離,不相同就查看該VLAN ID是否在允許轉發表裏,在就保留標籤轉發,不在就丟棄;
- Hybrid端口:Access與Trunk的混合型,既可用於既可用於終端,也可用於網絡設備。該端口有兩種形式,untagged(不帶標籤的)和tagged(帶標籤的),在這兩種形式的端口後面都可以配置允許通過的VLAN ID(允許轉發表中的允許VLAN是包含untagged和tagged);當收到一個不帶tag標籤的數據幀,就會打上一個數值爲PVID的tag標籤,然後查看允許轉發表中是否包含此VLAN,包含就發送,不包含就丟棄;當收到一個帶標籤的數據幀,查看該標籤是否在轉發表裏,在就發送,不在就丟棄;當發送一個帶有標籤的數據幀,會查看該數據幀是否在untagged允許轉發表裏,在就剝離後發送,不在就查看是否在tagged轉發表中,在就直接發送,不在就丟棄;所有的端口默認處於hybrid端口1;
二層VLAN內通信以及三層VLAN間通信
VLAN間設備能夠實現二層隔離,VLAN內設備能夠直接進行二層通信;不同VLAN間是不能直接通信的,但有些時候需要實現不同VLAN間的通信,這是就需要使用相關三層技術進而使得VLAN間能夠通信,常用的有:配置三層路由子接口(子接口是虛擬接口)和VLANIF接口(三層交換機);
二層VLAN內通信過程
- PC1訪問PC2。PC1會從接口上發送一個數據幀。當SW1從接口G0/0/0收到一個沒有tag標籤的數據幀後,會打上一個數值爲PVID(此處爲10)的Tag,然後查看MAC地址表,發現發送端口爲G0/0/1;
- SW1的trunk口收到帶有tag的數據幀後,就會查看該數據幀的VLAN ID是否與存在允許轉發VLAN表裏,在就轉發;
- SW2的trunk口g0/0/1收到該數據幀後,就會查看MAC地址表,然後從accessG0/0/0端口發送出去;
- SW2的G0/0/0Access口收到數據幀就會剝離tag標籤發送給PC2;
三層VLAN間通信過程(三層路由子接口)
- PC1向PC2發送數據幀,PC1發送源IP地址與目的IP地址不同(不同VLAN的網段不同),就會將數據包發給網關設備(網關設備就是Router,客戶端的網關地址爲相應VLAN的路由子接口的IP地址)。
- Switch的g0/0/0Access端口收到後,就會給該數據幀打上一個數值爲PVID(10)的tag標籤,然後發給G0/0/1Trunk口;
- Switch的trunk口收到數據幀後,查看允許轉發VLAN表,然後保留tag發送出去;
- Router的g0/0/0.10子接口(屬於VLAN10)收到該數據幀後,查看路由表,然後修改數據幀的VLAN值爲20,從G0/0/0.20子接口(所屬VLAN20)發送出去;
- Switch的G0/0/1trunk口收到該數據幀後,將其發送給G0/0/2access口;G0/0/2剝離tag發送給PC2;
注:路由子接口方式與三層交換機實現VLAN間通信的基本原理是相同的;
VLAN聚合
VLAN聚合又稱爲Super-vlan技術,是用於解決普通VLAN部署下,很多IP地址被子網地址、子網定向廣播地址、子網缺省網關地址(VLANIF接口IP地址)所消耗掉,不能用於VLAN內的主機,降低了IP地址編址的靈活性的問題;
VLAN聚合分爲兩種VLAN:
- Super-VLAN:作爲所有成員Sub-VLAN的缺省網關,Super-vlan在三層交換機上才能配置,該VLAN中不能包含任何的端口,只用來配置IP地址(VLANIF)作爲所有Sub-VLAN的缺省網關;
注:不管是Trunk口還是Super-VLAN口都不能包含Super-VLAN;先配置Super-vlan,再配置Trunk允許所有VLAN,設備會自動過濾Super-vlan;先配置Trunk允許所有VLAN,就無法配置super-vlan;- Sub-VlAN:是Super-VLAN的成員,一個Super-vlan可以包含一個或多個Sub-VLAN成員,所有成員都處於同一個IP網段。Sub-VLAN可以添加端口,但不能配置IP地址,所有Sub-VLAN中用戶的缺省網關都是Super-vlan的IP地址,以便實現Sub-VLAN成員之間互通及與外部三層的通信;
Sub-VLAN間的通信原理:開啓ARP代理
- PC1訪問PC2。PC1將PC2的IP地址進行比較,發現PC1與PC2處於同一網段,就會在本VLAN中發送ARP報文,請求獲取PC2的MAC地址;
- 由於PC1與PC2處於不同的VLAN,故PC1不能直接獲取到PC2的MAC地址。但在Switch網關設備上開啓了Sub-VLAN間的ARP代理功能,所以當Switch網關收到ARP報文後,就會查看路由表,發現ARP請求的目的IP地址就是自己直連接口IP地址,就會向PC1發送ARP回覆報文,並向其他Sub-VLAM發送ARP請求報文,代替PC1獲取PC2的MAC地址並建立相關ARP表項;
- PC1收到網關發送的ARP請求報文後建立相關ARP表項,就會開始發送數據報文(目的MA地址爲Super-VLAN的MAC地址),然後發送給Switch;
- Switch網關收到數據幀後,會打上一個數值爲PVID(10)的tag,然後根據路由表和之前創建的ARP表項修改數據幀的Tag爲20,源MAC爲網關MAC(VLANIF 4的MAC地址),目的MAC爲PC2的MAC地址,最終從G0/0/2剝離tag後將數據幀發送給PC2;
Sub-VLAN與外部的三層設備通信原理:
- PC1訪問PC3。PC1比較PC3的IP地址,發現PC1和PC3的IP地址處於不同網段。PC1就發送ARP請求報文,請求網關的MAC地址;
- Switch1網關收到ARP請求報文之後,就會查看Super-vlan和Sub-VLAN對應關係,然後將Super-vlan的MAC地址通過ARP迴應報文發送給PC1;
- PC1收到ARP報文後建立ARP表項,然後將數據幀發送給網關設備(目的MA地址爲Super-VLAN的MAC地址,目的IP地址爲172.16.1);
- Switch網關設備收到從G0/0/0接口數據幀後,會給數據幀打上VLAN 4標籤,然後查看路由表,發現下一跳爲172.16.1.254,出接口爲VLANIF30;最終數據幀會從G0/0/3接口發送給Switch2(VLAN ID爲30,源MAC地址爲VLANIF30的MAC地址);
- Switch2收到後,會將數據幀發送給PC3;
- PC3向PC1發送回覆報文。最終發送到Switch1設備,該設備收到報文後(VLAN ID爲30,源MAC地址爲PC3的MAC地址),查看路由表,發現目的IP地址對應Sub-VLAN 10,出接口爲G0/0/0,最後將報文封裝爲VLAN 10,從G0/0/0接口發送給PC1。
MUX VLAN介紹
MUX VLAN是用於解決同VLAN內的成員之間不能相互通信的問題。同一MUX的所有VLANIP網段都相同;
MUX VLAN | VLAN類型 | 通信權限 |
---|---|---|
Principal VLAN(主VLAN) | —— | Principal VLAN內的主機能夠和任何類型的MUX VLAN進行二層通信; |
Subordinate VLAN(從VLAN) | Separate VLAN(隔離型VLAN) | Separate VLAN內的主機之間不能進行二層通信,也不能與其他Separate VLAN和Group VLAN進行二層通信,只能和Principal VLAN二層通信; |
Subordinate VLAN(從VLAN) | Group VLAN(互通型VLAN) | Group VLAN內的主機之間能夠進行二層通信,也能和Principal VLAN進行二層通信,但不能與其他Group VLAN和Separate VLAN進行二層通信; |
VLAN映射
VLAN映射就是在物理接口上將數據幀中的標籤進行替換;
VLAN映射的兩種處理方式:
- 數據幀帶有VLAN標籤:按照用戶配置的VLAN映射,決定替換單層、雙層或雙層的外層VLAN標籤;
- 數據幀沒有VLAN標籤:按照用戶配置的VLAN映射,決定是否爲數據幀添加VLAN標籤,對於不能添加VLAN的數據幀直接丟棄,否則添加數據幀
VLAN映射的方式
VLAN映射的實現方法:
VLAN映射的實現方法 | 映射原理 |
---|---|
基於VLAN映射 | 依據數據幀的VLAN ID進行映射,將數據幀的VLAN ID映射爲公網VLAN ID; 基於VLAN映射的可以替換單層、雙層或雙層的外層VLAN標籤; |
基於802.1Q優先級映射 | 基於數據幀的tag標籤的優先級(PRI),將不同優先級的VLAN ID映射爲不同公網VLAN ID; 基於802.1q優先級映射的可以替換單層的VLAN標籤; |
基於VLAN+802.1Q優先級映射 | 依據數據幀中的VLAN ID和tag標籤的優先級(PRI),將其VLAN ID替換爲不同的VLAN; 基於VLAN+802.1q映射的可以替換單層的VLAN標籤; |
基於流策略映射 | 通過配置流策略,對數據幀的VLAN ID進行流分類,不同的流替換爲不同的VLAN ID; 基於流策略映射的可以替換單層、雙層或雙層的外層VLAN標籤; |
VLAN的映射方法:
VLAN映射方式 | 說明 |
---|---|
1 to 1映射 | 對帶有單層標籤數據幀的VLAN ID進行替換; |
2 to 1映射 | 對帶有雙層標籤數據幀的外層VLAN ID進行替換; |
2 to 2映射 | 對帶有雙層標籤數據幀的內外雙層BLAN ID替換爲相應的VLAN ID |
QinQ介紹
QinQ是爲了解決VLAN不夠用的問題,在802.1Q數據幀中再添加一個802.1q tag標籤(相當於有兩層tag標籤),從而實現數據幀能夠在公網VLAN中傳輸,是一種簡單的二層隧道技術。VLAN被劃分爲私網VLAN和公網VLAN。
QinQ解決了用戶VLAN ID的安全性問題和由用戶自己規劃私網VLAN ID的需求,也解決了ISP的VLAN不夠用問題;
QinQ封裝形式分爲兩種形式:
- 基本QinQ的封裝:將進入一個端口的所有流量全部封裝爲一個相同的VLAN標籤;
- 靈活QinQ的封裝:基於端口封裝與基於VLAN封裝方式結合。形式有基於VLAN ID、基於8021q的優先級、基於流策略;
注:QinQ外層標籤的剝離,是需要使用hybrid untagged接口和路由子接口(dot1Q);
QinQ映射
QinQ映射是作用在路由子接口上,VLAN映射是作用於物理接口上;QinQ映射的子接口在向外發送本地VLAN的數據幀時,將數據幀中的VLAN替換爲外部VLAN;在接收到外部VLAN的數據幀後,會將數據幀中的VLAN替換內部VLAN;
QinQ的映射方式:
- 1 to 1映射:子接口發送一個數據幀時,將數據幀的最外層tag標籤的VLAN ID替換爲用戶指定的VLAN ID,接收時將其替換回來;
- 1 to 2映射:子接口發送一個帶有兩層標籤的數據幀時,將數據幀的兩層標籤都替換爲用戶指定VLAN ID;
注:QinQ映射相當於VLAN映射的簡略版。QinQ映射主要應用於QinQ場景,VLAN映射主要應用於非QinQ場景