1)服务器单机改双机部署(Rose)
2)AGV使用5G模块方式通信工作
3)AGV地址:192.168.1.64;AGV的5G模块地址:172.23.60.53;服务器物理地址:172.26.1.21(主机)172.26.1.22(备机);RCS虚拟地址:172.26.1.40
单机部署情况下车上线正常,单机改成双机部署并将AGV使用ROBOX修改平台IP为172.26.1.40后在监控客户端上查看AGV显示离线。
第一步:测试网络连通性
1) CRT登录到AGV,ping RCS172.26.1.40的IP,ping测试无问题;
2) CRT登录到服务器,ping AGV5G模块172.23.60.53,ping测试无问题。
第二步:查看服务器服务运行情况和地图配置情况
检查服务器所有的服务运行正常(主要的RCS服务运行正常),ROSE切换无问题,地图配置也都正常。
第三步:查看AGV地图下载情况
1) CRT登录到AGV cd /mnt/maps_list 进入后输入ls查看无地图;
2) 下载对应时间点的AGV日志 sz AGV* ,查看AGV日志中的URL查看是否下载地图。如下,发现只有将AGV的RCS地址修改为服务器物理IP 172.26.1.21可以下载地图,如果AGV的平台IP是RCS虚拟IP 172.26.1.40 无法下载到IP地址,并且没有url的信息。
第四步:检查RCS的debug日志
发现日志里面8842的车加载没有问题
第五步:抓包查看报文交互情况
1) 抓取AGV的报文查看交互
发现抓包提示8988端口不可达,在服务器上netstat –anp|grep 8988查看端口监听无问题
2) 抓取5G模块的modem口报文查看交互
发现5G模块向172.26.1.40发起的mvd.type=1的注册包被172.26.1.21响应了
3) 抓取服务器的物理接口报文查看交互
发现和5G模块上抓包是一样的情况,所有的mvd.type=2的注册回应包都是172.26.1.21回复的
1)通过服务器上服务的检查和RCS的debug日志确定RCS服务是正常的;
2)通过AGV的抓包发现是服务器没有回复mvd.type=2的注册回应包;
3)通过5G模块和服务器的抓包发现服务器回应了mvd.type=2类型的注册回应包,但是是使用172.26.1.21回复的并不是使用AGV配置的平台RCSIP 172.26.1.40回复;
4)通过3)中判断是5G模块因为NAT机制接收到了注册包IP源目不一样于是没有转发给AGV。简单点理解这个不正常转发程就是如下图;
正常的转发流程如下图:
5)综上,需要联系RCS的研发修改回复IP,让RCS使用虚拟IP:172.26.1.40回复AGV的注册包即可解决问题(实际上就是按照rcs.xml里面的LocalIP回复车即可)。