• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

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

目录

13-隧道配置

本章节下载 13-隧道配置  (662.42 KB)

13-隧道配置

  录

1 隧道

1.1 隧道简介

1.2 支持的隧道技术

1.3 隧道配置限制和指导

1.4 配置Tunnel接口

1.4.1 功能简介

1.4.2 Tunnel接口配置任务简介

1.4.3 创建Tunnel接口

1.4.4 配置处理接口流量的slot

1.4.5 配置封装后隧道报文的属性

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

1.4.7 恢复当前Tunnel接口的缺省配置

1.4.8 指定发送隧道报文的出接口

1.4.9 配置隧道流量统计模式

1.5 隧道接口显示和维护

1.6 隧道常见故障处理

1.6.1 Tunnel接口未处于up状态

2 IPv6 over IPv4隧道

2.1 IPv6 over IPv4 隧道简介

2.1.1 IPv6 over IPv4隧道原理

2.1.2 IPv6 over IPv4隧道模式分类

2.1.3 IPv6 over IPv4手动隧道

2.1.4 6to4隧道

2.1.5 ISATAP隧道

2.2 IPv6 over IPv4隧道配置任务简介

2.3 配置IPv6 over IPv4手动隧道

2.3.1 配置限制和指导

2.3.2 配置步骤

2.3.3 IPv6 over IPv4手动隧道典型配置举例

2.4 配置6to4隧道

2.4.1 配置限制和指导

2.4.2 配置步骤

2.4.3 6to4隧道典型配置举例

2.4.4 6to4中继典型配置举例

2.5 配置ISATAP隧道

2.5.1 配置限制和指导

2.5.2 配置步骤

2.5.3 ISATAP隧道典型配置举例

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

3 IPv4 over IPv4隧道

3.1 IPv4 over IPv4 隧道简介

3.2 IPv4 over IPv4隧道配置限制和指导

3.3 配置IPv4 over IPv4隧道

3.4 IPv4 over IPv4隧道典型配置举例

3.4.1 IPv4 over IPv4隧道基本组网配置举例

4 IPv4 over IPv6隧道

4.1 IPv4 over IPv6隧道简介

4.1.1 IPv4 over IPv6隧道原理

4.1.2 IPv4 over IPv6隧道模式

4.2 配置IPv4 over IPv6手动隧道

4.2.1 配置限制和指导

4.2.2 配置步骤

4.2.3 IPv4 over IPv6手动隧道典型配置举例

5 DS-Lite隧道

5.1 DS-Lite隧道简介

5.2 配置DS-Lite隧道

5.2.1 配置限制和指导

5.2.2 配置DS-Lite隧道的AFTR端

5.2.3 DS-Lite隧道典型配置举例

 


1 隧道

说明

本章仅介绍隧道接口的配置,有关隧道模式的介绍请参见后续章节。

 

1.1  隧道简介

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

1.2  支持的隧道技术

目前支持的隧道技术包括:

·     ADVPN(Auto Discovery Virtual Private Network,自动发现虚拟专用网络)隧道,ADVPN的相关介绍和配置请参见“三层技术-IP业务配置指导”中的“ADVPN”。

·     GRE(Generic Routing Encapsulation,通用路由封装)隧道,GRE的相关介绍和配置请参见“三层技术-IP业务配置指导”中的“GRE”。

·     MPLS TE(Multiprotocol Label Switching Traffic Engineering,多协议标记交换流量工程)隧道,MPLS TE的相关介绍和配置请参见“MPLS配置指导”中的“MPLS TE”。

·     VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)隧道和VXLAN-DCI(VXLAN Data Center Interconnect,VXLAN数据中心互联)隧道,VXLAN和VXLAN-DCI的相关介绍和配置请参见“VXLAN配置指导”中的“VXLAN”。

·     IPv6 over IPv4隧道和IPv4 over IPv4隧道。

1.3  隧道配置限制和指导

