.rn '' }` .\" $RCSfile$$Revision$$Date$ .\" .\" $Log$ .\" .de Sh .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp .if t .sp .5v .if n .sp .. .de Ip .br .ie \\n(.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. .de Vb .ft CW .nf .ne \\$1 .. .de Ve .ft R .fi .. .\" .\" .\" Set up \*(-- to give an unbreakable dash; .\" string Tr holds user defined translation string. .\" Bell System Logo is used as a dummy character. .\" .tr \(*W-|\(bv\*(Tr .ie n \{\ .ds -- \(*W- .ds PI pi .if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch .if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch .ds L" "" .ds R" "" .\" \*(M", \*(S", \*(N" and \*(T" are the equivalent of .\" \*(L" and \*(R", except that they are used on ".xx" lines, .\" such as .IP and .SH, which do another additional levels of .\" double-quote interpretation .ds M" """ .ds S" """ .ds N" """"" .ds T" """"" .ds L' ' .ds R' ' .ds M' ' .ds S' ' .ds N' ' .ds T' ' 'br\} .el\{\ .ds -- \(em\| .tr \*(Tr .ds L" `` .ds R" '' .ds M" `` .ds S" '' .ds N" `` .ds T" '' .ds L' ` .ds R' ' .ds M' ` .ds S' ' .ds N' ` .ds T' ' .ds PI \(*p 'br\} .\" If the F register is turned on, we'll generate .\" index entries out stderr for the following things: .\" TH Title .\" SH Header .\" Sh Subsection .\" Ip Item .\" X<> Xref (embedded .\" Of course, you have to process the output yourself .\" in some meaninful fashion. .if \nF \{ .de IX .tm Index:\\$1\t\\n%\t"\\$2" .. .nr % 0 .rr F .\} .TH dhcping 8 "January 27, 2002" "January 27, 2002" "General Commands Manual" .UC .if n .hy 0 .if n .na .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .de CQ \" put $1 in typewriter font .ft CW 'if n "\c 'if t \\&\\$1\c 'if n \\&\\$1\c 'if n \&" \\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 '.ft R .. .\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 . \" AM - accent mark definitions .bd B 3 . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds ? ? . ds ! ! . ds / . ds q .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' . ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' . ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] .ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' .ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' .ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E .ds oe o\h'-(\w'o'u*4/10)'e .ds Oe O\h'-(\w'O'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds v \h'-1'\o'\(aa\(ga' . ds _ \h'-1'^ . ds . \h'-1'. . ds 3 3 . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE . ds oe oe . ds Oe OE .\} .rm #[ #] #H #V #F C .SH "NAME" \fBdhcping\fR \- send a DHCP request to DHCP server to see if it's up and running .SH "SYNOPSIS" \fBdhcping\fR [\fB\-v\fR] [\fB\-q\fR] [\fB\-i\fR] [\fB\-r\fR] \fB\-t\fR \fImaxwait\fR \fB\-c\fR \fIclient-IP\-address\fR \fB\-s\fR \fIserver-IP\-address\fR \fB\-h\fR \fIclient-hardware-address\fR [\fB\-g\fR \fIgateway-IP\-address\fR] .SH "DESCRIPTION" This command allows the system administrator to check if a remote DHCP server is still functioning. .PP Options are: .Ip "\fB\-v\fR" 5 Verbose, print some information. .Ip "\fB\-V\fR" 5 Very verbose, print a lot of information. .Ip "\fB\-i\fR" 5 Use \s-1DHCPINFORM\s0 packets. .Ip "\fB\-r\fR" 5 Use \s-1DHCPREQUEST\s0 packets (default behaviour). .Ip "\fB\-q\fR" 5 Quiet, print nothing on the screen. .Ip "\fB\-t\fR \fImaxwait\fR" 5 Maximum time to wait for an answer from the server in seconds. Default is 3 seconds. .Ip "\fB\-c\fR \fIclient-\s-1IP\s0\-address\fR" 5 Request this \s-1IP\s0 address. Note that this is also the \s-1IP\s0 address the answer will be sent to. .Ip "\fB\-s\fR \fIserver-\s-1IP\s0\-address\fR" 5 Send the \s-1DHCP\s0 packet to this \s-1IP\s0 address. .Ip "\fB\-h\fR \fIclient-hardware-address\fR" 5 Use this hardware-address in the \s-1DHCP\s0 request. It can be up to sixteen octets separated by colons (i.e. 01:02:03:04) .Ip "\fB\-g\fR \fIgateway-\s-1IP\s0\-address\fR" 5 Use this \s-1IP\s0 address for the gateway \s-1IP\s0 address in the \s-1DHCP\s0 packet. This option is currently broken. .SH "RETURN VALUES" If everything goes okay, it returns 0. If there went something wrong, it returns 1. .SH "SETUP" This program should be installed setuid root or ran by root only. See SECURITY for more information. .PP On your DHCP server, add these lines to the dhcpd.conf: .PP .Vb 4 \& host { \& hardware ethernet ; \& fixed-address ; \& } .Ve Then try it: .PP $ dhcping \-c \fIyour monitoring host IP address\fR \e \-s \fIyour DHCP server IP address\fR \e \-h \fIyour monitor host mac address\fR .PP It will either respond with \*(L"no answer\*(R" or \*(L"Got answer from: \fIyour DHCP server IP address\fR\*(R" .PP The DHCP server logfile will give: DHCPREQUEST\ for\ 192.168.1.1\ from\ 00:20:18:56:29:8f\ via\ ed0 DHCPACK\ on\ 192.168.1.1\ to\ 00:20:18:56:29:8f\ via\ ed0 DHCPRELEASE\ of\ 192.168.1.1\ from\ 00:20:18:56:29:8f\ via\ ed0\ (found) .PP Running in DHCPINFORM mode with \fB\-i\fR: .PP If you see \*(L"DHCPINFORM from 192.168.1.1 via xl0: not authoritative for subnet 192.168.1.0\*(R", you should add the authoritative statement to the subnet, See \fBdhcpd.conf\fR\|(5) for details. .PP When running in very verbose mode, \fBdhcping\fR tries to dump all data of the send and received DHCP packets. It will first dump the packet in hex-format, then decodes the header and finally the options. .SH "HOW IT WORKS" The client either sends a DHCPREQUEST or DHCPINFORM packet to the server and waits for an answer. Then, if a DHCPREQUEST was send, it will send a DHCPRELEASE back to the server. .SH "SECURITY" This program is installed setuid root as it requires the privileges to bind itself to port 68 (bootpc). Root privileges are dropped as soon as the program has bound itself to that port. .SH "BUGS" Currently (this may, or may not, change in the future) the ISC DHCP daemon does not write leases with a fixed IP address in the dhcpd.leases file. .PP DHCPINFORM packets can only be used on subnets the server is authoritative for. If the monitoring script runs on a subnet the server isn't authoritative for, it should use the DHCPREQUEST packets. I also experienced some problems with ISC DHCPD v2 servers, but that is also in the README of it. .PP The \fB\-V\fR option is still working, but shouldn't be used for debugging of the packets. Better use \fIdhcpdump\fR\|(8) for that, which is available on my website. I wanted to remove it, but decided only to do it from the documentation, not from the code. Maybe I'll need it one day for debugging. .SH "AUTHOR" Edwin Groothuis, edwin@mavetju.org (http://www.mavetju.org) .SH "SEE ALSO" \fBdhcpd\fR\|(8), \fBdhclient\fR\|(8), \fBdhcpd.conf\fR\|(5), \fBdhcpdump\fR\|(8) .rn }` '' .IX Title "dhcping 8" .IX Name "B - send a DHCP request to DHCP server to see if it's up and running" .IX Header "NAME" .IX Header "SYNOPSIS" .IX Header "DESCRIPTION" .IX Item "\fB\-v\fR" .IX Item "\fB\-i\fR" .IX Item "\fB\-r\fR" .IX Item "\fB\-q\fR" .IX Item "\fB\-t\fR \fImaxwait\fR" .IX Item "\fB\-c\fR \fIclient-\s-1IP\s0\-address\fR" .IX Item "\fB\-s\fR \fIserver-\s-1IP\s0\-address\fR" .IX Item "\fB\-h\fR \fIclient-hardware-address\fR" .IX Item "\fB\-g\fR \fIgateway-\s-1IP\s0\-address\fR" .IX Header "RETURN VALUES" .IX Header "SETUP" .IX Header "HOW IT WORKS" .IX Header "SECURITY" .IX Header "BUGS" .IX Header "AUTHOR" .IX Header "SEE ALSO"