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

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

目录

14-隧道配置

本章节下载 14-隧道配置  (625.29 KB)

14-隧道配置

  录

1 隧道

1.1 隧道简介

1.2 支持的隧道技术

1.3 隧道配置限制和指导

1.4 配置准备

1.5 配置Tunnel接口

1.5.1 功能简介

1.5.2 Tunnel接口配置任务简介

1.5.3 创建Tunnel接口

1.5.4 配置处理接口流量的slot

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

1.5.6 开启Tunnel接口的UPDOWN日志助记符带Tunnel标签功能

1.5.7 配置VXLAN模式Tunnel接口所属的VXLAN隧道组

1.5.8 配置隧道模块的告警功能

1.6 隧道接口显示和维护

1.7 隧道常见故障处理

1.7.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.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.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.2 配置IPv4 over IPv6隧道

4.2.1 配置限制和指导

4.2.2 配置步骤

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

5 IPv6 over IPv6隧道

5.1 IPv6 over IPv6隧道简介

5.2 IPv6 over IPv6隧道配置限制和指导

5.3 IPv6 over IPv6隧道配置任务简介

5.4 配置IPv6 over IPv6隧道

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

5.6 IPv6 over IPv6隧道典型配置举例

5.6.1 IPv6 over IPv6隧道基本组网配置举例

 


1 隧道

说明

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

 

1.1  隧道简介

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

1.2  支持的隧道技术

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

·     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隧道、IPv4 over IPv6隧道和IPv6 over IPv6隧道。

1.3  隧道配置限制和指导

同一台设备上,多个Tunnel接口不要同时配置完全相同的目的端地址和源端地址。

通过ip addressipv6 address命令,为VXLAN和VXLAN-DCI模式的隧道接口配置的IP地址无实际意义,不建议为以上类型的隧道接口配置IP地址。有关ip address命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IP地址”,有关ipv6 address命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IPv6基础”。

 

 

 

 

1.4  配置准备

封装后的报文不能根据目的地址和路由表进行第二次三层转发,需要将封装后的报文发送给业务环回组,由业务环回组将报文回送给转发模块后,再进行三层转发。因此,需要创建tunnel类型的业务环回组,以实现隧道报文的接收和发送。关于业务环回组的创建和配置,请参见“二层技术-以太网交换配置指导”中的“业务环回组”。

1.5  配置Tunnel接口

1.5.1  功能简介

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

1.5.2  Tunnel接口配置任务简介

Tunnel接口配置任务如下:

(1)     创建Tunnel接口

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

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

(4)     (可选)开启Tunnel接口的UPDOWN日志助记符带Tunnel标签功能

(5)     (可选)配置VXLAN模式Tunnel接口所属的VXLAN隧道组

(6)     (可选)配置隧道模块的告警功能

1.5.3  创建Tunnel接口

(1)     进入系统视图。

system-view

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

interface tunnel number mode { gre [ ipv6 ] | ipv4-ipv4 | ipv6 | ipv6-ipv4 [ 6to4 | isatap ] | mpls-te | vxlan | vxlan-dci }

专家模式不支持VXLAN隧道模式。

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

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

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

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

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

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

destination { ipv4-address | ipv6-address }

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

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

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

description text

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

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

mtu size

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

ip mtuipv6 mtumtu(对IPv4和IPv6类型隧道均生效)命令均可以配置Tunnel接口的MTU值,ip mtuipv6 mtu的优先级高于mtu。当几条命令同时配置时,MTU值以ip mtuipv6 mtu命令为准,此时若将ip mtuipv6 mtu命令恢复至缺省值,MTU值以mtu命令为准;当以上命令均未配置时,隧道的MTU值为根据隧道目的地址查找路由而得到的出接口的MTU值减隧道封装报文头长度。

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

bandwidth bandwidth-value

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

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

(8)     开启Tunnel接口。

undo shutdown

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

1.5.4  配置处理接口流量的slot

1. 功能简介

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入Tunnel接口视图。

interface tunnel number

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

service slot slot-number

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

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

1. 配置限制和指导

注意

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

 

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入Tunnel接口视图。

interface tunnel number

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

default

1.5.6  开启Tunnel接口的UPDOWN日志助记符带Tunnel标签功能

1. 功能简介

