• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

06-VPN配置指导

目录

01-隧道配置

本章节下载 01-隧道配置  (574.94 KB)

01-隧道配置


1 隧道

1.1  隧道概述

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

隧道技术具有以下用途:

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

·     创建VPN(Virtual Private Network,虚拟专用网络),如IPv4 over IPv4隧道、IPv4/IPv6 over IPv6隧道、GRE(Generic Routing Encapsulation,通用路由封装)、ADVPN(Auto Discovery Virtual Private Network,自动发现虚拟专用网络)、IPsec。GRE的相关介绍和配置请参见“VPN配置指导”中的“GRE”;ADVPN的相关介绍和配置请参见“三层技术-IP业务配置指导”中的“ADVPN”;IPsec的相关介绍和配置请参见“安全配置指导”中的“IPsec”。

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

1.1.1  IPv6 over IPv4隧道

1. IPv6 over IPv4隧道原理

图1-1所示,IPv6 over IPv4隧道是在IPv6数据报文前封装上IPv4的报文头,通过隧道使IPv6报文穿越IPv4网络,实现隔离的IPv6网络互通。IPv6 over IPv4隧道两端的设备必须支持IPv4/IPv6双协议栈,即同时支持IPv4协议和IPv6协议。

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

 

IPv6 over IPv4隧道对报文的处理过程如下:

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

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

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

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

2. IPv6 over IPv4隧道模式

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

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

·     如果IPv6报文的目的地址中嵌入了IPv4地址,则可以从IPv6报文的目的地址中自动获取隧道终点的IPv4地址,这样的隧道称为“自动隧道”。

表1-1所示,根据对IPv6报文的封装方式的不同,IPv6 over IPv4隧道分为以下几种模式。

表1-1 IPv6 over IPv4隧道模式

隧道类型

隧道模式

隧道源端/目的端地址

IPv6报文目的地址格式

配置隧道

IPv6 over IPv4手动隧道

源端/目的端地址为手工配置的IPv4地址

普通的IPv6地址

自动隧道

IPv4兼容IPv6自动隧道

源端地址为手工配置的IPv4地址,目的端地址不需配置

IPv4兼容IPv6地址,其格式为:

::IPv4-destination-address/96

其中,IPv4-destination-address表示隧道的目的端地址

6to4隧道

源端地址为手工配置的IPv4地址,目的端地址不需配置

6to4地址,其格式为:

2002:IPv4-destination-address::/48

其中,IPv4-destination-address表示隧道的目的端地址

ISATAP(Intra-Site Automatic Tunnel Addressing Protocol,站点内自动隧道寻址协议)隧道

源端地址为手工配置的IPv4地址,目的端地址不需配置

ISATAP地址,其格式为:

Prefix:0:5EFE:IPv4-destination-address/64

其中,IPv4-destination-address表示隧道的目的端地址

 

(1)     IPv6 over IPv4手动隧道

IPv6 over IPv4手动隧道是点到点之间的链路。建立手动隧道需要在隧道两端手工指定隧道的源端和目的端地址。

手动隧道可以建立在连接IPv4网络和IPv6网络的两个边缘设备之间,实现隔离的IPv6网络跨越IPv4网络通信;也可以建立在边缘设备和IPv4/IPv6双栈主机之间,实现隔离的IPv6网络跨越IPv4网络与双栈主机通信。

(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地址可以自动确定隧道的目的端地址。

IPv4兼容IPv6自动隧道的建立非常方便。但是,由于它使用IPv4兼容IPv6地址,采用IPv4兼容IPv6自动隧道通信的主机和设备必须具有全球唯一的IPv4地址,无法解决IPv4地址空间耗尽的问题,存在一定的局限性。

(3)     6to4隧道

·     普通6to4隧道

6to4隧道是点到多点的自动隧道,主要建立在边缘设备之间,用于通过IPv4网络连接多个IPv6孤岛。

6to4隧道两端采用特殊的6to4地址,其格式为:2002:abcd:efgh:子网号::接口ID/48。其中:2002表示固定的IPv6地址前缀;abcd:efgh为用16进制表示的IPv4地址(如1.1.1.1可以表示为0101:0101),用来唯一标识一个6to4网络(如果IPv6孤岛中的主机都采用6to4地址,则该IPv6孤岛称为6to4网络),6to4网络的边缘设备上连接IPv4网络的接口地址需要配置为此IPv4地址;子网号用来在6to4网络内划分子网;子网号和接口ID共同标识了一个主机在6to4网络内的位置。通过6to4地址中嵌入的IPv4地址可以自动确定隧道的终点,使隧道的建立非常方便。

6to4地址中采用一个全球唯一的IPv4地址标识了一个6to4网络,克服了IPv4兼容IPv6自动隧道的局限性。

·     6to4中继

6to4隧道只能用于前缀为2002::/16的6to4网络之间的通信,但在IPv6网络中也会使用像2001::/16这样的IPv6网络地址。为了实现6to4网络和其它IPv6网络的通信,必须有一台6to4设备作为网关转发到IPv6网络的报文,这台设备就叫做6to4中继(6to4 relay)设备。

如下图所示,在6to4网络的边缘设备Device A上配置一条到达IPv6网络(非6to4网络)的静态路由,下一跳地址指向6to4中继设备Device C的6to4地址,这样,所有去往该IPv6网络的报文都会被转发到6to4中继设备,之后再由6to4中继设备转发到IPv6网络中,从而实现6to4网络与IPv6网络的互通。

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

 

(4)     ISATAP隧道

ISATAP隧道是点到多点的自动隧道技术,为IPv6主机通过IPv4网络接入IPv6网络提供了一个较好的解决方案。

使用ISATAP隧道时,IPv6报文的目的地址要采用特殊的ISATAP地址。ISATAP地址格式为:Prefix:0:5EFE:abcd:efgh/64。其中,64位的Prefix为任何合法的IPv6单播地址前缀;abcd:efgh为用16进制表示的32位IPv4地址(如1.1.1.1可以表示为0101:0101),该IPv4地址不要求全球唯一。通过ISATAP地址中嵌入的IPv4地址可以自动确定隧道的终点,使隧道的建立非常方便。

ISATAP隧道主要用于跨越IPv4网络在IPv6主机与边缘设备之间、两个边缘设备之间建立连接。

图1-3 ISATAP隧道原理图

 

1.1.2  IPv4 over IPv4 隧道

1. IPv4 over IPv4隧道简介

IPv4 over IPv4隧道(RFC 1853)是对IPv4报文进行封装,使得一个IPv4网络的报文能够在另一个IPv4网络中传输。例如,运行IPv4协议的两个子网位于不同的区域,并且这两个子网都使用私网地址时,可以通过建立IPv4 over IPv4隧道,实现两个子网的互联。

2. 报文封装及解封装

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

 

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

·     封装过程

Device A连接IPv4主机所在子网的接口收到IPv4报文后,首先交由IPv4协议栈处理。IPv4协议栈根据IPv4报文头中的目的地址判断该报文需要通过隧道进行转发,则将此报文发给Tunnel接口。

Tunnel接口收到此报文后,在IPv4报文外再封装一个IPv4报文头,封装的报文头中源IPv4地址为隧道的源端地址,目的IPv4地址为隧道的目的端地址。封装完成后将报文重新交给IPv4协议栈处理,IPv4协议栈根据添加的IPv4报文头查找路由表,转发报文。

·     解封装过程

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

1.1.3  IPv4 over IPv6隧道

1. IPv4 over IPv6隧道原理

随着IPv6网络的广泛部署,IPv6网络将逐渐取代IPv4网络,占据主导地位。尚未被IPv6网络取代的IPv4网络将形成孤岛,需要通过IPv6网络互通。IPv4 over IPv6隧道在IPv4报文上封装IPv6的报文头,通过隧道使IPv4报文穿越IPv6网络,从而实现通过IPv6网络连接隔离的IPv4网络孤岛。

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

 

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

·     封装过程

Device A连接IPv4网络的接口收到IPv4报文后,首先交由IPv4协议栈处理。IPv4协议栈根据IPv4报文头中的目的地址判断该报文需要通过隧道进行转发,则将此报文发给Tunnel接口。

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

·     解封装过程

解封装过程和封装过程相反。从连接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隧道

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

图1-6 DS-Lite组网图

 

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

·     DS-Lite隧道

DS-Lite隧道是B4设备和AFTR之间的IPv4 over IPv6隧道,用来实现IPv4报文跨越IPv6网络传输。

·     B4(Basic Bridging BroadBand,基本桥接宽带)设备

B4设备是位于用户网络侧、用来连接ISP(Internet Service Provider,互联网服务提供商)网络的设备,通常为用户网络的网关。B4设备作为DS-Lite隧道的一个端点,负责将用户网络的IPv4报文封装成IPv6报文发送给隧道的另一个端点,同时将从隧道接收到的IPv6报文解封装成IPv4报文发送给用户网络。

某些用户网络的主机也可以作为B4设备,直接连接到ISP网络,这样的主机称为DS-Lite主机。

·     AFTR(Address Family Transition Router,地址族转换路由器)

AFTR是ISP网络中的设备。AFTR同时作为DS-Lite隧道端点和NAT网关设备。

AFTR从DS-Lite隧道接收到B4设备发送的IPv6报文后,为该B4设备分配Tunnel ID,并记录B4设备的IPv6地址(报文中的源IPv6地址)与Tunnel ID的对应关系。AFTR对IPv6报文进行解封装,将解封装后的用户网络报文的源IPv4地址(私网地址)转换为公网地址,并将转换后的报文发送给目的IPv4主机。AFTR进行NAT转换时,同时记录NAT映射关系和Tunnel ID,以便实现不同B4设备连接的用户网络地址可以重叠。

AFTR接收到目的IPv4主机返回的应答报文后,将目的IPv4地址(公网地址)转换为对应的私网地址,并根据记录的Tunnel ID获取对应的B4设备的IPv6地址,作为封装后IPv6报文的目的地址。AFTR将NAT转换后的报文封装成IPv6报文通过隧道发送给B4设备。

提示

DS-Lite只支持用户网络内的IPv4主机主动访问公网上的IPv4主机;公网上的IPv4主机不能主动访问用户网络内的IPv4主机。

 

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

 

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

·     B4设备和AFTR对报文进行封装和解封装。

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

说明

图1-7所示为PAT模式的动态地址转换。使用静态地址转换时不同B4设备连接的用户网络地址不能重叠,因此DS-Lite隧道一般使用动态地址转换。有关NAT的详细介绍,请参见“NAT配置指导”中的“NAT”。

 

1.1.4  IPv6 over IPv6隧道

1. IPv6 over IPv6隧道简介

IPv6 over IPv6隧道(RFC 2473)是对IPv6报文进行封装,使这些被封装的报文能够在另一个IPv6网络中传输,封装后的报文即IPv6隧道报文。例如,如果运行IPv6协议的两个子网的网络地址不希望泄露到IPv6网络中,则可以通过建立IPv6 over IPv6隧道,实现在两个子网的网络地址不被泄露的情况下,使两个子网互通。

2. 报文封装及解封装

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

 

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

·     封装过程

Device A连接网络A的接口收到IPv6报文后,首先交由IPv6协议模块处理。IPv6协议模块根据报文的目的IPv6地址判断该报文需要通过隧道进行转发,则将此报文发给Tunnel接口。

Tunnel接口收到此报文后,为IPv6报文再封装一个IPv6报文头,封装的IPv6报文头中源IPv6地址为隧道的源端地址,目的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)

