国家 / 地区

06-三层技术-IP业务配置指导

10-隧道配置

本章节下载  (665.88 KB)

docurl=/cn/Service/Document_Software/Document_Center/Routers/Catalog/MSR/MSR_50/Configure/Operation_Manual/H3C_MSR_CG(V5)-R2516-V1.16/06/201807/1094084_30005_0.htm

10-隧道配置


1 隧道

1.1  隧道概述

隧道技术是一种封装技术,它利用一种网络协议来传输另一种网络协议,即一种网络协议将其他网络协议的数据报文封装在自己的报文中,然后在网络中传输。封装后的数据报文在网络中传输的路径,称为隧道。隧道是一条虚拟的点对点连接,隧道的两端需要对数据报文进行封装及解封装。隧道技术就是指包括数据封装、传输和解封装在内的全过程。

隧道技术可以:

·     作为过渡技术,实现IPv4和IPv6网络互通,如IPv6 over IPv4隧道技术。

·     创建VPN(Virtual Private Network,虚拟专用网络),保证通信的安全性,如IPv4 over IPv4隧道、IPv4/IPv6 over IPv6隧道、GRE(Generic Routing Encapsulation,通用路由封装)、DVPN(Dynamic Virtual Private Network,动态虚拟专用网络)和IPsec隧道技术。

·     实现流量工程,避免由于负载不均衡导致网络拥塞,如MPLS TE(Multiprotocol Label Switching Traffic Engineering,多协议标记交换流量工程)。

本文只介绍IPv6 over IPv4隧道、IPv4 over IPv4隧道、IPv4 over IPv6隧道和IPv6 over IPv6隧道。如无特殊说明,下文中的隧道技术均指此类隧道。

说明

·     GRE的相关介绍和配置请参见“三层技术-IP业务配置指导”中的“GRE”。

·     DVPN的相关介绍和配置请参见“三层技术-IP业务配置指导”中的“DVPN”。

·     IPsec的相关介绍和配置请参见“安全配置指导”中的“IPsec”。

·     MPLS TE的相关介绍和配置请参见“MPLS配置指导”中的“MPLS TE”。

 

1.1.1  IPv6 over IPv4隧道

1. IPv6 over IPv4隧道原理

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隧道对报文的处理过程如下:

(1)     IPv6网络中的设备发送IPv6报文,该报文到达隧道的源端设备Device A。

(2)     Device A根据路由表判定该报文要通过隧道进行转发后,在IPv6报文前封装上IPv4的报文头,通过隧道的实际物理接口将报文转发出去。

(3)     封装报文通过隧道到达隧道目的端设备Device B,Device B判断该封装报文的目的地是本设备后,将对报文进行解封装。

(4)     Device B根据解封装后的IPv6报文的目的地址转发该IPv6报文。如果目的地就是本设备,则将IPv6报文转给上层协议处理。

2. IPv6 over IPv4隧道模式

根据隧道终点的IPv4地址的获取方式不同,隧道分为“配置隧道”和“自动隧道”。

·     如果IPv6 over IPv4隧道的终点地址不能从IPv6报文的目的地址中自动获取,需要进行手工配置,这样的隧道称为“配置隧道”。

·     如果IPv6 over IPv4隧道的终点地址采用内嵌IPv4地址的特殊IPv6地址形式,则可以从IPv6报文的目的地址中自动获取隧道终点的IPv4地址,这样的隧道称为“自动隧道”。

表1-1所示,根据对IPv6报文的封装方式的不同,IPv6 over IPv4隧道分为以下几种模式。表1-1中还列举了各隧道模式的关键配置参数。

表1-1 IPv6 over IPv4隧道模式

隧道类型

隧道模式

隧道源/目的地址

隧道接口地址

配置隧道

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)     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隧道

·     普通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网络的边缘路由器Device A上配置一条静态路由,下一跳地址指向6to4中继路由器Device C的6to4地址,这样,所有去往IPv6网络的报文都会被转发到6to4中继路由器,之后再由6to4中继路由器转发到IPv6网络中,从而实现6to4网络(地址前缀以2002开始)与IPv6网络的互通。

图1-2 6to4隧道和6to4中继原理图

 

(4)     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隧道原理图

 

1.1.2  IPv4 over IPv4 隧道

IPv4 over IPv4隧道(RFC 1853)是对IP数据报进行封装,使得一个IPv4网络的数据能够在另一个IPv4网络中传输。

图1-4 IPv4 over IPv4隧道原理图

 

报文在隧道中传输经过封装与解封装两个过程,以上图为例说明这两个过程:

·     封装过程

Device A连接IPv4主机所在子网的接口收到IP数据报后,首先交由IP协议栈处理。IP协议栈根据IP报头中的目的地址来确定如何转发此包。如果报文的目的地址为与Device B相连的IPv4主机的地址,则将此报文发给Device A上连接Device B的Tunnel接口。

Tunnel接口收到此包后,进行IPv4 over IPv4的封装,封装完成后重新交给IP协议栈处理,IP协议栈根据添加的IP报头确定出接口。

·     解封装过程

解封装过程和封装的过程相反。从网络接口收到的IP报文被送到IP协议栈。IP协议栈检查接收到的IP报文头中的协议号。如果协议号为4(表示封装的报文为IPv4报文),则将此IP数据包发送到隧道模块进行解封装处理。解封装之后的IP报文将重新被送到IP协议栈进行处理。

1.1.3  IPv4 over IPv6隧道

1. IPv4 over IPv6隧道原理

随着IPv6网络的广泛部署,IPv6网络将逐渐取代IPv4网络,占据主导地位。尚未被IPv6网络取代的IPv4网络将形成孤岛,需要通过IPv6网络互通。IPv4 over IPv6隧道用来实现通过IPv6网络连接隔离的IPv4网络孤岛。

IPv4 over IPv6隧道是在IPv4报文上封装IPv6的报文头,通过隧道使IPv4报文穿越IPv6网络,从而实现隔离的IPv4网络通过IPv6网络互通。

图1-5 IPv4 over IPv6隧道原理图

 

IPv4报文在隧道中传输经过封装与解封装两个过程,以图1-5为例说明这两个过程:

(1)     封装过程

Device A连接IPv4网络的接口收到IPv4报文后,首先交由IPv4协议栈处理。IPv4协议栈根据IPv4报头中的目的地址来确定如何转发此包。如果报文的目的地址为与Device B相连的IPv4主机的地址,则将此报文发给Device A上连接Device B的Tunnel接口。

Tunnel接口收到此报文后添加IPv6报文头,封装完成后交给IPv6模块处理。IPv6协议模块根据IPv6报文头的目的地址重新确定如何转发此数据包。

(2)     解封装流程

解封装过程和封装的过程相反。从连接IPv6网络的接口接收到IPv6报文后,将其送到IPv6协议模块。IPv6协议模块检查IPv6报文封装的协议类型。若封装的协议为IPv4,则报文进入隧道处理模块进行解封装处理。解封装之后的IPv4报文被送往IPv4协议模块进行二次路由处理。

2. IPv4 over IPv6隧道模式

IPv4 over IPv6隧道分为以下几种模式:

(1)     IPv4 over IPv6手动隧道

