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 ? <0-0> Tunnel interface slot number
[Huawei-Tunnel0/0/2]
2、配置Tunnel接口的隧道协议为GRE
[Huawei-Tunnel0/0/2]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/0/2]tunnel-protocol gre
3、配置Tunnel的源地址或源接口
配置Tunnel的源接口时,有如下注意事项:
Tunnel的源接口不能指定为自身GRE隧道的Tunnel接口,但可以提定为其他隧道的Tunnel接口。Tunnel的源地址可以配置为VRRP备份组的虚地址。Bridge-if接口不可配置为Tunnel接口。
[Huawei-Tunnel0/0/2]source ? GigabitEthernet GigabitEthernet interface NULL NULL interface Tunnel Tunnel interface X.X.X.X IP address
[Huawei-Tunnel0/0/2]source GigabitEthernet 0/0/1
4、配置Tunnel的目的地址
[Huawei-Tunnel0/0/2]destination ? X.X.X.X IP address vpn-instance VPN Routing/Forwarding parameters on the interface [Huawei-Tunnel0/0/2]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/0/1] tunnel route-via GigabitEthernet 0/0/1 mandatory 或 [Huawei-Tunnel0/0/1] tunnel route-via GigabitEthernet 0/0/1 preferred
mandatory:严格按照指定的出接口转发流量,如果GRE隧道目的地址的路由出接口不包含指定的出接口时,隧道接口状态为Down,不进行流量转发。
preferred:严格按照指定的出接口转发流量,如果GRE隧道目的地址的路由出接口不包含指定的出接口时,则可以选择其他接口转发,隧道接口状态为Up。
6、配置Tunnel接口的MTU
如果改变Tunnel接口最大传输单元MTU,需要先对接口执行shutdown命令,再执行undo shutdown命令将接口重启,以保证设置的MTU生效。
[Huawei-Tunnel0/0/2]mtu ? <128-1500> MTU value
7、配置接口的描述信息
[Huawei-Tunnel0/0/2]description ? TEXT<"..."> Interface description (no more than 242 characters)
8、配置Tunnel接口地址
[Huawei-Tunnel0/0/2]ip address ? IP_ADDR<X.X.X.X> IP address unnumbered Share an address with another interface [Huawei-Tunnel0/0/2]ip address 10.1.1.1
9、配置Tunnel接口借用IP地址
[Huawei-Tunnel0/0/2]ip address unnumbered ? interface Specify the interface whose IP address was unnumbered [Huawei-Tunnel0/0/2]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<0-32> Length of IP address mask IP_ADDR<X.X.X.X> IP address mask [Huawei]ip route-static 10.1.1.0 24 ? 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 24 Tunnel ? <0-0> Slot number [Huawei]ip route-static 10.1.1.0 24 Tunnel 0/0/2 ? 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 2 interface serial 1/0/0 out-interface tunnel 0/0/1
12、配置GRE的安全机制
为了增强GRE隧道的安全性,可以对GRE隧道两端进行端到端校验或者设置GRE隧道的识别关键字,通过这种安全机制防止错误识别、接收其它地方来的报文。
1)使能GRE隧道的校验和功能
[Huawei-Tunnel0/0/2]gre checksum
2)配置GRE隧道的识别关键字
如果在隧道两端的Tunnel接口配置识别关键字,则必须指定相同的识别关键字;或隧道两端都不配置此命令。如果使用plain选项,识别关键字将以明文形式保存在配置文件中,存在安全隐患。建议使用cipher选项,将识别关键字加密保存。
[Huawei-Tunnel0/0/2]gre key cipher 123
13、使能GRE的Keepalive检测功能
使用Keepalive功能可以周期地发送Keepalive探测报文给对端,及时检测隧道连通性。若对端可达,则本端会收到对端的回应报文;否则,收不到对端的回应报文,关闭隧道连接。Keepalive功能是单向的,只要在隧道一端配置Keepalive,该端就具备Keepalive功能,而不要求隧道对端也具备该功能。为了使隧道两端都能检测对端是否可达,建议在隧道两端都使能Keepalive功能。
[Huawei-Tunnel0/0/2]keepalive ? period Set the keepalive period parameter <cr> Please press ENTER to execute command [Huawei-Tunnel0/0/2]keepalive period ? INTEGER<1-32767> Keepalive period (default 5 seconds) [Huawei-Tunnel0/0/2]keepalive period 10 ? retry-times Set the keepalive retry times <cr> Please press ENTER to execute command [Huawei-Tunnel0/0/2]keepalive period 10 retry-times ? INTEGER<1-255> Keepalive retry-times (default 3 times)
14、查看Tunnel通道的接口信息
<Huawei> display interface tunnel 0/0/2 Tunnel0/0/2 current state : UP Line protocol current state : UP Description:HUAWEI, AR Series, Tunnel0/0/2 Interface Route Port,The Maximum Transmit Unit is 1500 Internet protocol processing : disabled Encapsulation is TUNNEL, loopback not set Tunnel source 10.10.10.1 (GigabitEthernet0/0/1), destination 10.1.1.1 Tunnel protocol/transport GRE/IP, key disabled keepalive disabled Checksumming of packets disabled Current system time: 2012-08-09 18:53:47 300 seconds input rate 0 bits/sec, 0 packets/sec 300 seconds output rate 0 bits/sec, 0 packets/sec 15 seconds input rate 0 bits/sec, 0 packets/sec 15 seconds output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes 0 input error 0 packets output, 0 bytes 0 output error Input bandwidth utilization : 0% Output bandwidth utilization : 0%
15、查看GRE隧道接口的Keepalive报文状况
[Huawei-Tunnel0/0/1] display keepalive packets count Send 10 keepalive packets to peers, Receive 10 keepalive response packets from peers Receive 8 keepalive packets from peers, Send 8 keepalive response packets to peers.