·     RFC 6333:Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion

1.2  隧道配置任务简介

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

配置任务

说明

详细配置

配置Tunnel接口

必选

1.3 

配置IPv6 over IPv4隧道

配置IPv6 over IPv4手动隧道

根据组网情况,选择其一

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接口,以便隧道两端的设备利用Tunnel接口发送报文、识别并处理来自隧道的报文。

表1-3 配置Tunnel接口

操作

命令

说明

进入系统视图

system-view

-

创建Tunnel接口,指定隧道模式,并进入Tunnel接口视图

interface tunnel number mode { advpn { gre | udp } [ ipv6 ] | ds-lite-aftr | gre [ ipv6 ] | gre-p2mp [ ipv6 ] | ipsec [ ipv6 ] | ipv4-ipv4 | ipv6 | ipv6-ipv4 [ 6to4 | auto-tunnel | isatap ] }

缺省情况下,不存在Tunnel接口

创建Tunnel接口时,必须指定隧道的模式;进入已经创建的Tunnel接口视图时,可以不指定隧道模式

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

有关mode gre-p2mp [ ipv6 ]参数的支持情况,请参见命令手册

(可选)配置接口描述信息

description text

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

配置Tunnel接口的MTU值

mtu size

缺省情况下,隧道接口的状态始终为Down时,隧道的MTU值为64000;隧道接口的状态当前为Up时,隧道的MTU值为根据隧道目的地址查找路由而得到的出接口的MTU值减隧道封装报文头长度

配置Tunnel接口的期望带宽

bandwidth bandwidth-value

缺省情况下,接口的期望带宽=接口的最大速率÷1000(kbit/s)

接口的期望带宽会影响链路开销值。具体介绍请参见“三层技术-IP路由配置指导”中的“OSPF”、“OSPFv3”和“IS-IS”

设置封装后隧道报文的ToS

tunnel tos tos-value

缺省情况下,封装后隧道报文的ToS值与封装前原始报文的ToS值相同

设置封装后隧道报文的TTL值

tunnel ttl ttl-value

缺省情况下,封装后隧道报文的TTL值为255

配置隧道目的端地址所属的VPN

tunnel vpn-instance vpn-instance-name

缺省情况下,隧道目的端地址属于公网,设备查找公网路由表转发隧道封装后的报文

在隧道的源接口上通过ip binding vpn-instance命令可以指定隧道源端地址所属的VPN。隧道的源端地址和目的端地址必须属于相同的VPN,否则隧道接口链路状态无法UP

ip binding vpn-instance命令的详细介绍,请参见“VPN实例命令参考”中的“VPN实例”

(可选)恢复当前接口的缺省配置

default

-

(可选)关闭Tunnel接口

shutdown

缺省情况下,Tunnel接口不处于Administratively Down状态

 

1.4  配置IPv6 over IPv4手动隧道

1.4.1  配置步骤

配置IPv6 over IPv4手动隧道时,需要注意:

·     在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。

·     在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。

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

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

操作

命令

说明

进入系统视图

system-view

-

进入模式为IPv6 over IPv4手动隧道的Tunnel接口视图

interface tunnel number [ mode ipv6-ipv4 ]

-

设置Tunnel接口的IPv6地址

详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”

缺省情况下,Tunnel接口上不存在IPv6地址

设置隧道的源端地址或源接口

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

缺省情况下,未设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址

设置隧道的目的端地址

destination ipv4-address

缺省情况下,未设置隧道的目的端地址

隧道的目的端地址是对端接收报文的接口的地址,该地址将作为封装后隧道报文的目的地址

(可选)设置封装后隧道报文的DF(Don’t Fragment,不分片)标志

tunnel dfbit enable

缺省情况下,未设置隧道报文的不分片标志,即转发隧道报文时允许分片

退回系统视图

quit

-

(可选)配置丢弃含有IPv4兼容IPv6地址的IPv6报文

tunnel discard ipv4-compatible-packet

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

 

1.4.2  配置举例

1. 组网需求

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

2. 组网图

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

3. 配置注意事项

需要将安全设备的Tunnel接口加入安全域,并放行该安全域到连接IPv6网络的接口所在安全域的IPv6流量,否则Tunnel接口不能与IPv6网络通信。(本例中需将Tunnel接口加入Untrust安全域,除放行Untrust域到Trust域的IPv6流量外,还要放行Untrust域到Local域的IPv6流量。)

4. 配置步骤

(1)     配置路由、安全域及域间安全策略保证网络可达,具体配置步骤略。

(2)     配置Device A

# 配置接口GigabitEthernet1/0/2的地址。

<DeviceA> system-view

[DeviceA] interface gigabitethernet 1/0/2

[DeviceA-GigabitEthernet1/0/2] ip address 192.168.100.1 255.255.255.0

