08-IPv6 over IPv6隧道配置
本章节下载: 08-IPv6 over IPv6隧道配置 (238.84 KB)
IPv6 over IPv6隧道(RFC 2473)是对IPv6报文进行封装,使这些被封装的报文能够在另一个IPv6网络中传输,封装后的报文即IPv6隧道报文。例如,如果运行IPv6协议的两个子网的网络地址不希望泄露到IPv6网络中,则可以通过建立IPv6 over IPv6隧道,实现在两个子网的网络地址不被泄露的情况下,使两个子网互通。
图1-1 IPv6 over IPv6隧道原理图
IPv6报文在隧道中传输经过封装与解封装两个过程,以图1-1为例说明这两个过程:
· 封装过程
Device A连接网络A的接口收到IPv6报文后,首先交由IPv6协议模块处理。IPv6协议模块根据报文的目的IPv6地址判断该报文需要通过隧道进行转发,则将此报文发给Tunnel接口。
Tunnel接口收到此报文后,为IPv6报文再封装一个IPv6报文头,封装的IPv6报文头中源IPv6地址为隧道的源端地址,目的IPv6地址为隧道的目的端地址。封装完成后将报文交给IPv6模块处理。IPv6协议模块根据添加的IPv6报文头的目的地址重新确定如何转发此报文。
· 解封装过程
解封装过程和封装过程相反。从IPv6网络接口接收的报文被送到IPv6协议模块。IPv6协议模块检查IPv6报文封装的协议类型。若封装的协议为IPv6,则报文进入隧道处理模块进行解封装处理;解封装之后的报文被送往相应的协议模块进行二次路由处理。
· 在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。
· 在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。
· 本端隧道接口的IPv6地址与隧道的目的端地址不能在同一个网段内。
· 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”或其他路由协议配置。
· 配置经过隧道接口的路由时,路由的目的地址不能与该隧道的目的端地址在同一个网段内。
· 本配置任务仅列出了配置IPv6 over IPv6隧道涉及的隧道接口相关的基础配置命令(interface tunnel、source、destination、tunnel discard ipv4-compatible-packet和encapsulation-limit命令),关于隧道接口的更多配置命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口”。
IPv6 over IPv6隧道配置任务如下:
(2) (可选)配置丢弃含有IPv4兼容IPv6地址的IPv6报文
(3) (可选)配置解封装IPv6-in-IPv6报文的地址对
(1) 进入系统视图。
system-view
(2) 进入模式为IPv6隧道或IPv6 over IPv6隧道的Tunnel接口视图。
interface tunnel number [ mode { ipv6 | ipv6-ipv6 } ]
(3) 设置Tunnel接口的IPv6地址。
详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
(4) 设置隧道的源端地址或源接口。
source { ipv6-address | interface-type interface-number }
缺省情况下,未设置隧道的源端地址和源接口。
如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IPv6地址;如果设置的是隧道的源接口,则该接口下的最小地址将作为封装后隧道报文的源IPv6地址。
(5) 设置隧道的目的端地址。
destination ipv6-address
缺省情况下,未设置隧道的目的端地址。
隧道的目的端地址是对端接收报文的接口的地址,该地址将作为封装后隧道报文的目的IPv6地址。
(6) (可选)设置隧道允许的最大嵌套封装次数。
encapsulation-limit number
缺省情况下,不限制隧道的最大嵌套封装次数。
(1) 进入系统视图。
system-view
(2) 配置丢弃含有IPv4兼容IPv6地址的IPv6报文。
tunnel discard ipv4-compatible-packet
缺省情况下,不会丢弃含有IPv4兼容IPv6地址的IPv6报文。
某些场景下,客户端需要通过构造多层封装的IPv6-in-IPv6报文来检测一条传输路径是否路由可达。此时,需要在传输路径的各个节点设备上配置本功能,即配置用于解封装IPv6-in-IPv6报文的地址对,来配合客户端完成传输路经可达性检测。
每组解封装地址对中包含一个目的IP地址和若干个源IPv6地址。目的IPv6地址可根据需要配置,并无无实际作用,若不配置,系统会默认设置为::。源IPv6地址可通过如下三种方式配置:
· 指定设备上的一个路由可达的IPv6地址(通过source ipv6-address参数)作为地址对的源IPv6地址;
· 指定一个源接口(通过source interface-type interface-number参数),该接口的主IPv6地址将作为地址对中的源IPv6地址;
· 指定一组源IPv6地址(通过source direct参数)。系统通过遍历设备上所有接口状态为Up的三层接口、VLAN接口和LoopBack口,并将遍历到的前1000个接口的主IPv6地址(除子接口地址、VPN内地址、InLoopBack口地址以外)作为地址对中的源IPv6地址。
在待检测路径的各个节点设备上都需要配置一组解封装地址对。其中,待检测路径的终点设备上的地址对源IPv6地址可以通过指定源IPv6地址组、源IPv6地址或者源接口的方式配置,其它中间节点设备上的地址对源IPv6地址必须通过指定源IPv6地址组的方式配置。
在客户端构建IPv6-in-IPv6报文时,需将原始报文的目的地址设置为客户端自己的IPv6地址,然后在原始报文上逐层封装IPv6报文头。
IPv6-in-IPv6报文封装IPv6报文头的顺序应该与路径上节点设备解封装报文头的顺序相反,封装IPv6报文头的数量为链路节点设备个数×2-1。
IPv6-in-IPv6报文中每层IPv6报文头的源地址和目的地址都需要解封装该层报文头的节点设备上的解封装地址对对应,关系如下:
· 报文头中源地址对应解封装地址对中的目的IPv6地址;
· 报文头中目的地址对应解封装地址对中的源IPv6地址。
客户端构建的多层封装IPv6-in-IPv6报文每经过一个节点设备时,节点设备都会对接收到的报文进行解封装匹配,即将报文头中的源地址和目的地址与设备上配置的解封装地址对匹配。如果符合,则对该报文头进行解封装,否则不进行解封装。
节点设备解封装报文头后,会根据转发表项将该报文转发到下一个节点设备。后续报文转发路径上的节点设备依次执行以上匹配和解封装的动作,直到最后一个节点设备完成解封装。由于该多层封装IPv6-in-IPv6报文的原始报文目的地址为客户端自己的IPv6地址,如果该报文能够回到客户端,则说明路径可达;否则说明路径不可达。
(1) 进入系统视图。
system-view
(2) 配置解封装IPv6-in-IPv6报文的地址对。
tunnel ipv6-in-ipv6 decapsulate-any [ destination ipv6-address ] source { ipv6-address | interface-type interface-number | direct }
缺省情况下,未配置解封装IPv6-in-IPv6报文的地址对。
可在任意视图下执行以下命令:
· 显示IPv6 over IPv6隧道接口的信息。
display tunnel-interface [ number ]
本命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口命令”。
· 显示IPv6 over IPv6隧道接口的相关信息。
display interface [ tunnel [ number ] ] [ brief [ description | down ] ]
本命令的详细介绍,请参见“接口管理命令参考”中的“隧道接口命令”。
· 显示IPv6 over IPv6隧道接口的IPv6相关信息。
display ipv6 interface [ tunnel [ number ] ] [ brief ]
本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IPv6基础”。
请在用户视图下执行以下命令:
· 清除IPv6 over IPv6隧道接口的统计信息。
reset counters interface [ tunnel [ number ] ]
本命令的详细介绍,请参见“接口管理命令参考”中的“接口公共命令”。
· 清除IPv6 over IPv6隧道接口的IPv6统计信息。
reset ipv6 statistics [ slot slot-number ]
运行IPv6协议的两个子网Group 1和Group 2的网络地址不希望泄露到IPv6网络中。网络管理员通过在路由器Router A和路由器Router B之间建立IPv6 over IPv6隧道,实现在Group 1和Group 2的网络地址不被泄露的情况下,确保Group 1和Group 2互通。
图1-2 IPv6 over IPv6隧道组网图
在开始下面的配置之前,请确保Router A和Router B之间IPv6报文路由可达。
(1) 配置Router A
# 配置接口GigabitEthernet1/0/1的地址。
<RouterA> system-view
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] ipv6 address 2002:1::1 64
[RouterA-GigabitEthernet1/0/1] quit
# 配置接口Serial2/1/0(隧道的实际物理接口)的地址。
[RouterA] interface serial 2/1/0
[RouterA-Serial2/1/0] ipv6 address 2001::11:1 64
[RouterA-Serial2/1/0] quit
# 创建模式为IPv6隧道的接口Tunnel1。
[RouterA] interface tunnel 1 mode ipv6
# 配置Tunnel1接口的IP地址。
[RouterA-Tunnel1] ipv6 address 3001::1:1 64
# 配置Tunnel1接口的源端地址(Serial2/1/0的IP地址)。
[RouterA-Tunnel1] source 2001::11:1
# 配置Tunnel1接口的目的端地址(Router B的Serial2/1/1的IP地址)。
[RouterA-Tunnel1] destination 2002::22:1
[RouterA-Tunnel1] quit
# 配置从Router A经过Tunnel1接口到Group 2的静态路由。
[RouterA] ipv6 route-static 2002:3:: 64 tunnel 1
(2) 配置Router B
# 配置接口GigabitEthernet1/0/1的地址。
<RouterB> system-view
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] ipv6 address 2002:3::1 64
[RouterB-GigabitEthernet1/0/1] quit
# 配置接口Serial2/1/1(隧道的实际物理接口)的地址。
[RouterB] interface serial 2/1/1
[RouterB-Serial2/1/1] ipv6 address 2002::22:1 64
[RouterB-Serial2/1/1] quit
# 创建模式为IPv6隧道的接口Tunnel2。
[RouterB] interface tunnel 2 mode ipv6
# 配置Tunnel2接口的IP地址。
[RouterB-Tunnel2] ipv6 address 3001::1:2 64
# 配置Tunnel2接口的源端地址(Serial2/1/1的IP地址)。
[RouterB-Tunnel2] source 2002::22:1
# 配置Tunnel2接口的目的端地址(Router A的Serial2/1/0的IP地址)。
[RouterB-Tunnel2] destination 2001::11:1
[RouterB-Tunnel2] quit
# 配置从Router B经过Tunnel2接口到Group 1的静态路由。
[RouterB] ipv6 route-static 2002:1:: 64 tunnel 2
# 完成上述配置后,在Router A和Router B上分别执行display ipv6 interface命令,可以看出Tunnel接口处于up状态。(具体显示信息略)
# 从Router A和Router B上可以Ping通对端的GigabitEthernet1/0/1接口的IPv6地址。下面仅以Router A为例。
[RouterA] ping ipv6 -a 2002:1::1 2002:3::1
Ping6(56 data bytes) 2002:1::1 --> 2002:3::1, press CTRL_C to break
56 bytes from 2002:3::1, icmp_seq=0 hlim=64 time=9.000 ms
56 bytes from 2002:3::1, icmp_seq=1 hlim=64 time=1.000 ms
56 bytes from 2002:3::1, icmp_seq=2 hlim=64 time=0.000 ms
56 bytes from 2002:3::1, icmp_seq=3 hlim=64 time=0.000 ms
56 bytes from 2002:3::1, icmp_seq=4 hlim=64 time=0.000 ms
--- Ping6 statistics for 2002:3::1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/2.000/9.000/3.521 ms
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!