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

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

目录

09-隧道配置

本章节下载 09-隧道配置  (480.38 KB)

09-隧道配置


1 隧道配置

三层以太网端口是指被配置为三层模式的以太网端口,有关以太网端口模式切换的操作,请参见“二层技术-以太网交换配置指导”中的“以太网端口配置”。

 

1.1  隧道概述

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

隧道技术可以:

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

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

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

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

1.1.1  IPv6 over IPv4隧道

1. IPv6 over IPv4隧道原理

IPv6 over IPv4隧道是在IPv6数据报文前封装上IPv4的报文头,通过隧道使IPv6报文穿越IPv4网络,实现隔离的IPv6网络的互通,如图1-1所示。IPv6 over IPv4隧道可以建立在主机—主机、主机—设备或设备—设备之间。隧道的终点可能是IPv6报文的最终目的地,也可能需要进一步转发。

IPv6 over IPv4隧道两端的设备必须支持IPv4/IPv6双协议栈。

 

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

 

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

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

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

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

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

2. IPv6 over IPv4隧道模式

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

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

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

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

表1-1 IPv6 over IPv4隧道模式

隧道类型

隧道模式

隧道源/目的地址

隧道接口地址

配置隧道

IPv6手动隧道

源/目的地址为手动配置的IPv4地址

IPv6地址

IPv6-over-IPv4 GRE隧道

源/目的地址为手动配置的IPv4地址

IPv6地址

自动隧道

6to4隧道

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

6to4地址,其格式为:

2002:IPv4-source-address::/48

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

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

ISATAP地址,其格式为:

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

 

(1)        IPv6手动隧道

手动隧道是点到点之间的链路,一条链路就是一个单独的隧道。主要用于边缘路由器—边缘路由器或主机—边缘路由器之间定期安全通信的稳定连接,可实现与远端IPv6网络的连接。

(2)        IPv6-over-IPv4 GRE隧道

使用标准的GRE协议对IPv6报文进行封装,使IPv6报文能通过隧道穿越IPv4网络。与IPv6手动隧道相似,IPv6-over-IPv4 GRE隧道也是点到点之间的链路,每条链路都是一条单独的隧道。IPv6-over-IPv4 GRE隧道主要用于边缘路由器—边缘路由器、主机—边缘路由器定期安全通信的稳定连接。相关配置请参见“三层技术-IP业务配置指导”中的“GRE”。

(3)        6to4隧道

6to4隧道是点到多点的自动隧道,主要用于将多个IPv6孤岛通过IPv4网络连接到IPv6网络。6to4隧道通过在IPv6报文的目的地址中嵌入IPv4地址,来实现自动获取隧道终点的IPv4地址。

6to4隧道采用特殊的6to4地址,其格式为:2002:abcd:efgh:子网号::接口ID/64,其中2002表示固定的IPv6地址前缀,abcd:efgh表示该6to4隧道对应的32位全球唯一的IPv4源地址,用16进制表示(如1.1.1.1可以表示为0101:0101)。2002:abcd:efgh之后的部分唯一标识了一个主机在6to4网络内的位置。通过这个嵌入的IPv4地址可以自动确定隧道的终点,使隧道的建立非常方便。

由于6to4地址的64位地址前缀中的16位子网号可以由用户自定义,前缀中的前48位已由固定数值、隧道起点或终点设备的IPv4地址确定,使IPv6报文通过隧道进行转发成为可能。

(4)        ISATAP隧道

随着IPv6技术的推广,现有的IPv4网络中将会出现越来越多的IPv6主机,ISATAP隧道技术为这种应用提供了一个较好的解决方案。ISATAP隧道是点到多点的自动隧道技术,通过在IPv6报文的目的地址中嵌入的IPv4地址,可以自动获取隧道的终点。

使用ISATAP隧道时,IPv6报文的目的地址和隧道接口的IPv6地址都要采用特殊的ISATAP地址。ISATAP地址格式为:Prefix(64bit):0:5EFE:abcd:efgh。其中,64位的Prefix为任何合法的IPv6单播地址前缀,abcd:efgh表示32位IPv4源地址,用16进制表示(如1.1.1.1可以表示为0101:0101),该IPv4地址不要求全球唯一。通过这个嵌入的IPv4地址就可以自动建立隧道,完成IPv6报文的传送。

ISATAP隧道主要用于在IPv4网络中IPv6路由器—IPv6路由器、IPv6主机—IPv6路由器的连接。

图1-2 ISATAP隧道原理图

 

1.1.2  IPv4 over IPv4 隧道

1. IPv4 over IPv4隧道简介

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

2. 报文封装及解封装

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

 

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

l              封装过程

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

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

l              解封装过程

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

1.1.3  IPv4 over IPv6隧道

