10-隧道配置
本章节下载: 10-隧道配置 (576.65 KB)
目 录
隧道技术是一种封装技术,它利用一种网络协议来传输另一种网络协议,即一种网络协议将其他协议产生的数据报文封装在自己的报文中,然后在网络中传输。隧道(Tunnel)是一个虚拟的点对点连接,为封装的数据报文提供了一条传输通路。隧道的两端需要对数据报文进行封装及解封装。隧道技术就是指包括数据封装、传输和解封装在内的全过程。
隧道技术可以:
l 作为过渡技术,实现IPv4和IPv6网络互通,如IPv6 over IPv4隧道技术。
l 创建VPN(Virtual Private Network,虚拟私有网络),保证通信的安全性,如GRE(Generic Routing Encapsulation,通用路由封装)、DVPN(Dynamic Virtual Private Network,动态虚拟私有网络)和IPsec隧道技术。
l 实现流量工程,避免由于负载不均衡导致网络拥塞,如MPLS TE(Multiprotocol Label Switching Traffic Engineering,多协议标记交换流量工程)。
上述三类隧道技术中,隧道两端需要创建虚拟的三层接口——Tunnel接口,以便隧道两端的设备利用隧道发送报文、识别并处理来自隧道的报文。
本文只介绍实现IPv4/IPv6过渡的隧道、IPv4 over IPv4隧道和IPv6 over IPv6隧道。如无特殊说明,下文中的隧道技术均指此类隧道。
随着Internet的日益膨胀,现有的IPv4地址已经十分紧缺,虽然使用分配临时IPv4地址或NAT(Network Address Translator,网络地址转换)等技术,在一定程度上缓解了IPv4地址不足的状况,但也增加了地址解析和处理方面的开销,同时导致某些高层应用失效,而且仍然无法回避IPv4地址分配殆尽这个问题。采用128位地址长度的IPv6协议,彻底解决了IPv4地址不足的难题,并且在地址容量、安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网络协议采用的核心标准之一。IPv6与IPv4不兼容,但它同所有的TCP/IP协议族中的其他协议兼容,即IPv6完全可以取代IPv4。
在IPv6成为主流协议之前,首先使用IPv6协议栈的网络希望能与当前仍被IPv4支撑着的Internet进行正常通信,因此必须开发出IPv4和IPv6互通技术以保证IPv4能够平稳过渡到IPv6。互通技术应该对信息传递做到高效无缝。目前已经出现了多种过渡技术,这些技术各有特点,用于解决不同过渡时期、不同环境的通信问题。
目前解决过渡问题的基本技术主要有3种:双协议栈(RFC 2893),隧道技术(RFC 2893)和NAT-PT(RFC 2766)。
l 双协议栈的相关介绍请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
l 目前交换机不支持NAT-PT。
IPv6 over IPv4隧道机制是在IPv6数据报文前封装上IPv4的报文头,通过隧道(Tunnel)使IPv6报文穿越IPv4网络,实现隔离的IPv6网络的互通,如图1-1所示。
IPv6 over IPv4隧道两端的设备必须支持IPv4/IPv6双协议栈。
图1-1 IPv6 over IPv4隧道原理图
IPv6 over IPv4隧道对报文的处理过程如下:
l IPv6网络中的设备发送IPv6报文,到达隧道的源端设备。
l 隧道的源端设备根据路由表判定该报文要通过隧道进行转发,将会在IPv6报文前封装上IPv4的报文头,通过隧道的实际物理接口将报文转发出去。
l 封装报文通过隧道到达隧道目的端设备,目的端设备判断该封装报文的目的地是本设备后,将对报文进行解封装。
l 目的端设备根据解封装后的IPv6报文的目的地址将报文进行转发;如果目的地就是本设备,则将IPv6报文转给上层协议处理。
IPv6 over IPv4隧道可以建立在主机-主机、主机-设备、设备-设备之间。隧道的终点可能是IPv6报文的最终目的地,也可能需要进一步转发。
根据隧道终点的IPv4地址的获取方式不同,隧道分为“配置隧道”及“自动隧道”。
l 如果IPv6 over IPv4隧道的终点地址不能从IPv6报文的目的地址中自动获取,需要进行手工配置,这样的隧道即为“配置隧道”。
l 如果IPv6 over IPv4隧道的接口地址采用内嵌IPv4地址的特殊IPv6地址形式,即可以从IPv6报文的目的地址中自动获取隧道终点的IPv4地址,这样的隧道即为“自动隧道”。
根据对IPv6报文的封装方式的不同,IPv6 over IPv4隧道分为以下几种模式:
表1-1 IPv6 over IPv4隧道模式
隧道类型 |
隧道模式 |
配置隧道 |
IPv6手动隧道 |
自动隧道 |
6to4隧道 |
ISATAP(Intra-Site Automatic Tunnel Addressing Protocol,站点内自动隧道寻址协议)隧道 |
下面将对各隧道模式分别做详细介绍。首先,在表1-2中对各隧道模式的关键配置参数进行了简要列举。
表1-2 IPv6 over IPv4隧道模式参数对比表
隧道模式 |
隧道源/目的地址 |
隧道接口地址 |
IPv6手动隧道 |
源/目的地址为手动配置的IPv4地址 |
IPv6地址 |
6to4隧道 |
源地址为手动配置的IPv4地址,目的地址不需配置 |
6to4地址,其格式为 2002:IPv4-source-address::/48 |
ISATAP隧道 |
源地址为手动配置的IPv4地址,目的地址不需配置 |
ISATAP地址,其格式为Prefix:0:5EFE:IPv4-source-address/64 |
(1) IPv6手动隧道
手动隧道是点到点之间的链路,一条链路就是一个单独的隧道。主要用于边缘路由器-边缘路由器或主机-边缘路由器之间定期安全通信的稳定连接,可实现与远端IPv6网络的连接。
(2) 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报文通过隧道进行转发成为可能。
(3) ISATAP隧道
随着IPv6技术的推广,现有的IPv4网络中将会出现越来越多的IPv6主机,ISATAP隧道技术为这种应用提供了一个较好的解决方案。ISATAP隧道是点到多点的自动隧道技术,通过在IPv6报文的目的地址中嵌入的IPv4地址,可以自动获取隧道的终点。
使用ISATAP隧道时,IPv6报文的目的地址和隧道接口的IPv6地址都要采用特殊的ISATAP地址。ISATAP地址格式为:Prefix(64bit):0:5EFE:ip-address。其中,64位的Prefix为任何合法的IPv6单播地址前缀,ip-address为32位IPv4源地址,形式为abcd:efgh,且该IPv4地址不要求全球唯一。通过这个嵌入的IPv4地址就可以自动建立隧道,完成IPv6报文的传送。
ISATAP隧道主要用于在IPv4网络中IPv6路由器-IPv6路由器、IPv6主机-IPv6路由器的连接。
图1-2 ISATAP隧道原理图
IPv4 over IPv4隧道(RFC 1853)协议是对IP数据报进行封装,使得一个IPv4网络的数据能够在另一个IPv4网络中传输。
报文在Tunnel中传输经过封装与解封装两个过程,以下图为例说明这两个过程:
图1-3 IPv4隧道原理图
l 封装流程
Router A连接IPv4主机所在子网的接口收到IP数据报后,首先交由IP协议栈处理。IP协议栈根据IP报头中的目的地址来确定如何路由此包。如果报文要路由到与Router B相连的IPv4主机的地址,则将此报文发给Route A上连接Router B的Tunnel接口。
Tunnel接口收到此包后,进行IPv4 over IPv4的封装,封装完成后重新交给IP协议栈处理,IP协议栈根据添加的IP报头确定出接口。
l 解封装流程
解封装过程和封装的过程相反。从网络接口收到的IP报文被送到IP协议栈,IP协议栈检查IP报头的协议号;若发现此协议号为4即IPv4,则将此IP数据包发送到隧道模块进行解封装处理;解封装之后的IP报文将重新被送到IP协议栈进行处理。
IPv4或IPv6 over IPv6隧道(RFC 2473)协议是对IPv4或者IPv6的数据报进行封装,使这些被封装的数据报能够在另一个IPv6网络中传输,封装后的数据报文即IPv6隧道报文。
图1-4 IPv6隧道原理图
如图1-4所示,Original data指IPv4或IPv6报文。
l 封装流程
Router A连接网络A的接口收到原始数据报后,首先交由对应的数据转发模块进行处理,并确定如何路由此数据包;若确定此数据包要路由到与Router B相连的Host B的地址,则将此报文发给Router A上连接IPv6网络的Router B的Tunnel接口。
Tunnel口收到此包后添加IPv6报文头,封装完成后交给IPv6模块处理;IPv6协议模块根据IPv6隧道头的目的地址重新决定路由。
l 解封装流程
解封装过程和封装的过程相反。从IPv6网络接口接收的数据包被送到IPv6协议模块进行处理;若乘客协议为IPv4或IPv6,则数据包进入隧道处理模块进行解封装处理;解封装之后的数据包被送往相应的协议模块进行二次路由处理。
GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。
Tunnel是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封装。
一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过加封装与解封装两个过程,下面以图1-5的网络为例说明这两个过程:
图1-5 X协议网络通过GRE隧道互连
l Router A连接Group 1的接口收到X协议报文后,首先交由X协议处理;
l X协议检查报文头中的目的地址域来确定如何路由此包;
l 若报文的目的地址要经过Tunnel才能到达,则设备将此报文发给相应的Tunnel接口;
l Tunnel口收到此报文后进行GRE封装,在封装IP报文头后,设备根据此IP包的目的地址及路由表对报文进行转发,从相应的网络接口发送出去。
封装好的报文的形式如下图所示:
图1-6 封装好的Tunnel报文格式
举例来说,一个封装在IP Tunnel中的X协议报文的格式如下:
图1-7 Tunnel中传输报文的格式
需要封装和传输的数据报文,称之为净荷(Payload),净荷的协议类型为乘客协议(Passenger Protocol)。系统收到一个净荷后,首先使用封装协议(Encapsulation Protocol)对这个净荷进行GRE封装,即把乘客协议报文进行了“包装”,加上了一个GRE头部成为GRE报文;然后再把封装好的原始报文和GRE头部封装在IP报文中,这样就可完全由IP层负责此报文的前向转发(Forwarding)。通常把这个负责前向转发的IP协议称为传输协议(Delivery Protocol或者Transport Protocol)。
根据传输协议的不同,可以分为GRE over IPv4和GRE over IPv6两种隧道模式。
解封装过程和加封装的过程相反。
l RouterB从Tunnel接口收到IP报文,检查目的地址;
l 如果发现目的地是本路由器,则RouterB剥掉此报文的IP报头,交给GRE协议处理(进行检验密钥、检查校验和及报文的序列号等);
l GRE协议完成相应的处理后,剥掉GRE报头,再交由X协议对此数据报进行后续的转发处理。
GRE收发双方的加封装、解封装处理,以及由于封装造成的数据量增加,会导致使用GRE后设备的数据转发效率有一定程度的下降。
与隧道技术相关的协议规范有:
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)
配置任务 |
说明 |
详细配置 |
|
配置Tunnel接口 |
必选 |
||
配置IPv6 over IPv4隧道 |
配置IPv6手动隧道 |
根据组网情况,选择其一 |
|
配置6to4隧道 |
|||
配置ISATAP隧道 |
|||
配置IPv4 over IPv4隧道 |
|||
配置IPv4 over IPv6隧道 |
|||
配置IPv6 over IPv6隧道 |
|||
配置GRE over IPv4隧道 |
|||
配置GRE over IPv6隧道 |
配置Tunnel接口前,需要先创建业务类型为Tunnel的业务环回组,并将设备上未使用的二层以太网端口加入该业务环回组。关于业务环回组的详细介绍,请参见““二层技术-以太网交换配置指导”中的“业务环回组”。
表1-4 配置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 |
为保证MTU功能的正常使用,要求: l Tunnel接口的MTU值不要超过1432字节; l 对于所有已创建的Tunnel接口,请使用相同的MTU值 |
配置Tunnel接口的带宽 |
tunnel bandwidth bandwidth-value |
可选 缺省情况下,Tunnel接口的带宽为64kbps |
恢复当前接口的缺省配置 |
default |
可选 |
关闭Tunnel接口 |
shutdown |
可选 缺省情况下,接口处于开启状态 |
l 报文能否发送成功,不仅取决于Tunnel接口的带宽,还取决于报文实际出接口的带宽。因此,tunnel bandwidth命令配置的Tunnel接口带宽需要根据报文实际出接口的带宽值进行设置。
l 当通过Tunnel接口转发的IP单播报文的MTU超过配置的MTU时,设备将会对该IP单播报文进行分片,同时给源端设备发送ICMP差错报文,通告源端调整MTU,使发送的IP单播报文的MTU不超过配置的MTU。
l 在S5800和S5820X共同形成IRF的情况下,加入业务环回组的二层以太网端口只能是S5820X上未使用的二层以太网端口。
l 缺省情况下,ICMP目的不可达报文发送功能处于关闭状态,为了使设备能够发送ICMP差错报文,用户需要通过ip unreachables enable命令开启ICMP目的不可达报文发送功能。
l 当通过S5800系列以太网交换机的Tunnel接口转发的IP组播报文的MTU超过配置的MTU时,设备会给源端设备发送ICMP差错报文,通告源端调整MTU,使发送的IP组播报文的MTU不超过配置的MTU。
l 对于交换机,封装后的报文不能根据目的地址和路由表进行第二次三层转发,需要将封装后的报文发送给业务环回口,由业务环回口将报文回送给转发模块后,再进行三层转发。因此,需要指定隧道接口引用的业务环回组,以实现隧道报文的接收和发送。隧道接口引用的业务环回组必须已创建,否则隧道接口状态不会up,隧道无法通讯。关于业务环回组的创建和配置,请参见“二层技术-以太网交换配置指导”中的“业务环回组”。
设备上存在已经配置IP地址、能够进行正常通讯的接口(如VLAN接口,Loopback接口等),该接口将作为Tunnel接口的源接口。
表1-5 配置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接口上没有设置目的端地址 |
l 以上各项Tunnel接口下进行的功能特性配置,在删除Tunnel接口后,该接口上的所有配置也将被删除。
l 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行此项配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”或其他路由协议配置。
如图1-8所示,两个IPv6网络分别通过Switch A和Switch B与IPv4网络连接,要求在Switch A和Switch B之间建立IPv6手动隧道,使两个IPv6网络可以互通。
图1-8 IPv6手动隧道组网图
已经在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
# 配置手动隧道。
[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
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchA] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchA] interface GigabitEthernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] undo stp enable
[SwitchA-GigabitEthernet1/0/3] undo ndp enable
[SwitchA-GigabitEthernet1/0/3] undo lldp enable
[SwitchA-GigabitEthernet1/0/3] port service-loopback group 1
[SwitchA-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchA] interface tunnel 0
[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
# 配置手动隧道。
[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
[SwitchB-Tunnel0] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchB] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchB] interface GigabitEthernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] undo stp enable
[SwitchB-GigabitEthernet1/0/3] undo ndp enable
[SwitchB-GigabitEthernet1/0/3] undo lldp enable
[SwitchB-GigabitEthernet1/0/3] port service-loopback group 1
[SwitchB-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchB] interface tunnel 0
[SwitchB-Tunnel0] service-loopback-group 1
[SwitchB-Tunnel0] quit
# 配置从Switch B经过Tunnel0接口到Group 1的静态路由。
[SwitchB] ipv6 route-static 3002:: 64 tunnel 0
完成以上配置之后,分别查看Switch A和Switch B的Tunnel接口状态如下:
[SwitchA] display ipv6 interface tunnel 0 verbose
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 verbose
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
设备上存在已经配置IP地址、能够进行正常通讯的接口(如VLAN接口,Loopback接口等),该接口将作为Tunnel接口的源接口。
操作 |
命令 |
说明 |
|
进入系统视图 |
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接口上没有设置源端地址和接口 |
l 6to4隧道不需要配置目的地址,因为隧道的目的地址可以通过6to4 IPv6地址中嵌入的IPv4地址自动获得。
l 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。对于自动隧道,用户只能配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址,不支持动态路由。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”。
l 对于自动隧道,使用同种封装协议的Tunnel接口不能同时配置完全相同的源地址。
如图1-9所示,两个6to4网络通过网络边缘6to4 switch(Switch A和Switch B)与IPv4网络相连,为了实现6to4网络中的主机Host A和Host B之间的互通,需要配置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子网。
图1-9 6to4隧道组网图
已经在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
# 配置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
[SwitchA-Tunnel0] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchA] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchA] interface GigabitEthernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] undo stp enable
[SwitchA-GigabitEthernet1/0/3] undo ndp enable
[SwitchA-GigabitEthernet1/0/3] undo lldp enable
[SwitchA-GigabitEthernet1/0/3] port service-loopback group 1
[SwitchA-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchA] interface tunnel 0
[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
# 配置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
[SwitchB-Tunnel0] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchB] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchB] interface GigabitEthernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] undo stp enable
[SwitchB-GigabitEthernet1/0/3] undo ndp enable
[SwitchB-GigabitEthernet1/0/3] undo lldp enable
[SwitchB-GigabitEthernet1/0/3] port service-loopback group 1
[SwitchB-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchB] interface tunnel 0
[SwitchB-Tunnel0] service-loopback-group 1
[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
设备上存在已经配置IP地址、能够进行正常通讯的接口(如VLAN接口,Loopback接口等),该接口将作为Tunnel接口的源接口。
操作 |
命令 |
说明 |
|
进入系统视图 |
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接口上没有设置源端地址和接口 |
l ISATAP隧道不需要配置目的地址,因为隧道的目的地址可以通过ISATAP地址中嵌入的IPv4地址自动获得。
l 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。对于自动隧道,用户只能配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址,不支持动态路由。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”。
l 对于自动隧道,使用同种封装协议的Tunnel接口不能同时配置完全相同的源地址。
如图1-10所示,IPv6网络和IPv4网络通过ISATAP交换机相连,要求将IPv4网络中的IPv6主机通过ISATAP隧道接入到IPv6网络。
图1-10 ISATAP隧道组网图
l 已经在Switch上创建相应的VLAN接口。
l 已经配置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
# 配置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
[Switch-Tunnel0] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[Switch] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[Switch] interface GigabitEthernet 1/0/3
[Switch-GigabitEthernet1/0/3] undo stp enable
[Switch-GigabitEthernet1/0/3] undo ndp enable
[Switch-GigabitEthernet1/0/3] undo lldp enable
[Switch-GigabitEthernet1/0/3] port service-loopback group 1
[Switch-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[Switch] interface tunnel 0
[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
完成以上配置之后,ISATAP主机就可访问IPv6网络中的主机。
设备上存在已经配置IP地址、能够进行正常通讯的接口(如VLAN接口,Loopback接口等),该接口将作为Tunnel接口的源接口。
操作 |
命令 |
说明 |
进入系统视图 |
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地址。
运行IP协议的两个子网Group 1和Group 2,通过在交换机Switch A和交换机Switch B之间使用三层隧道协议IPv4 over IPv4实现互联。
图1-11 IPv4 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 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
# 创建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
[SwitchA-Tunnel1] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchA] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchA] interface GigabitEthernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] undo stp enable
[SwitchA-GigabitEthernet1/0/3] undo ndp enable
[SwitchA-GigabitEthernet1/0/3] undo lldp enable
[SwitchA-GigabitEthernet1/0/3] port service-loopback group 1
[SwitchA-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchA] interface 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
# 创建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
[SwitchB-Tunnel2] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchB] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchB] interface GigabitEthernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] undo stp enable
[SwitchB-GigabitEthernet1/0/3] undo ndp enable
[SwitchB-GigabitEthernet1/0/3] undo lldp enable
[SwitchB-GigabitEthernet1/0/3] port service-loopback group 1
[SwitchB-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchB] interface tunnel 2
[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
完成以上配置之后,分别察看Switch A和Switch B的Tunnel接口状态如下:
[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, 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, 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
设备上存在已经配置IPv6地址、能够进行正常通讯的接口(如VLAN接口,Loopback接口等),该接口将作为Tunnel接口的源接口。
操作 |
命令 |
说明 |
进入系统视图 |
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地址。
运行IP协议的两个子网Group 1和Group 2,通过在交换机Switch A和交换机Switch B之间使用IPv4 over IPv6隧道,穿越IPv6网络实现互联。
图1-12 IPv4 over IPv6隧道组网图
已经在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
# 创建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
[SwitchA-Tunnel1] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchA] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchA] interface GigabitEthernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] undo stp enable
[SwitchA-GigabitEthernet1/0/3] undo ndp enable
[SwitchA-GigabitEthernet1/0/3] undo lldp enable
[SwitchA-GigabitEthernet1/0/3] port service-loopback group 1
[SwitchA-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchA] interface 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
# 创建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
[SwitchB-Tunnel2] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchB] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchB] interface GigabitEthernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] undo stp enable
[SwitchB-GigabitEthernet1/0/3] undo ndp enable
[SwitchB-GigabitEthernet1/0/3] undo lldp enable
[SwitchB-GigabitEthernet1/0/3] port service-loopback group 1
[SwitchB-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchB] interface tunnel 2
[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
完成以上配置之后,分别查看Switch A和Switch B的Tunnel接口状态如下:
[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
设备上存在已经配置IPv6地址、能够进行正常通讯的接口(如VLAN接口,Loopback接口等),该接口将作为Tunnel接口的源接口。
操作 |
命令 |
说明 |
|
进入系统视图 |
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接口上没有设置目的端地址 |
l 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“静态路由”或其他路由协议配置。
l 本端隧道接口的IPv6地址与隧道的目的地址不能在同一个网段内。
l 配置经过隧道接口的路由时,路由的目的地址不能与该隧道的目的地址在同一个网段内。
l 对两个或两个以上使用同种封装协议的Tunnel接口,不能同时配置完全相同的源地址和目的地址。
l 配置Tunnel接口的源端地址时,若采用配置源接口形式,则Tunnel的源地址取的是源接口的主IP地址。
运行IPv6协议的两个子网Group 1和Group 2,通过在交换机Switch A和交换机Switch B之间使用三层隧道协议IPv6 over IPv6实现互联。
图1-13 IPv6 over IPv6隧道组网图
已经在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
# 创建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
[SwitchA-Tunnel1] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchA] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchA] interface GigabitEthernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] undo stp enable
[SwitchA-GigabitEthernet1/0/3] undo ndp enable
[SwitchA-GigabitEthernet1/0/3] undo lldp enable
[SwitchA-GigabitEthernet1/0/3] port service-loopback group 1
[SwitchA-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchA] interface 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
# 创建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
[SwitchB-Tunnel2] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchB] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchB] interface GigabitEthernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] undo stp enable
[SwitchB-GigabitEthernet1/0/3] undo ndp enable
[SwitchB-GigabitEthernet1/0/3] undo lldp enable
[SwitchB-GigabitEthernet1/0/3] port service-loopback group 1
[SwitchB-GigabitEthernet1/0/3] quit
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchB] interface tunnel 2
[SwitchB-Tunnel2] service-loopback-group 1
[SwitchB-Tunnel2] quit
# 配置从Switch B经过Tunnel2接口到Group 1的静态路由。
[SwitchB] ipv6 route-static 2002:1:: 64 tunnel 2
完成以上配置之后,分别查看Switch A和Switch B的Tunnel接口状态如下:
[SwitchA] display ipv6 interface tunnel 1 verbose
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 verbose
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
设备上的接口(如VLAN接口,Loopback接口等)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel虚接口的源接口,以保证隧道目的地址路由可达。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建一个Tunnel接口,并进入该Tunnel接口视图 |
interface tunnel interface-number |
必选 缺省情况下,设备上无Tunnel接口 |
设置Tunnel接口的IPv4地址 |
ip address ip-address { mask | mask-length } |
必选 缺省情况下,Tunnel接口上没有设置IPv4地址 |
配置隧道模式为GRE over IPv4 |
tunnel-protocol gre |
可选 缺省情况下,采用GRE over IPv4隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
设置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有设置源端地址和接口 |
设置Tunnel接口的目的端地址 |
destination ip-address |
必选 缺省情况下,Tunnel接口上没有设置目的端地址 |
配置通过Tunnel的路由 |
配置的详细情况请参见“三层技术-IP路由配置指导”中的“静态路由”或其他路由协议配置 |
可选 在源端路由器和目的端路由器上都必须存在经过Tunnel转发的路由,这样需要进行GRE封装的报文才能正确转发。可以选择配置静态路由,也可以选择配置动态路由。在Tunnel的两端都要进行此项配置 |
l Tunnel的源端地址与目的端地址唯一标识了一个通道。这些配置在Tunnel两端必须配置,且两端地址互为源地址和目的地址。
l 两个或两个以上使用同种封装协议的Tunnel接口不能配置完全相同的源地址和目的地址。
l 配置Tunnel接口的源端地址时,若采用配置源接口形式,则Tunnel的源地址取的是源接口的主IP地址。
l 配置通过Tunnel转发的路由时,可以手工配置一条静态路由,目的地址是未进行GRE封装的报文的目的地址,下一跳是对端Tunnel接口的地址。也可以在Tunnel接口上和与私网相连的路由器接口上分别使能动态路由协议,由动态路由协议来建立通过Tunnel转发的路由表项。
l 在隧道接口配置的静态路由的目的地址不能与隧道接口的地址在同一网段中。
交换机Switch A和交换机Swich B之间通过Internet相连。运行IP协议的私有网络的两个子网Group 1和Group 2,通过在两台交换机之间使用GRE建立隧道实现互联。
图1-14 GRE over IPv4应用组网图
(1) 配置Switch A
# 配置接口IP地址。
<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
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] ip address 1.1.1.1 255.255.255.0
[SwitchA-Vlan-interface101] 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 gre
# 配置Tunnel1接口的源地址。
[SwitchA-Tunnel1] source vlan-interface 101
# 配置Tunnel1接口的目的地址。
[SwitchA-Tunnel1] destination 2.2.2.2
[SwitchA-Tunnel1] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchA] service-loopback group 1 type tunnel
# 将端口GigabitEthernet1/0/3加入业务环回组1。
[SwitchA] interface GigabitEthernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] undo stp enable
[SwitchA-GigabitEthernet1/0/3] undo ndp enable
[SwitchA-GigabitEthernet1/0/3] undo lldp enable
[SwitchA-GigabitEthernet1/0/3] port service-loopback group 1
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchA-GigabitEthernet1/0/3] quit
[SwitchA] interface 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
# 配置接口IP地址。
<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
[SwitchB] interface vlan-interface 101
[SwitchB-Vlan-interface101] ip address 2.2.2.2 255.255.255.0
[SwitchB-Vlan-interface101] quit
# 创建Tunnel1接口。
[SwitchB] interface tunnel 1
# 配置Tunnel1接口的IP地址。
[SwitchB-Tunnel1] ip address 10.1.2.2 255.255.255.0
# 配置Tunnel封装模式。
[SwitchB-Tunnel1] tunnel-protocol gre
# 配置Tunnel1接口的源地址。
[SwitchB-Tunnel1] source vlan-interface 101
# 配置Tunnel1接口的目的地址。
[SwitchB-Tunnel1] destination 1.1.1.1
[SwitchB-Tunnel1] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchB] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchB] interface GigabitEthernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] undo stp enable
[SwitchB-GigabitEthernet1/0/3] undo ndp enable
[SwitchB-GigabitEthernet1/0/3] undo lldp enable
[SwitchB-GigabitEthernet1/0/3] port service-loopback group 1
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchB-GigabitEthernet1/0/3] quit
[SwitchB] interface tunnel 1
[SwitchB-Tunnel1] service-loopback-group 1
[SwitchB-Tunnel1] quit
# 配置从Switch B经过Tunnel1接口到Group 1的静态路由。
[SwitchB] ip route-static 10.1.1.0 255.255.255.0 Tunnel 1
# 完成以上配置后,分别查看Switch A和Switch B的Tunnel接口状态。
[SwitchA] display interface tunnel 1
Tunnel1 current state: UP
Line protocol current state: UP
Description: Tunnel1 Interface
The Maximum Transmit Unit is 1476
Internet Address is 10.1.2.1/24 Primary
Encapsulation is TUNNEL, service-loopback-group ID is 1.
Tunnel source 1.1.1.1, destination 2.2.2.2
Tunnel bandwidth 64 (kbps)
Tunnel protocol/transport GRE/IP
GRE key disabled
Checksumming of GRE packets disabled
Last clearing of counters: Never
Last 300 seconds input: 0 bytes/sec, 0 packets/sec
Last 300 seconds output: 0 bytes/sec, 0 packets/sec
10 packets input, 840 bytes
0 input error
10 packets output, 840 bytes
0 output error
[SwitchB] display interface tunnel 1
Tunnel1 current state: UP
Line protocol current state: UP
Description: Tunnel1 Interface
The Maximum Transmit Unit is 1476
Internet Address is 10.1.2.2/24 Primary
Encapsulation is TUNNEL, service-loopback-group ID is 1.
Tunnel source 2.2.2.2, destination 1.1.1.1
Tunnel bandwidth 64 (kbps)
Tunnel protocol/transport GRE/IP
GRE key disabled
Checksumming of GRE packets disabled
Last clearing of counters: Never
Last 300 seconds input: 2 bytes/sec, 0 packets/sec
Last 300 seconds output: 2 bytes/sec, 0 packets/sec
10 packets input, 840 bytes
0 input error
10 packets output, 840 bytes
0 output error
# 从Switch B可以Ping通Switch A上VLAN接口100的地址。
[SwitchB] ping 10.1.1.1
PING 10.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 10.1.1.1: bytes=56 Sequence=1 ttl=255 time=2 ms
Reply from 10.1.1.1: bytes=56 Sequence=2 ttl=255 time=2 ms
Reply from 10.1.1.1: bytes=56 Sequence=3 ttl=255 time=2 ms
Reply from 10.1.1.1: bytes=56 Sequence=4 ttl=255 time=2 ms
Reply from 10.1.1.1: bytes=56 Sequence=5 ttl=255 time=2 ms
--- 10.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 2/2/2 ms
设备上的接口(如VLAN接口,Loopback接口等)已经配置IPv6地址,能够进行正常通讯。这些接口将作为Tunnel虚接口的源接口,以保证隧道目的地址路由可达。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能IPv6报文转发功能 |
ipv6 |
必选 缺省情况下,关闭IPv6报文转发功能 |
创建一个Tunnel接口,并进入该Tunnel接口视图 |
interface tunnel interface-number |
必选 缺省情况下,设备上无Tunnel接口 |
设置Tunnel接口的IPv4地址 |
ip address ip-address { mask | mask-length } |
必选 缺省情况下,Tunnel接口上没有设置IPv4地址 |
配置隧道模式为GRE over IPv6 |
tunnel-protocol gre ipv6 |
必选 缺省情况下,采用GRE over IPv4隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
设置Tunnel接口的源端地址或接口 |
source { ipv6-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有设置源端地址和接口 |
设置Tunnel接口的目的端地址 |
destination ipv6-address |
必选 缺省情况下,Tunnel接口上没有设置目的端地址 |
配置通过Tunnel的路由 |
配置的详细情况请参见“三层技术-IP路由配置指导”中的“静态路由”或其他路由协议配置 |
可选 在源端路由器和目的端路由器上都必须存在经过Tunnel转发的路由,这样需要进行GRE封装的报文才能正确转发。可以选择配置静态路由,也可以选择配置动态路由。在Tunnel的两端都要进行此项配置 |
l 以上各项Tunnel接口下进行的功能特性配置,在删除Tunnel接口后,该接口上的所有配置也将被删除。
l Tunnel的源端地址与目的端地址唯一标识了一个通道。这些配置在Tunnel两端必须配置,且两端地址互为源地址和目的地址。
l 两个或两个以上使用同种封装协议的Tunnel接口不能配置完全相同的源地址和目的地址。
l 配置Tunnel接口的源端地址时,若采用配置源接口形式,则Tunnel的源地址取的是源接口的主IP地址。
l 配置通过Tunnel转发的路由时,可以手工配置一条静态路由,目的地址是未进行GRE封装的报文的目的地址,下一跳是对端Tunnel接口的地址。也可以在Tunnel接口上和与私网相连的路由器接口上分别使能动态路由协议,由动态路由协议来建立通过Tunnel转发的路由表项。
l 在隧道接口配置的静态路由的目的地址不能与隧道接口的地址在同一网段中。
运行IP协议的两个子网Group1和Group2,通过在交换机SwitchA和交换机SwitchB之间使用三层隧道协议GRE,穿越IPv6网络实现互联。
图1-15 GRE over IPv6应用组网图
(1) 配置Switch A
<SwitchA> system-view
# 使能IPv6。
[SwitchA] ipv6
# 配置接口Vlan-interface100。
[SwitchA] vlan 100
[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] vlan 101
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] ipv6 address 2002::1:1 64
[SwitchA-Vlan-interface101] quit
# 创建Tunnel0接口。
[SwitchA] interface tunnel 0
# 配置Tunnel0接口的IP地址。
[SwitchA-Tunnel0] ip address 10.1.2.1 255.255.255.0
# 配置Tunnel封装模式。
[SwitchA-Tunnel0] tunnel-protocol gre ipv6
# 配置Tunnel0接口的源地址(Vlan-interface101的IP地址)。
[SwitchA-Tunnel0] source 2002::1:1
# 配置Tunnel0接口的目的地址(Switch B的Vlan-interface101的IP地址)。
[SwitchA-Tunnel0] destination 2002::2:1
[SwitchA-Tunnel0] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchA] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchA] interface GigabitEthernet 1/0/3
[SwitchA-GigabitEthernet1/0/3] undo stp enable
[SwitchA-GigabitEthernet1/0/3] undo ndp enable
[SwitchA-GigabitEthernet1/0/3] undo lldp enable
[SwitchA-GigabitEthernet1/0/3] port service-loopback group 1
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchA-GigabitEthernet1/0/3] quit
[SwitchA] interface tunnel 0
[SwitchA-Tunnel0] service-loopback-group 1
[SwitchA-Tunnel0] quit
# 配置从Switch A经过Tunnel0接口到Group 2的静态路由。
[SwitchA] ip route-static 10.1.3.0 255.255.255.0 tunnel 0
(2) 配置Switch B
<SwitchB> system-view
# 使能IPv6。
[SwitchB] ipv6
# 配置接口Vlan-interface100。
[SwitchB] vlan 100
[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] vlan 101
[SwitchB] interface vlan-interface 101
[SwitchB-Vlan-interface101] ipv6 address 2002::2:1 64
[SwitchB-Vlan-interface101] quit
# 创建Tunnel0接口。
[SwitchB] interface tunnel 0
# 配置Tunnel0接口的IP地址。
[SwitchB-Tunnel0] ip address 10.1.2.2 255.255.255.0
# 配置Tunnel封装模式。
[SwitchB-Tunnel0] tunnel-protocol gre ipv6
# 配置Tunnel0接口的源地址(Vlan-interface101的IP地址)。
[SwitchB-Tunnel0] source 2002::2:1
# 配置Tunnel0接口的目的地址(Switch A的Vlan-interface101的IP地址)。
[SwitchB-Tunnel0] destination 2002::1:1
[SwitchB-Tunnel0] quit
# 创建并配置业务环回组1,服务类型为tunnel。
[SwitchB] service-loopback group 1 type tunnel
# 将接口GigabitEthernet1/0/3加入业务环回组1。
[SwitchB] interface GigabitEthernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] undo stp enable
[SwitchA-GigabitEthernet1/0/3] undo ndp enable
[SwitchA-GigabitEthernet1/0/3] undo lldp enable
[SwitchB-GigabitEthernet1/0/3] port service-loopback group 1
# 在Tunnel接口视图下指定隧道引用的业务环回组1。
[SwitchB-GigabitEthernet1/0/3] quit
[SwitchB] interface tunnel 0
[SwitchB-Tunnel0] service-loopback-group 1
[SwitchB-Tunnel0] quit
# 配置从Switch B经过Tunnel0接口到Group 1的静态路由。
[SwitchB] ip route-static 10.1.1.0 255.255.255.0 tunnel 0
# 完成以上配置后,分别查看Switch A和Switch B的Tunnel接口状态。
[SwitchA] display interface Tunnel 0
Tunnel0 current state: UP
Line protocol current state: UP
Description: Tunnel0 Interface
The Maximum Transmit Unit is 1456
Internet Address is 10.1.2.1/24 Primary
Encapsulation is TUNNEL, service-loopback-group ID is 1.
Tunnel source 2002::1:1, destination 2002::2:1
Tunnel bandwidth 64 (kbps)
Tunnel protocol/transport GRE/IPv6
GRE key disabled
Checksumming of GRE packets disabled
Last clearing of counters: Never
Last 300 seconds input: 0 bytes/sec, 0 packets/sec
Last 300 seconds output: 0 bytes/sec, 0 packets/sec
10 packets input, 840 bytes
0 input error
10 packets output, 840 bytes
0 output error
[SwitchB] display interface Tunnel 0
Tunnel0 current state: UP
Line protocol current state: UP
Description: Tunnel0 Interface
The Maximum Transmit Unit is 1456
Internet Address is 10.1.2.2/24 Primary
Encapsulation is TUNNEL, service-loopback-group ID is 1.
Tunnel source 2002::2:1, destination 2002::1:1
Tunnel bandwidth 64 (kbps)
Tunnel protocol/transport GRE/IPv6
GRE key disabled
Checksumming of GRE packets disabled
Last clearing of counters: Never
Last 300 seconds input: 0 bytes/sec, 0 packets/sec
Last 300 seconds output: 0 bytes/sec, 0 packets/sec
10 packets input, 840 bytes
0 input error
10 packets output, 840 bytes
0 output error
# 从Switch B可以Ping通Switch A上VLAN接口100的地址。
[SwitchB] ping 10.1.1.1
PING 10.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 10.1.1.1: bytes=56 Sequence=1 ttl=255 time=3 ms
Reply from 10.1.1.1: bytes=56 Sequence=2 ttl=255 time=2 ms
Reply from 10.1.1.1: bytes=56 Sequence=3 ttl=255 time=2 ms
Reply from 10.1.1.1: bytes=56 Sequence=4 ttl=255 time=2 ms
Reply from 10.1.1.1: bytes=56 Sequence=5 ttl=255 time=3 ms
--- 10.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 2/2/3 ms
在完成上述配置后,在任意视图下执行display命令可以显示隧道配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除Tunnel接口的统计信息。
表1-13 隧道显示和维护
操作 |
命令 |
显示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 ] [ verbose ] [ | { begin | exclude | include } regular-expression ] |
清除Tunnel接口的统计信息 |
reset counters interface [ tunnel [number ] ] |
故障现象:在Tunnel接口上配置了相关的参数后(例如隧道的起点、终点地址和隧道模式)仍未处于up状态。
故障排除:可以按照如下步骤进行。
(1) Tunnel接口未处于up状态的最常见原因是隧道起点的物理接口没有处于up状态。使用display interface tunnel和display ipv6 interface tunnel命令查看隧道起点的物理接口状态为up还是down。如果隧道状态是down的,可以通过用户视图下的debugging tunnel event调试命令查看隧道down的原因。
(2) Tunnel接口未处于up状态的另一个可能的原因是隧道的终点地址不可达。使用display ipv6 routing-table和display ip routing-table命令查看是否终点地址通过路由可达。如果路由表中没有保证隧道通讯的路由项,请配置相关路由。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!