[DeviceA-GigabitEthernet1/0/2] quit

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

[DeviceA] interface gigabitethernet 1/0/1

[DeviceA-GigabitEthernet1/0/1] ipv6 address 3002::1 64

[DeviceA-GigabitEthernet1/0/1] quit

# 创建模式为IPv6 over IPv4手动隧道的接口Tunnel0。

[DeviceA] interface tunnel 0 mode ipv6-ipv4

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为GigabitEthernet1/0/2。

[DeviceA-Tunnel0] source gigabitethernet 1/0/2

# 配置Tunnel0接口的目的端地址(Device B的GigabitEthernet1/0/2的IP地址)。

[DeviceA-Tunnel0] destination 192.168.50.1

[DeviceA-Tunnel0] quit

# 配置从Device A经过Tunnel0接口到IPv6 network 2的静态路由。

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

# 将Tunnel0接口加入到Untrust安全域中。

[DeviceA] security-zone name Untrust

[DeviceA-security-zone-Untrust] import interface Tunnel 0

[DeviceA-security-zone-Untrust] quit

(3)     配置Device B

# 配置接口GigabitEthernet1/0/2的地址。

<DeviceB> system-view

[DeviceB] interface gigabitethernet 1/0/2

[DeviceB-GigabitEthernet1/0/2] ip address 192.168.50.1 255.255.255.0

[DeviceB-GigabitEthernet1/0/2] quit

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

[DeviceB] interface gigabitethernet 1/0/1

[DeviceB-GigabitEthernet1/0/1] ipv6 address 3003::1 64

[DeviceB-GigabitEthernet1/0/1] quit

# 创建模式为IPv6 over IPv4手动隧道的接口Tunnel0。

[DeviceB] interface tunnel 0 mode ipv6-ipv4

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为GigabitEthernet1/0/2。

[DeviceB-Tunnel0] source gigabitethernet 1/0/2

# 配置Tunnel0接口的目的端地址(Device A的GigabitEthernet1/0/2的IP地址)。

[DeviceB-Tunnel0] destination 192.168.100.1

[DeviceB-Tunnel0] quit

# 配置从Device B经过Tunnel0接口到IPv6 network 1的静态路由。

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

# 将Tunnel0接口加入到Untrust安全域中。

[DeviceB] security-zone name Untrust

[DeviceB-security-zone-Untrust] import interface Tunnel 0

[DeviceB-security-zone-Untrust] quit

5. 验证配置

# 完成上述配置后,在Device A和Device B上分别执行display ipv6 interface命令,可以看出Tunnel0接口处于up状态。(具体显示信息略)

# 从Device A和Device B上可以Ping通对端的GigabitEthernet1/0/1接口的IPv6地址。下面仅以Device A为例。

[DeviceA] ping ipv6 3003::1

Ping6(56 data bytes) 3001::1 --> 3003::1, press CTRL_C to break

56 bytes from 3003::1, icmp_seq=0 hlim=64 time=45.000 ms

56 bytes from 3003::1, icmp_seq=1 hlim=64 time=10.000 ms

56 bytes from 3003::1, icmp_seq=2 hlim=64 time=4.000 ms

56 bytes from 3003::1, icmp_seq=3 hlim=64 time=10.000 ms

56 bytes from 3003::1, icmp_seq=4 hlim=64 time=11.000 ms

 

--- Ping6 statistics for 3003::1 ---

5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss

round-trip min/avg/max/std-dev = 4.000/16.000/45.000/14.711 ms

1.5  配置IPv4兼容IPv6自动隧道

1.5.1  配置步骤

配置IPv4兼容IPv6自动隧道时,需要注意:

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

·     对于自动隧道,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址。

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

操作

命令

说明

进入系统视图

system-view

-

进入模式为IPv4兼容IPv6自动隧道的Tunnel接口视图

interface tunnel number [ mode ipv6-ipv4 auto-tunnel ]

-

设置Tunnel接口的IPv6地址

详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”

缺省情况下,Tunnel接口上不存在IPv6地址

设置隧道的源端地址或源接口

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

缺省情况下,未设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址

(可选)设置封装后隧道报文的DF(Don’t Fragment,不分片)标志

tunnel dfbit enable

缺省情况下,未设置隧道报文的不分片标志,即转发隧道报文时允许分片

退回系统视图

quit

-

 

1.5.2  配置举例

1. 组网需求

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

2. 组网图

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

 

3. 配置注意事项

需要将安全设备的Tunnel接口加入安全域,并放行该安全域到连接IPv6网络的接口所在安全域的IPv6流量,否则Tunnel接口不能与IPv6网络通信。(本例中需将Tunnel接口加入Untrust安全域,除放行Untrust域到连接IPv6网络的接口所在安全域的IPv6流量外,还要放行Untrust域到Local域的IPv6流量。)

4. 配置步骤

(1)     配置路由、安全域及域间安全策略保证网络可达,具体配置步骤略。

(2)     配置Device A

# 配置接口GigabitEthernet1/0/1的地址。

<DeviceA> system-view

[DeviceA] interface gigabitethernet 1/0/1

[DeviceA-GigabitEthernet1/0/1] ip address 192.168.100.1 255.255.255.0

[DeviceA-GigabitEthernet1/0/1] quit

# 创建模式为IPv4兼容IPv6自动隧道的接口Tunnel0。

[DeviceA] interface tunnel 0 mode ipv6-ipv4 auto-tunnel

# 配置Tunnel0接口的IPv6地址为IPv4兼容IPv6地址::192.168.100.1/96。

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

# 配置Tunnel0接口的源接口为GigabitEthernet1/0/1。

[DeviceA-Tunnel0] source gigabitethernet 1/0/1

# 将Tunnel0接口加入到Untrust安全域中。

[DeviceA] security-zone name Untrust

[DeviceA-security-zone-Untrust] import interface Tunnel 0

[DeviceA-security-zone-Untrust] quit

(3)     配置Device B

# 配置接口GigabitEthernet1/0/1的地址。

<DeviceB> system-view

[DeviceB] interface gigabitethernet 1/0/1

[DeviceB-GigabitEthernet1/0/1] ip address 192.168.50.1 255.255.255.0

[DeviceB-GigabitEthernet1/0/1] quit

# 创建模式为IPv4兼容IPv6自动隧道的接口Tunnel0。

[DeviceB] interface tunnel 0 mode ipv6-ipv4 auto-tunnel

# 配置Tunnel0接口的IPv6地址为IPv4兼容IPv6地址::192.168.50.1/96。

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

# 配置Tunnel0接口的源接口为GigabitEthernet1/0/1。

[DeviceB-Tunnel0] source gigabitethernet 1/0/1

# 将Tunnel0接口加入到Untrust安全域中。

[DeviceB] security-zone name Untrust

[DeviceB-security-zone-Untrust] import interface Tunnel 0

[DeviceB-security-zone-Untrust] quit

5. 验证配置

# 完成上述配置后,在Device A和Device B上分别执行display ipv6 interface命令,可以看出Tunnel0接口处于up状态。(具体显示信息略)

# 从Device A和Device B上可以Ping通对端的IPv4兼容IPv6地址。下面仅以Device A为例。

[DeviceA-Tunnel0] ping ipv6 ::192.168.50.1

Ping6(56 data bytes) ::192.168.100.1 --> ::192.168.50.1, press CTRL_C to break

56 bytes from ::192.168.50.1, icmp_seq=0 hlim=64 time=17.000 ms

56 bytes from ::192.168.50.1, icmp_seq=1 hlim=64 time=9.000 ms

56 bytes from ::192.168.50.1, icmp_seq=2 hlim=64 time=11.000 ms

56 bytes from ::192.168.50.1, icmp_seq=3 hlim=64 time=9.000 ms

56 bytes from ::192.168.50.1, icmp_seq=4 hlim=64 time=11.000 ms

 

--- Ping6 statistics for ::192.168.50.1 ---

5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss

round-trip min/avg/max/std-dev = 9.000/11.400/17.000/2.939 ms

1.6  配置6to4隧道

1.6.1  配置步骤

配置6to4隧道时,需要注意:

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

