选择区域语言: EN CN HK

05-三层技术-IP业务配置指导

11-隧道配置

本章节下载  (196.33 KB)

docurl=/cn/Service/Document_Software/Document_Center/Routers/Catalog/LA_wireless/H3C_LA6600/Configure/Operation_Manual/H3C_LA6600_CG(V7)-R0605-6W200/05/201703/981295_30005_0.htm

11-隧道配置


1 隧道

1.1  隧道概述

隧道技术是一种封装技术,即一种网络协议将其他网络协议的数据报文封装在自己的报文中,然后在网络中传输。封装后的数据报文在网络中传输的路径,称为隧道。隧道是一条虚拟的点对点连接,隧道的两端需要对数据报文进行封装及解封装。隧道技术就是指包括数据封装、传输和解封装在内的全过程。

隧道技术具有以下用途:

创建VPN(Virtual Private Network,虚拟专用网络),如IPv4 over IPv4隧道、GRE(Generic Routing Encapsulation,通用路由封装)、ADVPN(Auto Discovery Virtual Private Network,自动发现虚拟专用网络)。GRE、ADVPN的相关介绍和配置请分别参见“三层技术-IP业务配置指导”中的“GRE”和“ADVPN”。

本文只介绍IPv4 over IPv4隧道,如无特殊说明,下文中的隧道技术均指此类隧道。

1.1.1  IPv4 over IPv4 隧道

1. IPv4 over IPv4隧道简介

IPv4 over IPv4隧道(RFC 1853)是对IPv4报文进行封装,使得一个IPv4网络的报文能够在另一个IPv4网络中传输。例如,运行IPv4协议的两个子网位于不同的区域,并且这两个子网都使用私网地址时,可以通过建立IPv4 over IPv4隧道,实现两个子网的互联。

2. 报文封装及解封装

图1-1 IPv4 over IPv4隧道原理图

 

报文在隧道中传输经过封装与解封装两个过程,以图1-1为例说明这两个过程:

·     封装过程

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协议栈进行二次路由处理。

1.1.2  协议规范

与隧道技术相关的协议规范有:

·     RFC 1853:IP in IP Tunneling

·     RFC 4214:Intra-Site Automatic Tunnel Addressing Protocol (ISATAP)

·     RFC 6333:Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion

1.2  隧道配置任务简介

表1-1 隧道配置任务简介

配置任务

说明

详细配置

配置Tunnel接口

必选

1.3 

配置IPv4 over IPv4隧道

必选

1.4 

 

1.3  配置Tunnel接口

隧道两端的设备上,需要创建虚拟的三层接口,即Tunnel接口,以便隧道两端的设备利用Tunnel接口发送报文、识别并处理来自隧道的报文。

表1-2 配置Tunnel接口

操作

命令

说明

进入系统视图

system-view

-

创建Tunnel接口,指定隧道模式,并进入Tunnel接口视图

interface tunnel number mode { advpn { gre | udp } | gre | ipv4-ipv4 }

缺省情况下,不存在Tunnel接口

创建Tunnel接口时,必须指定隧道的模式;进入已经创建的Tunnel接口视图时,可以不指定隧道模式

在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败

(可选)配置接口描述信息

description text

缺省情况下,接口描述信息为“该接口的接口名 Interface”

配置Tunnel接口的MTU值

mtu size

缺省情况下,隧道接口的状态始终为Down时,缺省值为64000;隧道接口的状态当前为Up时,隧道的MTU值为根据隧道目的地址查找路由而得到的出接口的MTU值减隧道封装报文头长度。

配置Tunnel接口的期望带宽

bandwidth bandwidth-value

缺省情况下,接口的期望带宽=接口的最大速率÷1000(kbit/s)

接口的期望带宽会影响链路开销值。具体介绍请参见“三层技术-IP路由配置指导”中的“OSPF”、和“IS-IS”

设置封装后隧道报文的ToS

tunnel tos tos-value

缺省情况下,封装后隧道报文的ToS值与封装前原始IP报文的ToS值相同

设置封装后隧道报文的TTL值

tunnel ttl ttl-value

缺省情况下,封装后隧道报文的TTL值为255

(可选)恢复当前接口的缺省配置

default

-

(可选)关闭Tunnel接口

shutdown

Tunnel接口不处于Administratively DOWN状态

 

1.4  配置IPv4 over IPv4隧道

1.4.1  配置步骤

配置IPv4 over IPv4隧道时,需要注意:

·     在本端设备上为隧道指定的目的端地址,应该与在对端设备上为隧道指定的源端地址相同;在本端设备上为隧道指定的源端地址,应该与在对端设备上为隧道指定的目的端地址相同。

·     在同一台设备上,隧道模式相同的Tunnel接口建议不要同时配置完全相同的源端地址和目的端地址。

·     本端隧道接口的IPv4地址与隧道的目的端地址不能在同一个网段内。

·     如果封装前IPv4报文的目的IPv4地址与Tunnel接口的IPv4地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv4地址的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,指定到达目的IPv4地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址。用户也可以配置动态路由,在Tunnel接口使能动态路由协议。在隧道的两端都要进行转发路由的配置,配置的详细情况请参见“三层技术-IP路由配置指导”中的“静态路由”或其他路由协议配置。

·     配置经过隧道接口的路由时,路由的目的地址不能与该隧道的目的端地址在同一个网段内。

表1-3 配置IPv4 over IPv4隧道

操作

命令

说明

进入系统视图

system-view

-

进入模式为IPv4 over IPv4隧道的Tunnel接口视图