·     当隧道源接口或隧道流量的入接口位于CSPC类单板(CSPC-GE16XP4L-E、CSPC-GE24L-E和CSPC-GP24GE8XP2L-E除外)和CMPE-1104单板上时,隧道封装后的报文不能根据目的地址和路由表进行第二次三层转发,需要将封装后的报文发送给业务环回组,由业务环回组将报文回送给转发模块后,再进行三层转发。因此,需要创建tunnel类型的业务环回组,以实现隧道报文的接收和发送。关于业务环回组的创建和配置,请参见“二层技术-以太网交换配置指导”中的“业务环回组”。

·     仅CSPEX类单板(CSPEX-1204和CSPEX-1104-E除外)、SPE类单板和CEPC类单板支持配置隧道目的端地址所属的VPN实例。

·     主备倒换或备用主控板拔出时,建立在主控板或备用主控板上的隧道接口不会被删除,若再配置相同的隧道接口,系统会提示隧道接口已经存在。如果需要删除隧道接口,请使用undo interface tunnel命令。

1.4  配置Tunnel接口

1.4.1  功能简介

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

1.4.2  Tunnel接口配置任务简介

Tunnel接口配置任务如下:

(1)     创建Tunnel接口

(2)     (可选)配置处理接口流量的slot

(3)     (可选)配置封装后隧道报文的属性

(4)     (可选)配置隧道目的端地址所属的VPN实例

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

(6)     (可选)指定发送隧道报文的出接口

(7)     (可选)配置隧道流量统计模式

1.4.3  创建Tunnel接口

1. 配置限制和指导

IPsec隧道和GRE over IPsec隧道的源端/目的端的IP地址均不能相同。

2. 配置步骤

(1)     进入系统视图。

system-view

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

interface tunnel number mode { advpn { gre | udp } [ ipv6 ] | ds-lite-aftr | gre | ipsec [ ipv6 ] | ipv4-ipv4 | ipv4-ipv6 | ipv6-ipv4 [ 6to4 | isatap ] | mpls-te | { vxlan | vxlan-dci } [ ipv6 ] }

对于CSPEX类单板(CSPEX-1104-E、CSPEX-1802X、CSPEX-1812X-E除外)、SPE类单板和CEPC类单板(CEPC-CQ8L除外)CSPEX类单板(CSPEX-1204、CSPEX-1104-E、CSPEX-1802X、CSPEX-1812X-E除外)、SPE类单板和CEPC类单板(CEPC-CQ8L除外)仅在sdn-wan工作模式下支持mode vxlan ipv6mode vxlan-dci ipv6隧道模式。有关系统工作模式的介绍,请参见“基础配置指导”中的“设备管理”。

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

ADVPN及IPsec相关功能仅在IM-SFMX单板上配置生效。

(3)     设置隧道的源端地址或源接口。

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

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

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

(4)     设置隧道的目的端地址。

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

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

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

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

description text

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

(6)     (可选)配置Tunnel接口的MTU值。

mtu size

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

如果CSPC-GE16XP4L-E、CSPC-GE24L-E、CSPC-GP24GE8XP2L-E单板、CSPEX类单板、SPE类单板和CEPC类单板的接口作为流量的入接口且流量出接口的MTU配置值小于1280时,该流量的IP报文会根据MTU值1280来进行分片。有这些单板在位时,建议将出接口的MTU值配置成1280以上

如果CSPC类单板(CSPC-GE16XP4L-E、CSPC-GE24L-E和CSPC-GP24GE8XP2L-E除外)和CMPE-1104单板的接口作为流量的入接口,则该流量的IP报文不支持根据出接口配置的MTU值进行分片

(7)     (可选)配置Tunnel接口的期望带宽。

bandwidth bandwidth-value

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

期望带宽供业务模块使用,不会对接口实际带宽造成影响。

(8)     (可选)关闭Tunnel接口。

shutdown

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

1.4.4  配置处理接口流量的slot

1. 功能简介

当要求同一个Tunnel接口的流量必须在同一个slot上进行处理时,可以在Tunnel接口下配置处理接口流量的slot。

为提高当前接口处理流量的可靠性,可以通过service命令和service standby命令为接口分别指定一个主用slot和一个备用slot进行流量处理。

接口上同时配置了主用slot和备用slot时,流量处理的机制如下:

·     当主用slot不可用时,流量由备用slot处理。之后,即使主用slot恢复可用,流量也继续由备用slot处理;仅当备用slot不可用时,流量才切换到主用slot。