IPv4 over IPv6手动隧道需要手动配置隧道的源和目的IPv6地址,以便根据配置的地址在IPv4报文上封装IPv6报文头,使报文能通过隧道穿越IPv6网络。IPv4 over IPv6手动隧道是一种点到点的虚拟链路。

(2)     DS-lite隧道

在IPv6完全取代IPv4之前,用户对IPv4业务的需求仍在不断增加。而IPv4地址几近枯竭,如何利用有限的IPv4地址空间满足日益增长的IPv4业务需求,成为亟待解决的问题。

DS-lite(Dual Stack Lite,轻量级双协议栈)技术可以用来解决上述问题。DS-lite技术综合了IPv4 over IPv6隧道技术和NAT(Network Address Translation,网络地址转换)技术,利用隧道技术实现通过IPv6网络连接隔离的IPv4网络,利用NAT技术实现不同的用户网络共享相同的IPv4地址空间,减缓IPv4地址的耗尽速度。

图1-6 DS-lite组网图

 

图1-6所示,DS-lite网络主要由几个部分组成:

·     CPE(Customer Premises Equipment,用户侧设备):位于用户网络侧、用来连接ISP(Internet Service Provider,互联网服务提供商)网络的设备,通常为用户网络的网关。CPE作为IPv4 over IPv6隧道的端点,负责将用户网络的IPv4报文封装成IPv6报文发送给隧道的另一个端点,同时将从隧道接收到的IPv6报文解封装成IPv4报文发送给用户网络。某些用户网络的主机本身也可以作为CPE,直接连接到ISP网络,这样的主机称为DS-lite主机。

·     AFTR(Address Family Transition Router,地址族转换路由器):ISP网络中的设备。AFTR同时作为IPv4 over IPv6隧道端点和NAT网关设备。AFTR负责将解封装后的用户网络报文的源IPv4地址(私网地址)转换为公网地址,并将转换后的报文发送给目的IPv4主机;同时负责将目的IPv4主机返回的应答报文的目的IPv4地址(公网地址)转换为对应的私网地址,并将转换后的报文封装成IPv6报文通过隧道发送给CPE。AFTR进行NAT转换时,同时记录NAT映射关系和IPv4 over IPv6隧道对端设备(即CPE)的IPv6地址,从而实现不同CPE连接的用户网络地址可以重叠。

·     DS-lite隧道:CPE和AFTR之间的IPv4 over IPv6隧道,用来实现IPv4报文跨越IPv6网络传输。

图1-7 DS-lite报文转发流程

 

采用独立的网关设备作为CPE时,报文转发过程中源和目的IP地址、源和目的端口号的变化如图1-7所示。报文转发过程的关键步骤为:

·     CPE和AFTR对报文进行封装和解封装。

·     AFTR对IPv4报文进行NAT转换。

用户网络主机作为CPE时,报文转发过程与此类似,此处不再赘述。

说明

·     NAT不仅支持基本地址转换,即私网地址和公网地址之间的转换,还支持NAPT(Network Address Port Translation,网络地址端口转换),即“私网地址+端口号”和“公网地址+端口号”之间的转换。图1-7所示的NAT转换为NAPT。NAT的详细介绍,请参见“三层技术-IP业务配置指导”中的“NAT”。

·     DS-lite隧道只支持用户网络内的IPv4主机主动访问Internet上的IPv4主机;Internet上的IPv4主机不能主动访问用户网络内的IPv4主机。

 

1.1.4  IPv6 over IPv6隧道

IPv6 over IPv6隧道(RFC 2473)是对IPv6数据报进行封装,使这些被封装的数据报能够在另一个IPv6网络中传输,封装后的数据报文即IPv6隧道报文。

图1-8 IPv6 over IPv6隧道原理图

 

IPv6报文在隧道中传输经过封装与解封装两个过程,以图1-8为例说明这两个过程:

·     封装过程

Device A连接网络A的接口收到IPv6报文后,首先交由IPv6协议模块处理,并确定如何转发此报文。若此报文的目的地址为与Device B相连的主机的地址,则将此报文发给Device A上连接Device B的Tunnel接口。

Tunnel口收到此报文后添加IPv6报文头,封装完成后交给IPv6模块处理。IPv6协议模块根据IPv6报文头的目的地址重新确定如何转发此报文。

·     解封装流程

解封装过程和封装的过程相反。从IPv6网络接口接收的报文被送到IPv6协议模块。IPv6协议模块检查IPv6报文封装的协议类型。若封装的协议为IPv6,则报文进入隧道处理模块进行解封装处理;解封装之后的报文被送往相应的协议模块进行二次路由处理。

1.1.5  协议规范

与隧道技术相关的协议规范有:

·     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)

1.2  隧道配置任务简介

表1-2 隧道配置任务简介

配置任务

说明

详细配置

配置Tunnel接口

必选

1.3 

配置IPv6 over IPv4隧道

配置IPv6手动隧道

根据组网情况,选择其一

1.4 

配置IPv4兼容IPv6自动隧道

1.5 

配置6to4隧道

1.6 

配置ISATAP隧道

1.7 

配置IPv4 over IPv4隧道

1.8 

配置IPv4 over IPv6隧道

配置IPv4 over IPv6手动隧道

1.9 

配置DS-lite隧道

1.10 

配置IPv6 over IPv6隧道

1.11 

 

1.3  配置Tunnel接口

隧道两端的设备上,需要创建虚拟的三层接口——Tunnel接口,以便隧道两端的设备利用隧道发送报文、识别并处理来自隧道的报文。

表1-3 配置Tunnel接口

配置步骤

命令

说明

进入系统视图

system-view

-

创建Tunnel接口,并进入Tunnel接口视图

interface tunnel number

必选

缺省情况下,设备上无Tunnel接口

配置接口描述信息

description text

可选

缺省情况下,接口描述信息为“该接口的接口名 Interface”

配置MTU值

配置Tunnel接口的IPv4 MTU值

mtu size

可选

根据Tunnel的类型选择其一

缺省情况为64000字节

配置Tunnel接口的IPv6 MTU值

ipv6 mtu size

配置Tunnel接口的带宽

tunnel bandwidth bandwidth-value

可选

缺省情况下,Tunnel接口的带宽为64kbps

设置接口的期望带宽

bandwidth bandwidth-value

可选

接口的期望带宽可以通过第三方软件查询MIB节点ifspeed的值来获取

期望带宽供网管监控接口带宽使用,不会对接口实际带宽造成影响

恢复当前接口的缺省配置

default

可选

关闭Tunnel接口

shutdown

可选

缺省情况下,接口处于开启状态

 

说明

·     ipv6 mtu命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IPv6基础”。

·     目前,通过tunnel bandwidth命令配置的Tunnel接口带宽只用于动态路由协议计算隧道所在路径的cost值,不会影响接口的实际带宽。建议根据报文实际出接口的带宽值设置Tunnel接口带宽。

 

1.4  配置IPv6手动隧道

1.4.1  配置准备

设备上存在已经配置IP地址、能够进行正常通讯的接口(如VLAN接口,Ethernet接口,Loopback接口等),该接口将作为Tunnel接口的源接口。

1.4.2  配置IPv6手动隧道

表1-4 配置IPv6手动隧道

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

缺省情况下,关闭IPv6报文转发功能

进入Tunnel接口视图

interface tunnel number

-

设置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

