为了能把Nagios的check_udp搞清楚,刚刚又google并测试了一下,得到一下的结果:
还是以DNS为例,这个大家都相对熟悉一点:
1)检测的A记录地址,得到其IP为 66.118.156.50。
[root@www libexec]# host -t a
has address 66.118.156.50
2)我们假想我们send ‘’,server会response ‘66.118.156.50’。结果如下:
Unexpected response from host/socket。就是说,response并不符合我们期望值‘66.118.156.50’.
[root@www libexec]# ./check_udp 211.94.69.34 -p 53 -s -e 66.118.156.50
UDP WARNING - Unexpected response from host/socket: ww駖time=0.000656s;0.000000;0.000000;0.000000;10.000000
3)我们用 -v参数,看看详细的输出。
我们发现,其输出中有'ww'这两个字符。(在两个raw recv之间)。
[root@www libexec]# ./check_udp 211.94.69.34 -p 53 -s -e 66.118.156.50 -v
Using service UDP
Port: 53
flags: 0x2
Send string:
server_expect_count: 1
0: 66.118.156.50
received 12 bytes from host
#-raw-recv-------#
ww?
#-raw-recv-------#
looking for [66.118.156.50] anywhere in [ww馷
UDP WARNING - Unexpected response from host/socket: ww駖time=0.000641s;0.000000;0.000000;0.000000;10.000000
4)于是我们得知,我们发送'‘,server一定会返回’ww‘这两个字符。如果我们把expect修改为'ww',则check_udp一定会返回OK。
[root@www libexec]# ./check_udp 211.94.69.34 -p 53 -s -e ww
UDP OK - 0.001 second response time on port 53 [ww馷|time=0.001009s;0.000000;0.000000;0.000000;10.000000
[root@www libexec]#
5)问题是,我们不知道这样的情况下,dns是否正确解析改域名的IP了。
只能知道,DNS Server可以连接,并给我们回应了,如下:
我们check不存在的wwww ,系统也会返回OK。
因此,系统最开始的ww,应该是我们发送请求的最前两个字符。
[root@www libexec]# ./check_udp 211.94.69.34 -p 53 -s wwww -e ww
UDP OK - 0.001 second response time on port 53 [ww馷|time=0.000664s;0.000000;0.000000;0.000000;10.000000
6)结论:
如果我们只是测试DNS是否可以正常连接并可以给请求回应。那么我们以上的参数就可以达到目的;
如果我们要判断改域名是否可以正常解析,那就要进一步解析server response回来的内容。这一点通过tcpdump这类的抓包工具,应该可以做更进一步的研究。
因此楼主所有的监控vpn的端口,可以从以下方面入手:
1)用tcpdump抓一下openvpn客户端与server连接的session;
2)分析一下,搞清楚client send和server response内容;
3)并根据这些做进一步的监控。
阅读(2346) | 评论(0) | 转发(0) |