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

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

目录

15-隧道配置

本章节下载 15-隧道配置  (578.49 KB)

15-隧道配置

  录

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.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.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.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”。

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

1.3  隧道配置限制和指导

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

 

 

 

 

1.4  配置Tunnel接口

1.4.1  功能简介

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

1.4.2  Tunnel接口配置任务简介

Tunnel接口配置任务如下:

(1)     创建Tunnel接口

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

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

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

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

1.4.3  创建Tunnel接口

(1)     进入系统视图。

system-view

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

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

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

(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.4.4  配置处理接口流量的slot

1. 功能简介

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入Tunnel接口视图。

interface tunnel number

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

service 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命令的详细介绍,请参见“MCE命令参考”中的“MCE”。

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.5  隧道接口显示和维护

在任意视图下执行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.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地址,这样的隧道称为“自动隧道”。

根据对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自动隧道的局限性。

·     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中继原理图

 

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

 

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

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

(1)     配置IPv6 over IPv4隧道

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

¡     配置IPv6 over IPv4手动隧道

¡     配置6to4隧道

¡     配置ISATAP隧道

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

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

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

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

tunnel dfbit enable

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

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

1. 组网需求

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

2. 组网图

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

3. 配置步骤

说明

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

 

(1)     配置Switch A

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

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port 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

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

[SwitchA] vlan 101

[SwitchA-vlan101] port 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

# 创建模式为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

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

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port 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

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

[SwitchB] vlan 101

[SwitchB-vlan101] port 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

# 创建模式为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地址。

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

tunnel dfbit enable

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

2.4.3  6to4隧道典型配置举例

1. 组网需求

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

2. 组网图

图2-5 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

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

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port 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

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

[SwitchA] vlan 101

[SwitchA-vlan101] port 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

# 创建模式为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

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

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port 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

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

[SwitchB] vlan 101

[SwitchB-vlan101] port 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

# 创建模式为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.4.4  6to4中继典型配置举例

1. 组网需求

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

2. 组网图

图2-6 6to4中继组网图

3. 配置思路

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

4. 配置步骤

说明

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

 

(1)     配置Switch A

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

<SwitchA> system-view

[SwitchA] vlan 100

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

[SwitchA-vlan100] quit

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

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 2.1.1.1 255.255.255.0

[SwitchA-Vlan-interface100] quit

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

[SwitchA] vlan 101

[SwitchA-vlan101] port 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

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

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

# 配置Tunnel0接口的IPv6地址。

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

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

[SwitchA-Tunnel0] source vlan-interface 100

[SwitchA-Tunnel0] quit

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

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

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

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

(2)     配置Switch B

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

<SwitchB> system-view

[SwitchB] vlan 100

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

[SwitchB-vlan100] quit

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

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 6.1.1.1 255.255.255.0

[SwitchB-Vlan-interface100] quit

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

[SwitchB] vlan 101

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

[SwitchB-vlan101] quit

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

[SwitchB] interface vlan-interface 101

[SwitchB-Vlan-interface101] ipv6 address 2001::1/16

[SwitchB-Vlan-interface101] quit

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

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

# 配置Tunnel0接口的IPv6地址。

[SwitchB-Tunnel0] ipv6 address 2003::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 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地址。

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

tunnel dfbit enable

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

2.5.3  ISATAP隧道典型配置举例

1. 组网需求

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

2. 组网图

图2-7 ISATAP隧道组网图

3. 配置步骤

(1)     配置Switch

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

<Switch> system-view

[Switch] vlan 100

[Switch-vlan100] port 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

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

[Switch] vlan 101

[Switch-vlan101] port 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

# 创建模式为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)     进入系统视图。

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

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

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

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

tunnel dfbit enable

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

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

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

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port 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

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

[SwitchA] vlan 101

[SwitchA-vlan101] port 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

# 创建模式为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

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

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port 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

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

[SwitchB] vlan 101

[SwitchB-vlan101] port 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

# 创建模式为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)     进入模式为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网络分别通过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

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

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port 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

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

[SwitchA] vlan 101

[SwitchA-vlan101] port 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

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

[SwitchA] interface tunnel 1 mode ipv4-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

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

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port 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

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

[SwitchB] vlan 101

[SwitchB-vlan101] port 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

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

[SwitchB] interface tunnel 2 mode ipv4-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隧道

(3)     进入系统视图。

system-view

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

interface tunnel number [ mode ipv6-ipv6 ]

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

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

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

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

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

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

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

destination ipv6-address

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

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

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

encapsulation-limit number

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

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

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

<SwitchA> system-view

[SwitchA] vlan 100

[SwitchA-vlan100] port 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

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

[SwitchA] vlan 101

[SwitchA-vlan101] port 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

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

[SwitchA] interface tunnel 1 mode ipv6-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

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

<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port 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

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

[SwitchB] vlan 101

[SwitchB-vlan101] port 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

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

[SwitchB] interface tunnel 2 mode ipv6-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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们