Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

Teredo server check

Rating
0 votes
Favoured:
0
Current Version
0.1
Last Release Date
2011-06-08
Compatible With
  • Nagios 3.x
License
GPL
Hits
91035
Files:
FileDescription
check_teredo_server.tar.bz2check_teredo_server.tar.bz2
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
This is a nagios plugin for teredo server monitoring.
This is a nagios plugin for teredo server monitoring.

License: GPLv2


Installation
=============

Source code includes simple make file to compile it. It should compile
on most linux distributions:
# make

Plugin binary is called 'check_teredo_server' you should manually copy
it to your nagios plugins directory.



How does it work?
==================

To check teredo server this plugin acts as a new teredo client. It sends
IPv6 Router Solicitation message encapsulated in UDP with additional teredo
authentication header to the server and waits for reply with Router
Advertisement message. Server sends IPv6 Router Advertisement encapsulated
in UDP and with teredo authentication and teredo origin headers.

Teredo server is considered working properly if plugin receives a valid
response (with matching nonce value in authentication header and valid
Router Advertisement message) within 10 seconds. Socket timeout value
can be changed via -t argument.

The RS packets sent from plugin sets ConeBit=0 to increase the possibility
to get a reply. Plugin does not include full teredo qualification procedure
(does not try with ConeBit=1 first). For more details look at RFC 4380.

This plugin DOES NOT test teredo server relaying capabilities by sending bubbles or ICMPv6 echo packets.


Usage
======

Command line arguments:
-H, --hostname=ADDRESS IPv4 address or domain name of teredo server
-p, --port=INTEGER Teredo server port (default: 3544)
-t, --timeout=INTEGER Seconds to wait for reply (default: 10)
-w, --warning=DOUBLE Response time to result in warning status (seconds)
-c, --critical=DOUBLE Response time to result in critical status (seconds)


Example of testing plugin from command line:
./check_teredo_server -H teredo.litnet.lt -t 5 -w 0.01 -c 0.1
./check_teredo_server -H teredo.ipv6.microsoft.com -t 5 -w 0.1 -c 0.5

Example of test results:
TEREDO_SERVER OK - Origin: xxx.xxx.xxx.xxx:pppp, Prefix: 2001:0:c1db:3d39::/64|time=0.000289s

Origin - shows your external IP and port as seen by teredo server
Prefix - shows what prefix teredo server advertises (It is derived from
teredo server IPv4 address).
time - shows delay between request and response (RTT to the teredo server).


Example for plugin definition in commands.cfg:
# 'check_teredo_server' command definition
define command{
command_name check_teredo_server
command_line $USER1$/check_teredo_server -H $ARG1$ -w 0.01 -c 0.1
}


Example of service description in some_host.cfg:
define service{
use generic-service
host_name some_host
service_description TEREDO_SERVER1
check_command check_teredo_server!193.219.61.57
}

define service{
use generic-service
host_name some_host
service_description TEREDO_SERVER2
check_command check_teredo_server!193.219.61.58
}

NOTE: Teredo servers usually use two consecutive IP addresses that should be
checked. If you do not have them registered as separate hosts you can pass
IP address as a command argument.
If you are monitoring both IP addresses as separate hosts you can use
$HOSTADDRESS$ macro in command description.



TODO
=====

*) Add teredo authentication support.
*) Add ConeBit=1 test
*) Add teredo server relaying capabilities test.


Report bugs to julius.kriukas@ktu.lt.