一、问题背景
pinpointServer: 192.168.1.110
环境应用节点,分布在两个网段:192.168.1.x 192.168.2.x
环境中应用节点的pinpoint agent通过向服务端 9999/tcp 上报节点信息,通过 向服务端 9995/udp 9996/udp 上报其他监控数据。
192.168.1.x 网段的应用节点,pinpoint节点、监控数据上报正常;
192.168.2.x 网段应用节点,pinpoint节点数据上报正常,但是没有监控数据的上报。
192.168.2.x 网段应用节点任选一些微服务,查看pinpointAgent 启动日志,都没有报错。
初步判断是 192.168.2.x 网段的 pinpoint agent 跟pinpoint server udp 端口通讯有问题。
二、测试验证
pinpointServer 192.168.1.110
任选一个pinpointAgent 192.168.2.11
在192.168.1.110 上
# tcpdump -i eth0 -nn -vv -X udp port 9995 and src host 192.168
# tcpdump -i eth0 -nn -vv -X udp port 9995 and src host 192.168.2.11
![](https://img.haomeiwen.com/i12979420/357407adec72db75.png)
同时,在192.168.2.11上
$ sudo yum -y install nc
$ echo "Hello World\!" | nc -4u 192.168.1.110 9995
$ echo "Hello World\!" | nc -4u 192.168.1.110 9996
多次发送udp报文,并在192.168.1.110 上观察tcpdump的输出。
在192.168.1.110 上, 没有收到来自192.168.2.11 的任何upd数据报。
正常来自 192.168.1.x 网段udp数据报
# tcpdump -i eth0 -nn -vv -X udp port 9995
# tcpdump -i eth0 -nn -vv -X udp port 9995 and src host 192.168.1.115
![](https://img.haomeiwen.com/i12979420/da6ba2d6c0f4f697.png)
至此,基本可以判断是192.168.2.x 网段的 pinpoint agent 跟pinpointServer udp 端口通讯有问题。
因udp是面向无连接的,没有确认机制,对发送端而言,发送成功与否并不能直接知晓,我们没法用 telnet 或者 echo 测探,那么只能使用一方发,一方收的方式验证了。
跟网络的同事反馈,得知问题出在路由器交换机上,放开对udp限制,就ok了!
三、参考
How to check if UDP port on IP is open/avaible ?
https://www.jianshu.com/p/cdf7074be6f6
怎么使用 tcpdump 抓包分析
https://www.jianshu.com/p/fbed5f5046fe
关于 /dev/tcp/${HOST}/${PORT}
https://www.jianshu.com/p/f10736931b93
Linux上使用telnet测试目标端口连通性
https://www.jianshu.com/p/bd256a213227
网友评论