【UDP】通过udp抓包排查网络问题

一、问题背景

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

同时,在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 上观察tupcump输出。

在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

至此,基本可以判断是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

おすすめ

転載: blog.csdn.net/michaelwoshi/article/details/121867593