必选

在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败

设置Tunnel接口的源端地址或接口

source { ip-address | interface-type interface-number }

必选

缺省情况下,Tunnel接口上没有设置源端地址和接口

设置Tunnel接口的目的端地址

destination ip-address

必选

缺省情况下,Tunnel接口上没有设置目的端地址

退回系统视图

quit

-

配置丢弃含有IPv4兼容IPv6地址的IPv6报文

tunnel discard ipv4-compatible-packet

可选

缺省情况下,不会丢弃含有IPv4兼容IPv6地址的IPv6报文

 

说明

·     以上各项Tunnel接口下进行的功能特性配置,在删除Tunnel接口后,该接口上的所有配置也将被删除。

·     如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行此项配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”或其他路由协议配置。

 

1.4.3  配置举例

1. 组网需求

图1-9所示,两个IPv6网络分别通过Router A和Router B与IPv4网络连接,要求在Router A和Router B之间建立IPv6 over IPv4隧道,使两个IPv6网络可以互通。如果隧道终点的IPv4地址不能从IPv6报文的目的地址中自动获取,则需要配置IPv6手动隧道。

2. 组网图

图1-9 IPv6手动隧道组网图

 

3. 配置步骤

说明

在开始下面的配置之前,请确保Router A和Router B之间IPv4报文路由可达。

 

(1)     配置Router A

# 使能IPv6转发功能。

<RouterA> system-view

[RouterA] ipv6

# 配置接口Ethernet1/2的地址。

[RouterA] interface ethernet 1/2

[RouterA-Ethernet1/2] ip address 192.168.100.1 255.255.255.0

[RouterA-Ethernet1/2] quit

# 配置接口Ethernet1/1的IPv6地址。

[RouterA] interface ethernet 1/1

[RouterA-Ethernet1/1] ipv6 address 3002::1 64

[RouterA-Ethernet1/1] quit

# 配置手动隧道。

[RouterA] interface tunnel 0

[RouterA-Tunnel0] ipv6 address 3001::1/64

[RouterA-Tunnel0] source ethernet 1/2

[RouterA-Tunnel0] destination 192.168.50.1

[RouterA-Tunnel0] tunnel-protocol ipv6-ipv4

[RouterA-Tunnel0] quit

# 配置从Router A经过Tunnel0接口到Group 2的静态路由。

[RouterA] ipv6 route-static 3003:: 64 tunnel 0

(2)     配置Router B

# 使能IPv6转发功能。

<RouterB> system-view

[RouterB] ipv6

# 配置接口Ethernet1/2的地址。

[RouterB] interface ethernet 1/2

[RouterB-Ethernet1/2] ip address 192.168.50.1 255.255.255.0

[RouterB-Ethernet1/2] quit

# 配置接口Ethernet1/1的IPv6地址。

[RouterB] interface ethernet 1/1

[RouterB-Ethernet1/1] ipv6 address 3003::1 64

[RouterB-Ethernet1/1] quit

# 配置手动隧道。

[RouterB] interface tunnel 0

[RouterB-Tunnel0] ipv6 address 3001::2/64

[RouterB-Tunnel0] source ethernet 1/2

[RouterB-Tunnel0] destination 192.168.100.1

[RouterB-Tunnel0] tunnel-protocol ipv6-ipv4

[RouterB-Tunnel0] quit

# 配置从Router B经过Tunnel0接口到Group 1的静态路由。

[RouterB] ipv6 route-static 3002:: 64 tunnel 0

4. 验证配置结果

完成以上配置之后,分别查看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: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

……(略)

