配置IPv4 over IPv6隧道
IPv4 over IPv6隧道相当于通过IPv6骨干网连接的两个IPv4域的永久链路,是边界设备之间进行定期安全通信的固定通道。IPv4 over IPv6隧道是点对点的隧道,隧道的源和目的地都是手动指定的,且同一台设备不能配置同源同目的的两个隧道。
应用环境
IPv4网络间的通信需要穿过IPv6网络时,在IPv4和IPv6的边界设备上就需要配置IPv4 over IPv6隧道。
如图4-1所示,IPv4 over IPv6隧道可以建立在两个边界设备之间,为分离的IPv4网络提供稳定的连接,也可以建立在终端系统和边界设备之间为终端系统访问IPv4网络提供连接。如果一个边界设备要与多个设备之间建立隧道,则在该边界设备上须配置多个隧道,分别为不同的IPv6网络提供连接。
- 配置隧道源接口
IPv4 over IPv6隧道只能指定Loopback接口作为隧道源接口,并利用Loopback接口一直处于Up状态的特点与其他设备进行通信。 - 配置Tunnel接口
通过该任务,可以创建Tunnel接口,利用隧道技术实现IPv4网络之间的互连。 - 配置Tunnel的路由
隧道的源端路由器和目的端路由器上必须同时存在转发路由,这样才能保证报文的正常转发。 - (可选)配置Tunnel的其他选项
IPv4 over IPv6隧道支持对入口的IPv6报文头部进行配置,确保报文在隧道中的有效传输。 - 检查配置结果
IPv4 over IPv6隧道配置成功后,您可以查看到Tunnel接口的工作状态和路由信息。
配置隧道源接口
IPv4 over IPv6隧道只能指定Loopback接口作为隧道源接口,并利用Loopback接口一直处于Up状态的特点与其他设备进行通信。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令interface Loopback looback-number,创建Loopback接口。
- (可选)执行命令ip binding
vpn-instance vpn-instance-name,配置Loopback接口绑定VPN实例。
对于私网场景,需要将Loopback接口绑定到设备所属的VPN实例上。
- 执行命令ipv6 enable,使能接口的IPv6功能。
- 执行命令ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length },配置Loopback接口的IPv6地址。
- 执行命令binding tunnel ipv4-ipv6,配置Loopback接口隧道协议为IPv4 over IPv6。
- 执行命令commit,提交配置。
配置Tunnel接口
通过该任务,可以创建Tunnel接口,利用隧道技术实现IPv4网络之间的互连。
背景信息
IPv4 over IPv6隧道是通过隧道两端的Tunnel接口建立的,所以需要在隧道两端的设备上分别配置Tunnel接口。对于IPv4 over IPv6隧道的接口,需要指定其协议类型、源IPv6地址或源接口、目的IPv6地址。
Tunnel接口配置的目的地址不可达或指向本Tunnel接口。
Tunnel接口配置的源接口状态为Down。
Tunnel接口配置的IP地址不合法。
在隧道两端的设备上进行如下配置。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令interface tunnel interface-number,创建Tunnel接口,并进入Tunnel接口视图。
- 执行命令tunnel-protocol ipv4-ipv6,指定Tunnel类型为IPv4 over IPv6隧道。
- 执行命令source { ipv6-address | interface-type interface-number },指定Tunnel的源IPv6地址或源接口。
指定Tunnel的源接口时,仅可以指定Loopback接口;同样的,指定Tunnel接口的源IPv6地址时,也仅可以指定Loopback接口的IPv6地址。
- 执行命令destination [ vpn-instance vpn-instance-name ] ipv6-address,指定Tunnel的目的IPv6地址。
Tunnel的目的IPv6地址只可以是对端Loopback接口的IPv6地址。
对于私网场景,需要指定对端设备所属VPN实例下的Tunnel目的IPv6地址。
- 执行命令ip address ip-address { mask | mask-length } [ sub ],配置Tunnel接口的IPv4地址。
- 执行命令commit,提交配置。
配置Tunnel的路由
隧道的源端路由器和目的端路由器上必须同时存在转发路由,这样才能保证报文的正常转发。
操作步骤
- 执行命令system-view,进入系统视图。
- 配置经过Tunnel接口的路由,选择如下方法之一:
执行命令ip route-static ip-address { mask } tunnel interface-number,配置静态路由。
配置静态路由时,Tunnel的两端都要配置;需要注意:目的地址是未进行IPv4 over IPv6封装的报文的目的IPv4地址,下一跳是对端Tunnel接口。
对于私网场景,需要同时指定下一跳地址所属的VPN实例。
配置动态路由。可以使用IGP(IS-IS除外)或BGP,此处不再详述其配置方法。
配置动态路由协议时,在Tunnel接口及其两端的IPv4网络接口上都要使能该动态路由协议。
- 执行命令commit,提交配置。
(可选)配置Tunnel的其他选项
IPv4 over IPv6隧道支持对入口的IPv6报文头部进行配置,确保报文在隧道中的有效传输。
背景信息
- Encapsulation-limit选项:指定本次封装后的报文可被再次进行IPv6封装的次数。
- Flow label选项:标识特定业务流的报文,使设备对某一流中的报文进行识别并提供特殊处理。
- Hop-limit选项:配置隧道跳数限制值,使IPv6隧道中出现路由循环时能快速终止报文传输。
- Traffic Class选项:标识报文的业务类别,类似于IPv4中的ToS(服务类型)。
在隧道两端的设备上进行如下配置:
操作步骤
- 执行命令system-view,进入系统视图。
说明:
Tunnel接口视图下的配置过程与系统视图下相似,此处不再赘述。
在系统视图下配置Tunnel的其他选项对创建的所有IPv4 over IPv6隧道类型都生效;在Tunnel接口视图下配置则仅对当前隧道接口生效,且覆盖系统视图下配置的封装限制。
- 执行命令tunnel ipv4-ipv6 encapsulation-limit encapsulation-limit,指定本次IPv6封装后的报文可被再次进行IPv6封装的次数。
- 执行命令tunnel ipv4-ipv6 flow-label label-value,设置流量标识值。
- 执行命令tunnel ipv4-ipv6 hop-limit hop-limit,设置跳数限制值。
- 执行命令tunnel ipv4-ipv6 traffic-class { original | class-value },设置IPv4 over IPv6隧道的流量类别。
- 执行命令commit,提交配置。
检查配置结果
IPv4 over IPv6隧道配置成功后,您可以查看到Tunnel接口的工作状态和路由信息。
操作步骤
- 使用display interface tunnel [ interface-number ]命令查看Tunnel接口的工作状态。
- 使用display ip routing-table命令查看IP路由表信息。
- 使用ping { —a source-ip-address dest-ip-address | -vpn-instance vpn-instance-name }命令查看隧道两端是否能互通。
任务示例
配置成功时,在隧道两端执行命令display interface tunnel,可查看隧道接口的状态为Up。例如:
<HUAWEI> display interface Tunnel1
Tunnel1 current state : UP (ifindex: 24)
Line protocol current state : UP
Last line protocol up time : 2017-08-03 08:52:51
Description:
Route Port,The Maximum Transmit Unit is 1460
Internet Address is 192.168.1.2/24
Encapsulation is TUNNEL, loopback not set
Tunnel protocol/transport (IPv6 or IPv4) over IPv6
Tunnel Source 2001:DB8:300::2 (LoopBack1)
Tunnel Destination 2001:DB8:200::1
Tunnel Encapsulation limit 4
Tunnel Traffic class not set
Tunnel Flow label not set
Tunnel Hop limit 64
执行命令ping { —a source-ip-address dest-ip-address | -vpn-instance vpn-instance-name },可发现从本端隧道接口ping目的端隧道接口地址,能ping通。
<HUAWEI> ping 192.168.1.1
PING 192.168.1.1: 56 data bytes, press CTRL_C to break
Reply from 192.168.1.1: bytes=56 Sequence=1 ttl=255 time=21 ms
Reply from 192.168.1.1: bytes=56 Sequence=2 ttl=255 time=3 ms
Reply from 192.168.1.1: bytes=56 Sequence=3 ttl=255 time=2 ms
Reply from 192.168.1.1: bytes=56 Sequence=4 ttl=255 time=3 ms
Reply from 192.168.1.1: bytes=56 Sequence=5 ttl=255 time=3 ms
--- 192.168.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 2/6/21 ms