·      当主用slot和备用slot均不可用时,流量由接收报文的slot处理;之后,主用slot和备用slot谁先恢复可用,流量就由谁处理。

如果接口上未配置主用slot和备用slot,则业务处理在接收报文的slot上进行。

2. 配置限制和指导

仅隧道接口上应用IPsec安全框架后,才需要配置serviceservice standby命令。其中指定的单板仅支持IM-SFMX单板。

为避免不必要的流量切换,建议配置主用slot后,再配置备用slot。如果先配置备用slot,则流量由备用slot处理;在配置主用slot后,流量将会从备用slot切换到主用slot。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入Tunnel接口视图。

interface tunnel number

(3)     配置处理接口流量的slot。

(独立运行模式)

service slot slot-number

(IRF模式)

service chassis chassis-number slot slot-number

缺省情况下,未配置处理接口流量的slot。

(4)     配置处理接口流量的备用slot。

(独立运行模式)

service standby slot slot-number

(IRF模式)

service standby chassis chassis-number slot slot-number

缺省情况下,未配置处理接口流量的备用slot。

1.4.5  配置封装后隧道报文的属性

(1)     进入系统视图。

system-view

(2)     进入Tunnel接口视图。

interface tunnel number

(3)     设置封装后隧道报文的ToS。

tunnel tos tos-value

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

(4)     设置封装后隧道报文的TTL值。

tunnel ttl ttl-value

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

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

1. 配置限制和指导

·     隧道的源端地址和目的端地址必须属于相同的VPN实例,否则隧道接口链路状态无法UP。在隧道的源接口上通过ip binding vpn-instance命令可以指定隧道源端地址所属的VPN实例。ip binding vpn-instance命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。

·     仅CSPEX类单板(CSPEX-1204和CSPEX-1104-E除外)、SPE类单板和CEPC类单板支持配置隧道目的端地址所属的VPN实例。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入Tunnel接口视图。

interface tunnel number

(3)     配置隧道目的端地址所属的VPN实例。

tunnel vpn-instance vpn-instance-name

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

1.4.7  恢复当前Tunnel接口的缺省配置

1. 配置限制和指导

注意

接口下的某些配置恢复到缺省情况后,会对设备上当前运行的业务产生影响。建议您在执行本配置前,完全了解其对网络产生的影响。

 

您可以在执行default命令后通过display this命令确认执行效果。对于未能成功恢复缺省的配置,建议您查阅相关功能的命令手册,手工执行恢复该配置缺省情况的命令。如果操作仍然不能成功,您可以通过设备的提示信息定位原因。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入Tunnel接口视图。

interface tunnel number

(3)     恢复当前接口的缺省配置。

default

1.4.8  指定发送隧道报文的出接口

1. 功能简介

缺省情况下,当发送隧道报文到对端地址存在多条等价路径时,系统会随机选择一个出接口发送隧道报文,导致转发路径不可控,此时可以通过本命令指定发送隧道报文的出接口。

2. 配置限制和指导

指定发送隧道报文的出接口必须是处于UP状态、已配置IP地址、且路由可达的接口,否则报文会被设备丢弃,不能发送出去。

仅以下单板支持配置本功能:

·     CSPEX类单板(CSPEX-1204、CSPEX-1104-E除外)、SPE类单板和CEPC类单板

CSPEX-1104-E单板在标准模式不支持指定隧道出接口,在sdn-wan工作模式下仅支持GRE隧道指定出接口。

CSPEX-1104-E、CSPC-GE16XP4L-E、CSPC-GE24L-E和CSPC-GP24GE8XP2L-E单板只支持在sdn-wan工作模式下GRE over IPv4隧道的Tunnel接口下配置。其余单板支持在GRE over IPv4和VXLAN隧道的Tunnel接口下配置。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入Tunnel接口视图。

interface tunnel number

(3)     指定发送隧道报文的出接口。

tunnel out-interface interface-type interface-number

缺省情况下,未指定发送隧道报文的出接口时,如果存在多条等价路径,系统会随机选择一个出接口发送隧道报文。

1.4.9  配置隧道流量统计模式

1. 功能简介

设备提供了两种隧道流量统计模式,用户可以按需求选择:

·     按负载统计,即统计报文封装前的字节数。

·     按整包统计,即统计报文封装后的字节数。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置隧道流量的统计模式。

tunnel statistics-mode { encapsulation | payload }

缺省情况下,按负载统计。

1.5  隧道接口显示和维护

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

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

表1-1 隧道显示和维护

操作

命令

显示Tunnel接口的相关信息

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

显示Tunnel接口的IPv6相关信息

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

清除Tunnel接口的统计信息

reset counters interface [ tunnel [ number ] ]

 

1.6  隧道常见故障处理

1.6.1  Tunnel接口未处于up状态

1. 故障现象

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

2. 故障分析

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

3. 处理过程

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

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


2 IPv6 over IPv4隧道

2.1  IPv6 over IPv4 隧道简介

2.1.1  IPv6 over IPv4隧道原理

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

图2-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.1.2  IPv6 over IPv4隧道模式分类

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

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

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

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

表2-1 IPv6 over IPv4隧道模式

隧道类型

隧道模式

隧道源端/目的端地址

IPv6报文目的地址格式

配置隧道

IPv6 over IPv4手动隧道

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

普通的IPv6地址

自动隧道

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表示隧道的目的端地址

 

2.1.3  IPv6 over IPv4手动隧道

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

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

2.1.4  6to4隧道

1. 普通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地址可以自动确定隧道的终点,使隧道的建立非常方便。

2. 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网络的互通。

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

 

2.1.5  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主机与边缘路由器之间、两个边缘路由器之间建立连接。

图2-3 ISATAP隧道原理图

 

2.2  IPv6 over IPv4隧道配置任务简介

IPv6 over IPv4隧道配置任务如下:

(1)     配置IPv6 over IPv4隧道

请选择以下一项任务进行配置:

¡     配置IPv6 over IPv4手动隧道

¡     配置6to4隧道

¡     配置ISATAP隧道

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

2.3  配置IPv6 over IPv4手动隧道

2.3.1  配置限制和指导

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

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

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

2.3.2  配置步骤

(1)     进入系统视图。

system-view

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

interface tunnel number [ mode ipv6-ipv4 ]

(3)     设置Tunnel接口的IPv6地址。

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

(4)     设置隧道的源端地址或源接口。

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

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

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

(5)     设置隧道的目的端地址。

destination ipv4-address

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

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

2.3.3  IPv6 over IPv4手动隧道典型配置举例

1. 组网需求

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

2. 组网图

图2-4 IPv6 over IPv4手动隧道组网图

 

3. 配置步骤

说明

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

 

(1)     配置Router A

# 配置接口GigabitEthernet3/1/2的地址。

<RouterA> system-view

[RouterA] interface gigabitethernet 3/1/2

[RouterA-GigabitEthernet3/1/2] ip address 192.168.100.1 255.255.255.0

[RouterA-GigabitEthernet3/1/2] quit

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

[RouterA] interface gigabitethernet 3/1/1

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

[RouterA-GigabitEthernet3/1/1] quit

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

[RouterA] interface tunnel 0 mode ipv6-ipv4

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为GigabitEthernet3/1/2。

[RouterA-Tunnel0] source gigabitethernet 3/1/2

# 配置Tunnel0接口的目的端地址(Router B的GigabitEthernet3/1/2的IP地址)。

[RouterA-Tunnel0] destination 192.168.50.1

[RouterA-Tunnel0] quit

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

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

(2)     配置Router B

# 配置接口GigabitEthernet3/1/2的地址。

<RouterB> system-view

[RouterB] interface gigabitethernet 3/1/2

[RouterB-GigabitEthernet3/1/2] ip address 192.168.50.1 255.255.255.0

[RouterB-GigabitEthernet3/1/2] quit

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

[RouterB] interface gigabitethernet 3/1/1

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

[RouterB-GigabitEthernet3/1/1] quit

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

[RouterB] interface tunnel 0 mode ipv6-ipv4

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为GigabitEthernet3/1/2。

[RouterB-Tunnel0] source gigabitethernet 3/1/2

# 配置Tunnel0接口的目的端地址(Router A的GigabitEthernet3/1/2的IP地址)。