本功能针对Tunnel接口UPDOWN日志信息增加Tunnel标签,以便于用户通过正则表达式区分Tunnel口的信息,例如:

·     开启该功能前的日志信息

%Jan 8 18:45:33:621 2011 Sysname IFNET/3/PHY_UPDOWN: Physical state on the interface Tunnel1 changed to down.

·     开启该功能后的日志信息

%Jan 8 18:45:33:621 2011 Sysname IFNET/3/TUNNEL_PHY_UPDOWN: Physical state on the interface Tunnel1 changed to down

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启Tunnel接口的UPDOWN日志助记符带Tunnel标签功能。

tunnel log updown with-tag

缺省情况下,Tunnel接口的UPDOWN日志助记符带Tunnel标签功能处于关闭状态,UPDOWN日志助记符不带Tunnel标签。

1.5.7  配置VXLAN模式Tunnel接口所属的VXLAN隧道组

1. 功能简介

设备上的VXLAN隧道组是指若干个VXLAN模式的Tunnel接口的集合。VXLAN隧道组通过与流量重定向功能配合使用,实现将报文引流到VXLAN隧道组,并在VXLAN隧道组内的多条隧道之间进行负载分担的功能。有关流量重定向功能的详细介绍,请参见“ACL和QoS命令参考”中的“QoS”。

2. 配置限制和指导

说明

专家模式不支持VXLAN功能。

 

一个VXLAN模式Tunnel接口只允许同时加入一个VXLAN隧道组。如果需要将当前接口加入其他VXLAN隧道组,请首先在VXLAN模式Tunnel接口视图下使用undo group命令将当前接口退出已加入的VXLAN隧道组。

一个VXLAN隧道组中最多允许添加2个VXLAN模式Tunnel接口。

3. 配置步骤

(1)     进入系统视图。

system-view

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

interface tunnel number [ mode vxlan ]

(3)     配置Tunnel接口所属的VXLAN隧道组。

group group-id

缺省情况下,未配置VXLAN模式Tunnel接口所属的VXLAN隧道组。

1.5.8  配置隧道模块的告警功能

1. 功能简介

用户可根据业务需求开启指定隧道类型的告警功能:

·     开启了VXLAN隧道配置下发失败的告警功能后,设备会将配置下发失败的Tunnel接口编号信息作为告警信息发送到设备的SNMP模块。

·     开启了解封装VXLAN报文失败的告警功能后,设备会将解封装失败的VXLAN报文的源地址IP类型、源地址IP、目的地址IP类型、目的地址IP等信息作为告警信息发送到设备的SNMP模块。

·     开启了Tunnel接口数量告警功能后,当设备上的Tunnel接口个数超过了告警阈值,即设备允许创建数量的80%时,设备会将超出的Tunnel接口的框号和板号信息作为告警信息发送到设备的SNMP模块。

·     开启了VXLAN over IPv4隧道状态的告警功能后,设备上的VXLAN over IPv4隧道状态发生变化时,设备会将此隧道信息记录在告警信息中,生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关特性。

当不指定任何参数时,设备将开启隧道模块的所有告警功能。

有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启隧道模块的告警功能。

snmp-agent trap enable tunnel [ max-threshold-reached | vxlan-config-failure | vxlan-decap-failure | vxlan-tunnel-status ] *

缺省情况下,隧道模块的告警功能处于关闭状态。

1.6  隧道接口显示和维护

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

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

表1-1 隧道显示和维护

操作

命令

显示Tunnel接口的相关信息

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

显示Tunnel接口的IPv6相关信息(本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IPv6基础”)

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

清除Tunnel接口的统计信息

reset counters interface [ tunnel [ number ] ]

清除Tunnel接口的IPv6统计信息(本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IPv6基础”)

reset ipv6 statistics [ slot slot-number ]

 

1.7  隧道常见故障处理

1.7.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地址,这样的隧道称为“自动隧道”。

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

1. IPv6 over IPv4手动隧道

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

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

2. 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自动隧道的局限性。

 

3. 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-2 ISATAP隧道原理图

 

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

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

(5)     配置IPv6 over IPv4隧道

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

¡     配置IPv6 over IPv4手动隧道

¡     配置6to4隧道

¡     配置ISATAP隧道