[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: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

……(略)

# 从Router A上可以Ping通对端的Ethernet1/1接口的IPv6地址:

[RouterA] 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

1.5  配置IPv4兼容IPv6自动隧道

1.5.1  配置准备

设备上存在已经配置IP地址、能够进行正常通讯的接口(如VLAN接口,Ethernet接口,Loopback接口等),该接口将作为Tunnel接口的源接口。

1.5.2  配置IPv4兼容IPv6自动隧道

表1-5 配置IPv4兼容IPv6自动隧道

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

缺省情况下,关闭IPv6报文转发功能

进入Tunnel接口视图

interface tunnel number

-

设置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

必选

在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败

设置Tunnel接口的源端地址或接口

source { ip-address | interface-type interface-number }

必选

缺省情况下,Tunnel接口上没有设置源端地址或接口

 

说明

·     IPv4兼容IPv6自动隧道不需要配置目的地址,因为隧道的目的地址可以通过IPv4兼容IPv6地址中嵌入的IPv4地址自动获得。

·     对于自动隧道,使用同种封装协议的Tunnel接口不能同时配置完全相同的源地址。

 

1.5.3  配置举例

1. 组网需求

图1-10所示,两台具有双协议栈的路由器Router A和Router B通过IPv4网络连接。在某些情况下,网络管理员希望建立IPv4兼容IPv6自动隧道,使得这两台设备能够通过IPv6协议互通。

2. 组网图

图1-10 IPv4兼容IPv6自动隧道组网图

 

3. 配置步骤

说明

在开始下面的配置之前,请确保Router A和Router B之间IPv4报文路由可达。

 

(1)     配置Router A

# 使能IPv6转发功能。

<RouterA> system-view

[RouterA] ipv6

# 配置接口Ethernet1/1的地址。

[RouterA] interface ethernet 1/1

[RouterA-Ethernet1/1] ip address 192.168.100.1 255.255.255.0

[RouterA-Ethernet1/1] quit

# 配置自动隧道。

[RouterA] interface tunnel 0

[RouterA-Tunnel0] ipv6 address ::192.168.100.1/96

[RouterA-Tunnel0] source ethernet 1/1

[RouterA-Tunnel0] tunnel-protocol ipv6-ipv4 auto-tunnel

(2)     配置Router B

# 使能IPv6转发功能。

<RouterB> system-view

[RouterB] ipv6

# 配置接口Ethernet1/1的地址。

[RouterB] interface ethernet 1/1

[RouterB-Ethernet1/1] ip address 192.168.50.1 255.255.255.0

[RouterB-Ethernet1/1] quit

# 配置自动隧道。

[RouterB] interface tunnel 0

[RouterB-Tunnel0] ipv6 address ::192.168.50.1/96

[RouterB-Tunnel0] source ethernet 1/1

[RouterB-Tunnel0] tunnel-protocol ipv6-ipv4 auto-tunnel

4. 验证配置结果

完成以上配置之后,分别查看Router A和Router B的Tunnel接口状态如下:

[RouterA-Tunnel0] 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

……(略)

[RouterB-Tunnel0] 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

……(略)

# 从Router A上可以Ping通对端的IPv4兼容IPv6地址:

[RouterA-Tunnel0] 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

1.6  配置6to4隧道

1.6.1  配置准备

设备上存在已经配置IP地址、能够进行正常通讯的接口(如VLAN接口,Ethernet接口,Loopback接口等),该接口将作为Tunnel接口的源接口。

1.6.2  配置6to4隧道

表1-6 配置6to4隧道

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

缺省情况下,关闭IPv6报文转发功能

进入Tunnel接口视图

interface tunnel number

-

设置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

必选

在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败

设置Tunnel接口的源端地址或接口

source { ip-address | interface-type interface-number }

必选

缺省情况下,Tunnel接口上没有设置源端地址和接口

退回系统视图

quit

-

配置丢弃含有IPv4兼容IPv6地址的IPv6报文

tunnel discard ipv4-compatible-packet

可选

缺省情况下,不会丢弃含有IPv4兼容IPv6地址的IPv6报文

 

说明

·     6to4隧道不需要配置目的地址,因为隧道的目的地址可以通过6to4 IPv6地址中嵌入的IPv4地址自动获得。

·     如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。对于自动隧道,用户只能配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址,不支持动态路由。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”。

·     对于自动隧道,使用同种封装协议的Tunnel接口不能同时配置完全相同的源地址。

 

1.6.3  配置6to4隧道举例

1. 组网需求

图1-11所示,两个6to4网络通过网络边缘6to4 router(Router A和Router B)与IPv4网络相连。在Router A和Router B之间建立6to4隧道,实现6to4网络中的主机Host A和Host B之间的互通。

2. 组网图

图1-11 6to4隧道组网图

 

3. 配置思路

为了实现6to4网络之间的互通,除了配置6to4隧道外,还需要为6to4网络内的主机及6to4 router配置6to4地址。

·     Router A上接口Ethernet1/2的IPv4地址为2.1.1.1/24,转换成IPv6地址后使用6to4前缀2002:0201:0101::/48。对此前缀进行子网划分,Tunnel0使用2002:0201:0101::/64子网,Ethernet1/1使用2002:0201:0101:1::/64子网。

·     Router B上接口Ethernet1/2的IPv4地址为5.1.1.1/24,转换成IPv6地址后使用6to4前缀2002:0501:0101::/48。对此前缀进行子网划分,Tunnel0使用2002:0501:0101::/64子网,Ethernet1/1使用2002:0501:0101:1::/64子网。

4. 配置步骤

说明

在开始下面的配置之前,请确保Router A和Router B之间IPv4报文路由可达。

 

(1)     配置Router A

# 使能IPv6转发功能。

<RouterA> system-view

[RouterA] ipv6

# 配置接口Ethernet1/2的地址。

[RouterA] interface ethernet 1/2

[RouterA-Ethernet1/2] ip address 2.1.1.1 24

[RouterA-Ethernet1/2] quit

# 配置接口Ethernet1/1的地址。

[RouterA] interface ethernet 1/1

[RouterA-Ethernet1/1] ipv6 address 2002:0201:0101:1::1/64

[RouterA-Ethernet1/1] quit

# 配置6to4隧道。

[RouterA] interface tunnel 0

[RouterA-Tunnel0] ipv6 address 2002:201:101::1/64

[RouterA-Tunnel0] source ethernet 1/2

[RouterA-Tunnel0] tunnel-protocol ipv6-ipv4 6to4

[RouterA-Tunnel0] quit

# 配置到目的地址2002::/16,下一跳为Tunnel接口的静态路由。

[RouterA] ipv6 route-static 2002:: 16 tunnel 0

(2)     配置Router B

# 使能IPv6转发功能。

<RouterB> system-view

[RouterB] ipv6

# 配置接口Ethernet1/2的地址。

[RouterB] interface ethernet 1/2

[RouterB-Ethernet1/2] ip address 5.1.1.1 24

[RouterB-Ethernet1/2] quit

# 配置接口Ethernet1/1的地址。

[RouterB] interface ethernet 1/1

[RouterB-Ethernet1/1] ipv6 address 2002:0501:0101:1::1/64

[RouterB-Ethernet1/1] quit

# 配置6to4隧道。

[RouterB] interface tunnel 0

[RouterB-Tunnel0] ipv6 address 2002:0501:0101::1/64

[RouterB-Tunnel0] source ethernet 1/2

[RouterB-Tunnel0] tunnel-protocol ipv6-ipv4 6to4

[RouterB-Tunnel0] quit

# 配置到目的地址2002::/16,下一跳为Tunnel接口的静态路由。

[RouterB] ipv6 route-static 2002:: 16 tunnel 0

5. 验证配置结果

完成以上配置之后,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

1.6.4  配置6to4中继举例

1. 组网需求

图1-12所示,Router A为6to4路由器,其IPv6侧的网络使用6to4地址。Router B作为6to4中继路由器,它和IPv6网络(2001::/16)相连。要求在Router A和Router B之间配置6to4隧道,使得6to4网络中的主机与IPv6网络中的主机互通。

2. 组网图

图1-12 6to4中继组网图

 

3. 配置步骤

说明

·     在开始下面的配置之前,请确保Router A和Router B之间IPv4报文路由可达。

·     6to4中继路由器的配置与6to4路由器的配置相同,但为实现6to4网络与IPv6网络的互通,需要在6to4路由器上配置到IPv6网络的路由。

 

(1)     配置Router A

# 使能IPv6转发功能。

<RouterA> system-view

[RouterA] ipv6

# 配置接口Ethernet1/2的地址。

[RouterA] interface ethernet 1/2

[RouterA-Ethernet1/2] ip address 2.1.1.1 255.255.255.0

[RouterA-Ethernet1/2] quit

# 配置接口Ethernet1/1的地址。

[RouterA] interface ethernet 1/1

[RouterA-Ethernet1/1] ipv6 address 2002:0201:0101:1::1/64

[RouterA-Ethernet1/1] quit

# 配置6to4隧道。

[RouterA] interface tunnel 0

[RouterA-Tunnel0] ipv6 address 2002:0201:0101::1/64

[RouterA-Tunnel0] source ethernet 1/2

[RouterA-Tunnel0] tunnel-protocol ipv6-ipv4 6to4

[RouterA-Tunnel0] quit

# 配置到6to4中继的静态路由。

[RouterA] ipv6 route-static 2002:0601:0101:: 64 tunnel 0

# 配置到纯IPv6网络的缺省路由。

[RouterA] ipv6 route-static :: 0 2002:0601:0101::1

(2)     配置Router B

# 使能IPv6转发功能。

<RouterB> system-view

[RouterB] ipv6

# 配置接口Ethernet1/2的地址。

[RouterB] interface ethernet 1/2

[RouterB-Ethernet1/2] ip address 6.1.1.1 255.255.255.0

[RouterB-Ethernet1/2] quit

# 配置接口Ethernet1/1的地址。

[RouterB] interface ethernet 1/1

[RouterB-Ethernet1/1] ipv6 address 2001::1/16

[RouterB-Ethernet1/1] quit

# 配置6to4隧道。

[RouterB] interface tunnel 0

[RouterB-Tunnel0] ipv6 address 2002:0601:0101::1/64

[RouterB-Tunnel0] source ethernet 1/2

[RouterB-Tunnel0] tunnel-protocol ipv6-ipv4 6to4

[RouterB-Tunnel0] quit

# 配置到目的地址2002::/16,下一跳为Tunnel接口的静态路由。

[RouterB] ipv6 route-static 2002:: 16 tunnel 0

4. 验证配置结果

完成以上配置之后,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

1.7  配置ISATAP隧道

1.7.1  配置准备

设备上存在已经配置IP地址、能够进行正常通讯的接口(如VLAN接口,Ethernet接口,Loopback接口等),该接口将作为Tunnel接口的源接口。

1.7.2  配置ISATAP隧道

表1-7 配置ISATAP隧道

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

缺省情况下,IPv6报文转发功能处于关闭状态

进入Tunnel接口视图

interface tunnel number

-

设置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

必选

在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败

设置Tunnel接口的源端地址或接口

source { ip-address | interface-type interface-number }

必选

缺省情况下,Tunnel接口上没有设置源端地址和接口

退回系统视图

quit

-

配置丢弃含有IPv4兼容IPv6地址的IPv6报文

tunnel discard ipv4-compatible-packet

可选

缺省情况下,不会丢弃含有IPv4兼容IPv6地址的IPv6报文

 

说明

·     ISATAP隧道不需要配置目的地址,因为隧道的目的地址可以通过ISATAP地址中嵌入的IPv4地址自动获得。

·     如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。对于自动隧道,用户只能配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址,不支持动态路由。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”。

·     对于自动隧道,使用同种封装协议的Tunnel接口不能同时配置完全相同的源地址。

 

1.7.3  配置举例

1. 组网需求

图1-13所示,IPv6网络和IPv4网络通过ISATAP路由器相连,在IPv4网络侧分布着一些IPv6主机。要求将IPv4网络中的IPv6主机通过ISATAP隧道接入到IPv6网络。

2. 组网图

图1-13 ISATAP隧道组网图

 

3. 配置步骤

说明

在开始下面的配置之前,请确保Router的Ethernet1/1和ISATAP host之间IPv4报文路由可达。

 

(1)     配置Router

# 使能IPv6转发功能。

<Router> system-view

[Router] ipv6

# 配置各接口地址。

[Router] interface ethernet 1/2

[Router-Ethernet1/2] ipv6 address 3001::1/64

[Router-Ethernet1/2] quit

[Router] interface ethernet 1/1

[Router-Ethernet1/1] ip address 1.1.1.1 255.0.0.0

[Router-Ethernet1/1] quit

# 配置ISATAP隧道。

[Router] interface tunnel 0

[Router-Tunnel0] ipv6 address 2001::5efe:0101:0101 64

[Router-Tunnel0] source ethernet 1/1

[Router-Tunnel0] tunnel-protocol ipv6-ipv4 isatap

# 取消对RA消息发布的抑制,使主机可以通过路由器发布的RA消息获取地址前缀等信息。

[Router-Tunnel0] undo ipv6 nd ra halt

[Router-Tunnel0] quit

# 配置到ISATAP主机的静态路由。

[Router] 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

4. 验证配置结果

完成以上配置之后,ISATAP主机就可访问IPv6网络中的主机。

1.8  配置IPv4 over IPv4隧道

1.8.1  配置准备

设备上存在已经配置IP地址、能够进行正常通讯的接口(如VLAN接口,Ethernet接口,Loopback接口等),该接口将作为Tunnel接口的源接口。

1.8.2  配置IPv4 over IPv4隧道

表1-8 配置IPv4 over IPv4隧道

操作

命令

说明

进入系统视图

system-view

-

进入Tunnel接口视图

interface tunnel number

-

设置Tunnel接口的IPv4地址

ip address ip-address { mask | mask-length } [ sub ]

必选

缺省情况下,Tunnel接口上没有设置IPv4地址

配置隧道模式为IPv4 over IPv4隧道

tunnel-protocol ipv4-ipv4

必选

在隧道的两端应配置相同的隧道模式,否则会造成报文传输失败

设置Tunnel接口的源端地址或接口

source { ip-address | interface-type interface-number }

必选

缺省情况下,Tunnel接口上没有设置源端地址和接口

设置Tunnel接口的目的端地址

destination ip-address

必选

缺省情况下,Tunnel接口上没有设置目的端地址

 

说明

·     如果封装前IPv4报文的目的IPv4地址与Tunnel接口的IPv4地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv4地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv4地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“静态路由”或其他路由协议配置。

·     本端隧道接口的IPv4地址与隧道的目的地址不能在同一个网段内。

·     配置经过隧道接口的路由时,路由的目的地址不能与该隧道的目的地址在同一个网段内。

·     对两个或两个以上使用同种封装协议的Tunnel接口,不能同时配置完全相同的源地址和目的地址。

·     配置Tunnel接口的源端地址时,若采用配置源接口形式,则Tunnel的源地址取的是源接口的主IP地址。

 

1.8.3  配置举例

1. 组网需求

运行IP协议的两个子网Group 1和Group 2位于不同的区域,这两个子网都使用私网地址。通过在路由器Router A和路由器Router B之间建立IPv4 over IPv4隧道,实现两个子网的互联。

2. 组网图

图1-14 IPv4 over IPv4隧道组网图

 

3. 配置步骤

说明

在开始下面的配置之前,请确保Router A和Router B之间IPv4报文路由可达。

 

(1)     配置Router A

# 配置接口Ethernet1/1。

<RouterA> system-view

[RouterA] interface ethernet 1/1

[RouterA-Ethernet1/1] ip address 10.1.1.1 255.255.255.0

[RouterA-Ethernet1/1] quit

# 配置接口Serial2/0(隧道的实际物理接口)。

[RouterA] interface serial 2/0

[RouterA-Serial2/0] ip address 2.1.1.1 255.255.255.0

[RouterA-Serial2/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接口的源地址(Serial2/0的IP地址)。

[RouterA-Tunnel1] source 2.1.1.1

# 配置Tunnel1接口的目的地址(RouterB的Serial2/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

# 配置接口Ethernet1/1。

<RouterB> system-view

[RouterB] interface ethernet 1/1

[RouterB-Ethernet1/1] ip address 10.1.3.1 255.255.255.0

[RouterB-Ethernet1/1] quit

# 配置接口Serial2/1(隧道的实际物理接口)。

[RouterB] interface serial 2/1

[RouterB-Serial2/1] ip address 3.1.1.1 255.255.255.0

[RouterB-Serial2/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接口的源地址(Serial2/1的IP地址)。

[RouterB-Tunnel2] source 3.1.1.1

# 配置Tunnel2接口的目的地址(Router A的Serial2/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

4. 验证配置结果

完成以上配置之后,分别查看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, service-loopback-group ID not set

Tunnel source 2.1.1.1, destination 3.1.1.1

Tunnel protocol/transport IP/IP

Output queue : (Urgent queuing : Size/Length/Discards)  0/100/0

Output queue : (Protocol queuing : Size/Length/Discards)  0/500/0

Output queue : (FIFO queuing : Size/Length/Discards)  0/75/0

    Last 300 seconds input:  0 bytes/sec, 0 packets/sec

    Last 300 seconds output:  2 bytes/sec, 0 packets/sec

    4 packets input,  256 bytes

    0 input error

    12 packets output,  768 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, service-loopback-group ID not set

Tunnel source 3.1.1.1, destination 2.1.1.1

Tunnel protocol/transport IP/IP

Output queue : (Urgent queuing : Size/Length/Discards)  0/100/0

Output queue : (Protocol queuing : Size/Length/Discards)  0/500/0

Output queue : (FIFO queuing : Size/Length/Discards)  0/75/0

    Last 300 seconds input:  0 bytes/sec, 0 packets/sec

    Last 300 seconds output:  0 bytes/sec, 0 packets/sec

    5 packets input,  320 bytes

    0 input error

    9 packets output,  576 bytes

    0 output error

# 从Router A可以Ping通对端的Ethernet1/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

1.9  配置IPv4 over IPv6手动隧道

1.9.1  配置准备

设备上存在已经配置IPv6地址、能够进行正常通讯的接口(如VLAN接口,Ethernet接口,Loopback接口等),该接口将作为Tunnel接口的源接口。

1.9.2  配置IPv4 over IPv6手动隧道

表1-9 配置IPv4 over IPv6手动隧道

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

缺省情况下,关闭IPv6报文转发功能

进入Tunnel接口视图

interface tunnel number

-

设置Tunnel接口的IPv4地址

ip address ip-address { mask | mask-length } [ sub ]

必选

缺省情况下,Tunnel接口上没有设置IPv4地址

配置隧道模式为IPv4 over IPv6手动隧道

tunnel-protocol ipv4-ipv6

必选

在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败

设置Tunnel接口的源端地址或接口

source { ipv6-address | interface-type interface-number }

必选

缺省情况下,Tunnel接口上没有设置源端地址和接口

设置Tunnel接口的目的端地址

destination ipv6-address

必选

缺省情况下,Tunnel接口上没有设置目的端地址

 

说明

·     如果封装前IPv4报文的目的IPv4地址与Tunnel接口的IPv4地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv4地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv4地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“静态路由”或其他路由协议配置。

·     对两个或两个以上使用同种封装协议的Tunnel接口,不能同时配置完全相同的源地址和目的地址。

·     配置Tunnel接口的源端地址时,若采用配置源接口形式,则Tunnel的源地址取的是源接口的主IP地址。

 

1.9.3  配置举例

1. 组网需求

运行IP协议的两个子网Group 1和Group 2通过IPv6网络相连。通过在路由器Router A和路由器Router B之间建立IPv4 over IPv6手动隧道,实现两个子网穿越IPv6网络互联。

2. 组网图

图1-15 IPv4 over IPv6手动隧道组网图

 

3. 配置步骤

说明

在开始下面的配置之前,请确保Router A和Router B之间IPv6报文路由可达。

 

(1)     配置Router A

# 使能IPv6转发功能。

<RouterA> system-view

[RouterA] ipv6

# 配置接口Ethernet1/1。

[RouterA] interface ethernet 1/1

[RouterA-Ethernet1/1] ip address 30.1.1.1 255.255.255.0

[RouterA-Ethernet1/1] quit

# 配置接口Serial2/0(隧道的实际物理接口)。

[RouterA] interface serial 2/0

[RouterA-Serial2/0] ipv6 address 2002::1:1 64

[RouterA-Serial2/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接口的源地址(Serial2/0的IP地址)。

[RouterA-Tunnel1] source 2002::1:1

# 配置Tunnel1接口的目的地址(Router B的Serial2/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

# 配置接口Ethernet1/1。

[RouterB] interface ethernet 1/1

[RouterB-Ethernet1/1] ip address 30.1.3.1 255.255.255.0

[RouterB-Ethernet1/1] quit

# 配置接口Serial2/1(隧道的实际物理接口)。

[RouterB] interface serial 2/1

[RouterB-Serial2/1] ipv6 address 2002::2:1 64

[RouterB-Serial2/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接口的源地址(Serial2/1的IP地址)。

[RouterB-Tunnel2] source 2002::2:1

# 配置Tunnel2接口的目的地址(Router A的Serial2/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

4. 验证配置结果

完成以上配置之后,分别查看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, service-loopback-group ID not set

Tunnel source 2002::0001:0001, destination 2002::0002:0001

Tunnel protocol/transport IP/IPv6

Output queue : (Urgent queuing : Size/Length/Discards)  0/100/0

Output queue : (Protocol queuing : Size/Length/Discards)  0/500/0

Output queue : (FIFO queuing : Size/Length/Discards)  0/75/0

    Last 300 seconds input:  0 bytes/sec, 0 packets/sec

    Last 300 seconds output:  0 bytes/sec, 0 packets/sec

    152 packets input,  9728 bytes

    0 input error

    168 packets output,  10752 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, service-loopback-group ID not set

Tunnel source 2002::0002:0001, destination 2002::0001:0001

Tunnel protocol/transport IP/IPv6

Output queue : (Urgent queuing : Size/Length/Discards)  0/100/0

Output queue : (Protocol queuing : Size/Length/Discards)  0/500/0

Output queue : (FIFO queuing : Size/Length/Discards)  0/75/0

    Last 300 seconds input:  1 bytes/sec, 0 packets/sec

    Last 300 seconds output:  1 bytes/sec, 0 packets/sec

    167 packets input,  10688 bytes

    0 input error

    170 packets output,  10880 bytes

    0 output error

# 从Router A可以Ping通对端的Ethernet1/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

1.10  配置DS-lite隧道

CPE和AFTR上DS-lite隧道的配置方式有所不同,下面将分别介绍。

1.10.1  配置准备

设备上存在已经配置IPv6地址、能够进行正常通讯的接口(如VLAN接口,Ethernet接口,Loopback接口等),该接口将作为Tunnel接口的源接口。

1.10.2  配置隧道的CPE端

可以通过以下两种方式配置隧道的CPE端:

·     将隧道模式配置为CPE端的DS-lite隧道:采用这种方式时,不需要手工指定隧道目的地址。CPE通过DHCPv6自动获取AFTR地址,该地址将作为隧道的目的地址。

·     将隧道模式配置为IPv4 over IPv6手动隧道:采用这种方式时,需要手工指定隧道目的地址为AFTR地址。

此处只介绍第一种配置方式,第二种配置方式的详细介绍,请参见“1.9  配置IPv4 over IPv6手动隧道”。

表1-10 配置DS-lite隧道的CPE端

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

缺省情况下,关闭IPv6报文转发功能

进入Tunnel接口视图

interface tunnel number

-

设置Tunnel接口的IPv4地址

ip address ip-address { mask | mask-length } [ sub ]

必选

缺省情况下,Tunnel接口上没有设置IPv4地址

配置隧道模式为CPE端的DS-lite隧道

tunnel-protocol ipv4-ipv6 dslite-cpe

必选

缺省情况下,隧道模式为GRE。

隧道的对端应配置为AFTR端的DS-lite隧道,否则可能造成报文传输失败

设置Tunnel接口的源接口

source interface-type interface-number

必选

缺省情况下,Tunnel接口上没有设置源接口

 

说明

·     对两个或两个以上使用同种封装协议的Tunnel接口,不能同时配置完全相同的源接口。

·     如果封装前IPv4报文的目的IPv4地址与Tunnel接口的IPv4地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv4地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv4地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“静态路由”或其他路由协议配置。

·     CPE端的DS-lite隧道只支持配置Tunnel接口的源接口,不支持配置Tunnel接口的源地址。隧道的源地址为源接口的主IP地址。配置源接口后,CPE将自动作为DHCPv6 client获取AFTR的地址,即隧道的目的端地址。

 

1.10.3  配置隧道的AFTR

表1-11 配置DS-lite隧道的AFTR端

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

缺省情况下,关闭IPv6报文转发功能

进入Tunnel接口视图

interface tunnel number

-

设置Tunnel接口的IPv4地址

ip address ip-address { mask | mask-length } [ sub ]

必选

缺省情况下,Tunnel接口上没有设置IPv4地址

配置隧道模式为AFTR端的DS-lite隧道

tunnel-protocol ipv4-ipv6 dslite-aftr

必选

缺省情况下,隧道模式为GRE。

隧道的对端应配置为CPE端的DS-lite隧道,否则可能造成报文传输失败

设置Tunnel接口的源端地址或接口

source { ipv6-address | interface-type interface-number }

必选

缺省情况下,Tunnel接口上没有设置源端地址和接口

 

说明

·     对两个或两个以上使用同种封装协议的Tunnel接口,不能同时配置完全相同的源地址。

·     如果配置了Tunnel接口的源接口,则Tunnel的源地址为源接口的主IP地址。

·     AFTR端的DS-lite隧道不需要配置目的端地址。AFTR从隧道上接收到报文后,记录该报文的源IPv6地址,此地址作为隧道目的端的IPv6地址(即CPE地址)。

·     AFTR连接Internet的接口上需要配置NAT。AFTR不支持NAT静态地址转换;不支持匹配VPN实例,如果匹配的ACL规则中包括VPN实例,则该规则不生效。

·     一个CPE Tunnel接口只能和一个AFTR Tunnel接口建立隧道连接;一个AFTR Tunnel接口可以和多个CPE Tunnel接口建立隧道连接。

 

1.10.4  配置举例

1. 组网需求

运行IP协议的私网Private IPv4 network和公网IPv4 network通过IPv6网络相连。通过在CPE(Router A)和AFTR(Router B)之间建立DS-lite隧道,并在AFTR连接IPv4 network接口上配置NAT,实现IPv4私网主机穿越IPv6网络访问IPv4公网,并实现不同的IPv4私网共享相同的IPv4地址空间。

在IPv6网络中部署DHCPv6服务器Router C,CPE通过DHCPv6服务器获取AFTR的地址。

2. 组网图

图1-16 DS-lite隧道组网图

 

3. 配置步骤

说明

在开始下面的配置之前,请确保:

·     Router A和Router B之间IPv6报文路由可达。

·     Router A和Router C位于同一个网段。如果二者不位于同一个网段,则需要在二者之间部署DHCPv6中继。DHCPv6中继不在本章描述范围之内,详细介绍请参见“三层技术-IP业务配置指导”中的“DHCPv6”。

 

(1)     配置CPE端Router A

# 使能IPv6转发功能。

<RouterA> system-view

[RouterA] ipv6

# 配置接口Ethernet1/1。

[RouterA] interface ethernet 1/1

[RouterA-Ethernet1/1] ip address 10.0.0.2 255.255.255.0

[RouterA-Ethernet1/1] quit

# 配置接口Ethernet1/2(隧道的实际物理接口)。

[RouterA] interface Ethernet1/2

[RouterA- Ethernet1/2] ipv6 address 1::1 64

[RouterA- Ethernet1/2] 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 dslite-cpe

# 配置Tunnel1接口的源接口。

[RouterA-Tunnel1] source ethernet 1/2

[RouterA-Tunnel1] quit

# 配置从Router A经过Tunnel1接口到公网IPv4 network的静态路由。

[RouterA] ip route-static 20.1.1.0 255.255.255.0 tunnel 1

(2)     配置AFTR端Router B

# 使能IPv6转发功能。

<RouterB> system-view

[RouterB] ipv6

# 配置接口Ethernet1/1(隧道的实际物理接口)。

[RouterB] interface ethernet 1/1

[RouterB-Ethernet1/1] ipv6 address 1::2 64

[RouterB-Ethernet1/1] quit

# 配置接口Ethernet1/2。

[RouterB] interface ethernet 1/2

[RouterB- Ethernet1/2] ip address 20.1.1.1 24

[RouterB- Ethernet1/2] 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 dslite-aftr

# 配置Tunnel2接口的源接口。

[RouterB-Tunnel2] source ethernet 1/1

[RouterB-Tunnel2] quit

# 配置NAT,使用接口Ethernet1/2的IP地址作为转换后的IP地址。

[RouterB] acl number 2000

[RouterB-acl-basic-2000] rule permit source 10.0.0.0 0.0.0.255

[RouterB-acl-basic-2000] quit

[RouterB] interface ethernet 1/2

[RouterB-Ethernet1/2] nat outbound 2000

[RouterB-Ethernet1/2] quit

(3)     配置DHCPv6服务器Router C

# 使能IPv6转发功能。

<RouterC> system-view

[RouterC] ipv6

# 使能DHCPv6服务器功能。

[RouterC] ipv6 dhcp server enable

# 创建DHCPv6地址池1,并配置为客户端分配的AFTR地址为1::2。

[RouterC] ipv6 dhcp pool 1

[RouterC-dhcp6-pool-1] ds-lite address 1::2

[RouterC-dhcp6-pool-1] quit

# 配置接口Ethernet1/1的IPv6地址。

[RouterC] interface ethernet 1/1

[RouterC-Ethernet1/1] ipv6 address 1::3 64

# 在接口Ethernet1/1上引用DHCPv6地址池1。

[RouterC-Ethernet1/1] ipv6 dhcp server apply pool 1

4. 验证配置结果

完成以上配置之后,分别查看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 1460

Internet Address is 30.1.2.1/24 Primary

Encapsulation is TUNNEL, service-loopback-group ID not set.

Tunnel source 1::1 (Ethernet1/2)

Tunnel bandwidth 64 (kbps)

Tunnel protocol/transport IP/IPv6 dslite-cpe

Output queue : (Urgent queuing : Size/Length/Discards)  0/100/0

Output queue : (Protocol queuing : Size/Length/Discards)  0/500/0

Output queue : (FIFO queuing : Size/Length/Discards)  0/75/0

 Last clearing of counters:  Never

    Last 300 seconds input:  0 bytes/sec, 0 packets/sec

    Last 300 seconds output:  0 bytes/sec, 0 packets/sec

    9 packets input,  540 bytes

    0 input error

    9 packets output,  540 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 1460

Internet Address is 30.1.2.2/24 Primary

Encapsulation is TUNNEL, service-loopback-group ID not set.

Tunnel source 1::2 (Ethernet1/1)

Tunnel bandwidth 64 (kbps)

Tunnel protocol/transport IP/IPv6 dslite-aftr

Output queue : (Urgent queuing : Size/Length/Discards)  0/100/0

Output queue : (Protocol queuing : Size/Length/Discards)  0/500/0

Output queue : (FIFO queuing : Size/Length/Discards)  0/75/0

 Last clearing of counters:  Never

    Last 300 seconds input:  0 bytes/sec, 0 packets/sec

    Last 300 seconds output:  0 bytes/sec, 0 packets/sec

    65 packets input,  3900 bytes

    0 input error

    65 packets output,  3900 bytes

    0 output error

# 从IPv4 host可以Ping通对端的IPv4 host的地址:

[RouterA] ping –a 10.0.0.2 20.1.1.2

  PING 20.1.1.2: 56  data bytes, press CTRL_C to break

    Reply from 20.1.1.2: bytes=56 Sequence=1 ttl=255 time=1 ms

    Reply from 20.1.1.2: bytes=56 Sequence=2 ttl=255 time=1 ms

    Reply from 20.1.1.2: bytes=56 Sequence=3 ttl=255 time=1 ms

    Reply from 20.1.1.2: bytes=56 Sequence=4 ttl=255 time=1 ms

    Reply from 20.1.1.2: bytes=56 Sequence=5 ttl=255 time=1 ms

 

  --- 20.1.1.2 ping statistics ---

    5 packet(s) transmitted

    5 packet(s) received

    0.00% packet loss

    round-trip min/avg/max = 1/1/1 ms

1.11  配置IPv6 over IPv6隧道

1.11.1  配置准备

设备上存在已经配置IPv6地址、能够进行正常通讯的接口(如VLAN接口,Ethernet接口,Loopback接口等),该接口将作为Tunnel接口的源接口。

1.11.2  配置IPv6 over IPv6隧道

表1-12 配置IPv6 over IPv6隧道

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

缺省情况下,关闭IPv6报文转发功能

进入Tunnel接口视图

interface tunnel number

-

设置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

配置隧道模式为IPv6 over IPv6隧道

tunnel-protocol ipv6-ipv6

必选

设置Tunnel接口的源端地址或接口

source { ipv6-address | interface-type interface-number }

必选

缺省情况下,Tunnel接口上没有设置源端地址和接口

设置Tunnel接口的目的端地址

destination ipv6-address

必选

缺省情况下,Tunnel接口上没有设置目的端地址

退回系统视图

quit

-

配置丢弃含有IPv4兼容IPv6地址的IPv6报文

tunnel discard ipv4-compatible-packet

可选

缺省情况下,不会丢弃含有IPv4兼容IPv6地址的IPv6报文

 

说明

·     如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”或其他路由协议配置。

·     本端隧道接口的IPv6地址与隧道的目的地址不能在同一个网段内。

·     配置经过隧道接口的路由时,路由的目的地址不能与该隧道的目的地址在同一个网段内。

·     对两个或两个以上使用同种封装协议的Tunnel接口,不能同时配置完全相同的源地址和目的地址。

·     配置Tunnel接口的源端地址时,若采用配置源接口形式,则Tunnel的源地址取的是源接口的主IP地址。

·     只有IPv6 over IPv6隧道有最大嵌套封装次数限制。

 

1.11.3  配置举例

1. 组网需求

运行IPv6协议的两个子网Group 1和Group 2的网络地址不希望泄露到IPv6网络中。网络管理员通过在路由器Router A和路由器Router B之间建立IPv6 over IPv6隧道,实现在Group 1和Group 2的网络地址不被泄露的情况下,确保Group 1和Group 2互通。

2. 组网图

图1-17 IPv6 over IPv6隧道组网图

 

3. 配置步骤

说明

在开始下面的配置之前,请确保Router A和Router B之间IPv6报文路由可达。

 

(1)     配置Router A

# 使能IPv6转发功能。

<RouterA> system-view

[RouterA] ipv6

# 配置接口Ethernet1/1。

[RouterA] interface ethernet 1/1

[RouterA-Ethernet1/1] ipv6 address 2002:1::1 64

[RouterA-Ethernet1/1] quit

# 配置接口Serial2/0(隧道的实际物理接口)。

[RouterA] interface serial 2/0

[RouterA-Serial2/0] ipv6 address 2002::11:1 64

[RouterA-Serial2/0] quit

# 创建Tunnel1接口。

[RouterA] interface tunnel 1

# 配置Tunnel1接口的IP地址。

[RouterA-Tunnel1] ipv6 address 3001::1:1 64

# 配置Tunnel封装模式。

[RouterA-Tunnel1] tunnel-protocol ipv6-ipv6

# 配置Tunnel1接口的源地址(Serial2/0的IP地址)。

[RouterA-Tunnel1] source 2002::11:1

# 配置Tunnel1接口的目的地址(Router B的Serial2/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

# 配置接口Ethernet1/1。

[RouterB] interface ethernet 1/1

[RouterB-Ethernet1/1] ipv6 address 2002:3::1 64

[RouterB-Ethernet1/1] quit

# 配置接口Serial2/1(隧道的实际物理接口)。

[RouterB] interface serial 2/1

[RouterB-Serial2/1] ipv6 address 2002::22:1 64

[RouterB-Serial2/1] quit

# 创建Tunnel2接口。

[RouterB] interface tunnel 2

# 配置Tunnel2接口的IP地址。

[RouterB-Tunnel2] ipv6 address 3001::1:2 64

# 配置Tunnel封装模式。

[RouterB-Tunnel2] tunnel-protocol ipv6-ipv6

# 配置Tunnel2接口的源地址(Serial2/1的IP地址)。

[RouterB-Tunnel2] source 2002::22:1

# 配置Tunnel2接口的目的地址(Router A的Serial2/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

4. 验证配置结果

完成以上配置之后,分别查看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::2013:1

  Global unicast address(es):

    3001::1:1, subnet is 3001::/64

  Joined group address(es):

    FF02::1:FF13:1

    FF02::1:FF01:1

    FF02::1:FF00:0

    FF02::2

    FF02::1

  MTU is 1460 bytes

  ND reachable time is 30000 milliseconds

  ND retransmit interval is 1000 milliseconds

  Hosts use stateless autoconfig for addresses

IPv6 Packet statistics:

……(略)

[RouterB] display ipv6 interface tunnel 2

Tunnel2 current state :UP

Line protocol current state :UP

IPv6 is enabled, link-local address is FE80::2024:1

  Global unicast address(es):

    3001::1:2, subnet is 3001::/64

  Joined group address(es):

    FF02::1:FF24:1

    FF02::1:FF01:2

    FF02::1:FF00:0

    FF02::2

    FF02::1

  MTU is 1460 bytes

  ND reachable time is 30000 milliseconds

  ND retransmit interval is 1000 milliseconds

  Hosts use stateless autoconfig for addresses

IPv6 Packet statistics:

……(略)

# 从Router A可以Ping通对端的Ethernet1/1接口的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

1.12  隧道显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示隧道配置后的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除Tunnel接口的统计信息。

表1-13 隧道显示和维护

操作

命令

显示Tunnel接口的相关信息

display interface [ tunnel ] [ brief [ down ] ] [ | { begin | exclude | include } regular-expression ]

display interface tunnel number [ brief ] [ | { begin | exclude | include } regular-expression ]

显示Tunnel接口的IPv6相关信息

display ipv6 interface tunnel [ number ] [ brief ] [ | { begin | exclude | include } regular-expression ]

清除Tunnel接口的统计信息

reset counters interface [ tunnel [number ] ]

 

1.13  常见配置错误举例

1. 故障现象

在Tunnel接口上配置了相关的参数后(例如隧道的起点、终点地址和隧道模式)仍未处于up状态。

2. 故障排除

可以按照如下步骤进行:

(1)     Tunnel接口未处于up状态的最常见原因是隧道起点的物理接口没有处于up状态。使用display interface tunneldisplay ipv6 interface tunnel命令查看隧道起点的物理接口状态为up还是down。如果物理接口状态是down的,请检查网络连接。

(2)     Tunnel接口未处于up状态的另一个可能的原因是隧道的终点地址不可达。使用display ipv6 routing-tabledisplay ip routing-table命令查看是否终点地址通过路由可达。如果路由表中没有保证隧道通讯的路由项,请配置相关路由。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!