11-隧道配置
本章节下载: 11-隧道配置 (279.88 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隧道技术。
· 实现流量工程,避免由于负载不均衡导致网络拥塞,如MPLS TE(Multiprotocol Label Switching Traffic Engineering,多协议标记交换流量工程)。
本文只介绍IPv6 over IPv4隧道和IPv4 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 over IPv4隧道(RFC 1853)是对IPv4报文进行封装,使得一个IPv4网络的报文能够在另一个IPv4网络中传输。例如,运行IPv4协议的两个子网位于不同的区域,并且这两个子网都使用私网地址时,可以通过建立IPv4 over IPv4隧道,实现两个子网的互联。
图1-2 IPv4 over IPv4隧道原理图
报文在隧道中传输经过封装与解封装两个过程,以上图为例说明这两个过程:
Device A连接IPv4主机所在子网的接口收到IPv4报文后,首先交由IPv4协议栈处理。IPv4协议栈根据IPv4报文头中的目的地址判断该报文需要通过隧道进行转发,则将此报文发给Tunnel接口。
Tunnel接口收到此报文后,在IPv4报文外再封装一个IPv4报文头,封装的报文头中源IPv4地址为隧道的源端地址,目的IPv4地址为隧道的目的端地址。封装完成后将报文重新交给IPv4协议栈处理,IPv4协议栈根据添加的IPv4报文头查找路由表,转发报文。
解封装过程和封装过程相反。Device B从接口收到IPv4报文后,将其送到IPv4协议栈处理。IPv4协议栈检查接收到的IPv4报文头中的协议号。如果协议号为4(表示封装的报文为IPv4报文),则将此IPv4报文发送到隧道模块进行解封装处理。解封装之后的IPv4报文将重新被送到IPv4协议栈进行二次路由处理。
· 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
配置Tunnel接口 |
||
配置IPv6 over IPv4隧道 |
||
配置IPv4 over IPv4隧道 |
配置Tunnel接口前的准备工作:
· 在创建Tunnel接口前,需要先配置全局类型VLAN接口资源预留。每创建一个Tunnel接口,需要预留两个全局类型VLAN接口资源。关于全局类型VLAN接口资源预留的详细介绍,请参见“二层技术-以太网交换配置指导”中的“VLAN”。
· 配置Tunnel接口时,封装后的报文不能根据目的地址和路由表进行第二次三层转发,需要将封装后的报文发送给业务环回组,由业务环回组将报文回送给转发模块后,再进行三层转发。因此,需要创建tunnel类型的业务环回组,以实现隧道报文的接收和发送。关于业务环回组的创建和配置,请参见“二层技术-以太网交换配置指导”中的“业务环回组”。
隧道两端的设备上,需要创建虚拟的三层接口,即Tunnel接口,以便隧道两端的设备利用Tunnel接口发送报文、识别并处理来自隧道的报文。
配置全局类型的VLAN接口资源预留 |
reserve-vlan-interface vlan-interface-id1 [ to vlan-interface-id2 ] global |
缺省情况下,没有任何预留VLAN接口资源 |
创建业务环回组,并指定其业务类型为Tunnel |
缺省情况下,不存在业务环回组 |
|
退回系统视图 |
quit |
- |
创建Tunnel接口,指定隧道模式,并进入Tunnel接口视图 |
interface tunnel number mode { evi | gre | ipv4-ipv4 | ipv6-ipv4 | mpls-te | vxlan } |
创建Tunnel接口时,必须指定隧道的模式;进入已经创建的Tunnel接口视图时,可以不指定隧道模式 不同模式下设备支持的隧道模式不同,请以设备的实际情况为准。关于配置设备的工作模式的详细介绍,请参见“基础配置指导”中的“设备管理” |
(可选)指定转发当前接口流量的业务处理板(独立运行模式) |
service slot slot-number |
缺省情况下,未指定转发当前接口流量的业务处理板 |
(可选)指定转发当前接口流量的业务处理板(IRF模式) |
service chassis chassis-number slot slot-number |
缺省情况下,未指定转发当前接口流量的业务处理板 |
配置Tunnel接口的MTU值 |
缺省情况下,MTU值为64000 |
|
配置Tunnel接口的期望带宽 |
接口的期望带宽会影响链路开销值。具体介绍请参见“三层技术-IP路由配置指导”中的“OSPF”、“OSPFv3”和“IS-IS” |
|
tunnel tos tos-value |
缺省情况下,封装后隧道报文的ToS值与封装前原始IP报文的ToS值相同 |
|
tunnel ttl ttl-value |
缺省情况下,封装后隧道报文的TTL值为255 |
|
配置隧道目的端地址所属的VPN |
tunnel vpn-instance vpn-instance-name |
缺省情况下,隧道目的端地址属于公网,设备查找公网路由表转发隧道封装后的报文 在隧道的源接口上通过ip binding vpn-instance命令可以指定隧道源端地址所属的VPN。隧道的源端地址和目的端地址必须属于相同的VPN,否则隧道接口链路状态无法UP ip binding vpn-instance命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN” |
配置Tunnel接口前的准备工作:
· 在创建Tunnel接口前,需要先配置全局类型VLAN接口资源预留。每创建一个Tunnel接口,需要预留两个全局类型VLAN接口资源。关于全局类型VLAN接口资源预留的详细介绍,请参见“二层技术-以太网交换配置指导”中的“VLAN”。
· 配置Tunnel接口时,封装后的报文不能根据目的地址和路由表进行第二次三层转发,需要将封装后的报文发送给业务环回组,由业务环回组将报文回送给转发模块后,再进行三层转发。因此,需要创建tunnel类型的业务环回组,以实现隧道报文的接收和发送。关于业务环回组的创建和配置,请参见“二层技术-以太网交换配置指导”中的“业务环回组”。
配置IPv6 over IPv4隧道时,需要注意:
· 在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。
· 在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。
· 如果封装前IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置IPv6 BGP动态路由,在Tunnel接口使能IPv6 BGP动态路由协议。在隧道的两端都要进行此项配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“IPv6静态路由”或“BGP”。
配置全局类型的VLAN接口资源预留 |
reserve-vlan-interface vlan-interface-id1 [ to vlan-interface-id2 ] global |
缺省情况下,没有任何预留VLAN接口资源 |
创建业务环回组,并指定其业务类型为Tunnel |
service-loopback group number type tunnel |
缺省情况下,不存在业务环回组 |
进入二层以太网接口视图 |
interface interface-type interface-number |
- |
将端口加入业务环回组 |
port service-loopback group number |
缺省情况下,端口不属于任何业务环回组 |
退回系统视图 |
quit |
- |
进入模式为IPv6 over IPv4隧道的Tunnel接口视图 |
||
设置Tunnel接口的IPv6地址 |
详细配置方法,请参见“三层技术-IP业务配置指导”中的“IPv6基础” |
缺省情况下,Tunnel接口上不存在IPv6地址 |
如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址 |
||
缺省情况下,没有设置隧道的目的端地址 |
||
(可选)配置丢弃含有IPv4兼容IPv6地址的IPv6报文 |
缺省情况下,不会丢弃含有IPv4兼容IPv6地址的IPv6报文 |
如图1-3所示,两个IPv6网络分别通过Switch A和Switch B与IPv4网络连接,要求在Switch A和Switch B之间建立IPv6 over IPv4隧道,使两个IPv6网络可以互通。
图1-3 IPv6 over IPv4隧道组网图
在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv4报文路由可达。
# 配置接口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
# 配置全局类型的预留VLAN 3001和VLAN 3002接口资源。
[SwitchA] reserve-vlan-interface 3001 to 3002 global
# 创建业务环回组1,并配置服务类型为tunnel。
[SwitchA] service-loopback group 1 type tunnel
# 将接口FortyGigE1/0/3加入业务环回组1。
[SwitchA] interface FortyGigE 1/0/3
[SwitchA-FortyGigE1/0/3] port service-loopback group 1
[SwitchA-FortyGigE1/0/3] 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
# 配置接口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
# 配置全局类型的预留VLAN 3001和VLAN 3002接口资源。
[SwitchB] reserve-vlan-interface 3001 to 3002 global
# 创建业务环回组1,并配置服务类型为tunnel。
[SwitchB] service-loopback group 1 type tunnel
# 将接口FortyGigE1/0/3加入业务环回组1。
[SwitchB] interface FortyGigE 1/0/3
[SwitchB-FortyGigE1/0/3] port service-loopback group 1
[SwitchB-FortyGigE1/0/3] 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为例。
Ping6(56 data bytes) 3001::1 --> 3003::1, press CTRL_C to break
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
--- Ping6 statistics for 3003::1 ---
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
配置Tunnel接口前的准备工作:
· 在创建Tunnel接口前,需要先配置全局类型VLAN接口资源预留。每创建一个Tunnel接口,需要预留两个全局类型VLAN接口资源。关于全局类型VLAN接口资源预留的详细介绍,请参见“二层技术-以太网交换配置指导”中的“VLAN”。
· 配置Tunnel接口时,封装后的报文不能根据目的地址和路由表进行第二次三层转发,需要将封装后的报文发送给业务环回组,由业务环回组将报文回送给转发模块后,再进行三层转发。因此,需要创建tunnel类型的业务环回组,以实现隧道报文的接收和发送。关于业务环回组的创建和配置,请参见“二层技术-以太网交换配置指导”中的“业务环回组”。
配置IPv4 over IPv4隧道时,需要注意:
· 在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。
· 在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。
· 本端隧道接口的IPv4地址与隧道的目的端地址不能在同一个网段内。
· 如果封装前IPv4报文的目的IPv4地址与Tunnel接口的IPv4地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv4地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv4地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置BGP动态路由,在Tunnel接口使能BGP动态路由协议。在隧道的两端都要进行此项配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“静态路由”或“BGP”。
· 配置经过隧道接口的路由时,路由的目的地址不能与该隧道的目的端地址在同一个网段内。
配置全局类型的VLAN接口资源预留 |
reserve-vlan-interface vlan-interface-id1 [ to vlan-interface-id2 ] global |
缺省情况下,没有任何预留VLAN接口资源 |
创建业务环回组,并指定其业务类型为Tunnel |
service-loopback group number type tunnel |
缺省情况下,不存在业务环回组 |
进入二层以太网接口视图 |
interface interface-type interface-number |
- |
将端口加入业务环回组 |
port service-loopback group number |
缺省情况下,端口不属于任何业务环回组 |
退回系统视图 |
quit |
- |
进入模式为IPv4 over IPv4隧道的Tunnel接口视图 |
||
设置Tunnel接口的IPv4地址 |
缺省情况下,Tunnel接口上不存在IPv4地址 |
|
如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址 |
||
缺省情况下,没有设置隧道的目的端地址 |
运行IP协议的两个子网Group 1和Group 2位于不同的区域,这两个子网都使用私网地址。通过在交换机Switch A和交换机Switch B之间建立IPv4 over IPv4隧道,实现两个子网的互联。
图1-4 IPv4 over IPv4隧道组网图
在开始下面的配置之前,请确保Switch A和Switch B上已经创建相应的VLAN接口,且两者之间IPv4报文路由可达。
# 配置接口Vlan-interface100的地址。
[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
# 配置全局类型的预留VLAN 3001和VLAN 3002接口资源。
[SwitchA] reserve-vlan-interface 3001 to 3002 global
# 创建业务环回组1,并配置服务类型为tunnel。
[SwitchA] service-loopback group 1 type tunnel
# 将接口FortyGigE1/0/3加入业务环回组1。
[SwitchA] interface FortyGigE 1/0/3
[SwitchA-FortyGigE1/0/3] port service-loopback group 1
[SwitchA-FortyGigE1/0/3] quit
# 创建模式为IPv4 over IPv4隧道的接口Tunnel1。
[SwitchA] interface tunnel 1 mode ipv4-ipv4
# 配置Tunnel1接口的IP地址。
[SwitchA-Tunnel1] ip address 10.1.2.1 255.255.255.0
# 配置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
# 配置从Switch A经过Tunnel1接口到Group 2的静态路由。
[SwitchA] ip route-static 10.1.3.0 255.255.255.0 tunnel 1
# 配置接口Vlan-interface100的地址。
[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
# 配置全局类型的预留VLAN 3001和VLAN 3002接口资源。
[SwitchB] reserve-vlan-interface 3001 to 3002 global
# 创建业务环回组1,并配置服务类型为tunnel。
[SwitchB] service-loopback group 1 type tunnel
# 将接口FortyGigE1/0/3加入业务环回组1。
[SwitchB] interface FortyGigE 1/0/3
[SwitchB-FortyGigE1/0/3] port service-loopback group 1
[SwitchB-FortyGigE1/0/3] quit
# 创建模式为IPv4 over IPv4隧道的接口Tunnel2。
[SwitchB] interface tunnel 2 mode ipv4-ipv4
# 配置Tunnel2接口的IP地址。
[SwitchB-Tunnel2] ip address 10.1.2.2 255.255.255.0
# 配置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
# 配置从Switch B经过Tunnel2接口到Group 1的静态路由。
[SwitchB] ip route-static 10.1.1.0 255.255.255.0 tunnel 2
# 完成上述配置后,在Switch A和Switch B上分别执行display interface tunnel命令,可以看出Tunnel接口处于up状态。(具体显示信息略)
# 从Switch A和Switch B上可以Ping通对端的Vlan-interface100接口的IPv4地址。下面仅以Switch A为例。
[SwitchA] ping -a 10.1.1.1 10.1.3.1
Ping 10.1.3.1 (10.1.3.1) from 10.1.1.1: 56 data bytes, press CTRL_C to break
56 bytes from 10.1.3.1: icmp_seq=0 ttl=255 time=2.000 ms
56 bytes from 10.1.3.1: icmp_seq=1 ttl=255 time=1.000 ms
56 bytes from 10.1.3.1: icmp_seq=2 ttl=255 time=0.000 ms
56 bytes from 10.1.3.1: icmp_seq=3 ttl=255 time=1.000 ms
56 bytes from 10.1.3.1: icmp_seq=4 ttl=255 time=1.000 ms
--- Ping statistics for 10.1.3.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.000/1.000/2.000/0.632 ms
在完成上述配置后,在任意视图下执行display命令可以显示隧道配置后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除Tunnel接口的统计信息。
显示Tunnel接口的相关信息 |
display interface tunnel [ number [ brief [ description ] ] | brief [ description | down ] ] |
显示Tunnel接口的IPv6相关信息 |
|
清除Tunnel接口的统计信息 |
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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!