目 录
1 隧道配置 ············································································································································ 1-1
1.1 隧道概述 ············································································································································ 1-1
1.1.1 IPv6 over IPv4 隧道 ················································································································ 1-1
1.1.2 协议规范 ································································································································· 1-4
1.2 隧道配置任务简介 ····························································································································· 1-4
1.3 配置Tunnel接口 ································································································································· 1-4
1.4 配置IPv6 手动隧道····························································································································· 1-5
1.4.1 配置准备 ································································································································· 1-5
1.4.2 配置IPv6 手动隧道 ·················································································································· 1-5
1.4.3 配置举例 ································································································································· 1-6
1.5 配置IPv4 兼容IPv6 自动隧道 ············································································································· 1-9
1.5.1 配置准备 ································································································································· 1-9
1.5.2 配置IPv4 兼容IPv6 自动隧道 ··································································································· 1-9
1.5.3 配置举例 ······························································································································· 1-10
1.6 配置 6to4 隧道 ································································································································· 1-13
1.6.1 配置准备 ······························································································································· 1-13
1.6.2 配置 6to4 隧道 ······················································································································ 1-13
1.6.3 配置 6to4 隧道举例 ··············································································································· 1-14
1.6.4 配置 6to4 中继举例 ··············································································································· 1-16
1.7 配置ISATAP隧道 ····························································································································· 1-18
1.7.1 配置准备 ······························································································································· 1-18
1.7.2 配置ISATAP隧道 ·················································································································· 1-18
1.7.3 配置举例 ······························································································································· 1-19
1.8 隧道显示和维护 ······························································································································· 1-22
1.9 常见错误配置举例 ··························································································································· 1-22
i
1 隧道配置
设备支持两种运行模式:独立运行模式和 IRF 模式,缺省情况为独立运行模式。有关 IRF 模式的介
绍,请参见“IRF 配置指导”中的“IRF”。
1.1 隧道概述
隧道技术是一种封装技术,它利用一种网络协议来传输另一种网络协议,即一种网络协议将其他网
络协议的数据报文封装在自己的报文中,然后在网络中传输。封装后的数据报文在网络中传输的路
径,称为隧道。隧道是一条虚拟的点对点连接,隧道的两端需要对数据报文进行封装及解封装。隧
道技术就是指包括数据封装、传输和解封装在内的全过程。
隧道技术可以:
• 作为过渡技术,实现 IPv4 和 IPv6 网络互通,如 IPv6 over IPv4 隧道技术。
• 创建 VPN(Virtual Private Network,虚拟私有网络),保证通信的安全性,如 GRE(Generic
Routing Encapsulation,通用路由封装)。
• 实现流量工程,避免由于负载不均衡导致网络拥塞,如 MPLS TE(Multiprotocol Label
Switching Traffic Engineering,多协议标记交换流量工程)。
上述三种隧道技术中,隧道两端需要创建虚拟的三层接口——Tunnel 接口,以便隧道两端的设备利
用隧道发送报文、识别并处理来自隧道的报文。
• 本文只介绍实现 IPv4/IPv6 过渡的隧道。
• GRE、MPLS TE 的相关介绍和配置请分别参见“三层技术-IP 业务配置指导”中的“GRE”、
MPLS 配置指导中的“MPLS TE”。
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
图1-1 IPv6 over IPv4 隧道原理图
IPv6 over IPv4 隧道对报文的处理过程如下:
•
•
IPv6 网络中的设备发送 IPv6 报文,该报文到达隧道的源端设备 Device A。
Device A 根据路由表判定该报文要通过隧道进行转发后,在 IPv6 报文前封装上 IPv4 的报文
头,通过隧道的实际物理接口将报文转发出去。
• 封装报文通过隧道到达隧道目的端设备 Device B,Device B 判断该封装报文的目的地是本设
•
备后,将对报文进行解封装。
Device B 根据解封装后的 IPv6 报文的目的地址转发该 IPv6 报文。如果目的地就是本设备,
则将 IPv6 报文转给上层协议处理。
2. IPv6 over IPv4 隧道模式
根据隧道终点的 IPv4 地址的获取方式不同,隧道分为“配置隧道”和“自动隧道”。
• 如果 IPv6 over IPv4 隧道的终点地址不能从 IPv6 报文的目的地址中自动获取,需要进行手工
配置,这样的隧道称为“配置隧道”。
• 如果 IPv6 over IPv4 隧道的终点地址采用内嵌 IPv4 地址的特殊 IPv6 地址形式,则可以从 IPv6
报文的目的地址中自动获取隧道终点的 IPv4 地址,这样的隧道称为“自动隧道”。
如 表 1-1 所示,根据对IPv6 报文的封装方式的不同,IPv6 over IPv4 隧道分为以下几种模式。表 1-1
中还列举了各隧道模式的关键配置参数。
表1-1 IPv6 over IPv4 隧道模式
隧道类型
隧道模式
隧道源/目的地址
隧道接口地址
配置隧道
IPv6手动隧道
源/目的地址为手动配置的IPv4地址
IPv6地址
IPv4兼容IPv6自动隧道
源地址为手动配置的IPv4地址,目的
地址不需配置
IPv4兼容IPv6地址,其格式为:
::IPv4-source-address/96
6to4隧道
自动隧道
源地址为手动配置的IPv4地址,目的
地址不需配置
6to4地址,其格式为:
2002:IPv4-source-address::/48
ISATAP(Intra-Site
Automatic Tunnel
Addressing Protocol,站点
内自动隧道寻址协议)隧道
源地址为手动配置的IPv4地址,目的
地址不需配置
ISATAP地址,其格式为:
Prefix:0:5EFE:IPv4-source-add
ress/64
IPv6 手动隧道
(1)
手动隧道是点到点之间的链路,一条链路就是一个单独的隧道。主要用于边缘路由器—边缘路由器
或主机—边缘路由器之间定期安全通信的稳定连接,可实现与远端 IPv6 网络的连接。
(2) GRE 隧道
1-2
IPv4 兼容 IPv6 自动隧道
使用标准的 GRE 协议可对 IPv6 报文进行封装,使 IPv6 报文能通过隧道穿越 IPv4 网络。与 IPv6
手动隧道相同,GRE 隧道也是点到点之间的链路,每条链路都是一条单独的隧道。GRE 隧道主要
用于边缘路由器-边缘路由器、主机-边缘路由器定期安全通信的稳定连接。相关配置请参见“三层
技术-IP 业务配置指导”中的“GRE”。
(3)
IPv4 兼容 IPv6 自动隧道是点到多点的链路。隧道两端采用特殊的 IPv6 地址:IPv4 兼容 IPv6 地址,
其格式为:0:0:0:0:0:0:a.b.c.d/96,其中 a.b.c.d 是 IPv4 地址。通过这个嵌入的 IPv4 地址可以自动
确定隧道的终点,使 IPv6 隧道的建立非常方便。但由于它必须使用 IPv4 兼容 IPv6 地址,仍依赖于
IPv4 地址,在使用时有一定的局限性。
(4) 6to4 隧道
• 普通 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 报文通过隧道进行转发成为可能。6to4 隧道可
以实现利用 IPv4 网络完成 IPv6 网络的互连,克服了 IPv4 兼容 IPv6 自动隧道使用的局限性。
•
6to4 隧道只能用于前缀为 2002::/16 的 6to4 网络之间的通信,但在 IPv6 网络中也会使用像 2001::/16
这样的 IPv6 网络地址。为了实现 6to4 网络和其它 IPv6 网络的通信,必须有一台 6to4 路由器作为
网关转发到 IPv6 网络的报文,这台路由器就叫做 6to4 中继(6to4 relay)路由器。
如下图所示,6to4 网络的边缘路由器 Router A 需配置一条静态路由,下一跳地址指向 6to4 中继路
由器 Router C 的 6to4 地址,这样,所有去往 IPv6 网络的报文都会被转发到 6to4 中继路由器,之
后再由 6to4 中继路由器转发到 IPv6 网络中,从而实现 6to4 网络(地址前缀以 2002 开始)与 IPv6
网络的互通。
图1-2 6to4 隧道和 6to4 中继原理图
6to4 中继
ISATAP 隧道
(5)
随着 IPv6 技术的推广,现有的 IPv4 网络中将会出现越来越多的 IPv6 主机,ISATAP 隧道技术为这
种应用提供了一个较好的解决方案。ISATAP 隧道是点到多点的自动隧道技术,通过在 IPv6 报文的
目的地址中嵌入的 IPv4 地址,可以自动获取隧道的终点。
1-3
使用 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-3 ISATAP 隧道原理图
1.1.2 协议规范
与隧道技术相关的协议规范有:
•
•
•
•
•
RFC 1853:IP in IP Tunneling
RFC 2473:Generic Packet Tunneling in IPv6 Specification
RFC 2893:Transition Mechanisms for IPv6 Hosts and Routers
RFC 3056:Connection of IPv6 Domains via IPv4 Clouds
RFC 4214:Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)
1.2 隧道配置任务简介
表1-2 隧道配置任务简介
配置任务
说明
详细配置
配置Tunnel接口
必选
配置IPv6 over IPv4
隧道
配置IPv6手动隧道
配置IPv4兼容IPv6自动隧道
配置6to4隧道
配置ISATAP隧道
1.3 配置Tunnel接口
根据组网情况,选择其一
1.3
1.4
1.5
1.6
1.7
隧道两端的设备上,需要创建虚拟的三层接口——Tunnel 接口,以便隧道两端的设备利用隧道发送
报文、识别并处理来自隧道的报文。
表1-3 配置 Tunnel 接口
配置步骤
命令
说明
进入系统视图
system-view
-
创建Tunnel接口,并进入Tunnel接口视图
interface tunnel number
必选
缺省情况下,设备上无Tunnel接口
1-4
配置步骤
命令
说明
配置接口描述信息
description text
配置MTU值
配置Tunnel接口的
IPv4 MTU值
mtu size
配置Tunnel接口的
IPv6 MTU值
ipv6 mtu size
配置Tunnel接口的带宽
tunnel bandwidth
bandwidth-value
可选
缺省情况下,接口描述信息为“该接
口的接口名 Interface”
可选
缺省情况下,IPv4 MTU的值为1500
,IPv6 MTU的值为1480
可选
缺省情况下,Tunnel接口的带宽为
64kbps
恢复当前接口的缺省配置
default
可选
关闭Tunnel接口
shutdown
可选
缺省情况下,接口处于开启状态
• 主备倒换或备板拔出时,建立在主控板或备板上的隧道不会被真正删除,若再配置相同的隧道,
系统会提示隧道已经存在。如果需要真正删除隧道接口,请使用 undo interface tunnel 命令来
删除。
• ipv6 mtu 命令的详细介绍,请参见“三层技术-IP 业务命令参考”中的“IPv6 基础”。
• 目前,通过 tunnel bandwidth 命令配置的 Tunnel 接口带宽只用于动态路由协议计算隧道所在路
径的 cost 值,不会影响接口的实际带宽。建议根据报文实际出接口的带宽值设置 Tunnel 接口带
宽。
• 执行 default 命令并不能保证接口下的所有命令都能恢复到缺省情况,某些命令可能会由于不满
足必备条件而恢复失败。因此,执行 default 命令后建议通过 display this 命令确认执行效果。
1.4 配置IPv6手动隧道
1.4.1 配置准备
设备上存在已经配置 IP 地址、能够进行正常通讯的接口(如 VLAN 接口,Ethernet 接口,Loopback
接口等),该接口将作为 Tunnel 接口的源接口。
1.4.2 配置IPv6 手动隧道
表1-4 配置 IPv6 手动隧道
操作
命令
说明
进入系统视图
system-view
-
使能IPv6报文转发功能
ipv6
1-5
必选
缺省情况下,关闭IPv6报文转发功
能
操作
命令
说明
创建Tunnel接口并进入Tunnel接口视
图
interface tunnel number
设置Tunnel
接口的IPv6
地址
配置IPv6全球单播地
址或站点本地地址
配置IPv6链路本地地
址
ipv6 address { ipv6-address
prefix-length |
ipv6-address/prefix-length }
ipv6 address
ipv6-address/prefix-length eui-64
ipv6 address auto link-local
ipv6 address ipv6-address
link-local
配置隧道模式为IPv6手动隧道模式
tunnel-protocol ipv6-ipv4
设置Tunnel接口的源端地址或接口
source { ip-address | interface-type
interface-number }
设置Tunnel接口的目的端地址
destination ip-address
必选
缺省情况下,设备上无Tunnel接口
二者必选其一
缺省情况下,Tunnel接口上没有设
置IPv6全球单播地址或站点本地
地址
可选
缺省情况下,当接口配置了IPv6
全球单播地址或站点本地地址后,
会自动生成链路本地地址
必选
缺省情况下,为GRE over IPv4隧
道模式
在隧道的两端应配置相同的隧道
模式,否则可能造成报文传输失败
必选
缺省情况下,Tunnel接口上没有设
置源端地址和接口
必选
缺省情况下,Tunnel接口上没有设
置目的端地址
退回系统视图
quit
-
配置丢弃含有IPv4兼容IPv6地址的
IPv6报文
tunnel discard
ipv4-compatible-packet
可选
缺省情况下,不会丢弃含有IPv4
兼容IPv6地址的IPv6报文
• 以上各项 Tunnel 接口下进行的功能特性配置,在删除 Tunnel 接口后,该接口上的所有配置也将
被删除。
• 如果封装前 IPv6 报文的目的 IPv6 地址与 Tunnel 接口的 IPv6 地址不在同一个网段,则必须配置
通过 Tunnel 接口到达目的 IPv6 地址的转发路由,以便需要进行封装的报文能正常转发。用户可
以配置静态路由,指定到达目的 IPv6 地址的路由出接口为本端 Tunnel 接口或下一跳为对端
Tunnel 接口地址。用户也可以配置动态路由,在 Tunnel 接口使能动态路由协议。在隧道的两端
都要进行此项配置,配置的详细情况请参见“三层技术-IP 路由配置指导”中的“IPv6 静态路由”
或其他路由协议配置。
1.4.3 配置举例
缺省情况下,以太网接口、VLAN 接口及聚合接口处于 DOWN 状态。如果要对这些接口进行配置,
请先使用 undo shutdown 命令使接口状态处于 UP 状态。
1-6
1. 组网需求
如 图 1-4 所示,两个IPv6 网络分别通过Switch A和Switch B与IPv4 网络连接,要求在Switch A和
Switch B之间建立IPv6 手动隧道,使两个IPv6 网络可以互通。如果隧道终点的IPv4 地址不能从IPv6
报文的目的地址中自动获取,则需要配置IPv6 手工隧道。
2. 组网图
图1-4 IPv6 手动隧道组网图
3. 配置步骤
在开始下面的配置之前,请确保 Switch A 和 Switch B 上已经创建相应的 VLAN 接口,且两者之间
IPv4 报文路由可达。
(1) 配置 Switch A
# 使能 IPv6 转发功能。
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
# 配置手动隧道。
[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
[SwitchA-Tunnel0] quit
# 配置从 Switch A 经过 Tunnel0 接口到 Group 2 的静态路由。
[SwitchA] ipv6 route-static 3003:: 64 Tunnel 0
(2) 配置 Switch B
# 使能 IPv6 转发功能。
system-view
[SwitchB] ipv6
# 配置接口 Vlan-interface100 的地址。
1-7