10-QinQ終結配置
本章節下載: 10-QinQ終結配置 (301.18 KB)
· QinQ終結的支持情況與設備的型號有關,請參見“配置指導導讀”中的“特性差異情況”部分的介紹。
· 配置QinQ終結功能時請先關閉二層快速轉發、FPGA快速轉發和ARP Snooping功能。
QinQ是802.1Q in 802.1Q的簡稱,它是基於IEEE 802.1Q技術的一種二層隧道協議,通過將用戶的私網報文封裝上外層VLAN Tag,使其攜帶兩層VLAN Tag穿越運營商的骨幹網絡(又稱公網),從而為用戶提供了一種比較簡單的二層VPN隧道技術,也使運營商能夠利用一個VLAN為包含多個VLAN的用戶網絡提供服務成為了可能。
IEEE 802.1Q定義的VLAN ID域隻有12個比特,最多可以表示4094個VLAN。但在實際應用中,尤其是在城域網中,需要大量的VLAN來隔離用戶,4094個VLAN遠遠不能滿足需求。
QinQ使整個網絡最多可提供4094×4094個VLAN,從而滿足了城域網對VLAN數量的需求。它具備以下優點:
· 緩解公網VLAN ID資源日益緊缺的問題。
· 用戶可以規劃自己的私網VLAN ID,不會導致與公網VLAN ID衝突。
· 為小型城域網和企業網提供了一種簡單、靈活的二層VPN解決方案。
· 當運營商升級網絡時,用戶網絡不必更改原有配置,使用戶網絡具有了較強的獨立性。
在公網的傳輸過程中,設備隻根據外層VLAN Tag轉發報文,並將報文的源MAC地址表項學習到外層VLAN Tag所在VLAN的MAC地址表中,而用戶的私網VLAN Tag將被當作報文的數據部分進行傳輸。
圖1-1 QinQ典型應用組網圖
如圖1-1所示,用戶網絡A和B的私網VLAN分別為VLAN 1~10和VLAN 1~20。運營商為用戶網絡A和B分配的公網VLAN分別為VLAN 3和VLAN 4。當用戶網絡A和B中帶VLAN Tag的報文進入運營商網絡時,報文外麵就會被分別封裝上VLAN 3和VLAN 4的VLAN Tag。這樣,來自不同用戶網絡的報文在運營商網絡中傳輸時被完全分開,即使這些用戶網絡各自的VLAN範圍存在重疊,在運營商網絡中傳輸時也不會產生衝突。當報文穿過運營商網絡,到達運營商網絡另一側PE設備後,報文會被剝離公網VLAN Tag,然後再傳送給用戶網絡的CE設備。
如圖1-2所示,QinQ報文在運營商網絡中傳輸時帶有雙層VLAN Tag:
· 內層VLAN Tag:為用戶的私網VLAN Tag,對應圖中的Customer VLAN Tag。依靠該Tag在私網中傳送QinQ報文。
· 外層VLAN Tag:為運營商分配給用戶的公網VLAN Tag,對應圖中的Service VLAN Tag。依靠該Tag在公網中傳送QinQ報文,內層VLAN Tag在公網中被屏蔽。
圖1-2 QinQ的報文結構
接口的MTU(Maximum Transmission Unit,最大傳輸單元)值默認為1500字節。由於為報文加上外層VLAN Tag後,報文長度將增加4個字節,因此建議用戶適當增加運營商網絡中各接口的MTU值(至少為1504字節)。有關接口MTU值的相關配置,請參見“二層技術配置指導”中的“以太網接口”。
如圖1-3所示,是IEEE802.1Q協議定義的以太網幀的VLAN Tag結構,TPID(Tag Protocol Identifier,標簽協議標識符)就是VLAN Tag中的一個字段,用於表示VLAN Tag的協議類型,其缺省取值為0x8100。
TPID值可以用來判斷報文中是否攜帶有VLAN Tag,例如:在設備上配置用戶VLAN Tag和運營商VLAN Tag中攜帶的TPID值分別為0x8200和0x9100,而如果收到的報文實際攜帶的內、外層VLAN Tag的TPID值分別為0x8100和0x9100,設備就會認為該報文隻攜帶運營商VLAN Tag,而沒有攜帶用戶VLAN Tag。
第三方廠商的設備可能將QinQ報文外層VLAN Tag的TPID設為不同的值。為了與這些廠商的設備兼容,用戶可以通過修改TPID值,使發送到公網中的QinQ報文攜帶的TPID值與第三方廠商的相同,從而實現與這些廠商的設備互通。
由於TPID字段在以太網報文中的位置與不帶VLAN Tag的報文中協議類型字段的位置相同,因此為了避免給報文轉發和接收造成混亂,不允許將TPID值配置為表1-1中列舉的常用協議類型值。
協議類型 |
協議類型值 |
ARP |
0x0806 |
PUP |
0x0200 |
RARP |
0x8035 |
IP |
0x0800 |
IPv6 |
0x86DD |
PPPoE |
0x8863/0x8864 |
MPLS |
0x8847/0x8848 |
IPX/SPX |
0x8137 |
IS-IS |
0x8000 |
LACP |
0x8809 |
802.1X |
0x888E |
集群 |
0x88A7 |
設備保留 |
0xFFFD/0xFFFE/0xFFFF |
局域網內的報文大多數都帶有VLAN Tag,但一些廣域網協議並不能識別VLAN報文,比如ATM、FR和PPP等,這種情況下,如果局域網的VLAN報文要轉發到廣域網,需要在本地記錄並去掉報文的VLAN信息後再轉發,可以借助VLAN終結功能來實現。目前可以通過VLAN接口/子接口實現局域網和廣域網的互聯。
如圖1-4所示,用戶網絡的私網VLAN分別為User VLAN。運營商為用戶網絡分配的公網VLAN分別為Nested VLAN。當用戶網內User VLAN的報文進入運營商網絡時,報文外麵就會被封裝上Nested VLAN的VLAN Tag。在運營商網基於Nested VLAN進行轉發。如果報文要發往外部WAN,則需要在出口網關(Device)上對該報文進行VLAN終結處理,去掉兩層VLAN Tag,再通過同異步串口Serial5/1發送到WAN。
圖1-4 QinQ終結用於LAN和WAN的互聯
與QinQ相關的協議規範有:
· IEEE 802.1Q:IEEE standard for local and metropolitan area networks: Virtual Bridged Local Area Networks
表1-2 QinQ終結配置任務簡介
配置任務 |
說明 |
詳細配置 |
配置VLAN Tag的TPID值 |
可選 |
|
配置明確的QinQ終結 |
可選 |
· QinQ功能隻需在運營商網絡進行配置,用戶網絡不需進行配置。
· 對於QinQ的相關配置來說,以太網接口視圖下的配置隻對當前端口有效;二層聚合接口視圖下的配置對當前接口及其對應聚合組中的所有成員端口都有效;端口組視圖下的配置對當前端口組中的所有端口有效。
表1-3 在端口上配置VLAN Tag的TPID值
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入二層以太網接口或二層聚合接口視圖 |
interface interface-type interface-number |
必選 設備對二層聚合接口的支持情況與設備型號相關,請參見“配置指導導讀”中的“特性差異情況”部分的介紹 |
配置外層VLAN Tag的TPID值的端口值 |
qinq ethernet-type hex-value |
必選 缺省情況下,外層VLAN Tag的TPID值的端口值等於0x8100 |
VLAN終結是指對接收到的報文,按照報文攜帶的VLAN Tag信息匹配對應的接口後,去除報文VLAN Tag,再將報文進行三層轉發或交由其它業務處理。轉發出去的報文是否帶有VLAN Tag由出接口決定,對從配置了VLAN終結的接口發送的報文,按照該接口上的終結配置,將相應的VLAN Tag添加到報文中後發送該報文。
VLAN終結中的QinQ終結,用來終結帶有兩層及以上VLAN Tag的報文(要求最外兩層VLAN ID必須匹配配置值),從配置了QinQ終結的接口發送的報文,都添加兩層VLAN Tag。而明確的QinQ終結隻允許接收最外兩層VLAN ID均為指定值的報文,其它VLAN報文則不允許通過該接口。收到報文後,將報文最外兩層VLAN Tag剝離。發送報文時,會給報文添加兩層VLAN Tag,兩層VLAN ID均為指定值。
表1-4 配置明確的QinQ終結
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接VLAN接口視圖 |
interface vlan-interface interface-number |
必選 |
使能當前接口的QinQ終結功能,並指定當前接口可以終結的VLAN報文的第二層VLAN ID |
second-dot1q vlan-id |
必選 缺省情況下,關閉當前接口的QinQ終結功能 終結的第一層VLAN ID等於當前接口的編號,不能配置 |
在VLAN接口上配置明確的QinQ終結後,與該VLAN接口綁定的二層以太網接口隻處理該VLAN接口匹配的報文,當收到發給該VLAN接口的其它報文時,都會直接丟棄。
如下圖所示,無線用戶Client通過BAS訪問Internet,AP有線口發出的報文經L2 switch時打上第一層VLAN Tag(VLAN1001),再經由L3 switch打上第二層VLAN Tag(VLAN100),最終到達AC時是一個QinQ報文(外層VLAN Tag是100,內層VLAN Tag是1001);要求Client發出的業務報文經AC轉發後,以QinQ報文格式(外層VLAN Tag是200,內層VLAN Tag是2001)到達BAS。
(1) 配置L2 switch
# 創建VLAN1001。
<L2 switch> system-view
[L2 switch] vlan 1001
[L2 switch-vlan1001] quit
# 配置端口GigabitEthernet 1/0/1為acess端口,且允許VLAN1001的報文通過。
[L2 switch] interface GigabitEthernet 1/0/1
[L2 switch-GigabitEthernet1/0/1] port link-type access
[L2 switch-GigabitEthernet1/0/1] port access vlan 1001
[L2 switch-GigabitEthernet1/0/1] quit
# 配置端口GigabitEthernet 1/0/2為trunk端口,允許VLAN1001的報文通過,並打上VLAN Tag VLAN1001。
[L2 switch] interface GigabitEthernet 1/0/2
[L2 switch-GigabitEthernet1/0/2] port link-type trunk
[L2 switch-GigabitEthernet1/0/2] port trunk permit vlan 1001
[L2 switch-GigabitEthernet1/0/2] quit
(2) 配置L3 switch
# 創建VLAN 100。
<L3 switch> system-view
[L3 switch] vlan 100
[L3 switch-vlan100] quit
# 配置端口GigabitEthernet 1/0/5為acess端口,允許VLAN100的報文通過,使能QinQ。
[L3 switch] interface GigabitEthernet 1/0/5
[L3 switch-GigabitEthernet1/0/5] port link-type access
[L3 switch-GigabitEthernet1/0/5] port access vlan 100
[L3 switch-GigabitEthernet1/0/5] qinq enable
[L3 switch-GigabitEthernet1/0/5] quit
# 配置端口GigabitEthernet 1/0/6為trunk端口,且允許VLAN 100的報文通過,並打上VLAN Tag VLAN100。
[L3 switch] interface GigabitEthernet 1/0/6
[L3 switch-GigabitEthernet1/0/6] port link-type trunk
[L3 switch-GigabitEthernet1/0/6] port trunk permit vlan 100
[L3 switch-GigabitEthernet1/0/6] quit
(3) 配置AC
# 創建VLAN100、VLAN1001、VLAN200、VLAN2001。
<AC> system-view
[AC] vlan 100
[AC-vlan100] vlan 1001
[AC-vlan1001] vlan 200
[AC-vlan200] vlan 2001
[AC-vlan2001] quit
# 配置端口Ten-GigabitEthernet 1/0/1為trunk端口,且允許VLAN100和VLAN200的報文通過,並打上VLAN Tag。
[AC] interface Ten-GigabitEthernet 1/0/1
[AC-Ten-GigabitEthernet 1/0/1] port link-type trunk
[AC-Ten-GigabitEthernet 1/0/1] port trunk permit vlan 100 200
[AC-Ten-GigabitEthernet 1/0/1] quit
# 開啟VLAN100的QinQ終結功能,並指定該接口可以終結的VLAN報文的第二層VLAN ID為1001(說明:開啟此功能後,AC能發送QinQ格式的arp報文,與AP進行二層通信)。
[AC] interface Vlan-interface 100
[AC-Vlan-interface100] second-dot1q 1001
# 配置VLAN100的IP地址為10.1.1.10/24。
[AC-Vlan-interface100] ip address 10.1.1.10 24
[AC-Vlan-interface100] quit
# 創建WLAN-ESS接口。
[AC] interface WLAN-ESS 1
[AC-WLAN-ESS1] quit
# 配置WLAN服務模板(明文模板),配置SSID為ABC,並將WLAN-ESS接口與該服務模板綁定。
[AC]wlan service-template 1 clear
[AC-wlan-st-1] ssid ABC
[AC-wlan-st-1] bind WLAN-ESS 1
[AC-wlan-st-1] service-template enable
[AC-wlan-st-1] quit
# 創建AP模板,名稱為ap1,型號名稱選擇WA2620-AGN,該AP的序列號為210235A29DB099002291。
[AC] wlan ap ap1 model wa2620-agn
[AC-wlan-ap-ap1] serial-id 210235A29DB099002291
# 配置射頻,在AP上綁定服務模板時指定Client的業務VLAN為雙VLAN(外層為VLAN200,內層為VLAN2001)。
[AC-wlan-ap-ap1] radio 1
[AC-wlan-ap-ap1-radio-1] service-template 1 vlan-id 200 2001
[AC-wlan-ap-ap1-radio-1] radio enable
[AC-wlan-ap-ap1-radio-1] return
(4) 配置BAS
# 配置IP地址池1,為AP分配IP地址10.1.1.0/24。
<BAS> system-view
[BAS] dhcp server ip-pool 1
[BAS-dhcp-pool-1] network 10.1.1.0 mask 255.255.255.0
[BAS-dhcp-pool-1] gateway-list 10.1.1.1
[BAS-dhcp-pool-1] quit
# 配置開啟DHCP服務功能。
[BAS] dhcp enable
# 在端口Ten-GigabitEthernet0/0.100上使能當前接口的QinQ終結功能,並指定當前接口可以終結的VLAN報文的第一層VLAN ID 為VLAN100,第二層VLAN ID為VLAN1001。
[BAS] interface Ten-GigabitEthernet0/0.100
[BAS-Ten-GigabitEthernet0/0.100] vlan-type dot1q vid 100 second-dot1q 1001
[BAS-Ten-GigabitEthernet0/0.100] ip address 10.1.1.1 255.255.255.0
[BAS-Ten-GigabitEthernet0/0.100] quit
# 配置IP地址池2,為Client分配IP地址20.1.1.0/24。
[BAS] dhcp server ip-pool 2
[BAS-dhcp-pool-2] network 20.1.1.0 mask 255.255.255.0
[BAS-dhcp-pool-2] gateway-list 20.1.1.1
[BAS-dhcp-pool-2] quit
# 在端口Ten-GigabitEthernet0/0.200上使能當前接口的QinQ終結功能,並指定當前接口可以終結的VLAN報文的第一層VLAN ID 為VLAN200,第二層VLAN ID為VLAN2001。
[BAS] interface Ten-GigabitEthernet0/0.200
[BAS-Ten-GigabitEthernet0/0.200] vlan-type dot1q vid 200 second-dot1q 2001
[BAS-Ten-GigabitEthernet0/0.200] ip address 20.1.1.1 255.255.255.0
# 在BAS上開啟本地代理ARP功能,確保二層隔離的Client之間三層互通(即同一個VLAN下的Client之間必須通過BAS才可以通信)。
[BAS-Ten-GigabitEthernet0/0.200] local-proxy-arp enable
[BAS-Ten-GigabitEthernet0/0.200] quit
· AP能獲取到10.1.1.0/24網段的IP地址,AP和AC均能ping通BAS(10.1.1.1)。
· AP可成功關聯AC,同時當AC上清除掉arp的情況下,AC依然能主動ping通AP。
· Client上線,能獲取到20.1.1.0/24網段的IP地址,Client能ping通BAS(20.1.1.1)。
· 若有多個Client上線,Client間必須經過BAS才能互通。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!