·     对于自动隧道,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址。

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

表1-6 配置6to4隧道

操作

命令

说明

进入系统视图

system-view

-

进入模式为6to4隧道的Tunnel接口视图

interface tunnel number [ mode ipv6-ipv4 6to4 ]

-

设置Tunnel接口的IPv6地址

详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”

缺省情况下,Tunnel接口上不存在IPv6地址

设置隧道的源端地址或源接口

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

缺省情况下,未设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址

(可选)设置封装后隧道报文的DF(Don’t Fragment,不分片)标志

tunnel dfbit enable

缺省情况下,未设置隧道报文的不分片标志,即转发隧道报文时允许分片

退回系统视图

quit

-

(可选)配置丢弃含有IPv4兼容IPv6地址的IPv6报文

tunnel discard ipv4-compatible-packet

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

 

1.6.2  配置6to4隧道举例

1. 组网需求

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

2. 组网图

图1-11 6to4隧道组网图

3. 配置思路

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

·     Device A上接口GigabitEthernet1/0/2的IPv4地址为2.1.1.1/24,转换成6to4地址后的前缀为2002:0201:0101::/48,Host A的地址必须使用该前缀。

·     Device B上接口GigabitEthernet1/0/2的IPv4地址为5.1.1.1/24,转换成6to4地址后的前缀为2002:0501:0101::/48,Host B的地址必须使用该前缀。

4. 配置注意事项

需要将安全设备的Tunnel接口加入安全域,并放行该安全域到连接IPv6网络的接口所在安全域的IPv6流量,否则Tunnel接口不能与IPv6网络通信。(本例中需将Tunnel接口加入Untrust安全域,除放行Untrust域到Trust域的IPv6流量外,还要放行Untrust域到Local域的IPv6流量。)

5. 配置步骤

(1)     配置路由、安全域及域间安全策略保证网络可达,具体配置步骤略。

(2)     配置Device A

# 配置接口GigabitEthernet1/0/2的地址。

<DeviceA> system-view

[DeviceA] interface gigabitethernet 1/0/2

[DeviceA-GigabitEthernet1/0/2] ip address 2.1.1.1 24

[DeviceA-GigabitEthernet1/0/2] quit

# 配置接口GigabitEthernet1/0/1的地址为6to4地址2002:0201:0101:1::1/64。

[DeviceA] interface gigabitethernet 1/0/1

[DeviceA-GigabitEthernet1/0/1] ipv6 address 2002:0201:0101:1::1/64

[DeviceA-GigabitEthernet1/0/1] quit

# 创建模式为6to4隧道的接口Tunnel0。

[DeviceA] interface tunnel 0 mode ipv6-ipv4 6to4

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为GigabitEthernet1/0/2。

[DeviceA-Tunnel0] source gigabitethernet 1/0/2

[DeviceA-Tunnel0] quit

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

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

# 将Tunnel0接口加入到Untrust安全域中。

[DeviceA] security-zone name Untrust

[DeviceA-security-zone-Untrust] import interface Tunnel 0

[DeviceA-security-zone-Untrust] quit

(3)     配置Device B

# 配置接口GigabitEthernet1/0/2的地址。

<DeviceB> system-view

[DeviceB] interface gigabitethernet 1/0/2

[DeviceB-GigabitEthernet1/0/2] ip address 5.1.1.1 24

[DeviceB-GigabitEthernet1/0/2] quit

# 配置接口GigabitEthernet1/0/1的地址为6to4地址2002:0501:0101:1::1/64。

[DeviceB] interface gigabitethernet 1/0/1

[DeviceB-GigabitEthernet1/0/1] ipv6 address 2002:0501:0101:1::1/64

[DeviceB-GigabitEthernet1/0/1] quit

# 创建模式为6to4隧道的接口Tunnel0。

[DeviceB] interface tunnel 0 mode ipv6-ipv4 6to4

# 配置Tunnel0接口的IPv6地址。

[DeviceB-Tunnel0] ipv6 address 3002::1/64

# 配置Tunnel0接口的源接口为GigabitEthernet1/0/2。

[DeviceB-Tunnel0] source gigabitethernet 1/0/2

[DeviceB-Tunnel0] quit

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

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

# 将Tunnel0接口加入到Untrust安全域中。

[DeviceB] security-zone name Untrust

[DeviceB-security-zone-Untrust] import interface Tunnel 0

[DeviceB-security-zone-Untrust] quit

6. 验证配置

完成以上配置之后,安装Linux系统的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.3  配置6to4中继举例

1. 组网需求

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

2. 组网图

图1-12 6to4中继组网图

 

3. 配置思路

6to4中继设备的配置与6to4设备的配置相同,但为实现6to4网络与IPv6网络的互通,需要在6to4设备上配置到IPv6网络的路由,下一跳指向6to4中继设备的6to4地址。6to4中继设备上接口GigabitEthernet1/0/2的IPv4地址为6.1.1.1/24,转换成6to4地址后的前缀为2002:0601:0101::/48,6to4设备上配置的到IPv6网络的路由下一跳可以是符合该前缀的任意一个地址。

4. 配置注意事项

需要将安全设备的Tunnel接口加入安全域,并放行该安全域到连接IPv6网络的接口所在安全域的IPv6流量,否则Tunnel接口不能与IPv6网络通信。(本例中需将Tunnel接口加入Untrust安全域,除放行Untrust域到Trust域的IPv6流量外,还要放行Untrust域到Local域的IPv6流量。)

5. 配置步骤

(1)     配置路由、安全域及域间安全策略保证网络可达,具体配置步骤略。

(2)     配置Device A

# 配置接口GigabitEthernet1/0/2的地址。

<DeviceA> system-view

[DeviceA] interface gigabitethernet 1/0/2

[DeviceA-GigabitEthernet1/0/2] ip address 2.1.1.1 255.255.255.0

[DeviceA-GigabitEthernet1/0/2] quit

# 配置接口GigabitEthernet1/0/1的地址为6to4地址2002:0201:0101:1::1/64。

[DeviceA] interface gigabitethernet 1/0/1

[DeviceA-GigabitEthernet1/0/1] ipv6 address 2002:0201:0101:1::1/64

[DeviceA-GigabitEthernet1/0/1] quit

# 创建模式为6to4隧道的接口Tunnel0。

[DeviceA] interface tunnel 0 mode ipv6-ipv4 6to4

# 配置Tunnel0接口的IPv6地址。

[DeviceA-Tunnel0] ipv6 address 2002::1/64

# 配置Tunnel0接口的源接口为GigabitEthernet1/0/2。

[DeviceA-Tunnel0] source gigabitethernet 1/0/2

[DeviceA-Tunnel0] quit

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

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

# 配置到纯IPv6网络的缺省路由,指定路由的下一跳地址为6to4中继设备的6to4地址。

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

# 将Tunnel0接口加入到Untrust安全域中。

[DeviceA] security-zone name Untrust

[DeviceA-security-zone-Untrust] import interface Tunnel 0

[DeviceA-security-zone-Untrust] quit

(3)     配置Device B

# 配置接口GigabitEthernet1/0/2的地址。

<DeviceB> system-view

[DeviceB] interface gigabitethernet 1/0/2

[DeviceB-GigabitEthernet1/0/2] ip address 6.1.1.1 255.255.255.0

[DeviceB-GigabitEthernet1/0/2] quit

# 配置接口GigabitEthernet1/0/1的地址。

[DeviceB] interface gigabitethernet 1/0/1

[DeviceB-GigabitEthernet1/0/1] ipv6 address 2001::1/16

[DeviceB-GigabitEthernet1/0/1] quit

# 创建模式为6to4隧道的接口Tunnel0。

[DeviceB] interface tunnel 0 mode ipv6-ipv4 6to4

# 配置Tunnel0接口的IPv6地址。

[DeviceB-Tunnel0] ipv6 address 2003::1/64

# 配置Tunnel0接口的源接口为GigabitEthernet1/0/2。

[DeviceB-Tunnel0] source gigabitethernet 1/0/2

[DeviceB-Tunnel0] quit

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

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

# 将Tunnel0接口加入到Untrust安全域中。

[DeviceB] security-zone name Untrust