1. IPv4 over IPv6隧道原理

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

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

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

 

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

(1)        封装过程

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

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

(2)        解封装流程

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

2. IPv4 over IPv6隧道模式

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

(1)        IPv4 over IPv6手动隧道

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

(2)        IPv4-over-IPv6 GRE隧道

IPv4-over-IPv6 GRE隧道与IPv4 over IPv6手动隧道相似,也需要手动配置隧道的源和目的IPv6地址,也是点到点之间的链路。不同的是,IPv4 over IPv6手动隧道直接在IPv4报文上封装IPv6报文头,而IPv4-over-IPv6 GRE隧道使用标准的GRE协议对IPv4报文进行封装。

IPv4-over-IPv6 GRE隧道的封装和解封装过程与“1.1.3  1. IPv4 over IPv6隧道原理”中描述的过程有所不同,详细介绍请参见“三层技术-IP业务配置指导”中的“GRE”。

 

1.1.4  IPv6 over IPv6隧道

1. IPv6 over IPv6隧道简介

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

2. 报文封装及解封装

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

 

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

l              封装过程

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

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

l              解封装流程

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

GRE协议可以用来实现“IPv6 over IPv6隧道”的功能,相关配置请参见“三层技术-IP业务配置指导”中的“GRE”。

 

1.1.5  协议规范

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

l              RFC 1853:IP in IP Tunneling

l              RFC 2473:Generic Packet Tunneling in IPv6 Specification

l              RFC 2893:Transition Mechanisms for IPv6 Hosts and Routers

l              RFC 3056:Connection of IPv6 Domains via IPv4 Clouds

l              RFC 4214:Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)

1.2  隧道配置任务简介

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

配置任务

说明

详细配置

配置Tunnel接口

必选

1.3 

配置IPv6 over IPv4隧道

配置IPv6手动隧道

根据组网情况,选择其一

1.4 

配置6to4隧道

1.5 

配置ISATAP隧道

1.6 

配置IPv4 over IPv4隧道

1.7 

配置IPv4 over IPv6手动隧道

1.8 

配置IPv6 over IPv6隧道

1.9 

 

1.3  配置Tunnel接口

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

表1-3 配置Tunnel接口

配置步骤

命令

说明

进入系统视图

system-view

-

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

interface tunnel number

必选

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

配置接口描述信息

description text

可选

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

指定转发当前接口流量的成员设备

service slot slot-number

可选

缺省情况下,没有指定转发当前接口流量的成员设备

指定Tunnel接口引用的业务环回组ID

service-loopback-group number

必选

缺省情况下,隧道未引用任何业务环回组

配置MTU值

mtu size

可选

缺省情况下,Tunnel接口的MTU值显示为64000字节

需要注意的是:

l      在任意一个Tunnel接口下配置的MTU,对所有已创建的Tunnel接口都有效

l      Tunnel接口的MTU可多次配置,但是只有最后一次配置生效

配置Tunnel接口的带宽

tunnel bandwidth bandwidth-value

可选

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

恢复当前接口的缺省配置

default

可选

关闭Tunnel接口

shutdown

可选

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

 

l          对于交换机,封装后的报文不能根据目的地址和路由表进行第二次三层转发,需要将封装后的报文发送给业务环回口,由业务环回口将报文回送给转发模块后,再进行三层转发。因此,需要指定隧道接口引用的业务环回组,以实现隧道报文的接收和发送。隧道接口引用的业务环回组必须已创建,否则隧道接口状态不会up,隧道无法通讯。关于业务环回组的创建和配置,请参见“二层技术-以太网交换配置指导”中的“业务环回组”。

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

l          当通过Tunnel接口转发的IP单播报文的MTU超过配置的MTU时,设备将会对该IP单播报文进行分片,同时给源端设备发送ICMP差错报文,通告源端调整MTU,使发送的IP单播报文的MTU不超过配置的MTU。

l          当IPv6单播数据报文超大时,设备会给源端设备发送ICMPv6差错报文,但是由于该ICMPv6差错报文支持携带的最小MTU值为1280字节,因此,如果在设备上配置对IPv6单播数据报文进行封装的隧道(如IPv6 over IPv4隧道、IPv6 over IPv6隧道),请确保配置的MTU值不小于1280字节。

l           缺省情况下,ICMP目的不可达报文发送功能处于关闭状态,为了使设备能够发送ICMP差错报文,用户需要通过ip unreachables enable命令开启ICMP目的不可达报文发送功能。

 

1.4  配置IPv6手动隧道

1.4.1  配置准备

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

1.4.2  配置IPv6手动隧道

表1-4 配置IPv6手动隧道

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

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

进入Tunnel接口视图

interface tunnel number

-

