13-隧道配置
本章節下載: 13-隧道配置 (436.7 KB)
目 錄
設備支持兩種運行模式:獨立運行模式和IRF模式,缺省情況為獨立運行模式。有關IRF模式的介紹,請參見“IRF配置指導”中的“IRF”。
隧道技術是一種封裝技術,它利用一種網絡協議來傳輸另一種網絡協議,即一種網絡協議將其他網絡協議的數據報文封裝在自己的報文中,然後在網絡中傳輸。封裝後的數據報文在網絡中傳輸的路徑,稱為隧道。隧道是一條虛擬的點對點連接,隧道的兩端需要對數據報文進行封裝及解封裝。隧道技術就是指包括數據封裝、傳輸和解封裝在內的全過程。
隧道技術可以:
· 作為過渡技術,實現IPv4和IPv6網絡互通,如IPv6 over IPv4隧道技術。
· 創建VPN(Virtual Private Network,虛擬私有網絡),保證通信的安全性,如GRE(Generic Routing Encapsulation,通用路由封裝)。
· 實現流量工程,避免由於負載不均衡導致網絡擁塞,如MPLS TE(Multiprotocol Label Switching Traffic Engineering,多協議標記交換流量工程)。
上述三種隧道技術中,隧道兩端需要創建虛擬的三層接口——Tunnel接口,以便隧道兩端的設備利用隧道發送報文、識別並處理來自隧道的報文。
· 本文隻介紹實現IPv4/IPv6過渡的隧道。
· GRE、MPLS TE的相關介紹和配置請分別參見“三層技術-IP業務配置指導”中的“GRE”、MPLS配置指導中的“MPLS TE”。
IPv6 over IPv4隧道是在IPv6數據報文前封裝上IPv4的報文頭,通過隧道使IPv6報文穿越IPv4網絡,實現隔離的IPv6網絡的互通,如圖1-1所示。IPv6 over IPv4隧道可以建立在主機—主機、主機—設備或設備—設備之間。隧道的終點可能是IPv6報文的最終目的地,也可能需要進一步轉發。
IPv6 over IPv4隧道兩端的設備必須支持IPv4/IPv6雙協議棧。
圖1-1 IPv6 over IPv4隧道原理圖
IPv6 over IPv4隧道對報文的處理過程如下:
· IPv6網絡中的設備發送IPv6報文,該報文到達隧道的源端設備Device A。
· Device A根據路由表判定該報文要通過隧道進行轉發後,在IPv6報文前封裝上IPv4的報文頭,通過隧道的實際物理接口將報文轉發出去。
· 封裝報文通過隧道到達隧道目的端設備Device B,Device B判斷該封裝報文的目的地是本設備後,將對報文進行解封裝。
· Device B根據解封裝後的IPv6報文的目的地址轉發該IPv6報文。如果目的地就是本設備,則將IPv6報文轉給上層協議處理。
根據隧道終點的IPv4地址的獲取方式不同,隧道分為“配置隧道”和“自動隧道”。
· 如果IPv6 over IPv4隧道的終點地址不能從IPv6報文的目的地址中自動獲取,需要進行手工配置,這樣的隧道稱為“配置隧道”。
· 如果IPv6 over IPv4隧道的終點地址采用內嵌IPv4地址的特殊IPv6地址形式,則可以從IPv6報文的目的地址中自動獲取隧道終點的IPv4地址,這樣的隧道稱為“自動隧道”。
如表1-1所示,根據對IPv6報文的封裝方式的不同,IPv6 over IPv4隧道分為以下幾種模式。表1-1中還列舉了各隧道模式的關鍵配置參數。
隧道類型 |
隧道模式 |
隧道源/目的地址 |
隧道接口地址 |
配置隧道 |
IPv6手動隧道 |
源/目的地址為手動配置的IPv4地址 |
IPv6地址 |
自動隧道 |
IPv4兼容IPv6自動隧道 |
源地址為手動配置的IPv4地址,目的地址不需配置 |
IPv4兼容IPv6地址,其格式為: ::IPv4-source-address/96 |
6to4隧道 |
源地址為手動配置的IPv4地址,目的地址不需配置 |
6to4地址,其格式為: 2002:IPv4-source-address::/48 |
|
ISATAP(Intra-Site Automatic Tunnel Addressing Protocol,站點內自動隧道尋址協議)隧道 |
源地址為手動配置的IPv4地址,目的地址不需配置 |
ISATAP地址,其格式為: Prefix:0:5EFE:IPv4-source-address/64 |
(1) IPv6手動隧道
手動隧道是點到點之間的鏈路,一條鏈路就是一個單獨的隧道。主要用於邊緣路由器—邊緣路由器或主機—邊緣路由器之間定期安全通信的穩定連接,可實現與遠端IPv6網絡的連接。
(2) GRE隧道
使用標準的GRE協議可對IPv6報文進行封裝,使IPv6報文能通過隧道穿越IPv4網絡。與IPv6手動隧道相同,GRE隧道也是點到點之間的鏈路,每條鏈路都是一條單獨的隧道。GRE隧道主要用於邊緣路由器-邊緣路由器、主機-邊緣路由器定期安全通信的穩定連接。相關配置請參見“三層技術-IP業務配置指導”中的“GRE”。
(3) IPv4兼容IPv6自動隧道
IPv4兼容IPv6自動隧道是點到多點的鏈路。隧道兩端采用特殊的IPv6地址:IPv4兼容IPv6地址,其格式為:0:0:0:0:0:0:a.b.c.d/96,其中a.b.c.d是IPv4地址。通過這個嵌入的IPv4地址可以自動確定隧道的終點,使IPv6隧道的建立非常方便。但由於它必須使用IPv4兼容IPv6地址,仍依賴於IPv4地址,在使用時有一定的局限性。
(4) 6to4隧道
· 普通6to4隧道
6to4隧道是點到多點的自動隧道,主要用於將多個IPv6孤島通過IPv4網絡連接到IPv6網絡。6to4隧道通過在IPv6報文的目的地址中嵌入IPv4地址,來實現自動獲取隧道終點的IPv4地址。
6to4隧道采用特殊的6to4地址,其格式為:2002:abcd:efgh:子網號::接口ID/64,其中2002表示固定的IPv6地址前綴,abcd:efgh表示該6to4隧道對應的32位全球唯一的IPv4源地址,用16進製表示(如1.1.1.1可以表示為0101:0101)。2002:abcd:efgh之後的部分唯一標識了一個主機在6to4網絡內的位置。通過這個嵌入的IPv4地址可以自動確定隧道的終點,使隧道的建立非常方便。
由於6to4地址的64位地址前綴中的16位子網號可以由用戶自定義,前綴中的前48位已由固定數值、隧道起點或終點設備的IPv4地址確定,使IPv6報文通過隧道進行轉發成為可能。6to4隧道可以實現利用IPv4網絡完成IPv6網絡的互連,克服了IPv4兼容IPv6自動隧道使用的局限性。
· 6to4中繼
6to4隧道隻能用於前綴為2002::/16的6to4網絡之間的通信,但在IPv6網絡中也會使用像2001::/16這樣的IPv6網絡地址。為了實現6to4網絡和其它IPv6網絡的通信,必須有一台6to4路由器作為網關轉發到IPv6網絡的報文,這台路由器就叫做6to4中繼(6to4 relay)路由器。
如下圖所示,6to4網絡的邊緣路由器Router A需配置一條靜態路由,下一跳地址指向6to4中繼路由器Router C的6to4地址,這樣,所有去往IPv6網絡的報文都會被轉發到6to4中繼路由器,之後再由6to4中繼路由器轉發到IPv6網絡中,從而實現6to4網絡(地址前綴以2002開始)與IPv6網絡的互通。
圖1-2 6to4隧道和6to4中繼原理圖
(5) ISATAP隧道
隨著IPv6技術的推廣,現有的IPv4網絡中將會出現越來越多的IPv6主機,ISATAP隧道技術為這種應用提供了一個較好的解決方案。ISATAP隧道是點到多點的自動隧道技術,通過在IPv6報文的目的地址中嵌入的IPv4地址,可以自動獲取隧道的終點。
使用ISATAP隧道時,IPv6報文的目的地址和隧道接口的IPv6地址都要采用特殊的ISATAP地址。ISATAP地址格式為:Prefix(64bit):0:5EFE:abcd:efgh。其中,64位的Prefix為任何合法的IPv6單播地址前綴,abcd:efgh表示32位IPv4源地址,用16進製表示(如1.1.1.1可以表示為0101:0101),該IPv4地址不要求全球唯一。通過這個嵌入的IPv4地址就可以自動建立隧道,完成IPv6報文的傳送。
ISATAP隧道主要用於在IPv4網絡中IPv6路由器—IPv6路由器、IPv6主機—IPv6路由器的連接。
圖1-3 ISATAP隧道原理圖
與隧道技術相關的協議規範有:
· RFC 1853:IP in IP Tunneling
· RFC 2473:Generic Packet Tunneling in IPv6 Specification
· RFC 2893:Transition Mechanisms for IPv6 Hosts and Routers
· RFC 3056:Connection of IPv6 Domains via IPv4 Clouds
· RFC 4214:Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)
配置任務 |
說明 |
詳細配置 |
|
配置Tunnel接口 |
必選 |
||
配置IPv6 over IPv4隧道 |
配置IPv6手動隧道 |
根據組網情況,選擇其一 |
|
配置IPv4兼容IPv6自動隧道 |
|||
配置6to4隧道 |
|||
配置ISATAP隧道 |
隧道兩端的設備上,需要創建虛擬的三層接口——Tunnel接口,以便隧道兩端的設備利用隧道發送報文、識別並處理來自隧道的報文。
表1-3 配置Tunnel接口
配置步驟 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
創建Tunnel接口,並進入Tunnel接口視圖 |
interface tunnel number |
必選 缺省情況下,設備上無Tunnel接口 |
|
配置接口描述信息 |
description text |
可選 缺省情況下,接口描述信息為“該接口的接口名 Interface” |
|
配置MTU值 |
配置Tunnel接口的IPv4 MTU值 |
mtu size |
可選 缺省情況下,IPv4 MTU的值為1500 ,IPv6 MTU的值為1480 |
配置Tunnel接口的IPv6 MTU值 |
ipv6 mtu size |
||
配置Tunnel接口的帶寬 |
tunnel bandwidth bandwidth-value |
可選 缺省情況下,Tunnel接口的帶寬為64kbps |
|
恢複當前接口的缺省配置 |
default |
可選 |
|
關閉Tunnel接口 |
shutdown |
可選 缺省情況下,接口處於開啟狀態 |
· 主備倒換或備板拔出時,建立在主控板或備板上的隧道不會被真正刪除,若再配置相同的隧道,係統會提示隧道已經存在。如果需要真正刪除隧道接口,請使用undo interface tunnel命令來刪除。
· ipv6 mtu命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“IPv6基礎”。
· 目前,通過tunnel bandwidth命令配置的Tunnel接口帶寬隻用於動態路由協議計算隧道所在路徑的cost值,不會影響接口的實際帶寬。建議根據報文實際出接口的帶寬值設置Tunnel接口帶寬。
· 執行default命令並不能保證接口下的所有命令都能恢複到缺省情況,某些命令可能會由於不滿足必備條件而恢複失敗。因此,執行default命令後建議通過display this命令確認執行效果。
設備上存在已經配置IP地址、能夠進行正常通訊的接口(如VLAN接口,Ethernet接口,Loopback接口等),該接口將作為Tunnel接口的源接口。
表1-4 配置IPv6手動隧道
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
使能IPv6報文轉發功能 |
ipv6 |
必選 缺省情況下,關閉IPv6報文轉發功能 |
|
創建Tunnel接口並進入Tunnel接口視圖 |
interface tunnel number |
必選 缺省情況下,設備上無Tunnel接口 |
|
設置Tunnel接口的IPv6地址 |
配置IPv6全球單播地址或站點本地地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
二者必選其一 缺省情況下,Tunnel接口上沒有設置IPv6全球單播地址或站點本地地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
|||
配置IPv6鏈路本地地址 |
ipv6 address auto link-local |
可選 缺省情況下,當接口配置了IPv6全球單播地址或站點本地地址後,會自動生成鏈路本地地址 |
|
ipv6 address ipv6-address link-local |
|||
配置隧道模式為IPv6手動隧道模式 |
tunnel-protocol ipv6-ipv4 |
必選 缺省情況下,為GRE over IPv4隧道模式 在隧道的兩端應配置相同的隧道模式,否則可能造成報文傳輸失敗 |
|
設置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必選 缺省情況下,Tunnel接口上沒有設置源端地址和接口 |
|
設置Tunnel接口的目的端地址 |
destination ip-address |
必選 缺省情況下,Tunnel接口上沒有設置目的端地址 |
|
退回係統視圖 |
quit |
- |
· 以上各項Tunnel接口下進行的功能特性配置,在刪除Tunnel接口後,該接口上的所有配置也將被刪除。
· 如果封裝前IPv6報文的目的IPv6地址與Tunnel接口的IPv6地址不在同一個網段,則必須配置通過Tunnel接口到達目的IPv6地址的轉發路由,以便需要進行封裝的報文能正常轉發。用戶可以配置靜態路由,指定到達目的IPv6地址的路由出接口為本端Tunnel接口或下一跳為對端Tunnel接口地址。用戶也可以配置動態路由,在Tunnel接口使能動態路由協議。在隧道的兩端都要進行此項配置,配置的詳細情況請參見“三層技術-IP路由配置指導”中的“IPv6靜態路由”或其他路由協議配置。
缺省情況下,以太網接口、VLAN接口及聚合接口處於DOWN狀態。如果要對這些接口進行配置,請先使用undo shutdown命令使接口狀態處於UP狀態。
如圖1-4所示,兩個IPv6網絡分別通過Switch A和Switch B與IPv4網絡連接,要求在Switch A和Switch B之間建立IPv6手動隧道,使兩個IPv6網絡可以互通。如果隧道終點的IPv4地址不能從IPv6報文的目的地址中自動獲取,則需要配置IPv6手工隧道。
圖1-4 IPv6手動隧道組網圖
在開始下麵的配置之前,請確保Switch A和Switch B上已經創建相應的VLAN接口,且兩者之間IPv4報文路由可達。
(1) 配置Switch A
# 使能IPv6轉發功能。
<SwitchA> system-view
[SwitchA] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ip address 192.168.100.1 255.255.255.0
[SwitchA-Vlan-interface100] quit
# 配置接口Vlan-interface101的IPv6地址。
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] ipv6 address 3002::1 64
[SwitchA-Vlan-interface101] quit
# 配置手動隧道。
[SwitchA] interface Tunnel 0
[SwitchA-Tunnel0] ipv6 address 3001::1/64
[SwitchA-Tunnel0] source vlan-interface 100
[SwitchA-Tunnel0] destination 192.168.50.1
[SwitchA-Tunnel0] tunnel-protocol ipv6-ipv4
[SwitchA-Tunnel0] quit
# 配置從Switch A經過Tunnel0接口到Group 2的靜態路由。
[SwitchA] ipv6 route-static 3003:: 64 Tunnel 0
(2) 配置Switch B
# 使能IPv6轉發功能。
<SwitchB> system-view
[SwitchB] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ip address 192.168.50.1 255.255.255.0
[SwitchB-Vlan-interface100] quit
# 配置接口Vlan-interface101的IPv6地址。
[SwitchB] interface vlan-interface 101
[SwitchB-Vlan-interface101] ipv6 address 3003::1 64
[SwitchB-Vlan-interface101] quit
# 配置手動隧道。
[SwitchB] interface Tunnel 0
[SwitchB-Tunnel0] ipv6 address 3001::2/64
[SwitchB-Tunnel0] source vlan-interface 100
[SwitchB-Tunnel0] destination 192.168.100.1
[SwitchB-Tunnel0] tunnel-protocol ipv6-ipv4
[SwitchB-Tunnel0] quit
# 配置從Switch B經過Tunnel0接口到Group 1的靜態路由。
[SwitchB] ipv6 route-static 3002:: 64 Tunnel 0
完成以上配置之後,分別查看Switch A和Switch B的Tunnel接口狀態如下:
[SwitchA] display ipv6 interface Tunnel 0
Tunnel0 current state :UP
Line protocol current state :UP
IPv6 is enabled, link-local address is FE80::C0A8:6401
Global unicast address(es):
3001::1, subnet is 3001::/64
Joined group address(es):
FF02::1:FF00:0
FF02::1:FF00:1
FF02::1:FFA8:6401
FF02::2
FF02::1
MTU is 1480 bytes
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
IPv6 Packet statistics:
InReceives: 55
……(略)
[SwitchB] display ipv6 interface Tunnel 0
Tunnel0 current state :UP
Line protocol current state :UP
IPv6 is enabled, link-local address is FE80::C0A8:3201
Global unicast address(es):
3001::2, subnet is 3001::/64
Joined group address(es):
FF02::1:FF00:0
FF02::1:FF00:1
FF02::1:FFA8:3201
FF02::2
FF02::1
MTU is 1480 bytes
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
IPv6 Packet statistics:
InReceives: 55
……(略)
# 從Switch A上可以Ping通對端的Vlan-int101接口的IPv6地址:
[SwitchA] ping ipv6 3003::1
PING 3003::1 : 56 data bytes, press CTRL_C to break
Reply from 3003::1
bytes=56 Sequence=1 hop limit=64 time = 1 ms
Reply from 3003::1
bytes=56 Sequence=2 hop limit=64 time = 1 ms
Reply from 3003::1
bytes=56 Sequence=3 hop limit=64 time = 1 ms
Reply from 3003::1
bytes=56 Sequence=4 hop limit=64 time = 1 ms
Reply from 3003::1
bytes=56 Sequence=5 hop limit=64 time = 1 ms
--- 3003::1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/1/1 ms
設備上存在已經配置IP地址、能夠進行正常通訊的接口(如VLAN接口,Ethernet接口,Loopback接口等),該接口將作為Tunnel接口的源接口。
表1-5 配置IPv4兼容IPv6自動隧道
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
使能IPv6報文轉發功能 |
ipv6 |
必選 缺省情況下,關閉IPv6報文轉發功能 |
|
創建Tunnel接口並進入Tunnel接口視圖 |
interface tunnel number |
必選 缺省情況下,設備上無Tunnel接口 |
|
設置Tunnel接口的IPv6地址 |
配置IPv6全球單播地址或站點本地地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
二者必選其一 缺省情況下,Tunnel接口上沒有設置IPv6全球單播地址或站點本地地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
|||
配置IPv6鏈路本地地址 |
ipv6 address auto link-local |
可選 缺省情況下,當接口配置了IPv6全球單播地址或站點本地地址後,會自動生成鏈路本地地址 |
|
ipv6 address ipv6-address link-local |
|||
配置隧道模式為IPv4兼容IPv6自動隧道模式 |
tunnel-protocol ipv6-ipv4 auto-tunnel |
必選 缺省情況下,為GRE over IPv4隧道模式 在隧道的兩端應配置相同的隧道模式,否則可能造成報文傳輸失敗 |
|
設置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必選 缺省情況下,Tunnel接口上沒有設置源端地址或接口 |
|
配置隧道接口的IPv6 MTU值 |
ipv6 mtu mtu-size |
可選 缺省情況下,IPv6 MTU的值為1480 |
· IPv4兼容IPv6自動隧道不需要配置目的地址,因為隧道的目的地址可以通過IPv4兼容IPv6地址中嵌入的IPv4地址自動獲得。
· 對於自動隧道,使用同種封裝協議的Tunnel接口不能同時配置完全相同的源地址。
缺省情況下,以太網接口、VLAN接口及聚合接口處於DOWN狀態。如果要對這些接口進行配置,請先使用undo shutdown命令使接口狀態處於UP狀態。
如圖1-5所示,兩台具有雙協議棧的交換機Switch A和Switch B通過IPv4網絡連接。在某些情況下,網絡管理員希望建立IPv4兼容IPv6自動隧道,使得這兩台設備能夠通過IPv6協議互通。
圖1-5 IPv4兼容IPv6自動隧道組網圖
在開始下麵的配置之前,請確保Switch A和Switch B上已經創建相應的VLAN接口,且兩者之間IPv4報文路由可達。
(1) 配置Switch A
# 使能IPv6轉發功能。
<SwitchA> system-view
[SwitchA] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ip address 192.168.100.1 255.255.255.0
[SwitchA-Vlan-interface100] quit
# 配置自動隧道。
[SwitchA] interface Tunnel 0
[SwitchA-Tunnel0] ipv6 address ::192.168.100.1/96
[SwitchA-Tunnel0] source vlan-interface 100
[SwitchA-Tunnel0] tunnel-protocol ipv6-ipv4 auto-tunnel
(2) 配置Switch B
# 使能IPv6轉發功能。
<SwitchB> system-view
[SwitchB] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ip address 192.168.50.1 255.255.255.0
[SwitchB-Vlan-interface100] quit
# 配置自動隧道。
[SwitchB] interface Tunnel 0
[SwitchB-Tunnel0] ipv6 address ::192.168.50.1/96
[SwitchB-Tunnel0] source vlan-interface 100
[SwitchB-Tunnel0] tunnel-protocol ipv6-ipv4 auto-tunnel
完成以上配置之後,分別查看Switch A和Switch B的Tunnel接口狀態如下:
[SwitchA] display ipv6 interface Tunnel 0
Tunnel0 current state :UP
Line protocol current state :UP
IPv6 is enabled, link-local address is FE80::C0A8:6401
Global unicast address(es):
::192.168.100.1, subnet is ::/96
Joined group address(es):
FF02::1:FFA8:6401
FF02::1:FF00:0
FF02::2
FF02::1
MTU is 1480 bytes
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
IPv6 Packet statistics:
InReceives: 65
……(略)
[SwitchB] display ipv6 interface Tunnel 0
Tunnel0 current state :UP
Line protocol current state :UP
IPv6 is enabled, link-local address is FE80::C0A8:3201
Global unicast address(es):
::192.168.50.1, subnet is ::/96
Joined group address(es):
FF02::1:FFA8:3201
FF02::1:FF00:0
FF02::2
FF02::1
MTU is 1480 bytes
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
IPv6 Packet statistics:
InReceives: 65
……(略)
# 從Switch A上可以Ping通對端的IPv4兼容IPv6地址:
[RouterA] ping ipv6 ::192.168.50.1
PING ::192.168.50.1 : 56 data bytes, press CTRL_C to break
Reply from ::192.168.50.1
bytes=56 Sequence=1 hop limit=64 time = 1 ms
Reply from ::192.168.50.1
bytes=56 Sequence=2 hop limit=64 time = 1 ms
Reply from ::192.168.50.1
bytes=56 Sequence=3 hop limit=64 time = 1 ms
Reply from ::192.168.50.1
bytes=56 Sequence=4 hop limit=64 time = 1 ms
Reply from ::192.168.50.1
bytes=56 Sequence=5 hop limit=64 time = 1 ms
--- ::192.168.50.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/1/1 ms
設備上存在已經配置IP地址、能夠進行正常通訊的接口(如VLAN接口,三層以太網接口,Loopback接口等),該接口將作為Tunnel接口的源接口。
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
使能IPv6報文轉發功能 |
ipv6 |
必選 缺省情況下,關閉IPv6報文轉發功能 |
|
進入Tunnel接口視圖 |
interface tunnel number |
必選 缺省情況下,設備上無Tunnel接口 |
|
設置Tunnel接口的IPv6地址 |
配置IPv6全球單播地址或站點本地地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
二者必選其一 缺省情況下,Tunnel接口上沒有設置IPv6全球單播地址或站點本地地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
|||
配置IPv6鏈路本地地址 |
ipv6 address auto link-local |
可選 缺省情況下,當接口配置了IPv6全球單播地址或站點本地地址後,會自動生成鏈路本地地址 |
|
ipv6 address ipv6-address link-local |
|||
配置隧道模式為6to4隧道模式 |
tunnel-protocol ipv6-ipv4 6to4 |
必選 缺省情況下,為GRE over IPv4隧道模式 在隧道的兩端應配置相同的隧道模式,否則可能造成報文傳輸失敗 |
|
設置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必選 缺省情況下,Tunnel接口上沒有設置源端地址和接口 |
|
退回係統視圖 |
quit |
- |
· 6to4隧道不需要配置目的地址,因為6to4隧道的目的地址可以通過6to4 IPv6隧道地址中嵌入的IPv4地址自動獲得。
· 如果封裝前IPv6報文的目的IPv6地址與Tunnel接口的IPv6地址不在同一個網段,則必須配置通過Tunnel接口到達目的IPv6地址的轉發路由,以便需要進行封裝的報文能正常轉發。對於自動隧道,用戶隻能配置靜態路由,指定到達目的IPv6地址的路由出接口為本端Tunnel接口或下一跳為對端Tunnel接口地址,不支持動態路由。在隧道的兩端都要進行轉發路由的配置,配置的詳細情況請參見“三層技術-IP路由配置指導”中的“IPv6靜態路由”。
· 對於自動隧道,使用同種封裝協議的Tunnel接口不能同時配置完全相同的源地址。
缺省情況下,以太網接口、VLAN接口及聚合接口處於DOWN狀態。如果要對這些接口進行配置,請先使用undo shutdown命令使接口狀態處於UP狀態。
如圖1-6所示,兩個6to4網絡通過網絡邊緣6to4 switch(Switch A和Switch B)與IPv4網絡相連。在Switch A和Switch B之間建立6to4隧道,實現6to4網絡中的主機Host A和Host B之間的互通。
圖1-6 6to4隧道組網圖
為了實現6to4網絡之間的互通,除了配置6to4隧道外,還需要為6to4網絡內的主機及6to4 router配置6to4地址。
· Switch A上接口Vlan-int100的IPv4地址為2.1.1.1/24,轉換成IPv6地址後使用6to4前綴2002:0201:0101::/48。對此前綴進行子網劃分,Tunnel0使用2002:0201:0101::/64子網,Vlan-int101使用2002:0201:0101:1::/64子網。
· Switch B上接口Vlan-int100的IPv4地址為5.1.1.1/24,轉換成IPv6地址後使用6to4前綴2002:0501:0101::/48。對此前綴進行子網劃分,Tunnel0使用2002:0501:0101::/64子網,Vlan-int101使用2002:0501:0101:1::/64子網。
在開始下麵的配置之前,請確保Switch A和Switch B上已經創建相應的VLAN接口,且兩者之間IPv4報文路由可達。
(1) 配置Switch A
# 使能IPv6轉發功能。
<SwitchA> system-view
[SwitchA] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ip address 2.1.1.1 24
[SwitchA-Vlan-interface100] quit
# 配置接口Vlan-interface101的地址。
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] ipv6 address 2002:0201:0101:1::1/64
[SwitchA-Vlan-interface101] quit
# 配置6to4隧道。
[SwitchA] interface tunnel 0
[SwitchA-Tunnel0] ipv6 address 2002:201:101::1/64
[SwitchA-Tunnel0] source vlan-interface 100
[SwitchA-Tunnel0] tunnel-protocol ipv6-ipv4 6to4
[SwitchA-Tunnel0] quit
# 配置到目的地址2002::/16,下一跳為Tunnel接口的靜態路由。
[SwitchA] ipv6 route-static 2002:: 16 tunnel 0
(2) 配置Switch B
# 使能IPv6轉發功能。
<SwitchB> system-view
[SwitchB] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ip address 5.1.1.1 24
[SwitchB-Vlan-interface100] quit
# 配置接口Vlan-interface101的地址。
[SwitchB] interface vlan-interface 101
[SwitchB-Vlan-interface101] ipv6 address 2002:0501:0101:1::1/64
[SwitchB-Vlan-interface101] quit
# 配置6to4隧道。
[SwitchB] interface tunnel 0
[SwitchB-Tunnel0] ipv6 address 2002:0501:0101::1/64
[SwitchB-Tunnel0] source vlan-interface 100
[SwitchB-Tunnel0] tunnel-protocol ipv6-ipv4 6to4
[SwitchB-Tunnel0] quit
# 配置到目的地址2002::/16,下一跳為Tunnel接口的靜態路由。
[SwitchB] ipv6 route-static 2002:: 16 tunnel 0
完成以上配置之後,Host A與Host B可以互相Ping通。
D:\>ping6 -s 2002:201:101:1::2 2002:501:101:1::2
Pinging 2002:501:101:1::2
from 2002:201:101:1::2 with 32 bytes of data:
Reply from 2002:501:101:1::2: bytes=32 time=13ms
Reply from 2002:501:101:1::2: bytes=32 time=1ms
Reply from 2002:501:101:1::2: bytes=32 time=1ms
Reply from 2002:501:101:1::2: bytes=32 time<1ms
Ping statistics for 2002:501:101:1::2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 13ms, Average = 3ms
缺省情況下,以太網接口、VLAN接口及聚合接口處於Down狀態,如果要對這些接口進行配置,請先使用undo shutdown命令使這些接口處於UP狀態。
如圖1-7所示,Switch A為6to4交換機,其IPv6側的網絡使用6to4地址。Switch B作為6to4中繼交換機,它和IPv6網絡(2001::/16)相連。要求在Switch A和Switch B之間配置6to4隧道,使得6to4網絡中的主機與IPv6網絡中的主機互通。
圖1-7 6to4中繼組網圖
· 在開始下麵的配置之前,請確保Switch A和Switch B上已經創建相應的VLAN接口,且兩者之間IPv4報文路由可達。
· 6to4中繼交換機的配置與6to4交換機的配置相同,但為實現6to4網絡與IPv6網絡的互通,需要在6to4交換機上配置到IPv6網絡的路由。
(1) 配置Switch A
# 使能IPv6轉發功能。
<SwitchA> system-view
[SwitchA] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ip address 2.1.1.1 255.255.255.0
[SwitchA-Vlan-interface100] quit
# 配置接口Vlan-interface101的地址。
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] ipv6 address 2002:0201:0101:1::1/64
[SwitchA-Vlan-interface101] quit
# 配置6to4隧道。
[SwitchA] interface tunnel 0
[SwitchA-Tunnel0] ipv6 address 2002:0201:0101::1/64
[SwitchA-Tunnel0] source vlan-interface 100
[SwitchA-Tunnel0] tunnel-protocol ipv6-ipv4 6to4
[SwitchA-Tunnel0] quit
# 配置到6to4中繼的靜態路由。
[SwitchA] ipv6 route-static 2002:0601:0101:: 64 tunnel 0
# 配置到純IPv6網絡的缺省路由。
[SwitchA] ipv6 route-static :: 0 2002:0601:0101::1
(2) 配置Switch B
# 使能IPv6轉發功能。
<SwitchB> system-view
[SwitchB] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ip address 6.1.1.1 255.255.255.0
[SwitchB-Vlan-interface100] quit
# 配置接口Vlan-interface101的地址。
[SwitchB] interface vlan-interface 101
[SwitchB-Vlan-interface101] ipv6 address 2001::1/16
[SwitchB-Vlan-interface101] quit
# 配置6to4隧道。
[SwitchB] interface tunnel 0
[SwitchB-Tunnel0] ipv6 address 2002:0601:0101::1/64
[SwitchB-Tunnel0] source vlan-interface 100
[SwitchB-Tunnel0] tunnel-protocol ipv6-ipv4 6to4
[SwitchB-Tunnel0] quit
# 配置到目的地址2002::/16,下一跳為Tunnel接口的靜態路由。
[SwitchB] ipv6 route-static 2002:: 16 tunnel 0
完成以上配置之後,Host A可以Ping通Host B。
D:\>ping6 -s 2002:201:101:1::2 2001::2
Pinging 2001::2
from 2002:201:101:1::2 with 32 bytes of data:
Reply from 2001::2: bytes=32 time=13ms
Reply from 2001::2: bytes=32 time=1ms
Reply from 2001::2: bytes=32 time=1ms
Reply from 2001::2: bytes=32 time<1ms
Ping statistics for 2001::2:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 13ms, Average = 3ms
設備上存在已經配置IP地址、能夠進行正常通訊的接口(如VLAN接口,Ethernet接口,Loopback接口等),該接口將作為Tunnel接口的源接口。
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
使能IPv6報文轉發功能 |
ipv6 |
必選 缺省情況下,IPv6報文轉發功能處於關閉狀態 |
|
進入Tunnel接口視圖 |
interface tunnel number |
必選 缺省情況下,設備上無Tunnel接口 |
|
設置Tunnel接口的IPv6地址 |
配置IPv6全球單播地址或站點本地地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
二者必選其一 缺省情況下,Tunnel接口上沒有設置IPv6全球單播地址或站點本地地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
|||
配置IPv6鏈路本地地址 |
ipv6 address auto link-local |
可選 缺省情況下,當接口配置了IPv6全球單播地址或站點本地地址後,會自動生成鏈路本地地址 |
|
ipv6 address ipv6-address link-local |
|||
配置隧道模式為ISATAP隧道模式 |
tunnel-protocol ipv6-ipv4 isatap |
必選 缺省情況下,為GRE over IPv4隧道模式 在隧道的兩端應配置相同的隧道模式,否則可能造成報文傳輸失敗 |
|
設置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必選 缺省情況下,Tunnel接口上沒有設置源端地址和接口 |
|
退回係統視圖 |
quit |
- |
· ISATAP隧道不需要配置目的地址,因為隧道的目的地址可以通過ISATAP地址中嵌入的IPv4地址自動獲得。
· 如果封裝前IPv6報文的目的IPv6地址與Tunnel接口的IPv6地址不在同一個網段,則必須配置通過Tunnel接口到達目的IPv6地址的轉發路由,以便需要進行封裝的報文能正常轉發。對於自動隧道,用戶隻能配置靜態路由,指定到達目的IPv6地址的路由出接口為本端Tunnel接口或下一跳為對端Tunnel接口地址,不支持動態路由。在隧道的兩端都要進行轉發路由的配置,配置的詳細情況請參見“三層技術-IP路由配置指導”中的“IPv6靜態路由”。
· 對於自動隧道,使用同種封裝協議的Tunnel接口不能同時配置完全相同的源地址。
缺省情況下,以太網接口、VLAN接口及聚合接口處於Down狀態,如果要對這些接口進行配置,請先使用undo shutdown命令使這些接口處於UP狀態。
如圖1-8所示,IPv6網絡和IPv4網絡通過ISATAP交換機相連,在IPv4網絡側分布著一些IPv6主機。要求將IPv4網絡中的IPv6主機通過ISATAP隧道接入到IPv6網絡。
圖1-8 ISATAP隧道組網圖
在開始下麵的配置之前,請確保Switch上已經創建相應的VLAN接口,且Switch的Vlan-interface101和ISATAP host之間IPv4報文路由可達。
(1) 配置Switch
# 使能IPv6轉發功能。
<Switch> system-view
[Switch] ipv6
# 配置各接口地址。
[Switch] interface vlan-interface 100
[Switch-Vlan-interface100] ipv6 address 3001::1/64
[Switch-Vlan-interface100] quit
[Switch] interface vlan-interface 101
[Switch-Vlan-interface101] ip address 1.1.1.1 255.0.0.0
[Switch-Vlan-interface101] quit
# 配置ISATAP隧道。
[Switch] interface tunnel 0
[Switch-Tunnel0] ipv6 address 2001::5efe:0101:0101 64
[Switch-Tunnel0] source vlan-interface 101
[Switch-Tunnel0] tunnel-protocol ipv6-ipv4 isatap
# 取消對RA消息發布的抑製,使主機可以通過交換機發布的RA消息獲取地址前綴等信息。
[Switch-Tunnel0] undo ipv6 nd ra halt
[Switch-Tunnel0] quit
# 配置到ISATAP主機的靜態路由。
[Switch] ipv6 route-static 2001:: 16 tunnel 0
(2) 配置ISATAP主機
ISATAP主機上的具體配置與主機的操作係統有關,下麵僅以Windows XP操作係統為例進行說明。
# 在主機上安裝IPv6協議。
C:\>ipv6 install
# 在Windows XP上,ISATAP接口通常為接口2,隻要在該接口上配置ISATAP交換機的IPv4地址即可完成主機側的配置。先看看這個ISATAP接口的信息:
C:\>ipv6 if 2
Interface 2: Automatic Tunneling Pseudo-Interface
Guid {48FCE3FC-EC30-E50E-F1A7-71172AEEE3AE}
does not use Neighbor Discovery
does not use Router Discovery
routing preference 1
EUI-64 embedded IPv4 address: 0.0.0.0
router link-layer address: 0.0.0.0
preferred link-local fe80::5efe:2.1.1.2, life infinite
link MTU 1280 (true link MTU 65515)
current hop limit 128
reachable time 42500ms (base 30000ms)
retransmission interval 1000ms
DAD transmits 0
default site prefix length 48
# 它自動生成了一個ISATAP格式的link-local地址(fe80::5efe:2.1.1.2)。我們需要設置這個接口上的ISATAP交換機的IPv4地址:
C:\>ipv6 rlu 2 1.1.1.1
# 隻需要這麼一個命令,這就完成了主機的配置,我們再來看看這個ISATAP接口的信息:
C:\>ipv6 if 2
Interface 2: Automatic Tunneling Pseudo-Interface
Guid {48FCE3FC-EC30-E50E-F1A7-71172AEEE3AE}
does not use Neighbor Discovery
uses Router Discovery
routing preference 1
EUI-64 embedded IPv4 address: 2.1.1.2
router link-layer address: 1.1.1.1
preferred global 2001::5efe:2.1.1.2, life 29d23h59m46s/6d23h59m46s (public)
preferred link-local fe80::5efe:2.1.1.2, life infinite
link MTU 1500 (true link MTU 65515)
current hop limit 255
reachable time 42500ms (base 30000ms)
retransmission interval 1000ms
DAD transmits 0
default site prefix length 48
# 對比前後的區別,我們可以看到主機獲取了2001::/64的前綴,自動生成地址2001::5efe:2.1.1.2,同時還會發現這麼一行“uses Router Discovery”表明主機啟用了路由器發現,這時ping一下交換機上隧道接口的IPv6地址,可以ping通,這時候表明ISATAP隧道已經成功建立。
C:\>ping 2001::5efe:1.1.1.1
Pinging 2001::5efe:1.1.1.1 with 32 bytes of data:
Reply from 2001::5efe:1.1.1.1: time=1ms
Reply from 2001::5efe:1.1.1.1: time=1ms
Reply from 2001::5efe:1.1.1.1: time=1ms
Reply from 2001::5efe:1.1.1.1: time=1ms
Ping statistics for 2001::5efe:1.1.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 1ms, Average = 1ms
完成以上配置之後,ISATAP主機就可訪問IPv6網絡中的主機。
在完成上述配置後,在任意視圖下執行display命令可以顯示IPv6隧道配置後的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除Tunnel接口的統計信息。
表1-8 隧道顯示和維護
操作 |
命令 |
顯示Tunnel接口的相關信息 |
display interface [ tunnel ] [ brief [ down ] ] [ | { begin | exclude | include } regular-expression ] display interface [ tunnel [ number ] ] [ brief [ description ] ] [ | { begin | exclude | include } regular-expression ] |
顯示Tunnel接口的IPv6相關信息 |
display ipv6 interface tunnel [ number ] [ brief ] [ | { begin | exclude | include } regular-expression ] |
清除Tunnel接口的統計信息 |
reset counters interface [ tunnel [number ] ] |
故障現象:在Tunnel接口上配置了相關的參數後(例如隧道的起點、終點地址和隧道模式)仍未處於up狀態。
故障排除:可以按照如下步驟進行。
(1) Tunnel接口未處於up狀態的最常見原因是隧道起點的物理接口沒有處於up狀態。使用display interface tunnel和display ipv6 interface tunnel命令查看隧道起點的物理接口狀態為up還是down。如果物理接口狀態是down,請檢查網絡連接。
(2) Tunnel接口未處於up狀態的另一個可能的原因是隧道的終點地址不可達。使用display ipv6 routing-table和display ip routing-table命令查看是否終點地址通過路由可達。如果路由表中沒有保證隧道通訊的路由項,請配置相關路由。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!