13-隧道配置
本章节下载: 13-隧道配置 (403.07 KB)
目 录
隧道技术是一种封装技术,即一种网络协议将其他网络协议的数据报文封装在自己的报文中,然后在网络中传输。封装后的数据报文在网络中传输的路径,称为隧道。隧道是一条虚拟的点对点连接,隧道的两端需要对数据报文进行封装及解封装。隧道技术就是指包括数据封装、传输和解封装在内的全过程。
隧道技术具有以下用途:
· 作为过渡技术,实现IPv4和IPv6网络互通,如IPv6 over IPv4隧道技术。
· 创建VPN(Virtual Private Network,虚拟专用网络),如IPv4 over IPv4隧道、IPv4/IPv6 over IPv6隧道、GRE(Generic Routing Encapsulation,通用路由封装)、DVPN(Dynamic Virtual Private Network,动态虚拟专用网络)和IPsec隧道技术。GRE、DVPN的相关介绍和配置请分别参见“三层技术-IP业务配置指导”中的“GRE”和“DVPN”;IPsec的相关介绍和配置请参见“安全配置指导”中的“IPsec”。
· 实现流量工程,避免由于负载不均衡导致网络拥塞,如MPLS TE(Multiprotocol Label Switching Traffic Engineering,多协议标记交换流量工程)。MPLS TE的相关介绍和配置请参见“MPLS配置指导”中的“MPLS TE”。
本文只介绍IPv6 over IPv4隧道。如无特殊说明,下文中的隧道技术均指此类隧道。
如图1-1所示,IPv6 over IPv4隧道是在IPv6数据报文前封装上IPv4的报文头,通过隧道使IPv6报文穿越IPv4网络,实现隔离的IPv6网络互通。IPv6 over IPv4隧道两端的设备必须支持IPv4/IPv6双协议栈,即同时支持IPv4协议和IPv6协议。
图1-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报文。
根据隧道终点的IPv4地址的获取方式不同,隧道分为“配置隧道”和“自动隧道”。
· 如果IPv6 over IPv4隧道终点的IPv4地址不能从IPv6报文的目的地址中自动获取,需要进行手工配置,这样的隧道称为“配置隧道”。
· 如果IPv6报文的目的地址中嵌入了IPv4地址,则可以从IPv6报文的目的地址中自动获取隧道终点的IPv4地址,这样的隧道称为“自动隧道”。
如表1-1所示,根据对IPv6报文的封装方式的不同,IPv6 over IPv4隧道分为以下几种模式。
隧道类型 |
隧道模式 |
隧道源端/目的端地址 |
隧道接口地址 |
配置隧道 |
IPv6 over IPv4手动隧道 |
源端/目的端地址为手工配置的IPv4地址 |
IPv6地址 |
自动隧道 |
IPv4兼容IPv6自动隧道 |
源端地址为手工配置的IPv4地址,目的端地址不需配置 |
IPv4兼容IPv6地址,其格式为: ::IPv4-source-address/96 其中,IPv4-source-address表示隧道的源端地址 |
6to4隧道 |
源端地址为手工配置的IPv4地址,目的端地址不需配置 |
6to4地址,其格式为: 2002:IPv4-source-address::/48 其中,IPv4-source-address表示隧道的源端地址 |
|
ISATAP(Intra-Site Automatic Tunnel Addressing Protocol,站点内自动隧道寻址协议)隧道 |
源端地址为手工配置的IPv4地址,目的端地址不需配置 |
ISATAP地址,其格式为: Prefix:0:5EFE:IPv4-source-address/64 其中,IPv4-source-address表示隧道的源端地址 |
(1) IPv6 over IPv4手动隧道
IPv6 over IPv4手动隧道是点到点之间的链路。建立手动隧道需要在隧道两端手工指定隧道的源端和目的端地址。
手动隧道可以建立在连接IPv4网络和IPv6网络的两个边缘路由器之间,实现隔离的IPv6网络跨越IPv4网络通信;也可以建立在边缘路由器和IPv4/IPv6双栈主机之间,实现隔离的IPv6网络跨越IPv4网络与双栈主机通信。
(2) IPv4兼容IPv6自动隧道
IPv4兼容IPv6自动隧道是点到多点的链路。隧道两端采用特殊的IPv6地址:IPv4兼容IPv6地址,其格式为:0:0:0:0:0:0:a.b.c.d/96,其中a.b.c.d是IPv4地址。通过这个嵌入的IPv4地址可以自动确定隧道的目的端地址。
IPv4兼容IPv6自动隧道的建立非常方便。但是,由于它使用IPv4兼容IPv6地址,采用IPv4兼容IPv6自动隧道通信的主机和路由器必须具有全球唯一的IPv4地址,无法解决IPv4地址空间耗尽的问题,存在一定的局限性。
(3) 6to4隧道
· 普通6to4隧道
6to4隧道是点到多点的自动隧道,主要建立在边缘路由器之间,用于通过IPv4网络连接多个IPv6孤岛。
6to4隧道两端采用特殊的6to4地址,其格式为:2002:abcd:efgh:子网号::接口ID/64。其中: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网络的互通。
图1-2 6to4隧道和6to4中继原理图
(4) ISATAP隧道
ISATAP隧道是点到多点的自动隧道技术,为IPv6主机通过IPv4网络接入IPv6网络提供了一个较好的解决方案。
使用ISATAP隧道时,IPv6报文的目的地址和隧道接口的IPv6地址都要采用特殊的ISATAP地址。ISATAP地址格式为:Prefix:0:5EFE:abcd:efgh。其中,64位的Prefix为任何合法的IPv6单播地址前缀;abcd:efgh为用16进制表示的32位IPv4地址(如1.1.1.1可以表示为0101:0101),该IPv4地址不要求全球唯一。通过ISATAP地址中嵌入的IPv4地址可以自动确定隧道的终点,使隧道的建立非常方便。
ISATAP隧道主要用于跨越IPv4网络在IPv6主机与边缘路由器之间、两个边缘路由器之间建立连接。
图1-3 ISATAP隧道原理图
与隧道技术相关的协议规范有:
· 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)
配置任务 |
说明 |
详细配置 |
|
配置Tunnel接口 |
必选 |
||
配置IPv6 over IPv4隧道 |
配置IPv6 over IPv4手动隧道 |
根据组网情况,选择其一 |
|
配置IPv4兼容IPv6自动隧道 |
|||
配置6to4隧道 |
|||
配置ISATAP隧道 |
隧道两端的设备上,需要创建虚拟的三层接口,即Tunnel接口,以便隧道两端的设备利用Tunnel接口发送报文、识别并处理来自隧道的报文。
配置Tunnel接口时,需要注意,主备倒换或备板拔出时,建立在主控板或备板上的隧道接口不会被删除,若再配置相同的隧道接口,系统会提示隧道接口已经存在。如果需要删除隧道接口,请使用undo interface tunnel命令。
表1-3 配置Tunnel接口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建Tunnel接口,指定隧道模式,并进入Tunnel接口视图 |
interface tunnel number mode { evi [ ipv6 ] | gre | ipv6-ipv4 [ 6to4 | auto-tunnel | isatap ] } |
缺省情况下,设备上不存在任何Tunnel接口 创建Tunnel接口时,必须指定隧道的模式;进入已经创建的Tunnel接口视图时,可以不指定隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
(可选)配置接口描述信息 |
description text |
缺省情况下,接口描述信息为“该接口的接口名 Interface” |
配置IPv4 MTU值 |
mtu mtu-size |
缺省情况下,Tunnel接口的IPv4 MTU值为1476字节 |
(可选)恢复当前接口的缺省配置 |
default |
- |
(可选)关闭Tunnel接口 |
shutdown |
缺省情况下,接口处于开启状态 |
配置IPv6 over IPv4手动隧道时,需要注意:
· 在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。
· 在同一台设备上,使用同种封装协议的Tunnel接口不能同时配置完全相同的源端地址和目的端地址。
· 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行此项配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”或其他路由协议配置。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入模式为IPv6 over IPv4手动隧道的Tunnel接口视图 |
interface tunnel number [ mode ipv6-ipv4 ] |
- |
设置Tunnel接口的IPv6地址 |
详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础” |
缺省情况下,Tunnel接口上不存在IPv6地址 |
设置隧道的源端地址或源接口 |
source { ip-address | interface-type interface-number } |
缺省情况下,没有设置隧道的源端地址和源接口 如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址 |
设置隧道的目的端地址 |
destination ip-address |
缺省情况下,没有设置隧道的目的端地址 隧道的目的端地址是对端接收报文的接口的地址,该地址将作为封装后隧道报文的目的地址 |
退回系统视图 |
quit |
- |
缺省情况下,以太网接口、VLAN接口及聚合接口处于down状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于up。
如图1-4所示,两个IPv6网络分别通过Switch A和Switch B与IPv4网络连接,要求在Switch A和Switch B之间建立IPv6 over IPv4隧道,使两个IPv6网络可以互通。由于隧道终点的IPv4地址不能从IPv6报文的目的地址中自动获取,因此,需要配置IPv6 over IPv4手动隧道。
图1-4 IPv6 over IPv4手动隧道组网图
在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv4报文路由可达。
(1) 配置Switch A
# 配置接口Vlan-interface100的地址。
<SwitchA> system-view
[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
# 创建模式为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
# 配置接口Vlan-interface100的地址。
<SwitchB> system-view
[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
# 创建模式为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
# 完成上述配置后,在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(104=40+8+56 bytes) 3001::1 --> 3003::1
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
--- 3003::1 ping6 statistics ---
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
配置IPv4兼容IPv6自动隧道时,需要注意:
· IPv4兼容IPv6自动隧道不需要配置隧道的目的端地址,因为隧道的目的端地址可以通过IPv4兼容IPv6地址中嵌入的IPv4地址自动获得。
· 对于自动隧道,在同一台设备上使用同种封装协议的Tunnel接口不能同时配置完全相同的源端地址。
表1-5 配置IPv4兼容IPv6自动隧道
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入模式为IPv4兼容IPv6自动隧道的Tunnel接口视图 |
interface tunnel number [ mode ipv6-ipv4 auto-tunnel ] |
- |
设置Tunnel接口的IPv6地址 |
详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础” |
缺省情况下,Tunnel接口上不存在IPv6地址 |
设置隧道的源端地址或源接口 |
source { ip-address | interface-type interface-number } |
缺省情况下,没有设置隧道的源端地址和源接口 如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址 |
缺省情况下,以太网接口、VLAN接口及聚合接口处于down状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于up状态。
如图1-5所示,两台具有双协议栈的交换机Switch A和Switch B通过IPv4网络连接。网络管理员希望建立IPv4兼容IPv6自动隧道,使得这两台设备能够通过IPv6协议互通。
图1-5 IPv4兼容IPv6自动隧道组网图
在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv4报文路由可达。
(1) 配置Switch A
# 配置接口Vlan-interface100的地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ip address 192.168.100.1 255.255.255.0
[SwitchA-Vlan-interface100] quit
# 创建模式为IPv4兼容IPv6自动隧道的接口Tunnel0。
[SwitchA] interface tunnel 0 mode ipv6-ipv4 auto-tunnel
# 配置Tunnel0接口的IPv6地址为IPv4兼容IPv6地址::192.168.100.1/96。
[SwitchA-Tunnel0] ipv6 address ::192.168.100.1/96
# 配置Tunnel0接口的源接口为Vlan-interface100。
[SwitchA-Tunnel0] source vlan-interface 100
[SwitchA-Tunnel0] quit
(2) 配置Switch B
# 配置接口Vlan-interface100的地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ip address 192.168.50.1 255.255.255.0
[SwitchB-Vlan-interface100] quit
# 创建模式为IPv4兼容IPv6自动隧道的接口Tunnel0。
[SwitchB] interface tunnel 0 mode ipv6-ipv4 auto-tunnel
# 配置Tunnel0接口的IPv6地址为IPv4兼容IPv6地址::192.168.50.1/96。
[SwitchB-Tunnel0] ipv6 address ::192.168.50.1/96
# 配置Tunnel0接口的源接口为Vlan-interface100。
[SwitchB-Tunnel0] source vlan-interface 100
[SwitchB-Tunnel0] quit
# 完成上述配置后,在Switch A和Switch B上分别执行display ipv6 interface命令,可以看出Tunnel0接口处于up状态。(具体显示信息略)
# 从Switch A和Switch B上可以Ping通对端的IPv4兼容IPv6地址。下面仅以Switch A为例。
[SwitchA-Tunnel0] ping ipv6 ::192.168.50.1
PING6(104=40+8+56 bytes) ::192.168.100.1 --> ::192.168.50.1
56 bytes from ::192.168.50.1, icmp_seq=0 hlim=64 time=17.000 ms
56 bytes from ::192.168.50.1, icmp_seq=1 hlim=64 time=9.000 ms
56 bytes from ::192.168.50.1, icmp_seq=2 hlim=64 time=11.000 ms
56 bytes from ::192.168.50.1, icmp_seq=3 hlim=64 time=9.000 ms
56 bytes from ::192.168.50.1, icmp_seq=4 hlim=64 time=11.000 ms
--- ::192.168.50.1 ping6 statistics ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 9.000/11.400/17.000/2.939 ms
配置6to4隧道时,需要注意:
· 6to4隧道不需要配置隧道的目的端地址,因为隧道的目的端地址可以通过6to4 IPv6地址中嵌入的IPv4地址自动获得。
· 对于自动隧道,在同一台设备上使用同种封装协议的Tunnel接口不能同时配置完全相同的源端地址。
· 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。对于自动隧道,用户只能配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址,不支持动态路由。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入模式为6to4隧道的Tunnel接口视图 |
interface tunnel number [ mode ipv6-ipv4 6to4 ] |
- |
设置Tunnel接口的IPv6地址 |
详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础” |
缺省情况下,Tunnel接口上不存在IPv6地址 |
设置隧道的源端地址或源接口 |
source { ip-address | interface-type interface-number } |
缺省情况下,没有设置隧道的源端地址和源接口 如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址 |
退回系统视图 |
quit |
- |
缺省情况下,以太网接口、VLAN接口及聚合接口处于down状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于up状态。
如图1-6所示,两个6to4网络通过网络边缘6to4 switch(Switch A和Switch B)与IPv4网络相连。在Switch A和Switch B之间建立6to4隧道,实现6to4网络中的主机Host A和Host B之间的互通。
图1-6 6to4隧道组网图
为了实现6to4网络之间的互通,除了配置6to4隧道外,还需要为6to4网络内的主机及6to4 switch配置6to4地址。
· 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子网。
· 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子网。
在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv4报文路由可达。
(1) 配置Switch A
# 配置接口Vlan-interface100的地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ip address 2.1.1.1 24
[SwitchA-Vlan-interface100] 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地址为6to4地址2002:201:101::1/64。
[SwitchA-Tunnel0] ipv6 address 2002:201:101::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
# 配置接口Vlan-interface100的地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ip address 5.1.1.1 24
[SwitchB-Vlan-interface100] 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地址为6to4地址2002:0501:0101::1/64。
[SwitchB-Tunnel0] ipv6 address 2002:0501:0101::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
完成以上配置之后,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
缺省情况下,以太网接口、VLAN接口及聚合接口处于down状态,如果要对这些接口进行配置,请先使用undo shutdown命令使这些接口处于up状态。
如图1-7所示,Switch A为6to4交换机,其IPv6侧的网络使用6to4地址。Switch B作为6to4中继交换机,它和IPv6网络(2001::/16)相连。要求在Switch A和Switch B之间配置6to4隧道,使得6to4网络中的主机与IPv6网络中的主机互通。
图1-7 6to4中继组网图
6to4中继交换机的配置与6to4交换机的配置相同,但为实现6to4网络与IPv6网络的互通,需要在6to4交换机上配置到IPv6网络的路由。
在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv4报文路由可达。
(1) 配置Switch A
# 配置接口Vlan-interface100的地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ip address 2.1.1.1 255.255.255.0
[SwitchA-Vlan-interface100] 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地址为6to4地址2002:0201:0101::1/64。
[SwitchA-Tunnel0] ipv6 address 2002:0201:0101::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中继路由器Tunnel0接口的地址。
[SwitchA] ipv6 route-static :: 0 2002:0601:0101::1
(2) 配置Switch B
# 配置接口Vlan-interface100的地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ip address 6.1.1.1 255.255.255.0
[SwitchB-Vlan-interface100] quit
# 配置接口Vlan-interface101的地址。
[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地址为6to4地址2002:0601:0101::1/64。
[SwitchB-Tunnel0] ipv6 address 2002:0601:0101::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
完成以上配置之后,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
配置ISATAP隧道时,需要注意:
· ISATAP隧道不需要配置隧道的目的端地址,因为隧道的目的端地址可以通过ISATAP地址中嵌入的IPv4地址自动获得。
· 对于自动隧道,在同一台设备上使用同种封装协议的Tunnel接口不能同时配置完全相同的源端地址。
· 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。对于自动隧道,用户只能配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址,不支持动态路由。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入模式为ISATAP隧道的Tunnel接口视图 |
interface tunnel number [ mode ipv6-ipv4 isatap ] |
- |
设置Tunnel接口的IPv6地址 |
详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础” |
缺省情况下,Tunnel接口上不存在IPv6地址 |
设置隧道的源端地址或源接口 |
source { ip-address | interface-type interface-number } |
缺省情况下,没有设置隧道的源端地址和源接口 如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址 |
退回系统视图 |
quit |
- |
缺省情况下,以太网接口、VLAN接口及聚合接口处于down状态,如果要对这些接口进行配置,请先使用undo shutdown命令使这些接口处于up状态。
缺省情况下,以太网接口、VLAN接口及聚合接口处于down状态,如果要对这些接口进行配置,请先使用undo shutdown命令使这些接口处于up状态。
如图1-8所示,IPv6网络和IPv4网络通过ISATAP交换机相连,在IPv4网络侧分布着一些IPv6主机。要求将IPv4网络中的IPv6主机通过ISATAP隧道接入到IPv6网络。
图1-8 ISATAP隧道组网图
在开始下面的配置之前,请确保Switch上已经创建相应的VLAN接口,且Switch的Vlan-interface101和ISATAP host之间IPv4报文路由可达。
(1) 配置Switch
# 配置接口Vlan-interface100的地址。
<Switch> system-view
[Switch] interface vlan-interface 100
[Switch-Vlan-interface100] ipv6 address 3001::1/64
[Switch-Vlan-interface100] quit
# 配置接口Vlan-interface101的地址。
[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接口的IPv6地址为ISATAP地址2001::5efe:0101:0101/64。
[Switch-Tunnel0] ipv6 address 2001::5efe:0101:0101 64
# 配置Tunnel0接口的源接口为Vlan-interface101。
[Switch-Tunnel0] source vlan-interface 101
# 取消对RA消息发布的抑制,使主机可以通过交换机发布的RA消息获取地址前缀等信息。
[Switch-Tunnel0] undo ipv6 nd ra halt
[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格式的链路本地地址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隧道已经成功建立,ISATAP主机可访问IPv6网络中的主机。
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
在完成上述配置后,在任意视图下执行display命令可以显示隧道配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除Tunnel接口的统计信息。
表1-8 隧道显示和维护
操作 |
命令 |
显示Tunnel接口的相关信息 |
display interface [ tunnel [ number ] ] [ brief ] |
显示Tunnel接口的IPv6相关信息 |
display ipv6 interface [ tunnel [ number ] ] [ brief ] |
清除Tunnel接口的统计信息 |
reset counters interface [ tunnel [ number ] ] |
display ipv6 interface命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IPv6基础”。
在Tunnel接口上配置了相关的参数后(例如隧道的源端地址、目的端地址和隧道模式),Tunnel接口仍未处于up状态。
Tunnel接口未处于up状态的原因可能是隧道起点的物理接口没有处于up状态,或隧道的目的端地址不可达。
(1) 使用display interface和display ipv6 interface命令查看隧道起点的物理接口状态为up还是down。如果物理接口状态是down的,请检查网络连接。
(2) 使用display ipv6 routing-table和display ip routing-table命令查看是否目的端地址通过路由可达。如果路由表中没有保证隧道通讯的路由表项,请配置相关路由。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!