[RouterB-Tunnel0] destination 192.168.100.1

[RouterB-Tunnel0] quit

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

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

4. 验证配置

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

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

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

2.4  配置6to4隧道

2.4.1  配置限制和指导

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

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

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

2.4.2  配置步骤

(1)     进入系统视图。

system-view

(2)     进入模式为6to4隧道的Tunnel接口视图。

interface tunnel number [ mode ipv6-ipv4 6to4 ]

(3)     设置Tunnel接口的IPv6地址。

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

(4)     设置隧道的源端地址或源接口。

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

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

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

2.4.3  6to4隧道典型配置举例

1. 组网需求

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

2. 组网图

图2-5 6to4隧道组网图

 

3. 配置思路

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

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

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

4. 配置步骤

说明

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

 

(1)     配置Router A

# 配置接口GigabitEthernet3/1/2的地址。

<RouterA> system-view

[RouterA] interface gigabitethernet 3/1/2

[RouterA-GigabitEthernet3/1/2] ip address 2.1.1.1 24

[RouterA-GigabitEthernet3/1/2] quit

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

[RouterA] interface gigabitethernet 3/1/1

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

[RouterA-GigabitEthernet3/1/1] quit

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

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

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为GigabitEthernet3/1/2。

[RouterA-Tunnel0] source gigabitethernet 3/1/2

[RouterA-Tunnel0] quit

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

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

(2)     配置Router B

# 配置接口GigabitEthernet3/1/2的地址。

<RouterB> system-view

[RouterB] interface gigabitethernet 3/1/2

[RouterB-GigabitEthernet3/1/2] ip address 5.1.1.1 24

[RouterB-GigabitEthernet3/1/2] quit

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

[RouterB] interface gigabitethernet 3/1/1

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

[RouterB-GigabitEthernet3/1/1] quit

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

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

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为GigabitEthernet3/1/2。

[RouterB-Tunnel0] source gigabitethernet 3/1/2

[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

2.4.4  6to4中继典型配置举例

1. 组网需求

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

2. 组网图

图2-6 6to4中继组网图

 

3. 配置思路

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

4. 配置步骤

说明

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

 

(1)     配置Router A

# 配置接口GigabitEthernet3/1/2的地址。

<RouterA> system-view

[RouterA] interface gigabitethernet 3/1/2

[RouterA-GigabitEthernet3/1/2] ip address 2.1.1.1 255.255.255.0

[RouterA-GigabitEthernet3/1/2] quit

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

[RouterA] interface gigabitethernet 3/1/1

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

[RouterA-GigabitEthernet3/1/1] quit

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

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

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为GigabitEthernet3/1/2。

[RouterA-Tunnel0] source gigabitethernet 3/1/2

[RouterA-Tunnel0] quit

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

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

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

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

(2)     配置Router B

# 配置接口GigabitEthernet3/1/2的地址。

<RouterB> system-view

[RouterB] interface gigabitethernet 3/1/2

[RouterB-GigabitEthernet3/1/2] ip address 6.1.1.1 255.255.255.0

[RouterB-GigabitEthernet3/1/2] quit

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

[RouterB] interface gigabitethernet 3/1/1

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

[RouterB-GigabitEthernet3/1/1] quit

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

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

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为GigabitEthernet3/1/2。

[RouterB-Tunnel0] source gigabitethernet 3/1/2

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

2.5  配置ISATAP隧道

2.5.1  配置限制和指导

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

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

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

2.5.2  配置步骤

(1)     进入系统视图。

system-view

(2)     进入模式为ISATAP隧道的Tunnel接口视图。

interface tunnel number [ mode ipv6-ipv4 isatap ]

(3)     设置Tunnel接口的IPv6地址。

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

(4)     设置隧道的源端地址或源接口。

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

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

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

2.5.3  ISATAP隧道典型配置举例

1. 组网需求

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

2. 组网图

图2-7 ISATAP隧道组网图

 

3. 配置步骤

(1)     配置Router

# 配置接口GigabitEthernet3/1/2的地址。

<Router> system-view

[Router] interface gigabitethernet 3/1/2

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

[Router-GigabitEthernet3/1/2] quit

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

[Router] interface gigabitethernet 3/1/1

[Router-GigabitEthernet3/1/1] ip address 1.1.1.1 255.0.0.0

[Router-GigabitEthernet3/1/1] quit

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

[Router] interface tunnel 0 mode ipv6-ipv4 isatap

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

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

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

[Router-Tunnel0] source gigabitethernet 3/1/1

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

[Router-Tunnel0] undo ipv6 nd ra halt

[Router-Tunnel0] quit

(2)     配置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)

