公司总部寄来一个ros路由器,exsi上安装ros工件,接到公司网络中发现exsi管理ip无法访问,ping不通,显示time out,而ros的管理和业务ip却ping的正常,二者使用同一物理网络接口,奇怪?
ping出现time out的可能性原因:
1、防火墙拦截的ping的request消息,导致高层无法收到,所以不回ping的reply消息。
2、跨网段环境中存在ip冲突,导致网关把ping的request消息发给其他mac地址。
3、也与目的主机的路由相关,没有回程路由,如同网段可能掩码错误,没有配置网关的话。
4、回程路由指向其他ip地址,导致源ip没有收到ping的reply消息。
5、ping消息的入接口和回程出接口不是设备的同一接口等等原因造成。
6、经过节点的设备路径上存在突发大量包,超过转发端口最大速率,导致端口丢弃大量包,导致ping的request或者reply没有到达目的方。
现在,pc192.168.205.201去ping exsi的ip192.168.212.100显示time out,而ping192.168.212.30ros的lan口ip正常,奇怪为啥?
登录三层交换机上去查212网段的mac地址,有下面的显示:
mac地址正常有,看路由:
用笔记本直连ros2的lan口,设置为192.168.212.x的ip地址,去ping发现正常,奇怪?直连同网段能ping通,而跨网段的ping不通,肯定与对方的路由相关,检查路由。
在交换机上去镜像核心交换机23口的包,然后去ping,发现有如下显示,192.168.212.100对192.168.205.201的ping的request有响应的reply包。
有回包为啥192.168.205.201没有收到,检查reply 的源和目的mac地址
查看发给192.168.212.1
而ros的lan口对应的路由是
exsi的ip回包发给192.168.212.1,检查一下exsi的配置?
接显示器,看exsi的ipv4配置,如下图:
看到exsi上管理ip配置的网关写成了习惯的192.168.212.1。
原来exsi上设置错误了,网关应该是三层交换机的ip192.168.212.2,明白了,为啥exsi要发给另一个mac地址。
但即使exsi发给ros1的lan口地址,ros1上也有回程路由,也能指回来到192.168.212.2三层交换机上,为啥没回包,检查ros如下:
pingexsi的地址,在ros1上进行mangle的sniffer抓包,发现没有过来,ros1没有收到
奇怪,为啥ros1没有收到,发现212网段里有一个212.10的地址,搞不清是啥设备,查记录,
发现是串联在三层交换机和ros1间的一个防火墙,判断是防火墙拦截这个ping的request包。
修改exsi的网关为192.168.212.2后,发现ping的结果如下:
结论:
是exsi的网关设置错误和防火墙的拦截导致问题。
注意事项:ping出现time out,跨网段就是,源pc已经把request消息发给了自己的网关设备,而对方可能是自身的防火墙拦截request消息,导致协议高层没有收到;或者没有回程路由;或者是收到了,回给其他mac地址,没有原路返回导致问题的发送。