[DeviceB-security-zone-Untrust] import interface Tunnel 0

[DeviceB-security-zone-Untrust] quit

6. 验证配置

完成以上配置之后,安装Linux系统的Host A与Host B可以互相Ping通。

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  配置步骤

配置ISATAP隧道时,需要注意:

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

·     对于自动隧道,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址。

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

表1-7 配置ISATAP隧道

操作

命令

说明

进入系统视图

system-view

-

进入模式为ISATAP隧道的Tunnel接口视图

interface tunnel number [ mode ipv6-ipv4 isatap ]

-

设置Tunnel接口的IPv6地址

详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”

缺省情况下,Tunnel接口上不存在IPv6地址

设置隧道的源端地址或源接口

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

缺省情况下,未设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址

(可选)设置封装后隧道报文的DF(Don’t Fragment,不分片)标志

tunnel dfbit enable

缺省情况下,未设置隧道报文的不分片标志,即转发隧道报文时允许分片

退回系统视图

quit

-

(可选)配置丢弃含有IPv4兼容IPv6地址的IPv6报文

tunnel discard ipv4-compatible-packet

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

 

1.7.2  配置举例

1. 组网需求

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

2. 组网图

图1-13 ISATAP隧道组网图

 

3. 配置注意事项

需要将ISATAP设备的Tunnel接口加入安全域,并放行该安全域到连接IPv6网络的接口所在安全域的IPv6流量,否则Tunnel接口不能与IPv6网络通信。(本例中需将Tunnel接口加入Untrust安全域,除放行Untrust域到Trust域的IPv6流量外,还要放行Untrust域到Local域的IPv6流量。)

4. 配置步骤

(1)     配置路由、安全域及域间安全策略保证网络可达,具体配置步骤略。

(2)     配置Device

# 配置接口GigabitEthernet1/0/2的地址。

<Device> system-view

[Device] interface gigabitethernet 1/0/2

[Device-GigabitEthernet1/0/2] ipv6 address 3001::1/64

[Device-GigabitEthernet1/0/2] quit

# 配置接口GigabitEthernet1/0/1的地址。

[Device] interface gigabitethernet 1/0/1

[Device-GigabitEthernet1/0/1] ip address 1.1.1.1 255.0.0.0

[Device-GigabitEthernet1/0/1] quit

# 创建模式为ISATAP隧道的接口Tunnel0。

[Device] interface tunnel 0 mode ipv6-ipv4 isatap

# 配置Tunnel0接口采用EUI-64格式形成IPv6地址。

[Device-Tunnel0] ipv6 address 2001:: 64 eui-64

# 配置Tunnel0接口的源接口为GigabitEthernet1/0/1。

[Device-Tunnel0] source gigabitethernet 1/0/1

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

[Device-Tunnel0] undo ipv6 nd ra halt

[Device-Tunnel0] quit

# 将Tunnel0接口加入到Untrust安全域中。

[Device] security-zone name Untrust

[Device-security-zone-Untrust] import interface Tunnel 0

[Device-security-zone-Untrust] quit

(3)     配置ISATAP主机

ISATAP主机上的具体配置与主机的操作系统有关,下面仅以Windows XP操作系统为例进行说明。

# 在主机上安装IPv6协议。

C:\>ipv6 install

# 在Windows XP上,ISATAP接口通常为接口2,查看这个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:1.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设备的IPv4地址。

C:\>netsh interface ipv6 isatap set router 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: 1.1.1.2

  router link-layer address: 1.1.1.1

    preferred global 2001::5efe:1.1.1.2, life 29d23h59m46s/6d23h59m46s (public)

    preferred link-local fe80::5efe:1.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:1.1.1.2,同时还有一行信息“uses Router Discovery”表明主机启用了路由器发现。

# 查看主机上的IPv6路由信息。

C:\>ipv6 rt

2001::/64 -> 2 pref 1if+8=9 life 29d23h59m43s (autoconf)

::/0 -> 2/fe80::5efe:1.1.1.1 pref 1if+256=257 life 29m43s (autoconf)

(4)     配置IPv6主机

# 配置一条到边界设备隧道的路由。

C:\>netsh interface ipv6 set route 2001::/64 5 3001::1

5. 验证配置

# 在ISATAP主机上Ping IPv6主机的地址,可以Ping通,表明ISATAP隧道已经成功建立,ISATAP主机可访问IPv6网络中的主机。

C:\>ping 3001::2

 

Pinging 3001::2 with 32 bytes of data:

 

Reply from 3001::2: time=1ms

Reply from 3001::2: time=1ms

Reply from 3001::2: time=1ms

Reply from 3001::2: time=1ms

 

Ping statistics for 3001::2:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 1ms, Maximum = 1ms, Average = 1ms

1.8  配置IPv4 over IPv4隧道

1.8.1  配置步骤

配置IPv4 over IPv4隧道时,需要注意:

·     在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。

·     在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。

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

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

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

表1-8 配置IPv4 over IPv4隧道

操作

命令

说明

进入系统视图

system-view

-

进入模式为IPv4 over IPv4隧道的Tunnel接口视图

interface tunnel number [ mode ipv4-ipv4 ]

-

设置Tunnel接口的IPv4地址

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

缺省情况下,Tunnel接口上不存在IPv4地址

设置隧道的源端地址或源接口

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

缺省情况下,未设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址

设置隧道的目的端地址

destination ipv4-address

缺省情况下,未设置隧道的目的端地址

隧道的目的端地址是对端接收报文的接口的地址,该地址将作为封装后隧道报文的目的地址

(可选)设置封装后隧道报文的DF(Don’t Fragment,不分片)标志

tunnel dfbit enable

缺省情况下,未设置隧道报文的不分片标志,即转发隧道报文时允许分片

 

1.8.2  配置举例

1. 组网需求

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

2. 组网图

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

 

3. 配置注意事项

需要将安全设备的Tunnel接口加入安全域,并放行该安全域到连接IPv4网络的接口所在安全域的相关流量,否则Tunnel接口不能与IPv4网络通信。(本例中需将Tunnel接口加入Untrust安全域,除放行Untrust域到Trust域的相关流量外,还要放行Untrust域到Local域的相关流量。)

4. 配置步骤

(1)     配置路由、安全域及域间安全策略保证网络可达,具体配置步骤略。

(2)     配置Device A

# 配置接口GigabitEthernet1/0/1的地址。

<DeviceA> system-view

[DeviceA] interface gigabitethernet 1/0/1

[DeviceA-GigabitEthernet1/0/1] ip address 10.1.1.1 255.255.255.0

[DeviceA-GigabitEthernet1/0/1] quit

# 配置接口GigabitEthernet1/0/2(隧道的实际物理接口)的地址。

[DeviceA] interface gigabitethernet 1/0/2

[DeviceA-GigabitEthernet1/0/2] ip address 2.1.1.1 255.255.255.0

[DeviceA-GigabitEthernet1/0/2] quit

# 创建模式为IPv4 over IPv4隧道的接口Tunnel1。

[DeviceA] interface tunnel 1 mode ipv4-ipv4

# 配置Tunnel1接口的IP地址。

[DeviceA-Tunnel1] ip address 10.1.2.1 255.255.255.0

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

[DeviceA-Tunnel1] source 2.1.1.1

# 配置Tunnel1接口的目的端地址(DeviceB的GigabitEthernet1/0/2的IP地址)。

[DeviceA-Tunnel1] destination 3.1.1.1

[DeviceA-Tunnel1] quit

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

[DeviceA] ip route-static 10.1.3.0 255.255.255.0 tunnel 1

# 将Tunnel1接口加入到Untrust安全域中。

[DeviceA] security-zone name Untrust

[DeviceA-security-zone-Untrust] import interface Tunnel 1

[DeviceA-security-zone-Untrust] quit

(3)     配置Device B

# 配置接口GigabitEthernet1/0/1的地址。

<DeviceB> system-view

[DeviceB] interface gigabitethernet 1/0/1

[DeviceB-GigabitEthernet1/0/1] ip address 10.1.3.1 255.255.255.0

[DeviceB-GigabitEthernet1/0/1] quit