设置Tunnel接口的IPv6地址

配置IPv6全球单播地址或站点本地地址

ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }

二者必选其一

缺省情况下,Tunnel接口上没有设置IPv6全球单播地址或站点本地地址

ipv6 address ipv6-address/prefix-length eui-64

配置IPv6链路本地地址

ipv6 address auto link-local

可选

缺省情况下,当接口配置了IPv6全球单播地址或站点本地地址后,会自动生成链路本地地址

ipv6 address ipv6-address link-local

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

tunnel-protocol ipv6-ipv4

必选

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

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

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

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

必选

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

设置Tunnel接口的目的端地址

destination ip-address

必选

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

退回系统视图

quit

-

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

tunnel discard ipv4-compatible-packet

可选

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

 

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

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

 

1.4.3  配置举例

1. 组网需求

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

2. 组网图

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

 

3. 配置步骤

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

 

(1)        配置Switch A

# 使能IPv6转发功能。

<SwitchA> system-view

[SwitchA] ipv6

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

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 192.168.100.1 255.255.255.0

[SwitchA-Vlan-interface100] 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

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[SwitchA] interface GigabitEthernet 1/0/3

[SwitchA-GigabitEthernet1/0/3] undo stp enable

[SwitchA-GigabitEthernet1/0/3] undo lldp enable

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

[SwitchA-GigabitEthernet1/0/3] quit

# 配置手动隧道。

[SwitchA] interface tunnel 0

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

[SwitchA-Tunnel0] source vlan-interface 100

[SwitchA-Tunnel0] destination 192.168.50.1

[SwitchA-Tunnel0] tunnel-protocol ipv6-ipv4

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[SwitchA-Tunnel0] service-loopback-group 1

[SwitchA-Tunnel0] quit

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

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

(2)        配置Switch B

# 使能IPv6转发功能。

<SwitchB> system-view

[SwitchB] ipv6

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

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 192.168.50.1 255.255.255.0

[SwitchB-Vlan-interface100] 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

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[SwitchB] interface GigabitEthernet 1/0/3

[SwitchB-GigabitEthernet1/0/3] undo stp enable

[SwitchB-GigabitEthernet1/0/3] undo lldp enable

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

[SwitchB-GigabitEthernet1/0/3] quit

# 配置手动隧道。

[SwitchB] interface tunnel 0

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

[SwitchB-Tunnel0] source vlan-interface 100

[SwitchB-Tunnel0] destination 192.168.100.1

[SwitchB-Tunnel0] tunnel-protocol ipv6-ipv4

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[SwitchB-Tunnel0] service-loopback-group 1

[SwitchB-Tunnel0] quit

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

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

4. 验证配置结果

完成以上配置之后,分别查看Switch ASwitch BTunnel接口状态如下:

[SwitchA] display ipv6 interface tunnel 0

Tunnel0 current state :UP

Line protocol current state :UP

IPv6 is enabled, link-local address is FE80::C0A8:6401

  Global unicast address(es):

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

  Joined group address(es):

    FF02::1:FF00:0

    FF02::1:FF00:1

    FF02::1:FFA8:6401

    FF02::2

    FF02::1

  MTU is 1480 bytes

  ND reachable time is 30000 milliseconds

  ND retransmit interval is 1000 milliseconds

  Hosts use stateless autoconfig for addresses

IPv6 Packet statistics:

  InReceives:                    55

……(略)

[SwitchB] display ipv6 interface tunnel 0

Tunnel0 current state :UP

Line protocol current state :UP

IPv6 is enabled, link-local address is FE80::C0A8:3201

  Global unicast address(es):

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

  Joined group address(es):

    FF02::1:FF00:0

    FF02::1:FF00:1

    FF02::1:FFA8:3201

    FF02::2

    FF02::1

  MTU is 1480 bytes

  ND reachable time is 30000 milliseconds

  ND retransmit interval is 1000 milliseconds

  Hosts use stateless autoconfig for addresses

IPv6 Packet statistics:

  InReceives:                    55

……(略)

# 从Switch A上可以Ping通对端的Vlan-int101接口的IPv6地址:

[SwitchA] ping ipv6 3003::1

  PING 3003::1 : 56  data bytes, press CTRL_C to break

    Reply from 3003::1

    bytes=56 Sequence=1 hop limit=64  time = 1 ms

    Reply from 3003::1

    bytes=56 Sequence=2 hop limit=64  time = 1 ms

    Reply from 3003::1

    bytes=56 Sequence=3 hop limit=64  time = 1 ms

    Reply from 3003::1

    bytes=56 Sequence=4 hop limit=64  time = 1 ms

    Reply from 3003::1

    bytes=56 Sequence=5 hop limit=64  time = 1 ms

 

  --- 3003::1 ping statistics ---

    5 packet(s) transmitted

    5 packet(s) received

    0.00% packet loss

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