(3)     配置IPv6主机

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

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

4. 验证配置

# 在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

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

1. 配置步骤

(1)     进入系统视图。

system-view

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

tunnel discard ipv4-compatible-packet

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

 


3 IPv4 over IPv4隧道

3.1  IPv4 over IPv4 隧道简介

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

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

 

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

·     封装过程

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协议栈进行二次路由处理。

3.2  IPv4 over IPv4隧道配置限制和指导

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

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

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

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

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

3.3  配置IPv4 over IPv4隧道

(1)     进入系统视图。

system-view

(2)     进入模式为IPv4 over IPv4隧道的Tunnel接口视图。

interface tunnel number [ mode ipv4-ipv4 ]

(3)     设置Tunnel接口的IPv4地址。

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

(4)     设置隧道的源端地址或源接口。

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

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

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

(5)     设置隧道的目的端地址。

destination ipv4-address

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

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

3.4  IPv4 over IPv4隧道典型配置举例

3.4.1  IPv4 over IPv4隧道基本组网配置举例

1. 组网需求

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

2. 组网图

图3-2 IPv4 over IPv4隧道组网图

 

3. 配置步骤

说明

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

 

(1)     配置Router A

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

<RouterA> system-view

[RouterA] interface gigabitethernet 3/1/1

[RouterA-GigabitEthernet3/1/1] ip address 10.1.1.1 255.255.255.0

[RouterA-GigabitEthernet3/1/1] quit

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

[RouterA] interface gigabitethernet 4/1/1

[RouterA-GigabitEthernet4/1/1] ip address 2.1.1.1 255.255.255.0

[RouterA-GigabitEthernet4/1/1] quit

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

[RouterA] interface tunnel 1 mode ipv4-ipv4

# 配置Tunnel1接口的IP地址。

[RouterA-Tunnel1] ip address 10.1.2.1 255.255.255.0

# 配置Tunnel1接口的源端地址(GigabitEthernet4/1/1的IP地址)。

[RouterA-Tunnel1] source 2.1.1.1

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

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

<RouterB> system-view

[RouterB] interface gigabitethernet 3/1/1

[RouterB-GigabitEthernet3/1/1] ip address 10.1.3.1 255.255.255.0

[RouterB-GigabitEthernet3/1/1] quit

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

[RouterB] interface gigabitethernet 4/1/1

[RouterB-GigabitEthernet4/1/1] ip address 3.1.1.1 255.255.255.0

[RouterB-GigabitEthernet4/1/1] quit

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

[RouterB] interface tunnel 2 mode ipv4-ipv4

# 配置Tunnel2接口的IP地址。

[RouterB-Tunnel2] ip address 10.1.2.2 255.255.255.0

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

[RouterB-Tunnel2] source 3.1.1.1

# 配置Tunnel2接口的目的端地址(Router A的GigabitEthernet4/1/1的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上分别执行display interface tunnel命令,可以看出Tunnel接口处于up状态。(具体显示信息略)

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

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


4 IPv4 over IPv6隧道

4.1  IPv4 over IPv6隧道简介

4.1.1  IPv4 over IPv6隧道原理

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

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

 

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

·     封装过程

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

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

·     解封装过程

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

4.1.2  IPv4 over IPv6隧道模式

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

4.2  配置IPv4 over IPv6手动隧道

4.2.1  配置限制和指导

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

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

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

·     仅CSPC-GE16XP4L-E、CSPC-GE24L-E、CSPC-GP24GE8XP2L-E单板、CSPEX类单板(CSPEX-1204除外)、SPE类单板或CEPC类单板支持IPv4 over IPv6隧道模式

4.2.2  配置步骤

(1)     进入系统视图。

system-view

(2)     进入模式为IPv4 over IPv6隧道的Tunnel接口视图。