# 配置接口GigabitEthernet1/0/2(隧道的实际物理接口)的地址。

[DeviceB] interface gigabitethernet 1/0/2

[DeviceB-GigabitEthernet1/0/2] ip address 3.1.1.1 255.255.255.0

[DeviceB-GigabitEthernet1/0/2] quit

# 创建模式为IPv4 over IPv4隧道的接口Tunnel2。

[DeviceB] interface tunnel 2 mode ipv4-ipv4

# 配置Tunnel2接口的IP地址。

[DeviceB-Tunnel2] ip address 10.1.2.2 255.255.255.0

# 配置Tunnel2接口的源端地址(GigabitEthernet1/0/2的IP地址)。

[DeviceB-Tunnel2] source 3.1.1.1

# 配置Tunnel2接口的目的端地址(Device A的GigabitEthernet1/0/2的IP地址)。

[DeviceB-Tunnel2] destination 2.1.1.1

[DeviceB-Tunnel2] quit

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

[DeviceB] ip route-static 10.1.1.0 255.255.255.0 tunnel 2

# 将Tunnel2接口加入到Untrust安全域中。

[DeviceB] security-zone name Untrust

[DeviceB-security-zone-Untrust] import interface Tunnel 2

[DeviceB-security-zone-Untrust] quit

5. 验证配置

# 完成上述配置后,在Device A和Device B上分别执行display interface tunnel命令,可以看出Tunnel接口处于up状态。(具体显示信息略)

# 从Device A和Device B上可以Ping通对端的GigabitEthernet1/0/1接口的IPv4地址。下面仅以Device A为例。

[DeviceA] ping -a 10.1.1.1 10.1.3.1

Ping 10.1.3.1 (10.1.3.1) from 10.1.1.1: 56 data bytes, press CTRL_C to break

56 bytes from 10.1.3.1: icmp_seq=0 ttl=255 time=2.000 ms

56 bytes from 10.1.3.1: icmp_seq=1 ttl=255 time=1.000 ms

56 bytes from 10.1.3.1: icmp_seq=2 ttl=255 time=0.000 ms

56 bytes from 10.1.3.1: icmp_seq=3 ttl=255 time=1.000 ms

56 bytes from 10.1.3.1: icmp_seq=4 ttl=255 time=1.000 ms

 

--- Ping statistics for 10.1.3.1 ---

5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss

round-trip min/avg/max/std-dev = 0.000/1.000/2.000/0.632 ms

1.9  配置IPv4 over IPv6手动隧道

1.9.1  配置步骤

配置IPv4 over IPv6手动隧道时,需要注意:

·     在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。

·     在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。

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

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

操作

命令

说明

进入系统视图

system-view

-

进入模式为IPv4 over IPv6隧道的Tunnel接口视图或进入模式为IPv6隧道的Tunnel接口视图

interface tunnel number [ mode  ipv6 ]

-

设置Tunnel接口的IPv4地址

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

缺省情况下,Tunnel接口上不存在IPv4地址

设置隧道的源端地址或源接口

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

缺省情况下,未设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IPv6地址;如果设置的是隧道的源接口,则该接口下的最小地址将作为封装后隧道报文的源IPv6地址

设置隧道的目的端地址

destination ipv6-address

缺省情况下,未设置隧道的目的端地址

隧道的目的端地址是对端接收报文的接口的地址,该地址将作为封装后隧道报文的目的IPv6地址

 

1.9.2  配置举例

1. 组网需求

两个IPv4网络分别通过Device A和Device B与IPv6网络连接。通过在Device A和Device B之间建立IPv4 over IPv6手动隧道,实现两个IPv4网络穿越IPv6网络互联。

2. 组网图

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

 

3. 配置注意事项

需要将安全设备的Tunnel接口加入安全域,并放行该安全域到连接IPv4网络的接口所在安全域的相关流量,否则Tunnel接口不能与IPv4网络通信。(本例中需将Tunnel接口加入Untrust安全域,除放行Untrust域到Trust域的相关流量外,还要放行Untrust域到Local域的相关流量。)

4. 配置步骤

(1)     配置路由、安全域及域间安全策略保证网络可达,具体配置步骤略。

(2)     配置Device A

# 配置接口GigabitEthernet1/0/1的地址。

<DeviceA> system-view

[DeviceA] interface gigabitethernet 1/0/1

[DeviceA-GigabitEthernet1/0/1] ip address 30.1.1.1 255.255.255.0

[DeviceA-GigabitEthernet1/0/1] quit

# 配置接口GigabitEthernet1/0/2(隧道的实际物理接口)的地址。

[DeviceA] interface gigabitethernet 1/0/2

[DeviceA-GigabitEthernet1/0/2] ipv6 address 2001::1:1 64

[DeviceA-GigabitEthernet1/0/2] quit

# 创建模式为IPv6隧道的接口Tunnel1。

[DeviceA] interface tunnel 1 mode ipv6

# 配置Tunnel1接口的IP地址。

[DeviceA-Tunnel1] ip address 30.1.2.1 255.255.255.0

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

[DeviceA-Tunnel1] source 2001::1:1

# 配置Tunnel1接口的目的端地址(Device B的GigabitEthernet1/0/2的IP地址)。

[DeviceA-Tunnel1] destination 2002::2:1

[DeviceA-Tunnel1] quit

# 配置从Device A经过Tunnel1接口到IPv4 network 2的静态路由。

[DeviceA] ip route-static 30.1.3.0 255.255.255.0 tunnel 1

# 将Tunnel1接口加入到Untrust安全域中。

[DeviceA] security-zone name Untrust

[DeviceA-security-zone-Untrust] import interface Tunnel 1

[DeviceA-security-zone-Untrust] quit

(3)     配置Device B

# 配置接口GigabitEthernet1/0/1的地址。

<DeviceB> system-view

[DeviceB] interface gigabitethernet 1/0/1

[DeviceB-GigabitEthernet1/0/1] ip address 30.1.3.1 255.255.255.0

[DeviceB-GigabitEthernet1/0/1] quit

# 配置接口GigabitEthernet1/0/2(隧道的实际物理接口)的地址。

[DeviceB] interface gigabitethernet 1/0/2

[DeviceB-GigabitEthernet1/0/2] ipv6 address 2002::2:1 64

[DeviceB-GigabitEthernet1/0/2] quit

# 创建模式为IPv6隧道的接口Tunnel2。

[DeviceB] interface tunnel 2 mode ipv6

# 配置Tunnel2接口的IP地址。

[DeviceB-Tunnel2] ip address 30.1.2.2 255.255.255.0

# 配置Tunnel2接口的源端地址(GigabitEthernet1/0/2的IP地址)。

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

# 配置Tunnel2接口的目的端地址(Device A的GigabitEthernet1/0/2的IP地址)。

[DeviceB-Tunnel2] destination 2001::1:1

[DeviceB-Tunnel2] quit

# 配置从Device B经过Tunnel2接口到IPv4 network 1的静态路由。

[DeviceB] ip route-static 30.1.1.0 255.255.255.0 tunnel 2

# 将Tunnel2接口加入到Untrust安全域中。

[DeviceB] security-zone name Untrust

[DeviceB-security-zone-Untrust] import interface Tunnel 2

[DeviceB-security-zone-Untrust] quit

5. 验证配置

# 完成上述配置后,在Device A和Device B上分别执行display interface tunnel命令,可以看出Tunnel接口处于up状态。(具体显示信息略)

# 从Device A和Device B可以Ping通对端的GigabitEthernet1/0/1接口的IPv4地址。下面仅以Device A为例。

[DeviceA] ping -a 30.1.1.1 30.1.3.1

Ping 30.1.3.1 (30.1.3.1) from 30.1.1.1: 56 data bytes, press CTRL_C to break

56 bytes from 30.1.3.1: icmp_seq=0 ttl=255 time=3.000 ms

56 bytes from 30.1.3.1: icmp_seq=1 ttl=255 time=1.000 ms

56 bytes from 30.1.3.1: icmp_seq=2 ttl=255 time=0.000 ms

56 bytes from 30.1.3.1: icmp_seq=3 ttl=255 time=1.000 ms

