ping回显time out,远程访问故障问题处理过程

   有同事反馈用公司的192.168.192.0/19的网段的ip通过vpn无法访问北京的虚拟机172.16.1.46,但访问另一个虚拟机172.16.1.143是可以的,问如何排查定位?

   自己ping了一下,并pathping跟踪经过的节点。如下图:

  

 ping出现time out的可能性原因:

1、目的设备防火墙拦截的ping的request消息,导致高层无法收到,所以不回ping的reply消息。

 2、跨网段环境中存在ip冲突或一设备多网卡,接在同一交换机下,回答了访问的arp请求,把错误的mac给了源主机,导致网关把ping的request消息发给其他mac地址。

3、也与目的主机的路由相关,没有回程路由,如同网段可能掩码错误,没有配置网关的话。

4、回程路由指向其他ip地址,导致源ip没有收到ping的reply消息。

5、ping消息的入接口和回程出接口不是设备的同一接口,设备开启方向路由检测导致的不回包。
6、环境中传输有问题,误码过高或者带宽被占用,导致节点压包,丢包。

 

   Ping的结果是time out,跟踪发现经过节点4后,就没有回包了,感觉应该是对方服务器的回程路由或者防火墙问题,因为这个172.16.1.46这个设备在北京的访问是正常的,而且节点也没有icmp的主叫不可达之类的消息过来。

  同事登录服务器,检查路由如下:

看到,包是从em1的172.16.1.0进来的,而路由表里有一个与之匹配掩码长的路由是192.168.0.0/16,走em2,判断一般linux系统,开启反向路由检测功能,就是收到包后检查回程路由的出口是否和入口是同一个接口,不是的话,就舍弃。这个time out应该是这样。

考虑到原来做的路由不知道作用是啥,于是决定加一条回程路由指向172.16.1.1,于是添加192.168.192.0/19的回程路由,指向172.16.1.1,走em1接口。

 如何添加一个掩码为19位的路由,比192.168.0.0/16优先,结果ping正常。

总结:

  1. ping回显time out不外乎3种情况,一是ping的request消息没有到达目的主机发到其他地方去了,二是目的目的主机防火墙拦截ping request消息,导致应用层没有收到。三是没有回程路由,或者回程路由指向其他地方,包回到其他地方去了,或者回程路由和入口路由不在同一接口,系统丢弃了该包。
  2. 路由查询次序是掩码长的优选匹配。
  3. 反向路由检测功能,如果2个网卡在一个Lan里面,那么服务器可能从eth0或者eth1发现网关, 如果一个包从eth0进入了, 而网关在eth1上, 那么从eth1是出不去的, 就不通了.  反向路由检查要求从哪里来的才能回哪去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值