04-隧道技术配置
本章节下载 (572.14 KB)
& 说明:
在设备中,Tunnel接口号的形式为X,X的取值范围为0~1023。
随着Internet的日益膨胀,现有的IPv4地址已经十分紧缺,虽然使用分配临时IPv4地址或NAT(Network Address Translator,网络地址转换)等技术,在一定程度上缓解了IPv4地址不足的状况,但也增加了地址解析和处理方面的开销,同时导致某些高层应用失效,而且仍然无法回避IPv4地址即将被分配殆尽这个问题。采用128位地址长度的IPv6协议,彻底解决了IPv4地址不足的难题,并且在地址容量、安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网络协议采用的核心标准之一。IPv6与IPv4不兼容,但它同所有的TCP/IP协议族中的其他协议兼容,即IPv6完全可以取代IPv4。
在IPv6成为主流协议之前,首先使用IPv6协议栈的网络希望能与当前仍被IPv4支撑着的Internet进行正常通信,因此必须开发出IPv4和IPv6互通技术以保证IPv4能够平稳过渡到IPv6。此外,互通技术应该对信息传递做到高效无缝。国际上IETF组建了专门的NGTRANS工作组,开展对IPv4和IPv6过渡问题和高效无缝互通问题的研究。目前已经出现了多种过渡技术和互通方案,这些技术各有特点,用于解决不同过渡时期、不同环境的通信问题。
目前解决过渡问题的基本技术主要有3种:双协议栈(RFC2893),隧道技术(RFC2893)和NAT-PT(RFC2766)。
隧道是一种封装技术,它利用一种网络协议来传输另一种网络协议,即利用一种网络传输协议,将其他协议产生的数据报文封装在它自己的报文中,然后在网络中传输。隧道(Tunnel)是一个虚拟的点对点的连接。在实际中可以看成是仅支持点对点连接的虚拟接口。一个Tunnel提供了一条使封装的数据报文能够传输的通路,并且在一个Tunnel的两端可以分别对数据报文进行封装及解封装。隧道技术就是指包括数据封装、传输和解封装在内的全过程。
& 说明:
设备还支持6PE(IPv6 Provider Edge)特性作为一种过渡技术的实现,下文会做简单的介绍。
IPv6 over IPv4隧道机制是将IPv6数据报文前封装上IPv4的报文头,通过隧道(Tunnel)使IPv6报文穿越IPv4网络,实现隔离的IPv6网络的互通,如图1-1所示。
注意:
IPv6 over IPv4隧道两端的设备必须支持IPv4/IPv6双协议栈。
IPv6 over IPv4隧道对报文的处理过程如下:
l IPv6网络中的设备发送IPv6报文,到达隧道的源端设备。
l 隧道的源端设备根据路由表判定该报文要通过隧道进行转发,将会在IPv6报文前封装上IPv4的报文头,通过隧道的实际物理接口将报文转发出去。
l 封装报文通过隧道到达隧道目的端设备,目的端设备判断该封装报文的目的地是本设备后,将对报文进行解封装。
l 目的端设备根据解封装后的IPv6报文的目的地址将报文进行转发;如果目的地就是本设备,则将IPv6报文转给上层协议处理。
IPv6 over IPv4隧道可以建立在主机-主机、主机-设备、设备-主机、设备-设备之间。隧道的终点可能是IPv6报文的最终目的地,也可能需要进一步转发。
根据隧道终点的IPv4地址的获取方式不同,隧道分为“配置隧道”及“自动隧道”。
l 如果隧道的终点不是IPv6报文的最终目的地,当IPv6报文通过隧道到达隧道终点后,隧道终点设备(通常为语音网关)会对封装的IPv6报文进行解封装,并转发IPv6报文到最终目的地。在这种情况下,不能从IPv6报文的目的地址中自动获取到隧道终点的IPv4地址,需要进行手工配置。这样的隧道即为“配置隧道”。
l 如果隧道的终点就是IPv6报文的最终目的地,则可以采用内嵌IPv4地址的特殊IPv6地址形式,实现从IPv6报文的目的地址中自动获取隧道终点的IPv4地址。这样的隧道即为“自动隧道”。
根据对IPv6报文的封装方式的不同,IPv6 over IPv4隧道分为以下几种模式:
l IPv6手动隧道
l IPv4兼容IPv6自动隧道
l 6to4隧道
l ISATAP(Intra-Site Automatic Tunnel Addressing Protocol,站点内自动隧道寻址协议)隧道
l IPv6-over-IPv4 GRE(Generic Routing Encapsulation,通用路由封装)隧道(简称GRE隧道)
在上面列出的隧道模式中,IPv6手动隧道及GRE隧道为配置隧道;IPv4兼容IPv6自动隧道、6to4隧道及ISATAP隧道为自动隧道。
(1) IPv6手动隧道
手动隧道是点到点之间的链路,一条链路就是一个单独的隧道。主要用于边缘语音网关-边缘语音网关或主机-边缘语音网关之间定期安全通信的稳定连接,可实现与远端IPv6网络的连接。
(2) 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地址,在使用时有一定的局限性。
(3) 6to4隧道
l 普通6to4隧道
6to4隧道是点到多点的自动隧道,主要用于将多个IPv6孤岛通过IPv4网络连接到IPv6网络。6to4隧道通过IPv6报文的目的地址中嵌入的IPv4地址,可以自动获取隧道的终点。6to4隧道采用特殊的地址:6to4地址,其格式为:2002:abcd:efgh:子网号::接口ID/64,其中2002表示固定的IPv6地址前缀,abcd:efgh表示该6to4隧道对应的32位IPv4源地址,用16进制表示(如1.1.1.1可以表示为0101:0101)。通过这个嵌入的IPv4地址可以自动确定隧道的终点,使隧道的建立非常方便。
由于6to4地址的64位地址前缀中的16位子网号可以由用户自定义,前缀中的前48位已由固定数值、隧道起点或终点设备的IPv4地址确定,使IPv6报文通过隧道进行转发成为可能。6to4隧道可以实现IPv6网络的互连,克服了IPv4兼容IPv6自动隧道使用的局限性。
l 6to4中继
6to4隧道只能将前缀为2002::/16的网络连接起来,但在IPv6网络中也会使用像2001::/16这样的IPv6网络地址。为了使这些地址可达,必须有一台6to4语音网关作为网关转发到IPv6网络的报文,这台语音网关就叫做6to4中继(6to4 relay)语音网关。如下图所示,6to4网络的边缘语音网关Router A需配置一条静态路由,下一跳地址指向6to4中继语音网关Router C的6to4地址,这样,所有去往IPv6网络的报文都会被转发到6to4中继语音网关,之后再由6to4中继语音网关转发到IPv6网络中,从而实现6to4网络(地址前缀以2002开始)与IPv6网络的互通。
(4) ISATAP隧道
随着IPv6技术的推广,现有的IPv4网络中将会出现越来越多的IPv6主机,ISATAP隧道技术为这种应用提供了一个较好的解决方案。ISATAP隧道是点到点的自动隧道技术,通过在IPv6报文的目的地址中嵌入的IPv4地址,可以自动获取隧道的终点。使用ISATAP隧道时,IPv6报文的目的地址和隧道接口的IPv6地址都要采用特殊的地址:ISATAP地址。ISATAP地址格式为:Prefix(64bit):0:5EFE:ip-address。ip-address形式为a.b.c.d 或者abcd:efgh,其中abcd:efgh表示32位IPv4源地址。通过这个嵌入的IPv4地址就可以自动建立隧道,完成IPv6报文的传送。ISATAP隧道主要用于在IPv4网络中IPv6语音网关-IPv6语音网关、IPv6主机-IPv6语音网关的连接。
(5) GRE隧道
使用标准的GRE协议可对IPv6报文进行封装,使IPv6报文能通过隧道穿越IPv4网络。与IPv6手动隧道相同,GRE隧道也是点到点之间的链路,每条链路都是一条单独的隧道。GRE隧道主要用于边缘语音网关-边缘语音网关、主机-边缘语音网关定期安全通信的稳定连接。
IPv4 over IPv4隧道(RFC1853)协议是对IP数据报进行封装,使得一个IPv4网络的数据能够在另一个IPv4网络中传输。
报文在Tunnel中传输经过封装与解封装两个过程,以下图为例说明这两个过程:
l 封装流程
Router A连接IPv4主机所在子网的接口收到IP数据报后,首先交由IP协议栈处理。IP协议栈根据IP报头中的目的地址来确定如何路由此包。如果报文要路由到与Router B相连的IPv4主机的地址,则将此报文发给Router A上连接Router B的Tunnel接口。
Tunnel接口收到此包后,进行IPv4 over IPv4的封装,封装完成后重新交给IP协议栈处理,IP协议栈根据添加的IP报头确定出接口。
l 解封装流程
解封装过程和封装的过程相反。从网络接口收到的IP报文被送到IP协议栈,IP协议栈检查IP报头的协议号;若发现此协议号为4即IPv4,则将此IP数据包发送到隧道模块进行解封装处理;解封装之后的IP报文将重新被送到IP协议栈进行处理。
IPv4或IPv6 over IPv6隧道(RFC2473)协议是对IPv4或者IPv6的数据报进行封装,使这些被封装的数据报能够在另一个IPv6网络中传输,封装后的数据报文即IPv6隧道报文。
如图1-5所示,Original data指IPv4或IPv6报文。
l 封装流程
Router A连接网络A的接口收到原始数据报后,首先交由对应的数据转发模块进行处理,并确定如何路由此数据包;若确定此数据包要路由到与Router B相连的Host B的地址,则将此报文发给Router A上连接IPv6网络的Router B的Tunnel接口。
Tunnel口收到此包后添加IPv6报文头,封装完成后交给IPv6模块处理;IPv6协议模块根据IPv6隧道头的目的地址重新决定路由。
l 解封装流程
解封装过程和封装的过程相反。从IPv6网络接口接收的数据包被送到IPv6协议模块进行处理;若乘客协议为IPv4或IPv6,则数据包进入隧道处理模块进行解封装处理;解封装之后的数据包被送往相应的协议模块进行二次路由处理。
6PE是一种过渡技术,ISP可以利用已有的IPv4骨干网为分散用户的IPv6网络提供接入能力。
6PE的主要思想是:6PE(IPv6 Provider Edge,IPv6供应商边缘)语音网关将用户的IPv6路由信息转换为带有标签的IPv6路由信息,并且通过IBGP(Internal Border Gateway Protocol,内部边界网关协议)会话扩散到ISP的IPv4骨干网中。6PE语音网关转发IPv6报文时,首先会将进入骨干网隧道的数据流打上标签。隧道可以是GRE隧道等。
图1-6 6PE组网图
当ISP想利用自己原有的IPv4/MPLS网络,使其通过MPLS具有IPv6流量交换能力时,只需要升级PE语音网关就可以了。所以对于运营商来说,使用6PE技术作为IPv6过渡机制无疑是一个高效的解决方案,其操作风险也会小得多。
& 说明:
l 有关6PE的详细介绍及配置请参考“IP路由分册”中的“IPv6 BGP配置”,下文不作介绍。
l Router产品可以作为6PE设备使用。
配置任务 |
说明 |
详细配置 |
|
配置IPv6 over IPv4隧道 |
配置IPv6手动隧道 |
可选 根据具体组网应用配置 |
|
配置IPv4兼容IPv6自动隧道 |
可选 根据具体组网应用配置 |
||
配置6to4隧道 |
可选 根据具体组网应用配置 |
||
配置ISATAP隧道 |
可选 根据具体组网应用配置 |
||
配置IPv4 over IPv4隧道 |
可选 根据具体组网应用配置 |
||
配置IPv6 over IPv6隧道 |
可选 根据具体组网应用配置 |
||
配置IPv4 over IPv6隧道 |
可选 根据具体组网应用配置 |
设备上的接口(如GigabitEthernet接口,Loopback接口等)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
操作 |
命令 |
说明 |
|
进入系统视图 |
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隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
|
设置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有设置源端地址和 接口 |
|
设置Tunnel接口的目的端地址 |
destination ip-address |
必选 缺省情况下,Tunnel接口上没有设置目的端地址 |
|
设置隧道接口发送IPv6报文的MTU值 |
ipv6 mtu mtu-size |
可选 不同型号的设备支持的缺省情况不同,请以设备的实际情况为准 |
& 说明:
隧道接口发送IPv6报文的MTU值的相关配置可参考“IP业务分册/IPv6基础配置命令”中的ipv6 mtu。
注意:
l 以上各项Tunnel接口下进行的功能特性配置,在删除Tunnel接口后,该接口上的所有配置也将被删除。
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,也可以配置动态路由。在Tunnel的两端都要进行此项配置,配置的详细情况请参见“IP路由分册”中的“静态路由配置”或其他路由协议配置。
l 配置静态路由时,需要手动配置到达目的地址(不是隧道的终点IPv4地址,而是封装前报文的目的IPv6地址)的路由,并将下一跳配置为隧道本端的Tunnel接口号或者网络地址。在隧道的两端都要进行此项配置。
l 配置动态路由时,需要在隧道两端的Tunnel接口使能动态路由协议。在隧道的两端都要进行此项配置。相关配置请见“IP路由分册”中的相关内容。
l 在隧道接口配置的路由的目的地址不能与隧道接口的地址在同一网段中。
两个IPv6网络要通过语音网关Router A和Router B之间的IPv6手动隧道相连。如图1-7,Router A的GigabitEthernet0/0和Router B的GigabitEthernet0/0可以正常通讯,IPv4报文路由可达。
下面的例子配置语音网关Router A和Router B之间的IPv6手动隧道。需要手动指定隧道的起点和终点地址。
(1) 配置Router A
# 配置接口GigabitEthernet0/0的地址。
<RouterA> system-view
[RouterA] interface gigabitethernet 0/0
[RouterA-GigabitEthernet0/0] ip address 192.168.100.1 255.255.255.0
[RouterA-GigabitEthernet0/0] quit
# 使能IPv6转发功能。
[RouterA] ipv6
# 配置手动隧道。
[RouterA] interface tunnel 0
[RouterA-Tunnel0] ipv6 address 3001::1/64
[RouterA-Tunnel0] source gigabitethernet 0/0
[RouterA-Tunnel0] destination 192.168.50.1
[RouterA-Tunnel0] tunnel-protocol ipv6-ipv4
(2) 配置RouterB
# 配置接口GigabitEthernet0/0的地址。
<RouterB> system-view
[RouterB] interface gigabitethernet 0/0
[RouterB-GigabitEthernet0/0] ip address 192.168.50.1 255.255.255.0
[RouterB-GigabitEthernet0/0] quit
# 使能IPv6转发功能。
[RouterB] ipv6
# 配置手动隧道。
[RouterB] interface tunnel 0
[RouterB-Tunnel0] ipv6 address 3001::2/64
[RouterB-Tunnel0] source gigabitethernet 0/0
[RouterB-Tunnel0] destination 192.168.100.1
[RouterB-Tunnel0] tunnel-protocol ipv6-ipv4
完成以上配置之后,分别查看Router A和Router B的Tunnel接口状态如下:
[RouterA] 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:FFA8:6401
FF02::1:FF00:1
FF02::2
FF02::1
MTU is 1500 bytes
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
[RouterB] 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:FFA8:3201
FF02::1:FF00:2
FF02::2
FF02::1
MTU is 1500 bytes
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
# 从Router A上可以Ping通对端Tunnel接口上的IPv6地址:
[RouterA] ping ipv6 3001::2
PING 3001::2 : 56 data bytes, press CTRL_C to break
Reply from 3001::2
bytes=56 Sequence=1 hop limit=64 time = 31 ms
Reply from 3001::2
bytes=56 Sequence=2 hop limit=64 time = 16 ms
Reply from 3001::2
bytes=56 Sequence=3 hop limit=64 time = 1 ms
Reply from 3001::2
bytes=56 Sequence=4 hop limit=64 time = 15 ms
Reply from 3001::2
bytes=56 Sequence=5 hop limit=64 time = 15 ms
--- 3001::2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/15/31 ms。
设备上的接口(如VLAN接口,GigabitEthernet接口,Loopback接口等)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
操作 |
命令 |
说明 |
|
进入系统视图 |
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隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
|
设置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有设置源端地址或接口 |
|
设置隧道接口发送IPv6报文的MTU值 |
ipv6 mtu mtu-size |
可选 不同型号的设备支持的缺省情况不同,请以设备的实际情况为准 |
& 说明:
隧道接口发送IPv6报文的MTU值的相关配置可参考“IP业务分册/IPv6基础配置命令”中的ipv6 mtu。
注意:
l 同一隧道起点只能创建一条自动隧道。
l IPv4兼容IPv6自动隧道不需要配置目的地址。
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,也可以配置动态路由。在Tunnel的两端都要进行此项配置,配置的详细情况请参见“IP路由分册”中的“静态路由配置”或其他路由协议配置。
l 对于自动隧道,使用同种封装协议的Tunnel接口不能同时配置完全相同的源地址。
l 对于自动隧道,不支持动态路由。
l 配置静态路由时,需要手动配置到达目的地址(不是隧道的终点IPv4地址,而是封装前报文的目的IPv6地址)的路由,并将下一跳配置为隧道本端的Tunnel接口号或者网络地址。在隧道的两端都要进行此项配置。
语音网关Router A和Router B之间是IPv4网络,要求两台双栈语音网关通过自动隧道建立IPv6连接。
下面的例子配置Router A和Router B之间的IPv4兼容IPv6自动隧道。隧道的终点无需手动指定,通过IPv4兼容IPv6地址中嵌入的IPv4地址自动获得。
(1) 配置Router A
# 使能IPv6转发功能。
<RouterA> system-view
[RouterA] ipv6
# 配置串口地址。
[RouterA] interface serial 2/0
[RouterA-GigabitEthernet0/0] ip address 2.1.1.1 255.0.0.0
[RouterA-GigabitEthernet0/0] quit
# 配置自动隧道。
[RouterA] interface tunnel 0
[RouterA-Tunnel0] ipv6 address ::2.1.1.1/96
[RouterA-Tunnel0] source serial 2/0
[RouterA-Tunnel0] tunnel-protocol ipv6-ipv4 auto-tunnel
(2) 配置Router B
# 使能IPv6转发功能。
<RouterB> system-view
[RouterB] ipv6
# 配置串口地址。
[RouterB] interface serial 2/0
[RouterB-GigabitEthernet0/0] ip address 2.1.1.2 255.0.0.0
[RouterB-GigabitEthernet0/0] quit
# 配置自动隧道
[RouterB] interface tunnel 0
[RouterB-Tunnel0] ipv6 address ::2.1.1.2/96
[RouterB-Tunnel0] source serial 2/0
[RouterB-Tunnel0] tunnel-protocol ipv6-ipv4 auto-tunnel
完成以上配置之后,分别查看Router A和Router B的Tunnel接口状态如下:
[RouterA] display ipv6 interface tunnel 0
Tunnel0 current state :UP
Line protocol current state :UP
IPv6 is enabled, link-local address is FE80::201:101
Global unicast address(es):
::2.1.1.1, subnet is ::/96
Joined group address(es):
FF02::1:FF01:101
FF02::2
FF02::1
MTU is 1500 bytes
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
[RouterB] display ipv6 interface tunnel 0
Tunnel0 current state :UP
Line protocol current state :UP
IPv6 is enabled, link-local address is FE80::201:102
Global unicast address(es):
::2.1.1.2, subnet is ::/96
Joined group address(es):
FF02::1:FF01:102
FF02::2
FF02::1
MTU is 1500 bytes
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
# 从Router A可以Ping通对端的IPv4兼容IPv6地址。
[RouterA] ping ipv6 ::2.1.1.2
PING ::2.1.1.2 : 56 data bytes, press CTRL_C to break
Reply from ::2.1.1.2
bytes=56 Sequence=1 hop limit=255 time = 219 ms
Reply from ::2.1.1.2
bytes=56 Sequence=2 hop limit=255 time = 15 ms
Reply from ::2.1.1.2
bytes=56 Sequence=3 hop limit=255 time = 31 ms
Reply from ::2.1.1.2
bytes=56 Sequence=4 hop limit=255 time = 31 ms
Reply from ::2.1.1.2
bytes=56 Sequence=5 hop limit=255 time = 32 ms
--- ::2.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 15/65/219 ms
设备上的接口(如VLAN接口,GigabitEthernet接口,Loopback接口等)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
操作 |
命令 |
说明 |
|
进入系统视图 |
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 |
|||
配置为6to4隧道模式 |
tunnel-protocol ipv6-ipv4 6to4 |
必选 缺省情况下,为GRE隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
|
设置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有设置源端地址和接口 |
|
设置隧道接口发送IPv6报文的MTU值 |
ipv6 mtu mtu-size |
可选 不同型号的设备支持的缺省情况不同,请以设备的实际情况为准 |
& 说明:
隧道接口发送IPv6报文的MTU值的相关配置可参考“IP业务分册/IPv6基础配置命令”中的ipv6 mtu。
注意:
l 同一隧道起点只能创建一条自动隧道。
l 自动隧道不需要配置目的地址,因为自动隧道的目的地址可以通过IPv4兼容IPv6地址中嵌入的IPv4地址自动获得。
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,也可以配置动态路由。在Tunnel的两端都要进行此项配置,配置的详细情况请参见“IP路由分册”中的“静态路由配置”或其他路由协议配置。
l 对于自动隧道,使用同种封装协议的Tunnel接口不能同时配置完全相同的源地址。
l 对于自动隧道,不支持动态路由。
l 配置静态路由时,需要手动配置到达目的地址(不是隧道的终点IPv4地址,而是封装前报文的目的IPv6地址)的路由,并将下一跳配置为隧道本端的Tunnel接口号或者网络地址。在隧道的两端都要进行此项配置。
IPv6孤岛Host A和Host B分别通过6to4 router(语音网关Router A和Router B)实现穿过IPv4网络进行互联。
下面的例子在隔离的IPv6网络边缘语音网关间配置了6to4隧道。IPv4地址2.1.1.1转换成IPv6地址后使用前缀2002:0201:0101::/64。配置的静态路由将所有发往IPv6前缀2002::/16的流量定向到自动隧道的Tunnel接口。
(1) 配置Router A
# 使能IPv6转发功能。
<RouterA> system-view
[RouterA] ipv6
# 配置接口GigabitEthernet0/0的地址。
[RouterA] interface gigabitethernet 0/0
[RouterA-GigabitEthernet0/0] ip address 2.1.1.1 24
[RouterA-GigabitEthernet0/0] quit
# 配置接口GigabitEthernet0/0的地址到Router B上接口GigabitEthernet0/0的路由(此处的静态路由下一跳地址以[nexthop]代替,真实组网时请配置实际的下一跳地址)。
[RouterA] ip route-static 5.1.1.1 24 [nexthop]
# 配置接口GigabitEthernet0/1的地址。
[RouterA] interface gigabitethernet 0/1
[RouterA-GigabitEthernet0/1] ipv6 address 2002:0201:0101:1::1/64
[RouterA-GigabitEthernet0/1] quit
# 配置6to4隧道。
[RouterA] interface tunnel 0
[RouterA-Tunnel0] ipv6 address 2002:201:101::1/64
[RouterA-Tunnel0] source gigabitethernet 0/0
[RouterA-Tunnel0] tunnel-protocol ipv6-ipv4 6to4
[RouterA-Tunnel0] quit
# 配置到目的地址2002::/16,下一跳为Tunnel接口的静态路由。
[RouterA] ipv6 route-static 2002:: 16 tunnel0
(2) 配置Router B
# 使能IPv6转发功能。
<RouterB> system-view
[RouterB] ipv6
# 配置接口GigabitEthernet0/0的地址。
[RouterB] interface gigabitethernet 0/0
[RouterB-GigabitEthernet0/0] ip address 5.1.1.1 24
[RouterB-GigabitEthernet0/0] quit
# 配置接口GigabitEthernet0/0的地址到Router A上接口GigabitEthernet0/0的路由(此处的静态路由下一跳地址以[nexthop]代替,真实组网时请配置实际的下一跳地址)。
[RouterB] ip route-static 2.1.1.1 24 [nexthop]
# 配置接口GigabitEthernet0/1的地址。
[RouterB] interface gigabitethernet 0/1
[RouterB-GigabitEthernet0/1] ipv6 address 2002:0501:0101:1::1/64
[RouterB-GigabitEthernet0/1] quit
# 配置6to4隧道。
[RouterB] interface tunnel 0
[RouterB-Tunnel0] ipv6 address 2002:0501:0101::1/64
[RouterB-Tunnel0] source gigabitethernet 0/0
[RouterB-Tunnel0] tunnel-protocol ipv6-ipv4 6to4
[RouterB-Tunnel0] quit
# 配置到目的地址2002::/16,下一跳为Tunnel接口的静态路由。
[RouterB] ipv6 route-static 2002:: 16 tunnel0
完成以上配置之后,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
Router A为6to4语音网关,其IPv6侧的网络使用6to4地址。Router B作为6to4中继语音网关,它和IPv6网络(2001::/16)相连。要求6to4网络中的主机可以通过Router B访问IPv6网络。
6to4中继语音网关的配置与普通6to4语音网关相同,但是6to4中继语音网关不但可以和6to4网络连接,而且还和IPv6网络连接。
对于Router A所连接的6to4网络来说,为了能访问Router B所连接的IPv6网络,需要在Router A上配置一条静态路由,其下一跳指向6to4中继语音网关的Tunnel0的接口地址。
(1) 配置Router A
# 使能IPv6转发功能。
<RouterA> system-view
[RouterA] ipv6
# 配置接口GigabitEthernet0/0的地址。
[RouterA] interface gigabitethernet 0/0
[RouterA-GigabitEthernet0/0] ip address 2.1.1.1 255.255.255.0
[RouterA-GigabitEthernet0/0] quit
# 配置接口GigabitEthernet0/0的地址到Router B上接口GigabitEthernet0/0的路由(此处的静态路由下一跳地址以[nexthop]代替,真实组网时请配置实际的下一跳地址)。
[RouterA] ip route-static 6.1.1.1 24 [nexthop]
# 配置接口GigabitEthernet0/1的地址。
[RouterA] interface gigabitethernet 0/1
[RouterA-GigabitEthernet0/1] ipv6 address 2002:0201:0101:1::1/64
[RouterA-GigabitEthernet0/1] quit
# 配置6to4隧道。
[RouterA] interface tunnel 0
[RouterA-Tunnel0] ipv6 address 2002:0201:0101::1/64
[RouterA-Tunnel0] source gigabitethernet 0/0
[RouterA-Tunnel0] tunnel-protocol ipv6-ipv4 6to4
[RouterA-Tunnel0] quit
# 配置到目的地址2001::/16,下一跳为Tunnel接口的静态路由。
[RouterA] ipv6 route-static 2001:: 16 tunnel0
# 配置到纯IPv6网络的缺省路由。
[RouterA] ipv6 route-static :: 0 2001:0601:0101::1
(2) 配置Router B
# 使能IPv6转发功能。
<RouterB> system-view
[RouterB] ipv6
# 配置接口GigabitEthernet0/0的地址。
[RouterB] interface gigabitethernet 0/0
[RouterB-GigabitEthernet0/0] ip address 6.1.1.1 255.255.255.0
[RouterB-GigabitEthernet0/0] quit
# 配置接口GigabitEthernet0/0的地址到Router A上接口GigabitEthernet0/0的路由(此处的静态路由下一跳地址以[nexthop]代替,真实组网时请配置实际的下一跳地址)。
[RouterB] ip route-static 2.1.1.1 24 [nexthop]
# 配置接口GigabitEthernet0/1的地址。
[RouterB] interface gigabitethernet 0/1
[RouterB-GigabitEthernet0/1] ipv6 address 2001::1/16
[RouterB-GigabitEthernet0/1] quit
# 配置6to4隧道。
[RouterB] interface tunnel 0
[RouterB-Tunnel0] ipv6 address 2001:0601:0101::1/64
[RouterB-Tunnel0] source gigabitethernet 0/0
[RouterB-Tunnel0] tunnel-protocol ipv6-ipv4 6to4
[RouterB-Tunnel0] quit
# 配置到目的地址2002::/16,下一跳为Tunnel接口的静态路由。
[RouterA] ipv6 route-static 2002:: 16 tunnel0
完成以上配置之后,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
设备上的接口(如VLAN接口,GigabitEthernet接口,Loopback接口等)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
操作 |
命令 |
说明 |
|
进入系统视图 |
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 |
|||
配置为ISATAP隧道模式 |
tunnel-protocol ipv6-ipv4 isatap |
必选 缺省情况下,为GRE隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
|
设置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有设置源端地址和接口 |
|
设置隧道接口发送IPv6报文的MTU值 |
ipv6 mtu mtu-size |
可选 不同型号的设备支持的缺省情况不同,请以设备的实际情况为准 |
& 说明:
隧道接口发送IPv6报文的MTU值的相关配置可参考“IP业务分册/IPv6基础配置命令”中的ipv6 mtu。
注意:
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,也可以配置动态路由。在Tunnel的两端都要进行此项配置,配置的详细情况请参见“IP路由分册”中的“静态路由配置”或其他路由协议配置,配置命令的详细解释请参见相应的命令手册。
l 对于自动隧道,使用同种封装协议的Tunnel接口不能同时配置完全相同的源地址。
l 对于自动隧道,不支持动态路由。
l 配置静态路由时,需要手动配置到达目的地址(不是隧道的终点IPv4地址,而是封装前报文的目的IPv6地址)的路由,并将下一跳配置为隧道本端的Tunnel接口号或者网络地址。在隧道的两端都要进行此项配置。
IPv6 Host分别位于纯IPv6网络和IPv4网络中,两个网络通过语音网关相连,要求将IPv4网络中的IPv6主机通过ISATAP隧道接入到IPv6网络。
下面的例子在语音网关与ISATAP主机上配置了ISATAP隧道,允许把单独的ISATAP主机接入到IPv6网络中。
(1) 配置Router
# 使能IPv6转发功能。
<Router> system-view
[Router] ipv6
# 配置各接口地址。
[Router] interface gigabitethernet 0/0
[Router-GigabitEthernet0/0] ipv6 address 3001::1/64
[Router-GigabitEthernet0/0] quit
[Router] interface gigabitethernet 0/1
[Router-GigabitEthernet0/1] ip address 2.1.1.1 255.0.0.0
[Router-GigabitEthernet0/1] quit
# 配置ISATAP隧道。
[Router] interface tunnel 10
[Router-Tunnel0] ipv6 address 2001::1/64 eui-64
[Router-Tunnel0] source gigabitethernet 0/1
[Router-Tunnel0] tunnel-protocol ipv6-ipv4 isatap
# 取消对RA消息发布的抑制,使主机可以通过语音网关发布的RA消息获取地址前缀等信息。
[Router-Tunnel0] undo ipv6 nd ra halt
(2) 配置ISATAP主机
ISATAP主机上的具体配置与主机的操作系统有关,下面仅以Windows XP操作系统为例进行说明。
# 在Windows XP上,ISATAP接口通常为接口2,只要在该接口上配置ISATAP语音网关的IPv4地址即可完成主机侧的配置。先看看这个ISATAP接口的信息:
C:\>ipv6 if 2
Interface 2: Automatic Tunneling Pseudo-Interface
{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
# 它自动生成了一个ISATAP格式的link-local地址(fe80::5efe:2.1.1.2)。我们需要设置这个接口上的ISATAP语音网关的IPv4地址:
C:\>ipv6 rlu 2 2.1.1.1
# 只需要这么一个命令,这就完成了主机的配置,我们再来看看这个ISATAP接口的信息:
C:\>ipv6 if 2
Interface 2: Automatic Tunneling Pseudo-Interface
{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: 2.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
# 对比前后的区别,我们可以看到主机获取了2001::/64的前缀,自动生成地址2001::5efe:2.1.1.2,同时还会发现这么一行“uses Router Discovery”表明主机启用了语音网关发现,这时ping一下语音网关上隧道接口的IPv6地址,可以ping通,这时候表明ISATAP隧道已经成功建立。
完成以上配置之后,ISATAP主机就可访问IPv6网络中的主机。
设备上的接口(如VLAN接口,GigabitEthernet接口,Loopback接口等)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Tunnel接口并进入Tunnel接口视图 |
interface tunnel number |
必选 缺省情况下,设备上无Tunnel接口 |
设置Tunnel接口的IPv4地址 |
ip address ip-address { mask | mask-length } [ sub ] |
必选 缺省情况下,Tunnel接口上没有设置IPv4地址 |
配置隧道模式 |
tunnel-protocol ipv4-ipv4 |
可选 缺省情况下,采用GRE隧道模式 在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败 |
设置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有设置源端地址和接口 |
设置Tunnel接口的目的端地址 |
destination ip-address |
必选 缺省情况下,Tunnel接口上没有设置目的端地址 |
设置隧道接口发送IPv6报文的MTU值 |
ipv6 mtu mtu-size |
可选 不同型号的设备支持的缺省情况不同,请以设备的实际情况为准 |
注意:
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,也可以配置动态路由。在Tunnel的两端都要进行此项配置,配置的详细情况请参见“IP路由分册”中的“静态路由配置”或其他路由协议配置。
l 对两个或两个以上使用同种封装协议的Tunnel接口,不能同时配置完全相同的源地址和目的地址。
l 配置Tunnel接口的源端地址时,若采用配置源接口形式,则Tunnel的源地址取的是源接口的主IP地址。
l 配置动态路由时,需要在隧道两端的Tunnel接口使能动态路由协议。在隧道的两端都要进行此项配置。相关配置请见“IP路由分册”中的相关内容。
运行IP协议的两个子网Group 1和Group 2,通过在语音网关Router A和语音网关Router B之间使用三层隧道协议IPv4 over IPv4实现互联。
(1) 配置Router A
# 配置接口GigabitEthernet0/0。
<RouterA> system-view
[RouterA] interface gigabitethernet 0/0
[RouterA-GigabitEthernet0/0] ip address 10.1.1.1 255.255.255.0
[RouterA-GigabitEthernet0/0] quit
# 配置接口GigabitEthernet0/0(隧道的实际物理接口)。
[RouterA] interface serial 2/0
[RouterA-GigabitEthernet0/0] ip address 2.1.1.1 255.255.255.0
[RouterA-GigabitEthernet0/0] quit
# 创建Tunnel1接口。
[RouterA] interface tunnel 1
# 配置Tunnel1接口的IP地址。
[RouterA-Tunnel1] ip address 10.1.2.1 255.255.255.0
# 配置Tunnel封装模式。
[RouterA-Tunnel1] tunnel-protocol ipv4-ipv4
# 配置Tunnel1接口的源地址(GigabitEthernet0/0的IP地址)。
[RouterA-Tunnel1] source 2.1.1.1
# 配置Tunnel1接口的目的地址(RouterB的GigabitEthernet0/1的IP地址)。
[RouterA-Tunnel1] destination 3.1.1.1
[RouterA-Tunnel1] quit
# 配置从Router A经过Tunnel1接口到Group 2的静态路由。
[RouterA] ip route-static 10.1.3.0 255.255.255.0 tunnel 1
(2) 配置Router B
# 配置接口GigabitEthernet0/0。
<RouterB> system-view
[RouterB] interface gigabitethernet 0/0
[RouterB-GigabitEthernet0/0] ip address 10.1.3.1 255.255.255.0
[RouterB-GigabitEthernet0/0] quit
# 配置接口GigabitEthernet0/1(隧道的实际物理接口)。
[RouterB] interface serial 2/1
[RouterB-GigabitEthernet0/1] ip address 3.1.1.1 255.255.255.0
[RouterB-GigabitEthernet0/1] quit
# 创建Tunnel2接口。
[RouterB] interface tunnel 2
# 配置Tunnel2接口的IP地址。
[RouterB-Tunnel2] ip address 10.1.2.2 255.255.255.0
# 配置Tunnel封装模式。
[RouterB-Tunnel2] tunnel-protocol ipv4-ipv4
# 配置Tunnel2接口的源地址(GigabitEthernet0/1的IP地址)。
[RouterB-Tunnel2] source 3.1.1.1
# 配置Tunnel2接口的目的地址(Router A的GigabitEthernet0/0的IP地址)。
[RouterB-Tunnel2] destination 2.1.1.1
[RouterB-Tunnel2] quit
# 配置从Router B经过Tunnel2接口到Group 1的静态路由。
[RouterB] ip route-static 10.1.1.0 255.255.255.0 tunnel 2
完成以上配置之后,分别查看Router A和Router B的Tunnel接口状态如下:
<RouterA> display interface tunnel 1
Tunnel1 current state: UP
Line protocol current state: UP
Description: Tunnel1 Interface
The Maximum Transmit Unit is 64000
Internet Address is 10.1.2.1/24 Primary
Encapsulation is TUNNEL, aggregation ID not set
Tunnel source 2.1.1.1, destination 3.1.1.1
Tunnel protocol/transport IP/IP
Last 300 seconds input: 0 bytes/sec, 0 packets/sec
Last 300 seconds output: 0 bytes/sec, 0 packets/sec
0 packets input, 0 bytes
0 input error
0 packets output, 0 bytes
0 output error
<RouterB> display interface tunnel 2
Tunnel2 current state: UP
Line protocol current state: UP
Description: Tunnel2 Interface
The Maximum Transmit Unit is 64000
Internet Address is 10.1.2.2/24 Primary
Encapsulation is TUNNEL, aggregation ID not set
Tunnel source 3.1.1.1, destination 2.1.1.1
Tunnel protocol/transport IP/IP
Last 300 seconds input: 0 bytes/sec, 0 packets/sec
Last 300 seconds output: 0 bytes/sec, 0 packets/sec
0 packets input, 0 bytes
0 input error
0 packets output, 0 bytes
0 output error
# 从Router A可以Ping通对端的GigabitEthernet0/0接口的IPv4地址:
[RouterA] ping 10.1.3.1
PING 10.1.3.1: 56 data bytes, press CTRL_C to break
Reply from 10.1.3.1: bytes=56 Sequence=1 ttl=255 time=15 ms
Reply from 10.1.3.1: bytes=56 Sequence=2 ttl=255 time=15 ms
Reply from 10.1.3.1: bytes=56 Sequence=3 ttl=255 time=16 ms
Reply from 10.1.3.1: bytes=56 Sequence=4 ttl=255 time=16 ms
Reply from 10.1.3.1: bytes=56 Sequence=5 ttl=255 time=15 ms
--- 10.1.3.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 15/15/16 ms
设备上的接口(如VLAN接口,GigabitEthernet接口,Loopback接口等)已经配置IPv6地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能IPv6报文转发功能 |
ipv6 |
必选 缺省情况下,关闭IPv6报文转发功能 |
创建Tunnel接口并进入Tunnel接口视图 |
interface tunnel number |
必选 缺省情况下,设备上无Tunnel接口 |
设置Tunnel接口的IPv4地址 |
ip address ip-address { mask | mask-length } [ sub ] |
必选 缺省情况下,Tunnel接口上没有设置IPv4地址 |
配置隧道模式 |
tunnel-protocol ipv4-ipv6 |
可选 缺省情况下,采用GRE隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
设置Tunnel接口的源端地址或接口 |
source { ipv6-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有设置源端地址和接口 |
设置Tunnel接口的目的端地址 |
destination ipv6-address |
必选 缺省情况下,Tunnel接口上没有设置目的端地址 |
设置隧道接口发送IPv6报文的MTU值 |
ipv6 mtu mtu-size |
可选 不同型号的设备支持的缺省情况不同,请以设备的实际情况为准 |
& 说明:
隧道接口发送IPv6报文的MTU值的相关配置可参考“IP业务分册/IPv6基础配置命令”中的ipv6 mtu。
注意:
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,也可以配置动态路由。在Tunnel的两端都要进行此项配置,配置的详细情况请参见“IP路由分册”中的“静态路由配置”或其他路由协议配置。
l 对两个或两个以上使用同种封装协议的Tunnel接口,不能同时配置完全相同的源地址和目的地址。
l 配置Tunnel接口的源端地址时,若采用配置源接口形式,则Tunnel的源地址取的是源接口的主IP地址。
l 配置动态路由时,需要在隧道两端的Tunnel接口使能动态路由协议。在隧道的两端都要进行此项配置。相关配置请见“IP路由分册”中的相关内容。
运行IP协议的两个子网Group 1和Group 2,通过在语音网关Router A和语音网关Router B之间使用IPv4 over Ipv6隧道,穿越IPv6网络实现互联。
(1) 配置Router A
# 使能IPv6转发功能。
<RouterA> system-view
[RouterA] ipv6
# 配置接口GigabitEthernet0/0。
[RouterA] interface gigabitethernet 0/0
[RouterA-GigabitEthernet0/0] ip address 30.1.1.1 255.255.255.0
[RouterA-GigabitEthernet0/0] quit
# 配置接口GigabitEthernet0/0(隧道的实际物理接口)。
[RouterA] interface serial 2/0
[RouterA-GigabitEthernet0/0] ipv6 address 2002::1:1 64
[RouterA-GigabitEthernet0/0] quit
# 创建Tunnel1接口。
[RouterA] interface tunnel 1
# 配置Tunnel1接口的IP地址。
[RouterA-Tunnel1] ip address 30.1.2.1 255.255.255.0
# 配置Tunnel封装模式。
[RouterA-Tunnel1] tunnel-protocol ipv4-ipv6
# 配置Tunnel1接口的源地址(GigabitEthernet0/0的IP地址)。
[RouterA-Tunnel1] source 2002::1:1
# 配置Tunnel1接口的目的地址(Router B的GigabitEthernet0/1的IP地址) 。
[RouterA-Tunnel1] destination 2002::2:1
[RouterA-Tunnel1] quit
# 配置从Router A经过Tunnel1接口到Group 2的静态路由。
[RouterA] ip route-static 30.1.3.0 255.255.255.0 tunnel 1
(2) 配置Router B
# 使能IPv6转发功能。
<RouterB> system-view
[RouterB] ipv6
# 配置接口GigabitEthernet0/0。
[RouterB] interface gigabitethernet 0/0
[RouterB-GigabitEthernet0/0] ip address 30.1.3.1 255.255.255.0
[RouterB-GigabitEthernet0/0] quit
# 配置接口GigabitEthernet0/1(隧道的实际物理接口)。
[RouterB] interface serial 2/1
[RouterB-GigabitEthernet0/1] ipv6 address 2002::2:1 64
[RouterB-GigabitEthernet0/1] quit
# 创建Tunnel2接口。
[RouterB] interface tunnel 2
# 配置Tunnel2接口的IP地址。
[RouterB-Tunnel2] ip address 30.1.2.2 255.255.255.0
# 配置Tunnel封装模式。
[RouterB-Tunnel2] tunnel-protocol ipv4-ipv6
# 配置Tunnel2接口的源地址(GigabitEthernet0/1的IP地址)。
[RouterB-Tunnel2] source 2002::2:1
# 配置Tunnel2接口的目的地址(Router A的GigabitEthernet0/0的IP地址)。
[RouterB-Tunnel2] destination 2002::1:1
[RouterB-Tunnel2] quit
# 配置从Router B经过Tunnel2接口到Group 1的静态路由。
[RouterB] ip route-static 30.1.1.0 255.255.255.0 tunnel 2
完成以上配置之后,分别查看Router A和Router B的Tunnel接口状态如下:
<RouterA> display interface tunnel 1
Tunnel1 current state: UP
Line protocol current state: UP
Description: Tunnel1 Interface
The Maximum Transmit Unit is 64000
Internet Address is 30.1.2.1/24 Primary
Encapsulation is TUNNEL, aggregation ID not set
Tunnel source 2002::0001:0001, destination 2002::0002:0001
Tunnel encapsulation-limit is disable
Tunnel protocol/transport IP/IPv6
Last 300 seconds input: 0 bytes/sec, 0 packets/sec
Last 300 seconds output: 0 bytes/sec, 0 packets/sec
0 packets input, 0 bytes
0 input error
0 packets output, 0 bytes
0 output error
<RouterB> display interface tunnel 2
Tunnel2 current state: UP
Line protocol current state: UP
Description: Tunnel2 Interface
The Maximum Transmit Unit is 64000
Internet Address is 30.1.2.2/24 Primary
Encapsulation is TUNNEL, aggregation ID not set
Tunnel source 2002::0002:0001, destination 2002::0001:0001
Tunnel encapsulation-limit is disable
Tunnel protocol/transport IP/IPv6
Last 300 seconds input: 0 bytes/sec, 0 packets/sec
Last 300 seconds output: 0 bytes/sec, 0 packets/sec
0 packets input, 0 bytes
0 input error
0 packets output, 0 bytes
0 output error
# 从Router A可以Ping通对端的GigabitEthernet0/0接口的IPv4地址:
[RouterA] ping 30.1.3.1
PING 30.1.3.1: 56 data bytes, press CTRL_C to break
Reply from 30.1.3.1: bytes=56 Sequence=1 ttl=255 time=46 ms
Reply from 30.1.3.1: bytes=56 Sequence=2 ttl=255 time=15 ms
Reply from 30.1.3.1: bytes=56 Sequence=3 ttl=255 time=16 ms
Reply from 30.1.3.1: bytes=56 Sequence=4 ttl=255 time=15 ms
Reply from 30.1.3.1: bytes=56 Sequence=5 ttl=255 time=16 ms
--- 30.1.3.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 15/21/46 ms
设备上的接口(如VLAN接口,GigabitEthernet接口,Loopback接口等)已经配置IPv6地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
操作 |
命令 |
说明 |
|
进入系统视图 |
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 address ipv6-address link-local |
|||
配置隧道模式 |
tunnel-protocol ipv6-ipv6 |
可选 缺省情况下,采用GRE隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
|
设置Tunnel接口的源端地址或接口 |
source { ipv6-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有设置源端地址和接口 |
|
设置Tunnel接口的目的端地址 |
destination ipv6-address |
必选 缺省情况下,Tunnel接口上没有设置目的端地址 |
|
设置隧道允许的最大嵌套封装次数 |
encapsulation-limit [ number ] |
可选 缺省情况下系统没有配置封装次数的限制,不带参数时number的值缺省为4 |
|
设置隧道接口发送IPv6报文的MTU值 |
ipv6 mtu mtu-size |
可选 不同型号的设备支持的缺省情况不同,请以设备的实际情况为准 |
注意:
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,也可以配置动态路由。在Tunnel的两端都要进行此项配置,配置的详细情况请参见“IP路由分册”中的“静态路由配置”或其他路由协议配置。
l 对两个或两个以上使用同种封装协议的Tunnel接口,不能同时配置完全相同的源地址和目的地址。
l 配置Tunnel接口的源端地址时,若采用配置源接口形式,则Tunnel的源地址取的是源接口的主IP地址。
l 配置动态路由时,需要在隧道两端的Tunnel接口使能动态路由协议。在隧道的两端都要进行此项配置。相关配置请见“IP路由分册”中的相关内容。
l 只有IPv6 in IPv6隧道有最大嵌套封装次数限制。
运行IPv6协议的两个子网Group 1和Group 2,通过在语音网关Router A和语音网关Router B之间使用三层隧道协议IPv6 over IPv6实现互联。
(1) 配置Router A
# 使能IPv6转发功能。
<RouterA> system-view
[RouterA] ipv6
# 配置接口GigabitEthernet0/0。
[RouterA] interface gigabitethernet 0/0
[RouterA-GigabitEthernet0/0] ipv6 address 2002:1::1 64
[RouterA-GigabitEthernet0/0] quit
# 配置接口GigabitEthernet0/0(隧道的实际物理接口)。
[RouterA] interface serial 2/0
[RouterA-GigabitEthernet0/0] ipv6 address 2002::11:1 64
[RouterA-GigabitEthernet0/0] quit
# 创建Tunnel1接口。
[RouterA] interface tunnel 1
# 配置Tunnel1接口的IP地址。
[RouterA-Tunnel1] ipv6 address 2002:2::1 64
# 配置Tunnel封装模式。
[RouterA-Tunnel1] tunnel-protocol ipv6-ipv6
# 配置Tunnel1接口的源地址(GigabitEthernet0/0的IP地址)。
[RouterA-Tunnel1] source 2002::11:1
# 配置Tunnel1接口的目的地址(Router B的GigabitEthernet0/1的IP地址)。
[RouterA-Tunnel1] destination 2002::22:1
[RouterA-Tunnel1] quit
# 配置从Router A经过Tunnel1接口到Group 2的静态路由。
[RouterA] ipv6 route-static 2002:3:: 64 tunnel 1
(2) 配置Router B
# 使能IPv6转发功能。
<RouterB> system-view
[RouterB] ipv6
# 配置接口GigabitEthernet0/0。
[RouterB] interface gigabitethernet 0/0
[RouterB-GigabitEthernet0/0] ipv6 address 2002:3::1 64
[RouterB-GigabitEthernet0/0] quit
# 配置接口GigabitEthernet0/1(隧道的实际物理接口)。
[RouterB] interface serial 2/1
[RouterB-GigabitEthernet0/1] ipv6 address 2002::22:1 64
[RouterB-GigabitEthernet0/1] quit
# 创建Tunnel2接口。
[RouterB] interface tunnel 2
# 配置Tunnel2接口的IP地址。
[RouterB-Tunnel2] ipv6 address 2002:2::2 64
# 配置Tunnel封装模式。
[RouterB-Tunnel2] tunnel-protocol ipv6-ipv6
# 配置Tunnel2接口的源地址(GigabitEthernet0/1的IP地址)。
[RouterB-Tunnel2] source 2002::22:1
# 配置Tunnel2接口的目的地址(Router A的GigabitEthernet0/0的IP地址)。
[RouterB-Tunnel2] destination 2002::11:1
[RouterB-Tunnel2] quit
# 配置从Router B经过Tunnel2接口到Group 1的静态路由。
[RouterB] ipv6 route-static 2002:1:: 64 tunnel 2
完成以上配置之后,分别查看Router A和Router B的Tunnel接口状态如下:
<RouterA> display ipv6 interface tunnel 1
Tunnel1 current state :UP
Line protocol current state :UP
IPv6 is enabled, link-local address is FE80::100:1320
Global unicast address(es):
2002:2::1, subnet is 2002:2::/64
Joined group address(es):
FF02::1:FF00:1320
FF02::1:FF00:1
FF02::2
FF02::1
MTU is 1500 bytes
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
<RouterB> display ipv6 interface tunnel 2
Tunnel2 current state :UP
Line protocol current state :UP
IPv6 is enabled, link-local address is FE80::100:2420
Global unicast address(es):
2002:2::2, subnet is 2002:2::/64
Joined group address(es):
FF02::1:FF00:2420
FF02::1:FF00:2
FF02::2
FF02::1
MTU is 1500 bytes
ND reachable time is 30000 milliseconds
ND retransmit interval is 1000 milliseconds
Hosts use stateless autoconfig for addresses
# 从Router A可以Ping通对端的GigabitEthernet0/0接口的IPv6地址:
<RouterA> ping ipv6 2002:3::1
PING 2002:3::1 : 56 data bytes, press CTRL_C to break
Reply from 2002:3::1
bytes=56 Sequence=1 hop limit=64 time = 31 ms
Reply from 2002:3::1
bytes=56 Sequence=2 hop limit=64 time = 1 ms
Reply from 2002:3::1
bytes=56 Sequence=3 hop limit=64 time = 16 ms
Reply from 2002:3::1
bytes=56 Sequence=4 hop limit=64 time = 16 ms
Reply from 2002:3::1
bytes=56 Sequence=5 hop limit=64 time = 31 ms
--- 2002:3::1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/19/31 ms
在完成上述配置后,在任意视图下执行display命令可以显示IPv6隧道配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行refresh和reset命令可以对6PE连接进行复位操作。
操作 |
命令 |
显示指定Tunnel接口的相关信息 |
display interface tunnel [ number ] |
显示指定Tunnel接口的IPv6相关信息 |
display ipv6 interface tunnel number |
显示BGP 6PE对等体的详细信息 |
display bgp ipv6 peer ip-address verbose |
显示向指定的BGP对等体发送或者从BGP对等体收到的路由信息 |
display bgp ipv6 routing-table peer ip-address { advertised-routes | received-routes } [ network-address prefix-length | statistic ] |
手工对BGP 6PE连接进行软复位 |
refresh bgp ipv6 ip-address { export | import } |
复位指定的BGP 6PE连接 |
reset bgp ipv6 ip-address |
& 说明:
BGP的相关内容请参见“IP路由分册”中的“BGP命令”和“BGP4+命令”。
故障现象:在Tunnel接口上配置了相关的参数后(例如隧道的起点、终点地址和隧道模式)仍未处于up状态。
故障排除:可以按照如下步骤进行。
(1) Tunnel接口未处于up状态的最常见原因是隧道起点的物理接口没有处于up状态。使用display interface tunnel和display ipv6 interface tunnel命令查看隧道起点的物理接口状态为up还是down。如果隧道状态是down的,可以通过用户视图下的 debugging tunnel event 调试命令查看隧道down的原因。
(2) Tunnel接口未处于up状态的另一个可能的原因是隧道的终点地址不可达。使用display ipv6 routing-table和display ip routing-table命令查看是否终点地址通过路由可达。如果路由表中没有保证隧道通讯的路由项,请配置相关路由。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!