1. 程式人生 > 實用技巧 >Qinq技術介紹與實戰

Qinq技術介紹與實戰

說明:本文介紹部分是我在網路收集整理並新增提供。

Qinq技術介紹與實戰

Qinq介紹

Qinq就是為使用者提供一種較為簡單的二層×××隧道。最核心的思想就是將使用者私網VLAN tag封裝到公網VLANtag上,報文帶著兩層tag穿越服務商的骨幹網路。在使用者埠上使QinQ功能時,都會為每個使用者分配一個Customer-ID。其中報文中的兩層tag標籤包括內層ce-vid--VLAN標籤和外層pe-vid-Qint標籤。

那麼問題來了,為什麼要帶兩層標籤呢?

我們知道,普通VLAN中的一個VLAN標籤是用來區分使用者的,但如果想要同時區分使用者又區分業務型別,那該怎麼辦呢?下圖是一個總公司下面連線了兩個分支子公司,而各分支子公司中已對不同部門的員工採用了

VLAN進行區分,但兩個子公司中相同部門VLAN ID規劃是重疊的。這樣如果資料幀中只採用一層VLAN標籤,總公司就無法區分資料是來自哪個子公司的也就無法針對不同子公司的資料進行任何處理了。

wKioL1gEuduxNUwbAAJDmxbLlTk292.png-wh_50

為了解決這個問題,我們可以設想在總公司的交換機上為各子公司建立了不同的VLAN。這樣當連線對應子公司的總公司交換機埠收到資料幀後再在資料幀外面新增一層VLAN標籤(此時資料幀中就有兩層VLAN標籤了,原來的VLAN標籤稱之為內層VLAN標籤,新新增的稱之為外層VLAN標籤),如為子公司1和子公司2的資料幀分別新增的外層VLAN標籤為VLAN 10VLAN 20,這樣就可實現在總公司中對來自不同子公司的資料進行區分了,也可以對來自這兩個子公司的資料提供不同的服務,即差分服務了。

如上文問題中所說,VLAN是用來區別使用者用的,即每個使用者都會有一個自己的VLAN區域,可是實際中,服務提供商所提供的vlan ID資源不僅只有4094個,而且還需要服務提供商來管理使用者的VLAN號,使用者是沒有權利來規劃VLAN的。那麼VLAN ID緊缺的的問題該怎麼解決呢?

QinQ協議就很好的解決了這個問題,它向用戶提供一個唯一的公網VLAN ID,這個特殊的VLANID被稱作Customer-ID,將使用者私網VLAN tag封裝在這個新的Customer-ID中,依靠它在公網中傳播,使用者私網VLANID在公網中被遮蔽,從而大大地節省了服務提供商緊缺的VLAN ID資源。如下圖。

wKioL1gEuyfAqflfAAEf0g3-jiE976.png-wh_50

雙層

VLAN標籤可以當作單層VLAN標籤使用,即僅使用新新增的外層公網VLAN標籤,內層私網VLAN可以作為資料來傳輸,整個資料幀中的VLAN標籤由內、外雙層VLAN標籤共同決定,這樣一來,就相當於可以使用的VLAN ID數量達到了4094×4094個了。以此來達到擴充套件VLAN空間的目的。通過這樣的雙層VLAN標籤封裝,可以使私網VLAN ID可以在公網上透傳,既解決了使用者VLAN ID的安全性問題和由使用者自己規劃私網VLAN ID的需求問題,又解決了ISPVLAN ID空間不足的問題,因為在ISP中可以為需要相互訪問的使用者配置相同的外層VLAN,也只需為來自同一使用者網路的不同VLAN提供一個VLAN ID

QinQ小經典拓撲實戰

一:實驗拓撲圖:

wKiom1gEufbRH3jHAADQEdMXV0E546.png-wh_50

分析:

