GRE隧道是通过隧道两端的Tunnel接口建立的,所以需要在隧道两端的设备上分别配置Tunnel接口。对于GRE的Tunnel接口,需要指定其协议类型为GRE、源地址或源接口、目的地址和Tunnel接口IP地址。
如上图所示,以Route_1为例,详细解释Tunnel接口下所需配置。
1)Tunnel的源地址或源接口
报文传输协议中的源地址或源接口。隧道的源地址就是实际发送报文的接口IP地址,即Router_1的GE1/0/0的IP地址;隧道的源接口就是实际发送报文的接口,即Router_1的GE1/0/0。
2)Tunnel的目的端地址
报文传输协议中的目的地址。隧道的目的地址就是实际接收报文的接口IP地址,即Router_2的GE1/0/0的IP地址。
3)Tunnel接口IP地址
为了在Tunnel接口上启用动态路由协议,或使用静态路由协议发布Tunnel接口,需要为Tunnel接口分配IP地址。
Tunnel接口的IP地址可以不是公网地址,甚至可以借用其他接口的IP地址以节约IP地址。但是当Tunnel接口借用IP地址时,由于Tunnel接口本身没有IP地址,无法在此接口上启用动态路由协议,必须配置静态路由或策略路由才能实现设备间的连通性。
具体配置如下:
1、创建Tunnel接口,并进入Tunnel接口视图
[Huawei]interface Tunnel ?
<-> Tunnel interface slot number
[Huawei-Tunnel0//]
2、配置Tunnel接口的隧道协议为GRE
[Huawei-Tunnel0//]tunnel-protocol ?
gre Generic Routing Encapsulation
ipsec IPSEC Encapsulation
ipv4-ipv6 IP over IPv6 encapsulation
ipv6-ipv4 IPv6 over IP encapsulation
mpls MPLS Encapsulation
none Null Encapsulation
[Huawei-Tunnel0//]tunnel-protocol gre
3、配置Tunnel的源地址或源接口
配置Tunnel的源接口时,有如下注意事项:
Tunnel的源接口不能指定为自身GRE隧道的Tunnel接口,但可以提定为其他隧道的Tunnel接口。Tunnel的源地址可以配置为VRRP备份组的虚地址。Bridge-if接口不可配置为Tunnel接口。
[Huawei-Tunnel0//]source ?
GigabitEthernet GigabitEthernet interface
NULL NULL interface
Tunnel Tunnel interface
X.X.X.X IP address
[Huawei-Tunnel0//]source GigabitEthernet //
4、配置Tunnel的目的地址
[Huawei-Tunnel0//]destination ?
X.X.X.X IP address
vpn-instance VPN Routing/Forwarding parameters on the interface [Huawei-Tunnel0//]destination 10.1.1.2
5、提定GRE隧道的路由出接口
GRE隧道封装后的报文将查找路由转发表进行转发,如果GRE隧道的目的地址存在等价路由且存在多条目的地址相同的GRE隧道,则这些GRE隧道封装的报文将以负载分担进行转发。此时,某些GRE隧道封装后报文的实际出接口可能是另一个隧道的源IP接口。
如果该链路上下一跳配置了URPF(Unicast Reverse Path Forwarding,单手反向路径转发)检测,则以报文的源IP做为目的IP,在转发表中查找源IP对应的嫌口是否与入接口匹配,因此会发现报文源IP对应的接口与报文的入接口不一致,则认为报文非法并丢弃。
为了解决这个问题,可以配置tunnel route-via命令指定GRE隧道路由出接口,使报文严格或优先从隧道的源IP地址所在的出接口转发。
[Huawei-Tunnel0//] tunnel route-via GigabitEthernet // mandatory
或
[Huawei-Tunnel0//] tunnel route-via GigabitEthernet // preferred
mandatory:严格按照指定的出接口转发流量,如果GRE隧道目的地址的路由出接口不包含指定的出接口时,隧道接口状态为Down,不进行流量转发。
preferred:严格按照指定的出接口转发流量,如果GRE隧道目的地址的路由出接口不包含指定的出接口时,则可以选择其他接口转发,隧道接口状态为Up。
6、配置Tunnel接口的MTU
如果改变Tunnel接口最大传输单元MTU,需要先对接口执行shutdown命令,再执行undo shutdown命令将接口重启,以保证设置的MTU生效。
[Huawei-Tunnel0//]mtu ?
<-> MTU value
7、配置接口的描述信息
[Huawei-Tunnel0//]description ?
TEXT<"..."> Interface description (no more than characters)
8、配置Tunnel接口地址
[Huawei-Tunnel0//]ip address ?
IP_ADDR<X.X.X.X> IP address
unnumbered Share an address with another interface
[Huawei-Tunnel0//]ip address 10.1.1.1
9、配置Tunnel接口借用IP地址
[Huawei-Tunnel0//]ip address unnumbered ?
interface Specify the interface whose IP address was unnumbered [Huawei-Tunnel0//]ip address unnumbered interface ?
GigabitEthernet GigabitEthernet interface
Tunnel Tunnel interface
10、配置Tunnel接口的路由
在保证本端设备和远端设备在骨干网上路由互通的基础上,本端设备和远端设备上必须存在经过Tunnel接口转发的路由,这样,需要进行GRE封装的报文才能正确转发。经过Tunnel接口转发的路由可以是静态路由,也可以是动态路由。
1)配置静态路由
[Huawei]ip route-static 10.1.1.0 ?
INTEGER<-> Length of IP address mask
IP_ADDR<X.X.X.X> IP address mask [Huawei]ip route-static 10.1.1.0 ?
IP_ADDR<X.X.X.X> Gateway address
GigabitEthernet GigabitEthernet interface
NULL NULL interface
Tunnel Tunnel interface
vpn-instance Destination VPN-Instance for Gateway address [Huawei]ip route-static 10.1.1.0 Tunnel ?
<-> Slot number [Huawei]ip route-static 10.1.1.0 Tunnel // ?
IP_ADDR<X.X.X.X> Gateway address
description Add or delete description of unicast static route
ldp-sync LDP-Static route synchronization
permanent Specifies route permanent
preference Specifies route preference
tag Specifies route tag
track Specify track object
<cr> Please press ENTER to execute command
2)配置动态路由(略)
11、配置Link-bridge功能
对于FR、HDLC或PPP协议的报文,用户希望通过GRE使其能够在另一个网络层协议(如IPv4)中透传。此时,需要配置Link-bridge功能,使得Serial接口和Tunnel接口形成绑定关系,从而接口收到的报文可以直接从该接口绑定的对应接口发送出去,最终实现GRE隧道承载FR、HDLC和PPP协议的报文。
配置时,需注意:
配置后,入接口协议状态显示为down,而且入接口上的网络层配置不生效,仅做桥接功能。配置后,绑定的接口不支持QoS功能。入接口只支持Serial接口,出接口只支持Tunnel接口。
[Huawei] link-bridge interface serial // out-interface tunnel //
12、配置GRE的安全机制
为了增强GRE隧道的安全性,可以对GRE隧道两端进行端到端校验或者设置GRE隧道的识别关键字,通过这种安全机制防止错误识别、接收其它地方来的报文。
1)使能GRE隧道的校验和功能
[Huawei-Tunnel0//]gre checksum
2)配置GRE隧道的识别关键字
如果在隧道两端的Tunnel接口配置识别关键字,则必须指定相同的识别关键字;或隧道两端都不配置此命令。如果使用plain选项,识别关键字将以明文形式保存在配置文件中,存在安全隐患。建议使用cipher选项,将识别关键字加密保存。
[Huawei-Tunnel0//]gre key cipher
13、使能GRE的Keepalive检测功能
使用Keepalive功能可以周期地发送Keepalive探测报文给对端,及时检测隧道连通性。若对端可达,则本端会收到对端的回应报文;否则,收不到对端的回应报文,关闭隧道连接。Keepalive功能是单向的,只要在隧道一端配置Keepalive,该端就具备Keepalive功能,而不要求隧道对端也具备该功能。为了使隧道两端都能检测对端是否可达,建议在隧道两端都使能Keepalive功能。
[Huawei-Tunnel0//]keepalive ?
period Set the keepalive period parameter
<cr> Please press ENTER to execute command [Huawei-Tunnel0//]keepalive period ?
INTEGER<-> Keepalive period (default seconds) [Huawei-Tunnel0//]keepalive period ?
retry-times Set the keepalive retry times
<cr> Please press ENTER to execute command [Huawei-Tunnel0//]keepalive period retry-times ?
INTEGER<-> Keepalive retry-times (default times)
14、查看Tunnel通道的接口信息
<Huawei> display interface tunnel //
Tunnel0// current state : UP
Line protocol current state : UP
Description:HUAWEI, AR Series, Tunnel0// Interface
Route Port,The Maximum Transmit Unit is
Internet protocol processing : disabled
Encapsulation is TUNNEL, loopback not set
Tunnel source 10.10.10.1 (GigabitEthernet0//), destination 10.1.1.1
Tunnel protocol/transport GRE/IP, key disabled
keepalive disabled
Checksumming of packets disabled
Current system time: -- ::
seconds input rate bits/sec, packets/sec
seconds output rate bits/sec, packets/sec
seconds input rate bits/sec, packets/sec
seconds output rate bits/sec, packets/sec
packets input, bytes
input error
packets output, bytes
output error
Input bandwidth utilization : %
Output bandwidth utilization : %
15、查看GRE隧道接口的Keepalive报文状况
[Huawei-Tunnel0//] display keepalive packets count
Send keepalive packets to peers, Receive keepalive response packets from peers
Receive keepalive packets from peers, Send keepalive response packets to peers.