interface tunnel number [ mode ipv4-ipv4 ]

-

设置Tunnel接口的IPv4地址

ip address ip-address { mask | mask-length } [ sub ]

缺省情况下,Tunnel接口上不存在IPv4地址

设置隧道的源端地址或源接口

source { ipv4-address | interface-type interface-number }

缺省情况下,未设置隧道的源端地址和源接口

如果设置的是隧道的源端地址,则该地址将作为封装后隧道报文的源IP地址;如果设置的是隧道的源接口,则该接口的主IP地址将作为封装后隧道报文的源IP地址

设置隧道的目的端地址

destination ipv4-address

缺省情况下,未设置隧道的目的端地址

隧道的目的端地址是对端接收报文的接口的地址,该地址将作为封装后隧道报文的目的地址

(可选)设置封装后隧道报文的DF(Don’t Fragment,不分片)标志

tunnel dfbit enable

缺省情况下,未设置隧道报文的不分片标志,即转发隧道报文时允许分片

 

1.4.2  配置举例

1. 组网需求

运行IP协议的两个子网Group 1和Group 2位于不同的区域,这两个子网都使用私网地址。通过在路由器Router A和路由器Router B之间建立IPv4 over IPv4隧道,实现两个子网的互联。

2. 组网图

图1-2 IPv4 over IPv4隧道组网图

 

 

3. 配置步骤

说明

在开始下面的配置之前,请确保Router A和Router B之间IPv4报文路由可达。

 

(1)     配置Router A

# 配置接口GigabitEthernet0/1的地址。

<RouterA> system-view

[RouterA] interface gigabitethernet 0/1

[RouterA-GigabitEthernet0/1] ip address 10.1.1.1 255.255.255.0

[RouterA-GigabitEthernet0/1] quit

# 配置接口GigabitEthernet0/2(隧道的实际物理接口)的地址。

[RouterA] interface gigabitethernet 0/2

[RouterA-GigabitEthernet0/2] ip address 2.1.1.1 255.255.255.0

[RouterA-GigabitEthernet0/2] quit

# 创建模式为IPv4 over IPv4隧道的接口Tunnel1。

[RouterA] interface tunnel 1 mode ipv4-ipv4

# 配置Tunnel1接口的IP地址。

[RouterA-Tunnel1] ip address 10.1.2.1 255.255.255.0

# 配置Tunnel1接口的源端地址(GigabitEthernet0/2的IP地址)。

[RouterA-Tunnel1] source 2.1.1.1

# 配置Tunnel1接口的目的端地址(RouterB的GigabitEthernet0/2的IP地址)。

[RouterA-Tunnel1] destination 3.1.1.1

[RouterA-Tunnel1] quit

# 配置从Router A经过Tunnel1接口到Group 2的静态路由。

[RouterA] ip route-static 10.1.3.0 255.255.255.0 tunnel 1

(2)     配置Router B

# 配置接口GigabitEthernet0/1的地址。

<RouterB> system-view

[RouterB] interface gigabitethernet 0/1

[RouterB-GigabitEthernet0/1] ip address 10.1.3.1 255.255.255.0

[RouterB-GigabitEthernet0/1] quit

# 配置接口GigabitEthernet0/2(隧道的实际物理接口)的地址。

[RouterB] interface gigabitethernet 0/2

[RouterB-GigabitEthernet0/2] ip address 3.1.1.1 255.255.255.0

[RouterB-GigabitEthernet0/2] quit

# 创建模式为IPv4 over IPv4隧道的接口Tunnel2。

[RouterB] interface tunnel 2 mode ipv4-ipv4

# 配置Tunnel2接口的IP地址。

[RouterB-Tunnel2] ip address 10.1.2.2 255.255.255.0

# 配置Tunnel2接口的源端地址(GigabitEthernet0/2的IP地址)。

[RouterB-Tunnel2] source 3.1.1.1

# 配置Tunnel2接口的目的端地址(Router A的GigabitEthernet0/2的IP地址)。

[RouterB-Tunnel2] destination 2.1.1.1

[RouterB-Tunnel2] quit

# 配置从Router B经过Tunnel2接口到Group 1的静态路由。

[RouterB] ip route-static 10.1.1.0 255.255.255.0 tunnel 2

4. 验证配置

# 完成上述配置后,在Router A和Router B上分别执行display interface tunnel命令,可以看出Tunnel接口处于up状态。(具体显示信息略)

# 从Router A和Router B上可以Ping通对端的GigabitEthernet0/1接口的IPv4地址。下面仅以Router A为例。

[RouterA] 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

1.5  隧道显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示隧道配置后的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除Tunnel接口的统计信息。

表1-4 隧道显示和维护

操作

命令

显示Tunnel接口的相关信息

display interface [ tunnel [ number ] ] [ brief [ description | down ] ]

清除Tunnel接口的统计信息

reset counters interface [ tunnel [ number ] ]

 

1.6  常见错误配置举例

1.6.1  故障现象

在Tunnel接口上配置了相关的参数后(例如隧道的源端地址、目的端地址和隧道模式),Tunnel接口仍未处于up状态。

1.6.2  故障分析

Tunnel接口未处于up状态的原因可能是隧道起点的物理接口没有处于up状态,或隧道的目的端地址不可达。

1.6.3  处理过程

(1)     使用display interface命令查看隧道起点的物理接口状态为up还是down。如果物理接口状态是down的,请检查网络连接。

(2)     使用display ip routing-table命令查看是否目的端地址通过路由可达。如果路由表中没有保证隧道通讯的路由表项,请配置相关路由。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!