呵呵,为了能把Nagios的check_udp搞清楚,刚刚又google并测试了一下,得到一下的结果: 还是以DNS为例,这个大家都相对熟悉一点: 1)检测www.nagios.com的A记录地址,得到其IP为 66.118.156.50。 [root@www libexec]# host -t a www.nagios.com www.nagios.com has address 66.118.156.50 2)我们假想我们send ‘www.nagios.com’,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 www.nagios.com -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 www.nagios.com -e 66.118.156.50 -v Using service UDP Port: 53 flags: 0x2 Send string: www.nagios.com 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)于是我们得知,我们发送'www.nagios.com‘,server一定会返回’ww‘这两个字符。如果我们把expect修改为'ww',则check_udp一定会返回OK。 [root@www libexec]# ./check_udp 211.94.69.34 -p 53 -s www.nagios.com -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不存在的wwwwwww.nagios.com ,系统也会返回OK。 因此,系统最开始的ww,应该是我们发送请求的最前两个字符。 [root@www libexec]# ./check_udp 211.94.69.34 -p 53 -s wwwwwww.nagios.com -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)并根据这些做进一步的监控。 |
check_udp 使用摘抄
精选 转载
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
UDP协议详解
UDP协议详解
UDP 端口号 数据 -
MySQL - check使用
在使用MySQL时,不经意用到了check来约束,结果发件加不加check没区别,所以就查找了下资料,发现MySQL目前不被支持,这触发器有且只能有一个 CRE
mysql check enum 触发器 MySQL