56 bytes from 30.1.3.1: icmp_seq=4 ttl=255 time=1.000 ms

 

--- Ping statistics for 30.1.3.1 ---

5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss

round-trip min/avg/max/std-dev = 0.000/1.200/3.000/0.980 ms

1.10  配置DS-Lite隧道

1.10.1  配置步骤

配置DS-Lite隧道时,需要注意:

·     在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址。

·     在B4设备上为隧道指定的目的端地址,应该与在AFTR设备上为隧道指定的源端地址相同。

·     在AFTR端不能配置DS-Lite隧道的目的端地址。AFTR从隧道上接收到报文后,记录该报文的源IPv6地址(即B4设备的地址),将此地址作为隧道目的端的IPv6地址。

·     B4设备上的一个Tunnel接口只能和一个AFTR建立隧道连接;AFTR上的一个Tunnel接口可以和多个B4设备建立隧道连接。

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

·     在AFTR端,不需要配置通过Tunnel接口到达目的IPv4地址的转发路由。

·     AFTR连接IPv4公网的接口上需要配置NAT。

建立DS-Lite隧道时,需要进行以下配置:

·     在B4端配置IPv4 over IPv6手动隧道,并指定隧道的目的端地址(配置方法请参见表1-10)。指定目的地址的方法有两种:

¡     指定隧道目的端地址为AFTR的源端地址。

¡     指定接收DHCPv6报文的接口,通过动态获得AFTR端IPv6地址的方式自动建立DS-Lite隧道。

表1-10 配置DS-Lite隧道的B4设备

操作

命令

说明

进入系统视图

system-view

-

进入模式为IPv4 over IPv6隧道的Tunnel接口视图或进入模式为IPv6隧道的Tunnel接口视图

interface tunnel number [ mode ipv6 ]

-

设置Tunnel接口的IPv4地址

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

缺省情况下,Tunnel接口上不存在IPv4地址

设置隧道的源端地址或源接口

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

缺省情况下,未设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IPv6地址;如果设置的是隧道的源接口,则该接口下的最小地址将作为封装后隧道报文的源IPv6地址

设置隧道的目的端地址

destination { ipv6-address | dhcp-alloc interface-type interface-number }

缺省情况下,未设置隧道的目的端地址

隧道的目的端地址是对端接收报文的接口的地址,该地址将作为封装后隧道报文的目的IPv6地址

指定dhcp-alloc参数,通过动态获得AFTR的IPv6地址实现自动建立DS-Lite隧道

 

说明

如果需要B4设备与AFTR端自动建立DS-Lite隧道,在B4设备上需正确配置DHCPv6客户端、静态域名解析或IPv6 DNS客户端(使用动态域名解析),以及destination dhcp-alloc命令。除此之外,还需在任意设备上完成DHCPv6服务器、IPv6 DNS服务器(在使用动态域名解析的情况下)的配置。关于DHCPv6服务器及客户端配置的详细介绍,请参见“三层技术-IP业务配置指导”中的“DHCPv6”;关于IPv6 DNS配置的详细介绍,请参见“三层技术-IP业务配置指导”中的“域名解析”。

 

·     在AFTR端配置DS-Lite隧道,并在AFTR连接IPv4公网的接口上开启DS-Lite隧道功能。配置方法请参见表1-11

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

操作

命令

说明

进入系统视图

system-view

-

进入模式为AFTR端DS-Lite隧道的Tunnel接口视图

interface tunnel number [ mode ds-lite-aftr ]

-

设置Tunnel接口的IPv4地址

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

缺省情况下,Tunnel接口上不存在IPv4地址

设置隧道的源端地址或源接口

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

缺省情况下,未设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IPv6地址;如果设置的是隧道的源接口,则该接口下的最小地址将作为封装后隧道报文的源IPv6地址

退回系统视图

quit

-

进入AFTR连接IPv4公网的接口视图

interface interface-type interface-number

-

开启接口的DS-Lite隧道功能

ds-lite enable

缺省情况下,接口的DS-Lite隧道功能处于关闭状态

只有开启该功能后,AFTR从IPv4公网接口接收到的IPv4报文才能够通过DS-Lite隧道正确地转发到B4设备

 

1.10.2  配置举例

1. 组网需求

运行IPv4协议的私网Private IPv4 network和公网IPv4 network通过IPv6网络相连。通过在B4设备(Device A)和AFTR(Device B)之间建立DS-Lite隧道,并在AFTR连接IPv4 network接口上配置NAT,实现IPv4私网主机穿越IPv6网络访问IPv4公网。

2. 组网图

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

 

3. 配置注意事项

需要将B4设备和AFTR设备的Tunnel接口加入安全域,并放行该安全域到连接IPv4网络的接口所在安全域的相关流量,否则Tunnel接口不能与IPv4网络通信。(本例中需将Tunnel接口加入Untrust安全域,除放行Untrust域到Trust域的相关流量外,还要放行Untrust域到Local域的相关流量。)

4. 配置步骤

(1)     配置路由、安全域及域间安全策略保证网络可达,具体配置步骤略。

(2)     配置B4设备Device A

# 配置接口GigabitEthernet1/0/1的地址。

<DeviceA> system-view

[DeviceA] interface gigabitethernet 1/0/1

[DeviceA-GigabitEthernet1/0/1] ip address 10.0.0.2 255.255.255.0

[DeviceA-GigabitEthernet1/0/1] quit

# 配置接口GigabitEthernet1/0/2(隧道的实际物理接口)的地址。

[DeviceA] interface gigabitethernet 1/0/2

[DeviceA-GigabitEthernet1/0/2] ipv6 address 1::1 64

[DeviceA-GigabitEthernet1/0/2] quit

# 创建模式为IPv6隧道的接口Tunnel1。

[DeviceA] interface tunnel 1 mode ipv6

# 配置Tunnel1接口的IP地址。

[DeviceA-Tunnel1] ip address 30.1.2.1 255.255.255.0

# 配置Tunnel1接口的源端地址(GigabitEthernet1/0/2的地址)。

[DeviceA-Tunnel1] source 1::1

# 配置Tunnel1接口的目的端地址(Device B的GigabitEthernet1/0/2的地址)。

[DeviceA-Tunnel1] destination 2::2

[DeviceA-Tunnel1] quit

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

[DeviceA] ip route-static 20.1.1.0 255.255.255.0 tunnel 1

# 将Tunnel1接口加入到Untrust安全域中。

[DeviceA] security-zone name Untrust

[DeviceA-security-zone-Untrust] import interface Tunnel 1

[DeviceA-security-zone-Untrust] quit

(3)     配置AFTR端Device B

# 配置接口GigabitEthernet1/0/1的地址。

<DeviceB> system-view

[DeviceB] interface gigabitethernet 1/0/1

[DeviceB-GigabitEthernet1/0/1] ip address 20.1.1.1 24

[DeviceB-GigabitEthernet1/0/1] quit

# 配置接口GigabitEthernet1/0/2(隧道的实际物理接口)的地址。

[DeviceB] interface gigabitethernet 1/0/2

[DeviceB-GigabitEthernet1/0/2] ipv6 address 2::2 64

[DeviceB-GigabitEthernet1/0/2] quit

# 创建模式为AFTR端DS-Lite隧道的接口Tunnel2。

[DeviceB] interface tunnel 2 mode ds-lite-aftr

# 配置Tunnel2接口的IP地址。

[DeviceB-Tunnel2] ip address 30.1.2.2 255.255.255.0

# 配置Tunnel2接口的源接口为GigabitEthernet1/0/2。

[DeviceB-Tunnel2] source gigabitethernet 1/0/2

[DeviceB-Tunnel2] quit

# 在接口GigabitEthernet1/0/1上开启DS-Lite隧道功能。

[DeviceB] interface gigabitethernet 1/0/1

[DeviceB-GigabitEthernet1/0/1] ds-lite enable

# 在接口GigabitEthernet1/0/1上配置NAT,使用接口GigabitEthernet1/0/1的IP地址作为转换后的IP地址。

[DeviceB-GigabitEthernet1/0/1] nat outbound

[DeviceB-GigabitEthernet1/0/1] quit

# 将Tunnel2接口加入到Untrust安全域中。