(6)     (可选)配置丢弃含有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-3所示,两个IPv6网络分别通过Switch A和Switch B与IPv4网络连接,要求在Switch A和Switch B之间建立IPv6 over IPv4隧道,使两个IPv6网络可以互通。由于隧道终点的IPv4地址不能从IPv6报文的目的地址中自动获取,因此,需要配置IPv6 over IPv4手动隧道。

2. 组网图

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

3. 配置步骤

说明

在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv4报文路由可达。

 

(1)     配置Switch A

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN100。

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port ten-gigabitethernet 1/0/2

[SwitchA-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 192.168.100.1 255.255.255.0

[SwitchA-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN101。

[SwitchA] vlan 101

[SwitchA-vlan101] port ten-gigabitethernet 1/0/1

[SwitchA-vlan101] quit

# 配置接口Vlan-interface101的IPv6地址。

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] ipv6 address 3002::1 64

[SwitchA-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[SwitchA] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[SwitchA] interface ten-gigabitethernet 1/0/3

[SwitchA-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchA-Ten-GigabitEthernet1/0/3] quit

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

[SwitchA] interface tunnel 0 mode ipv6-ipv4

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为Vlan-interface100。

[SwitchA-Tunnel0] source vlan-interface 100

# 配置Tunnel0接口的目的端地址(Switch B的Vlan-interface100的IP地址)。

[SwitchA-Tunnel0] destination 192.168.50.1

[SwitchA-Tunnel0] quit

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

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

(2)     配置Switch B

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN100。

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port ten-gigabitethernet 1/0/2

[SwitchB-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 192.168.50.1 255.255.255.0

[SwitchB-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN101。

[SwitchB] vlan 101

[SwitchB-vlan101] port ten-gigabitethernet 1/0/1

[SwitchB-vlan101] quit

# 配置接口Vlan-interface101的IPv6地址。

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] ipv6 address 3003::1 64

[SwitchB-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[SwitchB] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[SwitchB] interface ten-gigabitethernet 1/0/3

[SwitchB-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchB-Ten-GigabitEthernet1/0/3] quit

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

[SwitchB] interface tunnel 0 mode ipv6-ipv4

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为Vlan-interface100。

[SwitchB-Tunnel0] source vlan-interface 100

# 配置Tunnel0接口的目的端地址(Switch A的Vlan-interface100的IP地址)。

[SwitchB-Tunnel0] destination 192.168.100.1

[SwitchB-Tunnel0] quit

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

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

4. 验证配置

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

# 从Switch A和Switch B上可以Ping通对端的Vlan-int101接口的IPv6地址。下面仅以Switch A为例。

[SwitchA] 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-4所示,两个6to4网络通过网络边缘6to4 switch(Switch A和Switch B)与IPv4网络相连。在Switch A和Switch B之间建立6to4隧道,实现6to4网络中的主机Host A和Host B之间的互通。

2. 组网图

图2-4 6to4隧道组网图

3. 配置思路

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

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

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

4. 配置步骤

说明

在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv4报文路由可达。

 

(1)     配置Switch A

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN100。

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port ten-gigabitethernet 1/0/2

[SwitchA-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 2.1.1.1 24

[SwitchA-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN101。

[SwitchA] vlan 101

[SwitchA-vlan101] port ten-gigabitethernet 1/0/1

[SwitchA-vlan101] quit

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

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] ipv6 address 2002:0201:0101:1::1/64

[SwitchA-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[SwitchA] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[SwitchA] interface ten-gigabitethernet 1/0/3

[SwitchA-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchA-Ten-GigabitEthernet1/0/3] quit

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

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

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为Vlan-interface100。

[SwitchA-Tunnel0] source vlan-interface 100

[SwitchA-Tunnel0] quit

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

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

(2)     配置Switch B

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN100。

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port ten-gigabitethernet 1/0/2

[SwitchB-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 5.1.1.1 24

[SwitchB-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN101。

[SwitchB] vlan 101

[SwitchB-vlan101] port ten-gigabitethernet 1/0/1

[SwitchB-vlan101] quit

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

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] ipv6 address 2002:0501:0101:1::1/64

[SwitchB-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[SwitchB] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[SwitchB] interface ten-gigabitethernet 1/0/3

[SwitchB-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchB-Ten-GigabitEthernet1/0/3] quit

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

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

# 配置Tunnel0接口的IPv6地址。

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

# 配置Tunnel0接口的源接口为Vlan-interface100。

[SwitchB-Tunnel0] source vlan-interface 100

[SwitchB-Tunnel0] quit

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

[SwitchB] 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.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-5所示,IPv6网络和IPv4网络通过ISATAP交换机相连,在IPv4网络侧分布着一些IPv6主机。要求将IPv4网络中的IPv6主机通过ISATAP隧道接入到IPv6网络。

2. 组网图

图2-5 ISATAP隧道组网图

3. 配置步骤

(1)     配置Switch

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN100。

<Switch> system-view

[Switch] vlan 100

[Switch-vlan100] port ten-gigabitethernet 1/0/1

[Switch-vlan100] quit

# 配置接口Vlan-interface100的IPv6地址。

[Switch] interface vlan-interface 100

[Switch-Vlan-interface100] ipv6 address 3001::1/64

[Switch-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN101。

[Switch] vlan 101

[Switch-vlan101] port ten-gigabitethernet 1/0/2

[Switch-vlan101] quit

# 配置接口Vlan-interface101的IP地址。

[Switch] interface vlan-interface 101

[Switch-Vlan-interface101] ip address 1.1.1.1 255.0.0.0

[Switch-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[Switch] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[Switch] interface ten-gigabitethernet 1/0/3

[Switch-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[Switch-Ten-GigabitEthernet1/0/3] quit

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

[Switch] interface tunnel 0 mode ipv6-ipv4 isatap

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

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

# 配置Tunnel0接口的源接口为Vlan-interface101。

[Switch-Tunnel0] source vlan-interface 101

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

[Switch-Tunnel0] undo ipv6 nd ra halt

[Switch-Tunnel0] quit

(2)     配置ISATAP主机

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

# 配置ISATAP交换机的IPv4地址。

C:\>netsh interface ipv6 isatap set router 1.1.1.1

(3)     配置IPv6主机

# 配置一条到ISATAP交换机隧道的路由。

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. 配置限制和指导

IPv4兼容IPv6自动隧道不支持配置丢弃含有IPv4兼容IPv6地址的IPv6报文。

2. 配置步骤

(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位于不同的区域,这两个子网都使用私网地址。通过在交换机Switch A和交换机Switch B之间建立IPv4 over IPv4隧道,实现两个子网的互联。

2. 组网图

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

3. 配置步骤

说明

在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv4报文路由可达。

 

(1)     配置Switch A

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN100。

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port ten-gigabitethernet 1/0/1

[SwitchA-vlan100] quit

# 配置接口Vlan-interface100的地址。

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 10.1.1.1 255.255.255.0

[SwitchA-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN101。

[SwitchA] vlan 101

[SwitchA-vlan101] port ten-gigabitethernet 1/0/2

[SwitchA-vlan101] quit

# 配置接口Vlan-interface101的IP地址。

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] ip address 2.1.1.1 255.255.255.0

[SwitchA-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[SwitchA] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[SwitchA] interface ten-gigabitethernet 1/0/3

[SwitchA-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchA-Ten-GigabitEthernet1/0/3] quit

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

[SwitchA] interface tunnel 1 mode ipv4-ipv4

# 配置Tunnel1接口的IP地址。

[SwitchA-Tunnel1] ip address 10.1.2.1 255.255.255.0

# 配置Tunnel1接口的源端地址(Vlan-interface101的IP地址)。

[SwitchA-Tunnel1] source 2.1.1.1

# 配置Tunnel1接口的目的端地址(Switch B的Vlan-interface101的IP地址)。

[SwitchA-Tunnel1] destination 3.1.1.1

[SwitchA-Tunnel1] quit

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

[SwitchA] ip route-static 10.1.3.0 255.255.255.0 tunnel 1

(2)     配置Switch B

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN100。

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port ten-gigabitethernet 1/0/1

[SwitchB-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 10.1.3.1 255.255.255.0

[SwitchB-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN101。

[SwitchB] vlan 101

[SwitchB-vlan101] port ten-gigabitethernet 1/0/2

[SwitchB-vlan101] quit

# 配置接口Vlan-interface101的IP地址。

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] ip address 3.1.1.1 255.255.255.0

[SwitchB-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[SwitchB] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[SwitchB] interface ten-gigabitethernet 1/0/3

[SwitchB-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchB-Ten-GigabitEthernet1/0/3] quit

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

[SwitchB] interface tunnel 2 mode ipv4-ipv4

# 配置Tunnel2接口的IP地址。

[SwitchB-Tunnel2] ip address 10.1.2.2 255.255.255.0

# 配置Tunnel2接口的源端地址(Vlan-interface101的IP地址)。

[SwitchB-Tunnel2] source 3.1.1.1

# 配置Tunnel2接口的目的端地址(SwitchA的Vlan-interface101的IP地址)。

[SwitchB-Tunnel2] destination 2.1.1.1

[SwitchB-Tunnel2] quit

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

[SwitchB] ip route-static 10.1.1.0 255.255.255.0 tunnel 2

4. 验证配置

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

# 从Switch A和Switch B上可以Ping通对端的Vlan-interface100接口的IPv4地址。下面仅以Switch A为例。

[SwitchA] 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.2  配置IPv4 over IPv6隧道

4.2.1  配置限制和指导

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

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

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

4.2.2  配置步骤

(1)     进入系统视图。

system-view

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

interface tunnel number [ mode 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网络分别通过Switch A和Switch B与IPv6网络连接。通过在Switch A和Switch B之间建立IPv4 over IPv6隧道,实现两个IPv4网络穿越IPv6网络互联。

2. 组网图

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

3. 配置步骤

说明

在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv6报文路由可达。

 

(1)     配置Switch A

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN100。

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port ten-gigabitethernet 1/0/1

[SwitchA-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 30.1.1.1 255.255.255.0

[SwitchA-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN101。

[SwitchA] vlan 101

[SwitchA-vlan101] port ten-gigabitethernet 1/0/2

[SwitchA-vlan101] quit

# 配置接口Vlan-interface101的IPv6地址。

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] ipv6 address 2001::1:1 64

[SwitchA-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[SwitchA] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[SwitchA] interface ten-gigabitethernet 1/0/3

[SwitchA-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchA-Ten-GigabitEthernet1/0/3] quit

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

[SwitchA] interface tunnel 1 mode ipv6

# 配置Tunnel1接口的IP地址。

[SwitchA-Tunnel1] ip address 30.1.2.1 255.255.255.0

# 配置Tunnel1接口的源端地址(Vlan-interface101的IP地址)。

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

# 配置Tunnel1接口的目的端地址(Switch B的Vlan-interface101的IP地址)。

[SwitchA-Tunnel1] destination 2003::2:1

[SwitchA-Tunnel1] quit

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

[SwitchA] ip route-static 30.1.3.0 255.255.255.0 tunnel 1

(2)     配置Switch B

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN100。

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port ten-gigabitethernet 1/0/1

[SwitchB-vlan100] quit

# 配置接口Vlan-interface100的IP地址。

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 30.1.3.1 255.255.255.0

[SwitchB-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN101。

[SwitchB] vlan 101

[SwitchB-vlan101] port ten-gigabitethernet 1/0/2

[SwitchB-vlan101] quit

# 配置接口Vlan-interface101的IPv6地址。

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] ipv6 address 2003::2:1 64

[SwitchB-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[SwitchB] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[SwitchB] interface ten-gigabitethernet 1/0/3

[SwitchB-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchB-Ten-GigabitEthernet1/0/3] quit

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

[SwitchB] interface tunnel 2 mode ipv6

# 配置Tunnel2接口的IP地址。

[SwitchB-Tunnel2] ip address 30.1.2.2 255.255.255.0

# 配置Tunnel2接口的源端地址(Vlan-interface101的IP地址)。

[SwitchB-Tunnel2] source 2003::2:1

# 配置Tunnel2接口的目的端地址(Switch A的Vlan-interface101的IP地址)。

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

[SwitchB-Tunnel2] quit

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

[SwitchB] ip route-static 30.1.1.0 255.255.255.0 tunnel 2

4. 验证配置

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

# 从Switch A和Switch B上可以Ping通对端的Vlan-interface100接口的IPv4地址。下面仅以Switch A为例。

[SwitchA] 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 IPv6 over IPv6隧道

5.1  IPv6 over IPv6隧道简介

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

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

 

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

·     封装过程

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

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

·     解封装过程

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

5.2  IPv6 over IPv6隧道配置限制和指导

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

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

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

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

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

5.3  IPv6 over IPv6隧道配置任务简介

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

(1)     配置IPv6 over IPv6隧道

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

5.4  配置IPv6 over IPv6隧道

(1)     进入系统视图。

system-view

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

interface tunnel number [ mode ipv6 ]

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

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

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

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

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

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

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

destination ipv6-address

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

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

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

(1)     进入系统视图。

system-view

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

tunnel discard ipv4-compatible-packet

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

5.6  IPv6 over IPv6隧道典型配置举例

5.6.1  IPv6 over IPv6隧道基本组网配置举例

1. 组网需求

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

2. 组网图

图5-2 IPv6 over IPv6隧道组网图

3. 配置步骤

说明

在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv6报文路由可达。

 

(1)     配置Switch A

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN100。

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port ten-gigabitethernet 1/0/1

[SwitchA-vlan100] quit

# 配置接口Vlan-interface100的IPv6地址。

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ipv6 address 2003:1::1 64

[SwitchA-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN101。

[SwitchA] vlan 101

[SwitchA-vlan101] port ten-gigabitethernet 1/0/2

[SwitchA-vlan101] quit

# 配置接口Vlan-interface101的IPv6地址。

[SwitchA] interface vlan-interface 101

[SwitchA-Vlan-interface101] ipv6 address 2001::11:1 64

[SwitchA-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[SwitchA] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[SwitchA] interface ten-gigabitethernet 1/0/3

[SwitchA-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchA-Ten-GigabitEthernet1/0/3] quit

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

[SwitchA] interface tunnel 1 mode ipv6

# 配置Tunnel1接口的IP地址。

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

# 配置Tunnel1接口的源端地址(Vlan-interface101的IP地址)。

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

# 配置Tunnel1接口的目的端地址(Switch B的Vlan-interface101的IP地址)。

[SwitchA-Tunnel1] destination 2003::22:1

[SwitchA-Tunnel1] quit

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

[SwitchA] ipv6 route-static 2003:3:: 64 tunnel 1

(2)     配置Switch B

# 配置接口Ten-GigabitEthernet1/0/1加入VLAN100。

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port ten-gigabitethernet 1/0/1

[SwitchB-vlan100] quit

# 配置接口Vlan-interface100的IPv6地址。

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ipv6 address 2003:3::1 64

[SwitchB-Vlan-interface100] quit

# 配置接口Ten-GigabitEthernet1/0/2(隧道的实际物理接口)加入VLAN101。

[SwitchB] vlan 101

[SwitchB-vlan101] port ten-gigabitethernet 1/0/2

[SwitchB-vlan101] quit

# 配置接口Vlan-interface101的IPv6地址。

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] ipv6 address 2003::22:1 64

[SwitchB-Vlan-interface101] quit

# 创建业务环回组1,并配置服务类型为tunnel。

[SwitchB] service-loopback group 1 type tunnel

# 将接口Ten-GigabitEthernet1/0/3加入业务环回组1。

[SwitchB] interface ten-gigabitethernet 1/0/3

[SwitchB-Ten-GigabitEthernet1/0/3] port service-loopback group 1

[SwitchB-Ten-GigabitEthernet1/0/3] quit

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

[SwitchB] interface tunnel 2 mode ipv6

# 配置Tunnel2接口的IP地址。

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

# 配置Tunnel2接口的源端地址(Vlan-interface101的IP地址)。

[SwitchB-Tunnel2] source 2003::22:1

# 配置Tunnel2接口的目的端地址(Switch A的Vlan-interface101的IP地址)。

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

[SwitchB-Tunnel2] quit

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

[SwitchB] ipv6 route-static 2003:1:: 64 tunnel 2

4. 验证配置

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

# 从Switch A和Switch B上可以Ping通对端的Vlan-interface100接口的IPv6地址。下面仅以Switch A为例。

[SwitchA] ping ipv6 -a 2003:1::1 2003:3::1

Ping6(56 data bytes) 2003:1::1 --> 2003:3::1, press CTRL+C to break

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

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

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

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

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

 

--- Ping6 statistics for 2003: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

 

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

新华三官网
联系我们