interface tunnel number [ mode ipv4-ipv6 ]

(3)     设置Tunnel接口的IPv4地址。

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

(4)     设置隧道的源端地址或源接口。

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

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

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

(5)     设置隧道的目的端地址。

destination ipv6-address

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

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

4.2.3  IPv4 over IPv6手动隧道典型配置举例

1. 组网需求

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

2. 组网图

图4-2 IPv4 over IPv6手动隧道组网图

 

3. 配置步骤

说明

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

 

(1)     配置Router A

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

<RouterA> system-view

[RouterA] interface gigabitethernet 3/1/1

[RouterA-GigabitEthernet3/1/1] ip address 30.1.1.1 255.255.255.0

[RouterA-GigabitEthernet3/1/1] quit

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

[RouterA] interface gigabitethernet 4/1/1

[RouterA-GigabitEthernet4/1/1] ipv6 address 2001::1:1 64

[RouterA-GigabitEthernet4/1/1] quit

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

[RouterA] interface tunnel 1 mode ipv4-ipv6

# 配置Tunnel1接口的IP地址。

[RouterA-Tunnel1] ip address 30.1.2.1 255.255.255.0

# 配置Tunnel1接口的源端地址(GigabitEthernet4/1/1的IP地址)。

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

# 配置Tunnel1接口的目的端地址(Router B的GigabitEthernet4/1/1的IP地址)。

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

[RouterA-Tunnel1] quit

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

[RouterA] ip route-static 30.1.3.0 255.255.255.0 tunnel 1

(2)     配置Router B

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

<RouterB> system-view

[RouterB] interface gigabitethernet 3/1/1

[RouterB-GigabitEthernet3/1/1] ip address 30.1.3.1 255.255.255.0

[RouterB-GigabitEthernet3/1/1] quit

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

[RouterB] interface gigabitethernet 4/1/1

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

[RouterB-GigabitEthernet4/1/1] quit

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

[RouterB] interface tunnel 2 mode ipv4-ipv6

# 配置Tunnel2接口的IP地址。

[RouterB-Tunnel2] ip address 30.1.2.2 255.255.255.0

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

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

# 配置Tunnel2接口的目的端地址(Router A的GigabitEthernet4/1/1的IP地址)。

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

[RouterB-Tunnel2] quit

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

[RouterB] ip route-static 30.1.1.0 255.255.255.0 tunnel 2

4. 验证配置

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

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

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


5 DS-Lite隧道

5.1  DS-Lite隧道简介

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

图5-1 DS-Lite组网图

 

图5-1所示,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主机。

 

图5-2 DS-Lite报文转发流程

 

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

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

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

说明

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

 

5.2  配置DS-Lite隧道

5.2.1  配置限制和指导

·     本设备暂不支持作为B4设备。

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

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

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

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

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

5.2.2  配置DS-Lite隧道的AFTR端

(1)     进入系统视图。

system-view

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

interface tunnel number [ mode ds-lite-aftr ]

(3)     设置Tunnel接口的IPv4地址。

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

(4)     设置隧道的源端地址或源接口。

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

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

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

(5)     退回系统视图。

quit

(6)     进入AFTR连接IPv4公网的接口视图。

interface interface-type interface-number

(7)     开启接口的DS-Lite隧道功能。

ds-lite enable

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

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

(8)     在AFTR端显示已连接的B4设备的信息。

(独立运行模式)

display ds-lite b4 information [ slot slot-number [ cpu cpu-number ] ]

(IRF模式)

display ds-lite b4 information [ chassis chassis-number slot slot-number [ cpu cpu-number ] ]

5.2.3  DS-Lite隧道典型配置举例

1. 组网需求

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

2. 组网图

图5-3 DS-Lite隧道组网图

 

3. 配置步骤

说明

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

·     CGN单板位于Router B的slot 4槽位。

 

(1)     配置B4设备Router A(本设备不支持作为B4设备,以下配置仅供参考)

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

<RouterA> system-view

[RouterA] interface gigabitethernet 3/1/1

[RouterA-GigabitEthernet3/1/1] ip address 10.0.0.2 255.255.255.0

[RouterA-GigabitEthernet3/1/1] quit

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

