目錄
1. VLAN標籤
一般不同VLAN之間是無法通信的,如果想要通信需要藉助三層設備實現,當然,VLAN標籤技術也能實現不同VLAN之間的通信。
VLAN標籤技術通過對數據流量進行打標籤來區分不同VLAN的流量,IEEE 802.1Q協議規定以太網數據幀中加入4個字節的VLAN標籤(又稱VLAN Tag,簡稱Tag),用以標識VLAN信息。通過Tag字段中的標識來區分不同VLAN的流量,也就是說,在一個VLAN的交換網絡中以太網數據幀的形式一般會有以下兩種形式:
- 有標記幀(Tagged Frame)
- 無標記幀(Untagged Frame)
在常見的計算機設備,網絡設備中:
- PC主機、服務器、Hub、傻瓜交換機只能收發Untagged幀
- 交換機、路由器、 AC既能收發Tagged幀也能收發Untagged幀
- 語音終端、AP等設備可以同時收發一個Tagged幀和一個Untagged幀
2. 鏈路類型
VLAN網絡的鏈路分別爲接入鏈路和幹道鏈路:
- 接入鏈路(Access Link):通常是連接用戶主機和交換機之間的鏈路,接入鏈路上傳輸的是不帶標籤的VLAN數據幀,也就是Untagged幀。
- 幹道鏈路(Trunk Link):連接交換機與交換機之間的鏈路,在幹道鏈路上傳輸的一般都是帶標籤的VLAN幀,即Tagged幀。
3. 什麼是PVID
PVID英文爲Port VLAN ID,代表端口的默認VLAN,爲什麼需要PVID?
接入鏈路一般都是處理不帶標籤的Untagged數據幀,而幹道鏈路都是處理帶標籤的tagged數據幀,通過在交換機的端口配置默認的VLAN,當交換機的端口收到不帶標籤的Untagged數據幀時,交換機將給會加上默認VLAN的PVID(即VLAN標籤)。
4. 端口類型
學過思科的同學知道,思科交換機的端口只有Access和Trunk兩種類型,華爲設備除了這兩種端口類型外,還有一種Hybrid端口類型。
4.1 Acccess端口
Access端口是接入鏈路上的端口類型,即交換機連接主機的端口,該端口只處理唯一默認的VLAN數據流量(一般是不帶標籤)。
Access端口處理數據過程如上圖所示,當端口收到不帶標籤的VLAN幀時則會強制加上PVID。如果是帶標籤的數據幀則判斷VLAN ID(這裏的VLAN ID其實就是PVID)和默認的VLAN ID是否相同,如果不相同則丟棄報文,如果相同則接收報文,等待下一步處理。
Access端口在發送報文時會先剝離VLAN幀的標籤,然後再發送。
4.2 Trunk端口
Trunk端口是Trunk鏈路上的端口,是交換機與交換機之間連接的端口,也可以連接路由器,AP等設備,這意味着Trunk端口可以處理帶標籤和不帶標籤的數據幀。
Trunk端口收到不帶標籤的數據幀時,會添加該端口的PVID並檢查PVID是否在允許通過的VLAN ID列表中,如果在的話則會接收報文,反之則會丟棄報文。如果接收到的是帶標籤的數據幀時,會檢查標籤中的VLAN ID是否在允許通過的VLAN ID列表中,如果在就接收報文,如果不在就丟棄報文。
Trunk端口在發送數據幀時,會先檢查數據幀的VLAN ID是否與端口的PVID是否相同,並且是該端口允許通過的VLAN ID時則去掉標籤;如果數據幀的VLAN ID與端口的PVID不相同,但是該端口允許通過的VLAN ID的話,則保持原有的標籤不變,然後發送報文。
舉個栗子:
SWA和SWB兩臺交換機之間的鏈路是Trunk鏈路,並且該鏈路的PVID是1(即默認VLAN 1),並且允許所有的VLAN通過。
當主機A發送數據幀時,由於SWA交換機的Trunk端口給數據幀加了PVID1的“標籤”,SWA交換機在處理主機A的數據幀時,檢查PVID和該端口的PVID是相同的,就會剝離標籤然後轉發到Trunk鏈路上。
主機B發送數據時,SWA交換機的Trunk端口給數據幀加上了VPID20的“標籤”,SWA交換機在處理主機B的數據幀時,檢查PVID和該端口的PVID不相同,並且數據幀的VLAN ID是端口允許通過的VLAN ID,則會原封不動的轉發到Trunk鏈路上。
4.3 Hybrid端口
Hybrid端口既可以連接接入鏈路又可以連接幹道鏈路,還可以在出端口方向將某些VLAN幀的標籤剝離,一般華爲設備的端口默認就是Hybrid類型。
Hybrid端口在接收報文時同Trunk端口的過程是相同的,但是Hybrid端口在發送報文的過程時,如果數據幀的VLAN ID是該端口允許通過的VLAN ID時則發送該報文,還能通過配置命令決定發送報文時是否攜帶標籤:
port hybrid tagged vlan vlan-id :表示當前端口發送該vlan-id的數據幀時直接發送報文,不剝離VLAN標籤,該命令通常配置在交換機連接交換機的端口上。
port hybrid untagged vlan vlan-id :表示當前端口發送該vlan-id的數據幀時會將VLAN標籤先剝離掉再轉發出去,該命令一般配置在交換機連接主機上的端口。
我們再來看個栗子:
主機A和主機B都能訪問服務器,但是它們之間不能互相訪問。此時交換機連接主機和服務器的端口,以及交換機互連的端口都配置爲Hybrid類型。交換機連接主機A的端口的PVID是2,連接主機B的端口的PVID是3,連接服務器的端口的PVID是100。
在SWA和SWB交換機之間連接的接口上配置port hybrid tagged vlan 2 3 100命令後,這條鏈路上傳輸的就都是帶標籤的數據幀了。
在SWB和服務器連接的接口上配置port hybrid untagged vlan 2 3命令後,這條鏈路上發送的數據就會剝離VLAN標籤再轉發給服務器。
5. VLAN的劃分
VLAN的劃分有以下幾種方法:
- 基於端口的劃分
- 基於MAC地址的劃分
- 基於IP子網劃分
- 基於協議劃分
- 基於策略劃分
在以上幾種VLAN劃分的方法中,基於策略劃分VLAN最爲複雜,基於端口劃分VLAN在工作中最爲常用。其主要是根據交換機的端口來劃分,爲每個端口配置不同的PVID,將不同的端口劃分到VLAN中,默認情況下交換機的所有端口都劃分在VLAN 1中。
6. VLAN常用命令
vlan 10 //創建單個VLAN
vlan batch 10 to 20 //創建多個VLAN
port link-type access/trunk/hybird //配置接口類型
port default vlan 10 //配置Access關聯VLAN/PVID
port trunk allow-pass vlan 10 //配置Trunk允許VLAN
port trunk pvid vlan 10 //配置Trunk的PVID
port hybird tagged/untagged vlan 10 //配置Hybird標記VLAN
port hybrid pvid vlan 10 //配置Hybird的PVID
display vlan //驗證VLAN
display port vlan //驗證VLAN