[DeviceB] security-zone name Untrust

[DeviceB-security-zone-Untrust] import interface Tunnel 2

[DeviceB-security-zone-Untrust] quit

(4)     配置IPv4 host A

配置IPv4 host A的地址为10.0.0.1,并在该主机上配置到达20.1.1.0/24网段的路由,路由下一跳为10.0.0.2。(具体配置过程略)

(5)     配置IPv4 host B

配置IPv4 host B的地址为20.1.1.2。(具体配置过程略)

5. 验证配置

# 完成上述配置后,在Device A和Device B上分别执行display interface tunnel命令,可以看出Tunnel接口处于up状态。(具体显示信息略)

# 从IPv4 host A上可以ping通IPv4 host B。

C:\> ping 20.1.1.2

Pinging 20.1.1.2 with 32 bytes of data:

Reply from 20.1.1.2: bytes=32 time=51ms TTL=255

Reply from 20.1.1.2: bytes=32 time=44ms TTL=255

Reply from 20.1.1.2: bytes=32 time=1ms TTL=255

Reply from 20.1.1.2: bytes=32 time=1ms TTL=255

Ping statistics for 20.1.1.2:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 1ms, Maximum = 51ms, Average = 24ms

1.11  配置IPv6 over IPv6隧道

1.11.1  配置步骤

配置IPv6 over IPv6隧道时,需要注意:

·     在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。

·     在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。

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

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

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

表1-12 配置IPv6 over IPv6隧道

操作

命令

说明

进入系统视图

system-view

-

进入模式为IPv6隧道的Tunnel接口视图或进入模式为IPv6 over IPv6隧道的Tunnel接口视图

interface tunnel number [ mode ipv6 ]

-

设置Tunnel接口的IPv6地址

详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”

缺省情况下,Tunnel接口上不存在IPv6地址

设置隧道的源端地址或源接口

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

缺省情况下,未设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IPv6地址;如果设置的是隧道的源接口,则该接口下的最小地址将作为封装后隧道报文的源IPv6地址

设置隧道的目的端地址

destination ipv6-address

缺省情况下,未设置隧道的目的端地址

隧道的目的端地址是对端接收报文的接口的地址,该地址将作为封装后隧道报文的目的IPv6地址

(可选)设置隧道允许的最大嵌套封装次数

encapsulation-limit number

缺省情况下,不限制隧道的最大嵌套封装次数

退回系统视图

quit

-

(可选)配置丢弃含有IPv4兼容IPv6地址的IPv6报文

tunnel discard ipv4-compatible-packet

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

 

1.11.2  配置举例

1. 组网需求

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

2. 组网图

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

 

3. 配置注意事项

需要将安全设备的Tunnel接口加入安全域,并放行该安全域到连接IPv6网络的接口所在安全域的IPv6流量,否则Tunnel接口不能与IPv6网络通信。(本例中需将Tunnel接口加入Untrust安全域,除放行Untrust域到Trust域的IPv6流量外,还要放行Untrust域到Local域的IPv6流量。)

4. 配置步骤

(1)     配置路由、安全域及域间安全策略保证网络可达,具体配置步骤略。

(2)     配置Device A

# 配置接口GigabitEthernet1/0/1的地址。

<DeviceA> system-view

[DeviceA] interface gigabitethernet 1/0/1

[DeviceA-GigabitEthernet1/0/1] ipv6 address 2002:1::1 64

[DeviceA-GigabitEthernet1/0/1] quit

# 配置接口GigabitEthernet1/0/2(隧道的实际物理接口)的地址。

[DeviceA] interface gigabitethernet 1/0/2

[DeviceA-GigabitEthernet1/0/2] ipv6 address 2001::11:1 64

[DeviceA-GigabitEthernet1/0/2] quit

# 创建模式为IPv6隧道的接口Tunnel1。

[DeviceA] interface tunnel 1 mode ipv6

# 配置Tunnel1接口的IP地址。

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

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

[DeviceA-Tunnel1] source 2001::11:1

# 配置Tunnel1接口的目的端地址(Device B的GigabitEthernet1/0/2的IP地址)。

[DeviceA-Tunnel1] destination 2002::22:1

[DeviceA-Tunnel1] quit

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

[DeviceA] ipv6 route-static 2002:3:: 64 tunnel 1

# 将Tunnel1接口加入到Untrust安全域中。

[DeviceA] security-zone name Untrust

[DeviceA-security-zone-Untrust] import interface Tunnel 1

[DeviceA-security-zone-Untrust] quit

(3)     配置Device B

# 配置接口GigabitEthernet1/0/1的地址。

<DeviceB> system-view

[DeviceB] interface gigabitethernet 1/0/1

[DeviceB-GigabitEthernet1/0/1] ipv6 address 2002:3::1 64

[DeviceB-GigabitEthernet1/0/1] quit

# 配置接口GigabitEthernet1/0/2(隧道的实际物理接口)的地址。

[DeviceB] interface gigabitethernet 1/0/2

[DeviceB-GigabitEthernet1/0/2] ipv6 address 2002::22:1 64

[DeviceB-GigabitEthernet1/0/2] quit

# 创建模式为IPv6隧道的接口Tunnel2。

[DeviceB] interface tunnel 2 mode ipv6

# 配置Tunnel2接口的IP地址。

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

# 配置Tunnel2接口的源端地址(GigabitEthernet1/0/2的IP地址)。

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

# 配置Tunnel2接口的目的端地址(Device A的GigabitEthernet1/0/2的IP地址)。

[DeviceB-Tunnel2] destination 2001::11:1

[DeviceB-Tunnel2] quit

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

[DeviceB] ipv6 route-static 2002:1:: 64 tunnel 2

# 将Tunnel2接口加入到Untrust安全域中。

[DeviceB] security-zone name Untrust

[DeviceB-security-zone-Untrust] import interface Tunnel 2

[DeviceB-security-zone-Untrust] quit

5. 验证配置

# 完成上述配置后,在Device A和Device B上分别执行display ipv6 interface命令,可以看出Tunnel接口处于up状态。(具体显示信息略)

# 从Device A和Device B上可以Ping通对端的GigabitEthernet1/0/1接口的IPv6地址。下面仅以Device A为例。

[DeviceA] ping ipv6 -a 2002:1::1 2002:3::1

Ping6(56 data bytes) 2002:1::1 --> 2002:3::1, press CTRL_C to break

56 bytes from 2002:3::1, icmp_seq=0 hlim=64 time=9.000 ms

56 bytes from 2002:3::1, icmp_seq=1 hlim=64 time=1.000 ms

56 bytes from 2002:3::1, icmp_seq=2 hlim=64 time=0.000 ms

56 bytes from 2002:3::1, icmp_seq=3 hlim=64 time=0.000 ms

56 bytes from 2002:3::1, icmp_seq=4 hlim=64 time=0.000 ms

 

--- Ping6 statistics for 2002:3::1 ---

5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss

round-trip min/avg/max/std-dev = 0.000/2.000/9.000/3.521 ms

1.12  隧道显示和维护

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

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

表1-13 隧道显示和维护

操作

命令

显示Tunnel接口的相关信息

display interface [ tunnel [ number ] ] [ brief [ description | down ] ]

显示Tunnel接口的IPv6相关信息

display ipv6 interface [ tunnel [ number ] ] [ brief ]

在AFTR端显示已连接的B4设备的信息

display ds-lite b4 information

清除Tunnel接口的统计信息

reset counters interface [ tunnel [ number ] ]

 

说明

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

 

1.13  常见错误配置举例

1.13.1  故障现象

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

1.13.2  故障分析

Tunnel接口未处于up状态的原因可能是隧道起点的物理接口没有处于up状态,或隧道的目的端地址不可达。

1.13.3  处理过程

(1)     使用display interfacedisplay ipv6 interface命令查看隧道起点的物理接口状态为up还是down。如果物理接口状态是down的,请检查网络连接。

(2)     使用display ipv6 routing-tabledisplay ip routing-table命令查看是否目的端地址通过路由可达。如果路由表中没有保证隧道通讯的路由表项,请配置相关路由。

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

新华三官网
联系我们