PC1屬於VLAN 10,此時的資料幀中被打入一層標籤,是屬於內層標籤。資料幀在經過公司總部交換機時,再次被打傷VLAN 100 標籤,此標籤屬於外部標籤。經過路由器時, 會脫掉標籤,終結掉tag,路由器會根據資料包中的源ip地址和目標ip地址與自己的ARP快取表中進行匹配。從路由器出來之後會再次打上標籤。

二:實驗目標

1:實現解決VLAN ID 不夠用的問題

2:理解資料幀的脫包過程(兩層標籤終結VLAN

3:實現不同地域相同部門的通訊

三:實驗程式碼

Sw2

[Huawei]vlan bat 10 20

[Huawei-Vlanif10]int e0/0/1

[Huawei-Ethernet0/0/1]port link-type access

[Huawei-Ethernet0/0/1]port default vlan 10

[Huawei-Ethernet0/0/2]int e0/0/2

[Huawei-Ethernet0/0/2]port link-type access

[Huawei-Ethernet0/0/2]port default vlan 20

[Huawei-Ethernet0/0/2]int e0/0/3

[Huawei-Ethernet0/0/5]port link-type trunk

[Huawei-Ethernet0/0/5]port trunk allow-pass vlan 10 20

Sw3

[Huawei]vlan 10

[Huawei-vlan10]int e0/0/3

[Huawei-Ethernet0/0/3]port link-type access

[Huawei-Ethernet0/0/3]port default vlan 10

[Huawei-Ethernet0/0/3]int e0/0/2

[Huawei-Ethernet0/0/5]port link-type trunk

[Huawei-Ethernet0/0/2]port trunk allow-pass vlan 10

Sw1

[Huawei]vlan bat 100 200

[Huawei]int e0/0/1

[Huawei-Ethernet0/0/1]port link-type dot1q-tunnel

[Huawei-Ethernet0/0/1]port default vlan 100

[Huawei-Ethernet0/0/1]int e0/0/2

[Huawei-Ethernet0/0/2]port link-type dot1q-tunnel

[Huawei-Ethernet0/0/2]port default vlan 200

[Huawei-Ethernet0/0/2]int g0/0/1

[Huawei-GigabitEthernet0/0/1]port link-type trunk

[Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan 100 200

R1

[Huawei]dhcp enable

[Huawei]int g0/0/0.100

[Huawei-GigabitEthernet0/0/0.100]qinq termination pe-vid 100 ce-vid 10 to 20

[Huawei-GigabitEthernet0/0/0.100]ip add 192.168.10.1 24

[Huawei-GigabitEthernet0/0/0.100]dhcp select interface

[Huawei-GigabitEthernet0/0/0.100]int g0/0/0.200

[Huawei-GigabitEthernet0/0/0.200]qinq termination pe-vid 200 ce-vid 10

[Huawei-GigabitEthernet0/0/0.200]ip add 192.168.20.1 24

[Huawei-GigabitEthernet0/0/0.200]dhcp select interface

測試

Pc1

wKiom1gEugHxfmdIAABWklgirNg988.png-wh_50

#在同一公司分部上不同部門的員工不能通行

Pc3

wKioL1gEugqhZA77AACNBGSijJk022.png-wh_50

#在不同抵禦相同部門下的公司是可以通訊的。

抓包分析

wKiom1gEuhKgpEmLAABhlkbOuo0990.png-wh_50

#在路由器上抓reply包。如圖外層為LAN 200,內層為VLAN 10,並且說明QinQ配置已經生效,

思考:

PC 1 ping PC 3的回包過程中,資料幀到達路由器的時候,資料幀是否帶有tag以及路由器是怎麼區分回包走的是內層10的還是內層20的?

wKioL1gEuiDwEuh_AABJGiPBL50033.png-wh_50

wKioL1gEuiuRB8iOAAAfhdmSPiA948.png-wh_50

#由上圖得知,回包是帶有兩層tag的,在路由器的路由表中是記錄的回包的路徑的,所以資料幀是可以找到回包路的。


轉載於:https://blog.51cto.com/blxueyuan/1862773