对端GRE地址ping不通

一、故障现象

发现本端路由器R1 ping对端R2路由器的GRE接口地址不通。

二、组网拓扑

拓扑描述:
R1和R2通过运营商环境建立GRE隧道

三、可能原因

1.GRE接口配置错误导致GRE不通
2.前往GRE终点地址的路由缺失导致GRE不通
3.接口ACL过滤导致GRE不通
4.中间环境存在过滤导致GRE不通
5.中间环境存在NAT导致GRE不通

四、排查步骤

步骤一:确认是否存在ping对端GRE地址不通的情况

通过show ip interface brief命令确认本端GRE地址,推算出对端GRE地址后ping该地址,确认是否缺失存在不通的情况。

步骤二:检查是否GRE接口配置错误导致GRE不通

GRE接口的配置包含①创建GRE接口;②设置GRE起源地址;③设置GRE终点地址;④设置GRE接口地址。可以在两端路由器上通过【show run interface tunnel x //x表示GRE组的编号】,对比两端GRE接口配置是否正确——
R1#show run interface tunnel 0 //查看R1的tunnel0接口配置 interface Tunnel 0 //创建GRE接口,每个GRE一个编号,不用和对端设备相同 tunnel source 172.26.5.172 //设置GRE起源地址,需要和对端设备的GRE终点地址相同,且设备上须实际存在该接口IP,且接口状态双up tunnel destination 172.26.129.183 //设置GRE终点地址,需要和对端设备的GRE起源地址相同 ip address 12.12.12.1 255.255.255.252 //设置GRE地址,需要两边同网段
R2#show run interface tunnel 0 //查看R2的tunnel0接口配置 interface Tunnel 0 //创建GRE接口,每个GRE一个编号,不用和对端设备相同 tunnel source 172.26.129.183 //设置GRE起源地址,需要和对端设备的GRE终点地址相同,且设备上须实际存在该接口IP,且接口状态双up tunnel destination 172.26.5.172 //设置GRE终点地址,需要和对端设备的GRE起源地址相同 ip address 12.12.12.2 255.255.255.252 //设置GRE地址,需要两边同网段
若发现存在接口配置异常,可按上方配置模板中的中文说明来修正配置。

步骤三:检查前往GRE终点的路由是否缺失导致GRE不通

如本例中,R1的GRE终点地址是172.26.129.183,可以通过【show ip route 172.26.129.183】查看是否有前往该地址的路由,且显示的下一跳地址是否是对应运营商网关。若是提示“% Network not in table”,需通过【show ip route】确认是否有默认路由可以前往目标(也需要注意显示的下一跳地址是否是对应运营商网关)。
若是缺少去往目标的路由,可以添加对应目标的静态路由或默认路由;若是静态路由或者默认路由的下一跳地址不正确,则删除错误静态/默认路由后重新配置。另外若有做相应路由的配置,但是show ip route没有显示,则需检查通过命令show ip interface brief检查接口是否正常up。若非up,需要检查链路问题。

步骤四:检查是否接口ACL过滤导致GRE不通

通过【show run interface x //x是接口名称】检查前往GRE终点地址的接口上是否配置ACL过滤,若是有ACL过滤,需通过【show access-list x //x是ACL名称】查看是否有过滤了GRE协议、是否过滤了GRE起源地址或终点地址的流量
假如有过滤需放行对应GRE的流量(如permit gre any any)

步骤五:检查是否中间环境存在过滤导致GRE不通

在本端ping对端GRE接口IP,如本例中,在R1上ping 12.12.12.2,然后在本端和对端设备上输入【show ip f f f 47 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0】来查看流表(注意要提前在任意接口下配置个ip nat inside以开启流表功能),确认IP 47协议号的GRE报文的收发情况是否正常——
1.若本端RecvBytes为0,代表没收到对端回包,需检查对端收包回包情况;
2.若对端无流表显示,代表对端没收到本端发送的GRE报文,需检查中间运营商环境;
3.若对端RecvBytes为0,代表对端未做GRE回包,需检查对端路由问题;
4.若对端RecvBytes非0,但是本端RecvBytes为0,需检查对端回包给tunnel source的路由是否不固定,需固定走正确出口回包。若正确,则需检查中间运营商环境。

步骤六:检查是否中间环境存在NAT导致GRE不通

在本端ping对端GRE接口IP,如本例中,在R1上ping 12.12.12.2,然后在本端和对端设备上输入【show ip f f f 47 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0】来查看流表(注意要提前在任意接口下配置个ip nat inside以开启流表功能),确认IP 47协议号的GRE报文的源目的地址是否和接口配置【show run interface tunnel x //x表示GRE组的编号】的tunnel source和tunnel destination一致。若不一致,则说明中间运营商环境做了NAT。下图为正常的示例——
GRE环境中间不可经过NAT环境,需更换解决中间运营商问题。

五、信息收集

信息收集命令参考——
  ter len 0
  show ver
  show slot
  show ver slot
  show run
  show log
  show cpu
  show memory
  show ip fpm count
  show ip fpm st
  show ip route
  show ip ref route
  show ip ref adj
  show ip route summary
  show arp
  show ip int brief
  show interface
  show ip f f f 47 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0
  ter no len

六、总结与建议

  对端GRE地址ping不通,需注意以下几点:

    1.GRE接口配置错误导致GRE不通
    2.前往GRE终点地址的路由缺失导致GRE不通
    3.接口ACL过滤导致GRE不通
    4.中间环境存在过滤导致GRE不通
    5.中间环境存在NAT导致GRE不通
上一篇 核心交换机的稳定性是如何保障的?
下一篇 华为CE交换机-配置通过VLAN hand-off实现DCI互联示例