File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / dhcping / dhcping.8
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 22:27:53 2012 UTC (12 years, 2 months ago) by misho
Branches: dhcping, MAIN
CVS tags: v1_2, HEAD
dhcping

.rn '' }`
''' $RCSfile: dhcping.8,v $$Revision: 1.1.1.1 $$Date: 2012/02/21 22:27:53 $
'''
''' $Log: dhcping.8,v $
''' Revision 1.1.1.1  2012/02/21 22:27:53  misho
''' dhcping
'''
'''
.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 "Januari 27, 2002" "Januari 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\-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 seperated 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 <your monitoring host FQDN> {
\&     hardware ethernet <your monitor host mac address>;
\&     fixed-address     <your monitoring host IP 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 dhcpd.\fIconf\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 authori-
tative 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"
\fIdhcpd\fR\|(8), \fIdhclient\fR\|(8), dhcpd.\fIconf\fR\|(5), \fIdhcpdump\fR\|(8)

.rn }` ''
.IX Title "dhcping 8"
.IX Name "B<dhcping> - 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"


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>