1.5  配置6to4隧道

1.5.1  配置准备

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

1.5.2  配置6to4隧道

表1-5 配置6to4隧道

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

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

进入Tunnel接口视图

interface tunnel number

-

设置Tunnel接口的IPv6地址

配置IPv6全球单播地址或站点本地地址

ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }

二者必选其一

缺省情况下,Tunnel接口上没有设置IPv6全球单播地址或站点本地地址

ipv6 address ipv6-address/prefix-length eui-64

配置IPv6链路本地地址

ipv6 address auto link-local

可选

缺省情况下,当接口配置了IPv6全球单播地址或站点本地地址后,会自动生成链路本地地址

ipv6 address ipv6-address link-local

配置隧道模式为6to4隧道

tunnel-protocol ipv6-ipv4 6to4

必选

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

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

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

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

必选

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

退回系统视图

quit

-

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

tunnel discard ipv4-compatible-packet

可选

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

 

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

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

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

 

1.5.3  配置6to4隧道举例

1. 组网需求

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

2. 组网图

图1-7 6to4隧道组网图

 

3. 配置思路

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

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

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

4. 配置步骤

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

 

(1)        配置Switch A

# 使能IPv6转发功能。

<SwitchA> system-view

[SwitchA] ipv6

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

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 2.1.1.1 24

[SwitchA-Vlan-interface100] quit

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