[RouterA] interface gigabitethernet 3/1/2

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

[RouterA-GigabitEthernet3/1/2] quit

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

[RouterA] interface tunnel 1 mode ipv6

# 配置Tunnel1接口的IP地址。

[RouterA-Tunnel1] ip address 30.1.2.1 255.255.255.0

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

[RouterA-Tunnel1] source 1::1

# 配置Tunnel1接口的目的端地址(Router B的GigabitEthernet3/1/2的地址)。

[RouterA-Tunnel1] destination 2::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

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

<RouterB> system-view

[RouterB] interface gigabitethernet 3/1/1

[RouterB-GigabitEthernet3/1/1] ip address 20.1.1.1 24

[RouterB-GigabitEthernet3/1/1] quit

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

[RouterB] interface gigabitethernet 3/1/2

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

[RouterB-GigabitEthernet3/1/2] quit

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

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

# 配置Tunnel2接口的IP地址。

[RouterB-Tunnel2] ip address 30.1.2.2 255.255.255.0

# 配置Tunnel2接口的源接口为GigabitEthernet3/1/2。

[RouterB-Tunnel2] source gigabitethernet 3/1/2

[RouterB-Tunnel2] quit

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

[RouterB] interface gigabitethernet 3/1/1

[RouterB-GigabitEthernet3/1/1] ds-lite enable

[RouterB-GigabitEthernet3/1/1] quit

# 配置备份组。

[RouterB] failover group cgn id 1

[RouterB-failover-group-cgn] bind slot 4 primary

[RouterB-failover-group-cgn] quit

# 配置NAT地址组0,包含两个外网地址20.1.1.11和20.1.1.12,外网地址的端口范围为1024~65535,端口块大小为300。

[RouterB] nat address-group 0

[RouterB-address-group-0] failover-group cgn

[RouterB-address-group-0] address 20.1.1.11 20.1.1.12

[RouterB-address-group-0] port-range 1024 65535

[RouterB-address-group-0] port-block block-size 300

[Router-address-group-0] quit

# 配置IPv6 ACL 2100,仅允许对1::/64网段的IPv6源地址进行地址转换。

[RouterB] acl ipv6 basic 2100

[RouterB-acl-ipv6-basic-2100] rule permit source 1::/64

[RouterB-acl-ipv6-basic-2100] quit

# 配置流分类cgn,配置流行为cgn,将匹配IPv6 ACL 2100的流量引入备份组cgn。

[RouterB] traffic classifier cgn

[RouterB-classifier-cgn] if-match acl ipv6 2100

[RouterB-classifier-cgn] quit

[RouterB] traffic behavior cgn

[RouterB-behavior-cgn] redirect failover-group cgn

[RouterB-behavior-cgn] quit

# 配置QoS策略,将流分类与流行为进行绑定。

[RouterB] qos policy cgn

[RouterB-qospolicy-cgn] classifier cgn behavior cgn

[RouterB-qospolicy-cgn] quit

# 在接口GigabitEthernet3/1/2上配置引流规则。

[RouterB] interface gigabitethernet 3/1/2

[RouterB-GigabitEthernet3/1/2] qos apply policy cgn inbound

[RouterB-GigabitEthernet3/1/2] quit

# 在接口GigabitEthernet3/1/1上配置出方向动态地址转换,允许使用地址组0中的地址对匹配IPv6 ACL 2100的DS-Lite B4报文进行源地址转换,并在转换过程中使用端口信息。

[RouterB] interface gigabitethernet 3/1/1

[RouterB-GigabitEthernet3/1/1] nat outbound ds-lite-b4 2100 address-group 0

[RouterB-GigabitEthernet3/1/1] quit

# 配置处理基于会话业务的备份组,即仅允许将匹配IPv6 ACL 2100的报文引流到备份组cgn的主节点上进行业务处理。

[RouterB] session service-location acl ipv6 2100 failover-group cgn

# 开启流量触发分配端口块功能。

[RouterB] nat port-block flow-trigger enable

(3)     配置IPv4 host A

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

(4)     配置IPv4 host B

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

4. 验证配置

# 完成上述配置后,在Router A和Router 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

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

新华三官网
联系我们