[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

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[SwitchA] interface GigabitEthernet 1/0/3

[SwitchA-GigabitEthernet1/0/3] undo stp enable

[SwitchA-GigabitEthernet1/0/3] undo lldp enable

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

[SwitchA-GigabitEthernet1/0/3] quit

# 配置6to4隧道。

[SwitchA] interface tunnel 0

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

[SwitchA-Tunnel0] source vlan-interface 100

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

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[SwitchA-Tunnel0] service-loopback-group 1

[SwitchA-Tunnel0] quit

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

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

(2)        配置Switch B

# 使能IPv6转发功能。

<SwitchB> system-view

[SwitchB] ipv6

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

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 5.1.1.1 24

[SwitchB-Vlan-interface100] quit

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

[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

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[SwitchB] interface GigabitEthernet 1/0/3

[SwitchB-GigabitEthernet1/0/3] undo stp enable

[SwitchB-GigabitEthernet1/0/3] undo lldp enable

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

[SwitchB-GigabitEthernet1/0/3] quit

# 配置6to4隧道。

[SwitchB] interface tunnel 0

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

[SwitchB-Tunnel0] source vlan-interface 100

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

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[SwitchB-Tunnel0] service-loopback-group 1

[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

1.6  配置ISATAP隧道

1.6.1  配置准备

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

1.6.2  配置ISATAP隧道

表1-6 配置ISATAP隧道

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

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

进入Tunnel接口视图

interface tunnel number

-

设置Tunnel接口的IPv6地址

配置IPv6全球单播地址或站点本地地址

ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }

二者必选其一

缺省情况下,Tunnel接口上没有设置IPv6全球单播地址或站点本地地址

ipv6 address ipv6-address/prefix-length eui-64

配置IPv6链路本地地址

ipv6 address auto link-local

可选

缺省情况下,当接口配置了IPv6全球单播地址或站点本地地址后,会自动生成链路本地地址

ipv6 address ipv6-address link-local

配置隧道模式为ISATAP隧道

tunnel-protocol ipv6-ipv4 isatap

必选

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

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

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

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

必选

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

退回系统视图

quit

-

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

tunnel discard ipv4-compatible-packet

可选

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

 

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

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

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

 

1.6.3  配置举例

1. 组网需求

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

2. 组网图

图1-8 ISATAP隧道组网图

 

3. 配置步骤

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

 

(1)        配置Switch

# 使能IPv6转发功能。

<Switch> system-view

[Switch] ipv6

# 配置各接口地址。

[Switch] interface vlan-interface 100

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

[Switch-Vlan-interface100] quit

[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

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[Switch] interface GigabitEthernet 1/0/3

[Switch-GigabitEthernet1/0/3] undo stp enable

[Switch-GigabitEthernet1/0/3] undo lldp enable

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

[Switch-GigabitEthernet1/0/3] quit

# 配置ISATAP隧道。

[Switch] interface tunnel 0

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

[Switch-Tunnel0] source vlan-interface 101

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

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

[Switch-Tunnel0] undo ipv6 nd ra halt

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[Switch-Tunnel0] service-loopback-group 1

[Switch-Tunnel0] quit

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

[Switch] ipv6 route-static 2001:: 16 tunnel 0

(2)        配置ISATAP主机

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

# 在主机上安装IPv6协议。

C:\>ipv6 install

# 在Windows XP上,ISATAP接口通常为接口2,只要在该接口上配置ISATAP交换机的IPv4地址即可完成主机侧的配置。先看看这个ISATAP接口的信息:

C:\>ipv6 if 2

Interface 2: Automatic Tunneling Pseudo-Interface

  Guid {48FCE3FC-EC30-E50E-F1A7-71172AEEE3AE}

  does not use Neighbor Discovery

  does not use Router Discovery

  routing preference 1

  EUI-64 embedded IPv4 address: 0.0.0.0

  router link-layer address: 0.0.0.0

    preferred link-local fe80::5efe:2.1.1.2, life infinite

  link MTU 1280 (true link MTU 65515)

  current hop limit 128

  reachable time 42500ms (base 30000ms)

  retransmission interval 1000ms

  DAD transmits 0

  default site prefix length 48

# 它自动生成了一个ISATAP格式的link-local地址(fe80::5efe:2.1.1.2)。我们需要设置这个接口上的ISATAP交换机的IPv4地址:

C:\>ipv6 rlu 2 1.1.1.1

# 只需要这么一个命令,这就完成了主机的配置,我们再来看看这个ISATAP接口的信息:

C:\>ipv6 if 2

Interface 2: Automatic Tunneling Pseudo-Interface

  Guid {48FCE3FC-EC30-E50E-F1A7-71172AEEE3AE}

  does not use Neighbor Discovery

  uses Router Discovery

  routing preference 1

  EUI-64 embedded IPv4 address: 2.1.1.2

  router link-layer address: 1.1.1.1

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

    preferred link-local fe80::5efe:2.1.1.2, life infinite

  link MTU 1500 (true link MTU 65515)

  current hop limit 255

  reachable time 42500ms (base 30000ms)

  retransmission interval 1000ms

  DAD transmits 0

  default site prefix length 48

# 对比前后的区别,我们可以看到主机获取了2001::/64的前缀,自动生成地址2001::5efe:2.1.1.2,同时还会发现这么一行“uses Router Discovery”表明主机启用了路由器发现,这时ping一下交换机上隧道接口的IPv6地址,可以ping通,这时候表明ISATAP隧道已经成功建立。

C:\>ping 2001::5efe:1.1.1.1

 

Pinging 2001::5efe:1.1.1.1 with 32 bytes of data:

 

Reply from 2001::5efe:1.1.1.1: time=1ms

Reply from 2001::5efe:1.1.1.1: time=1ms

Reply from 2001::5efe:1.1.1.1: time=1ms

Reply from 2001::5efe:1.1.1.1: time=1ms

 

Ping statistics for 2001::5efe:1.1.1.1:

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

Approximate round trip times in milli-seconds:

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

4. 验证配置结果

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

1.7  配置IPv4 over IPv4隧道

1.7.1  配置准备

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

1.7.2  配置IPv4 over IPv4隧道

表1-7 配置IPv4 over IPv4隧道

操作

命令

说明

进入系统视图

system-view

-

进入Tunnel接口视图

interface tunnel number

-

设置Tunnel接口的IPv4地址

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

必选

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

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

tunnel-protocol ipv4-ipv4

可选

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

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

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

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

必选

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

设置Tunnel接口的目的端地址

destination ip-address

必选

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

 

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

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

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

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

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

 

1.7.3  配置举例

1. 组网需求

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

2. 组网图

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

 

3. 配置步骤

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

 

(1)        配置Switch A

# 配置接口Vlan-interface100

<SwitchA> system-view

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 10.1.1.1 255.255.255.0

[SwitchA-Vlan-interface100] quit

# 配置接口Vlan-interface101(隧道的实际物理接口)。

[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

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[SwitchA] interface GigabitEthernet 1/0/3

[SwitchA-GigabitEthernet1/0/3] undo stp enable

[SwitchA-GigabitEthernet1/0/3] undo lldp enable

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

[SwitchA-GigabitEthernet1/0/3] quit

# 创建Tunnel1接口。

[SwitchA] interface tunnel 1

# 配置Tunnel1接口的IP地址。

[SwitchA-Tunnel1] ip address 10.1.2.1 255.255.255.0

# 配置Tunnel封装模式。

[SwitchA-Tunnel1] tunnel-protocol ipv4-ipv4

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

[SwitchA-Tunnel1] source 2.1.1.1

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

[SwitchA-Tunnel1] destination 3.1.1.1

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[SwitchA-Tunnel1] service-loopback-group 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

# 配置接口Vlan-interface100

<SwitchB> system-view

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 10.1.3.1 255.255.255.0

[SwitchB-Vlan-interface100] quit

# 配置接口Vlan-interface101(隧道的实际物理接口)。

[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

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[SwitchB] interface GigabitEthernet 1/0/3

[SwitchB-GigabitEthernet1/0/3] undo stp enable

[SwitchB-GigabitEthernet1/0/3] undo lldp enable

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

[SwitchB-GigabitEthernet1/0/3] quit

# 创建Tunnel2接口。

[SwitchB] interface tunnel 2

# 配置Tunnel2接口的IP地址。

[SwitchB-Tunnel2] ip address 10.1.2.2 255.255.255.0

# 配置Tunnel封装模式。

[SwitchB-Tunnel2] tunnel-protocol ipv4-ipv4

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

[SwitchB-Tunnel2] source 3.1.1.1

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

[SwitchB-Tunnel2] destination 2.1.1.1

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[SwitchB-Tunnel2] service-loopback-group 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 ASwitch BTunnel接口状态如下:

[SwitchA] display interface tunnel 1

Tunnel1 current state: UP

Line protocol current state: UP

Description: Tunnel1 Interface

The Maximum Transmit Unit is 1480

Internet Address is 10.1.2.1/24 Primary

Encapsulation is TUNNEL, service-loopback-group ID is 1.

Tunnel source 2.1.1.1(Vlan-interface101), destination 3.1.1.1

Tunnel protocol/transport IP/IP

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

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

    4 packets input,  256 bytes

    0 input error

    12 packets output,  768 bytes

    0 output error

 

[SwitchB] display interface tunnel 2

Tunnel2 current state: UP

Line protocol current state: UP

Description: Tunnel2 Interface

The Maximum Transmit Unit is 1480

Internet Address is 10.1.2.2/24 Primary

Encapsulation is TUNNEL, service-loopback-group ID is 1.

Tunnel source 3.1.1.1(Vlan-interface101), destination 2.1.1.1

Tunnel protocol/transport IP/IP

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

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

    5 packets input,  320 bytes

    0 input error

    9 packets output,  576 bytes

    0 output error

# 从Switch A可以Ping通对端的Vlan-interface100接口的IPv4地址:

[RouterA] ping 10.1.3.1

  PING 10.1.3.1: 56  data bytes, press CTRL_C to break

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

    Reply from 10.1.3.1: bytes=56 Sequence=2 ttl=255 time=15 ms

    Reply from 10.1.3.1: bytes=56 Sequence=3 ttl=255 time=16 ms

    Reply from 10.1.3.1: bytes=56 Sequence=4 ttl=255 time=16 ms

    Reply from 10.1.3.1: bytes=56 Sequence=5 ttl=255 time=15 ms

 

  --- 10.1.3.1 ping statistics ---

    5 packet(s) transmitted

    5 packet(s) received

    0.00% packet loss

    round-trip min/avg/max = 15/15/16 ms

1.8  配置IPv4 over IPv6手动隧道

1.8.1  配置准备

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

1.8.2  配置IPv4 over IPv6手动隧道

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

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

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

进入Tunnel接口视图

interface tunnel number

-

设置Tunnel接口的IPv4地址

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

必选

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

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

tunnel-protocol ipv4-ipv6

可选

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

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

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

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

必选

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

设置Tunnel接口的目的端地址

destination ipv6-address

必选

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

 

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

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

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

 

1.8.3  配置举例

1. 组网需求

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

2. 组网图

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

 

3. 配置步骤

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

 

(1)        配置Switch A

# 使能IPv6转发功能。

<SwitchA> system-view

[SwitchA] ipv6

# 配置接口Vlan-interface100

[SwitchA] interface vlan-interface 100

[SwitchA-Vlan-interface100] ip address 30.1.1.1 255.255.255.0

[SwitchA-Vlan-interface100] quit

# 配置接口Vlan-interface101(隧道的实际物理接口)。

[SwitchA] interface vlan-interface 101

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

[SwitchA-Vlan-interface101] quit

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

[SwitchA] service-loopback group 1 type tunnel

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[SwitchA] interface GigabitEthernet 1/0/3

[SwitchA-GigabitEthernet1/0/3] undo stp enable

[SwitchA-GigabitEthernet1/0/3] undo lldp enable

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

[SwitchA-GigabitEthernet1/0/3] quit

# 创建Tunnel1接口。

[SwitchA] interface tunnel 1

# 配置Tunnel1接口的IP地址。

[SwitchA-Tunnel1] ip address 30.1.2.1 255.255.255.0

# 配置Tunnel封装模式。

[SwitchA-Tunnel1] tunnel-protocol ipv4-ipv6

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

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

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

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

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[SwitchA-Tunnel1] service-loopback-group 1

[SwitchA-Tunnel1] quit

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

[SwitchA] ip route-static 30.1.3.0 255.255.255.0 tunnel 1

(2)        配置Switch B

# 使能IPv6转发功能。

<SwitchA> system-view

[SwitchA] ipv6

# 配置接口Vlan-interface100。

[SwitchB] interface vlan-interface 100

[SwitchB-Vlan-interface100] ip address 30.1.3.1 255.255.255.0

[SwitchB-Vlan-interface100] quit

# 配置接口Vlan-interface101(隧道的实际物理接口)。

[SwitchB] interface vlan-interface 101

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

[SwitchB-Vlan-interface101] quit

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

[SwitchB] service-loopback group 1 type tunnel

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[SwitchB] interface GigabitEthernet 1/0/3

[SwitchB-GigabitEthernet1/0/3] undo stp enable

[SwitchB-GigabitEthernet1/0/3] undo lldp enable

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

[SwitchB-GigabitEthernet1/0/3] quit

# 创建Tunnel2接口。

[SwitchB] interface tunnel 2

# 配置Tunnel2接口的IP地址。

[SwitchB-Tunnel2] ip address 30.1.2.2 255.255.255.0

# 配置Tunnel封装模式。

[SwitchB-Tunnel2] tunnel-protocol ipv4-ipv6

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

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

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

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

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[SwitchB-Tunnel2] service-loopback-group 1

[SwitchB-Tunnel2] quit

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

[SwitchB] ip route-static 30.1.1.0 255.255.255.0 tunnel 2

4. 验证配置结果

完成以上配置之后,分别查看Switch ASwitch BTunnel接口状态如下:

[SwitchA] display interface tunnel 1

Tunnel1 current state: UP

Line protocol current state: UP

Description: Tunnel1 Interface

The Maximum Transmit Unit is 1460

Internet Address is 30.1.2.1/24 Primary

Encapsulation is TUNNEL, service-loopback-group ID is 1.

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

Tunnel protocol/transport IP/IPv6

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

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

    152 packets input,  9728 bytes

    0 input error

    168 packets output,  10752 bytes

    0 output error

 

[SwitchB] display interface tunnel 2

Tunnel2 current state: UP

Line protocol current state: UP

Description: Tunnel2 Interface

The Maximum Transmit Unit is 1460

Internet Address is 30.1.2.2/24 Primary

Encapsulation is TUNNEL, service-loopback-group ID is 1.

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

Tunnel protocol/transport IP/IPv6

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

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

    167 packets input,  10688 bytes

    0 input error

    170 packets output,  10880 bytes

    0 output error

# 从Switch A可以Ping通对端的Vlan-interface100接口的IPv4地址:

[SwitchA] ping 30.1.3.1

  PING 30.1.3.1: 56  data bytes, press CTRL_C to break

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

    Reply from 30.1.3.1: bytes=56 Sequence=2 ttl=255 time=15 ms

    Reply from 30.1.3.1: bytes=56 Sequence=3 ttl=255 time=16 ms

    Reply from 30.1.3.1: bytes=56 Sequence=4 ttl=255 time=15 ms

    Reply from 30.1.3.1: bytes=56 Sequence=5 ttl=255 time=16 ms

 

  --- 30.1.3.1 ping statistics ---

    5 packet(s) transmitted

    5 packet(s) received

    0.00% packet loss

    round-trip min/avg/max = 15/21/46 ms

1.9  配置IPv6 over IPv6隧道

1.9.1  配置准备

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

1.9.2  配置IPv6 over IPv6隧道

表1-9 配置IPv6 over IPv6隧道

操作

命令

说明

进入系统视图

system-view

-

使能IPv6报文转发功能

ipv6

必选

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

进入Tunnel接口视图

interface tunnel number

-

设置Tunnel接口的IPv6地址

配置IPv6全球单播地址或站点本地地址

ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }

必选之一

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

ipv6 address ipv6-address/prefix-length eui-64

配置IPv6链路本地地址

ipv6 address auto link-local

ipv6 address ipv6-address link-local

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

tunnel-protocol ipv6-ipv6

可选

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

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

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

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

必选

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

设置Tunnel接口的目的端地址

destination ipv6-address

必选

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

设置隧道允许的最大嵌套封装次数

encapsulation-limit [ number ]

可选

缺省情况下,number的值为4

退回系统视图

quit

-

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

tunnel discard ipv4-compatible-packet

可选

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

 

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

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

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

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

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

 

1.9.3  配置举例

1. 组网需求

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

2. 组网图

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

 

3. 配置步骤

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

 

(1)        配置Switch A

# 使能IPv6转发功能。

<SwitchA> system-view

[SwitchA] ipv6

# 配置接口Vlan-interface100。

[SwitchA] interface vlan-interface 100

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

[SwitchA-Vlan-interface100] quit

# 配置接口Vlan-interface101(隧道的实际物理接口)。

[SwitchA] interface vlan-interface 101

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

[SwitchA-Vlan-interface101] quit

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

[SwitchA] service-loopback group 1 type tunnel

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[SwitchA] interface GigabitEthernet 1/0/3

[SwitchA-GigabitEthernet1/0/3] undo stp enable

[SwitchA-GigabitEthernet1/0/3] undo lldp enable

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

[SwitchA-GigabitEthernet1/0/3] quit

# 创建Tunnel1接口。

[SwitchA] interface tunnel 1

# 配置Tunnel1接口的IP地址。

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

# 配置Tunnel封装模式。

[SwitchA-Tunnel1] tunnel-protocol ipv6-ipv6

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

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

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

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

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[SwitchA-Tunnel1] service-loopback-group 1

[SwitchA-Tunnel1] quit

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

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

(2)        配置Switch B

# 使能IPv6转发功能。

<SwitchB> system-view

[SwitchB] ipv6

# 配置接口Vlan-interface100。

[SwitchB] interface vlan-interface 100

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

[SwitchB-Vlan-interface100] quit

# 配置接口Vlan-interface101(隧道的实际物理接口)。

[SwitchB] interface vlan-interface 101

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

[SwitchB-Vlan-interface101] quit

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

[SwitchB] service-loopback group 1 type tunnel

# 将接口GigabitEthernet1/0/3加入业务环回组1,并在该端口上关闭STP和LLDP功能。

[SwitchB] interface GigabitEthernet 1/0/3

[SwitchB-GigabitEthernet1/0/3] undo stp enable

[SwitchB-GigabitEthernet1/0/3] undo lldp enable

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

[SwitchB-GigabitEthernet1/0/3] quit

# 创建Tunnel2接口。

[SwitchB] interface tunnel 2

# 配置Tunnel2接口的IP地址。

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

# 配置Tunnel封装模式。

[SwitchB-Tunnel2] tunnel-protocol ipv6-ipv6

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

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

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

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

# 在Tunnel接口视图下指定隧道引用业务环回组1。

[SwitchB-Tunnel2] service-loopback-group 1

[SwitchB-Tunnel2] quit

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

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

4. 验证配置结果

完成以上配置之后,分别查看Switch ASwitch BTunnel接口状态如下:

[SwitchA] display ipv6 interface tunnel 1

Tunnel1 current state :UP

Line protocol current state :UP

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

  Global unicast address(es):

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

  Joined group address(es):

    FF02::1:FF13:1

    FF02::1:FF01:1

    FF02::1:FF00:0

    FF02::2

    FF02::1

  MTU is 1460 bytes

  ND reachable time is 30000 milliseconds

  ND retransmit interval is 1000 milliseconds

  Hosts use stateless autoconfig for addresses

IPv6 Packet statistics:

……(略)

[SwitchB] display ipv6 interface tunnel 2

Tunnel2 current state :UP

Line protocol current state :UP

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

  Global unicast address(es):

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

  Joined group address(es):

    FF02::1:FF24:1

    FF02::1:FF01:2

    FF02::1:FF00:0

    FF02::2

    FF02::1

  MTU is 1460 bytes

  ND reachable time is 30000 milliseconds

  ND retransmit interval is 1000 milliseconds

  Hosts use stateless autoconfig for addresses

IPv6 Packet statistics:

……(略)

# 从Switch A可以Ping通对端的Vlan-interface100接口的IPv6地址:

[SwitchA] ping ipv6 2002:3::1

  PING 2002:3::1 : 56  data bytes, press CTRL_C to break

    Reply from 2002:3::1

    bytes=56 Sequence=1 hop limit=64  time = 31 ms

    Reply from 2002:3::1

    bytes=56 Sequence=2 hop limit=64  time = 1 ms

    Reply from 2002:3::1

    bytes=56 Sequence=3 hop limit=64  time = 16 ms

    Reply from 2002:3::1

    bytes=56 Sequence=4 hop limit=64  time = 16 ms

    Reply from 2002:3::1

    bytes=56 Sequence=5 hop limit=64  time = 31 ms

 

  --- 2002:3::1 ping statistics ---

    5 packet(s) transmitted

    5 packet(s) received

    0.00% packet loss

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

1.10  隧道显示和维护

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

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

表1-10 隧道显示和维护

操作

命令

显示Tunnel接口的相关信息

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

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

显示Tunnel接口的IPv6相关信息

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

清除Tunnel接口的统计信息

reset counters interface [ tunnel [number ] ]

 

1.11  常见错误配置举例

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

故障排除:可以按照如下步骤进行。

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

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

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

新华三官网
联系我们