Annotation of embedaddon/dhcp/client/dhclient.8, revision 1.1

1.1     ! misho       1: .\"    $Id: dhclient.8,v 1.30.8.4.6.1 2011-04-15 22:26:20 sar Exp $
        !             2: .\"
        !             3: .\" Copyright (c) 2004,2007-2011 by Internet Systems Consortium, Inc. ("ISC")
        !             4: .\" Copyright (c) 1996-2003 by Internet Software Consortium
        !             5: .\"
        !             6: .\" Permission to use, copy, modify, and distribute this software for any
        !             7: .\" purpose with or without fee is hereby granted, provided that the above
        !             8: .\" copyright notice and this permission notice appear in all copies.
        !             9: .\"
        !            10: .\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
        !            11: .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            12: .\" MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
        !            13: .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            14: .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            15: .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
        !            16: .\" OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            17: .\"
        !            18: .\"   Internet Systems Consortium, Inc.
        !            19: .\"   950 Charter Street
        !            20: .\"   Redwood City, CA 94063
        !            21: .\"   <info@isc.org>
        !            22: .\"   https://www.isc.org/
        !            23: .\"
        !            24: .\" Support and other services are available for ISC products - see
        !            25: .\" https://www.isc.org for more information or to learn more about ISC.
        !            26: .\"
        !            27: .TH dhclient 8
        !            28: .SH NAME
        !            29: dhclient - Dynamic Host Configuration Protocol Client
        !            30: .SH SYNOPSIS
        !            31: .B dhclient
        !            32: [
        !            33: .B -4
        !            34: |
        !            35: .B -6
        !            36: ]
        !            37: [
        !            38: .B -S
        !            39: ]
        !            40: [
        !            41: .B -N
        !            42: [
        !            43: .B -N...
        !            44: ]
        !            45: ]
        !            46: [
        !            47: .B -T
        !            48: [
        !            49: .B -T...
        !            50: ]
        !            51: ]
        !            52: [
        !            53: .B -P
        !            54: [
        !            55: .B -P...
        !            56: ]
        !            57: ]
        !            58: [
        !            59: .B -p
        !            60: .I port
        !            61: ]
        !            62: [
        !            63: .B -d
        !            64: ]
        !            65: [
        !            66: .B -e
        !            67: .I VAR=value
        !            68: ]
        !            69: [
        !            70: .B -q
        !            71: ]
        !            72: [
        !            73: .B -1
        !            74: ]
        !            75: [
        !            76: .B -r
        !            77: |
        !            78: .B -x
        !            79: ]
        !            80: [
        !            81: .B -lf
        !            82: .I lease-file
        !            83: ]
        !            84: [
        !            85: .B -pf
        !            86: .I pid-file
        !            87: ]
        !            88: [
        !            89: .B --no-pid
        !            90: ]
        !            91: [
        !            92: .B -cf
        !            93: .I config-file
        !            94: ]
        !            95: [
        !            96: .B -sf
        !            97: .I script-file
        !            98: ]
        !            99: [
        !           100: .B -s
        !           101: .I server-addr
        !           102: ]
        !           103: [
        !           104: .B -g
        !           105: .I relay
        !           106: ]
        !           107: [
        !           108: .B -n
        !           109: ]
        !           110: [
        !           111: .B -nw
        !           112: ]
        !           113: [
        !           114: .B -w
        !           115: ]
        !           116: [
        !           117: .B -v
        !           118: ]
        !           119: [
        !           120: .B --version
        !           121: ]
        !           122: [
        !           123: .I if0
        !           124: [
        !           125: .I ...ifN
        !           126: ]
        !           127: ]
        !           128: .SH DESCRIPTION
        !           129: The Internet Systems Consortium DHCP Client, \fBdhclient\fR, provides a
        !           130: means for configuring one or more network interfaces using the Dynamic
        !           131: Host Configuration Protocol, BOOTP protocol, or if these protocols
        !           132: fail, by statically assigning an address.
        !           133: .SH OPERATION
        !           134: .PP
        !           135: The DHCP protocol allows a host to contact a central server which
        !           136: maintains a list of IP addresses which may be assigned on one or more
        !           137: subnets.   A DHCP client may request an address from this pool, and
        !           138: then use it on a temporary basis for communication on network.   The
        !           139: DHCP protocol also provides a mechanism whereby a client can learn
        !           140: important details about the network to which it is attached, such as
        !           141: the location of a default router, the location of a name server, and
        !           142: so on.
        !           143: .PP
        !           144: There are two versions of the DHCP protocol DHCPv4 and DHCPv6.  At
        !           145: startup the client may be started for one or the other via the
        !           146: .B -4
        !           147: or 
        !           148: .B -6
        !           149: options.
        !           150: .PP
        !           151: On startup, \fBdhclient\fR reads the dhclient.conf
        !           152: .IR dhclient.conf
        !           153: for configuration instructions.   It then gets a list of all the
        !           154: network interfaces that are configured in the current system.   For
        !           155: each interface, it attempts to configure the interface using the DHCP
        !           156: protocol.
        !           157: .PP
        !           158: In order to keep track of leases across system reboots and server
        !           159: restarts, \fBdhclient\fR keeps a list of leases it has been assigned in the
        !           160: dhclient.leases file.   On startup, after reading the dhclient.conf
        !           161: file, \fBdhclient\fR reads the dhclient.leases file to refresh its memory
        !           162: about what leases it has been assigned.
        !           163: .PP
        !           164: When a new lease is acquired, it is appended to the end of the
        !           165: dhclient.leases file.   In order to prevent the file from becoming
        !           166: arbitrarily large, from time to time \fBdhclient\fR creates a new
        !           167: dhclient.leases file from its in-core lease database.  The old version
        !           168: of the dhclient.leases file is retained under the name
        !           169: .IR dhclient.leases~
        !           170: until the next time \fBdhclient\fR rewrites the database.
        !           171: .PP
        !           172: Old leases are kept around in case the DHCP server is unavailable when
        !           173: \fBdhclient\fR is first invoked (generally during the initial system boot
        !           174: process).   In that event, old leases from the dhclient.leases file
        !           175: which have not yet expired are tested, and if they are determined to
        !           176: be valid, they are used until either they expire or the DHCP server
        !           177: becomes available.
        !           178: .PP
        !           179: A mobile host which may sometimes need to access a network on which no
        !           180: DHCP server exists may be preloaded with a lease for a fixed
        !           181: address on that network.   When all attempts to contact a DHCP server
        !           182: have failed, \fBdhclient\fR will try to validate the static lease, and if it
        !           183: succeeds, will use that lease until it is restarted.
        !           184: .PP
        !           185: A mobile host may also travel to some networks on which DHCP is not
        !           186: available but BOOTP is.   In that case, it may be advantageous to
        !           187: arrange with the network administrator for an entry on the BOOTP
        !           188: database, so that the host can boot quickly on that network rather
        !           189: than cycling through the list of old leases.
        !           190: .SH COMMAND LINE
        !           191: .PP
        !           192: The names of the network interfaces that \fBdhclient\fR should attempt to
        !           193: configure may be specified on the command line.  If no interface names
        !           194: are specified on the command line \fBdhclient\fR will normally identify all
        !           195: network interfaces, eliminating non-broadcast interfaces if
        !           196: possible, and attempt to configure each interface.
        !           197: .PP
        !           198: It is also possible to specify interfaces by name in the dhclient.conf
        !           199: file.   If interfaces are specified in this way, then the client will
        !           200: only configure interfaces that are either specified in the
        !           201: configuration file or on the command line, and will ignore all other
        !           202: interfaces.
        !           203: .PP
        !           204: The client normally prints no output during its startup sequence.  It
        !           205: can be made to emit verbose messages displaying the startup sequence events
        !           206: until it has acquired an address by supplying the
        !           207: .B -v
        !           208: command line argument.  In either case, the client logs messages using
        !           209: the
        !           210: .B syslog(3)
        !           211: facility.
        !           212: .SH OPTIONS
        !           213: .TP
        !           214: .BI \-4
        !           215: Use the DHCPv4 protocol to obtain an IPv4 address and configuration
        !           216: parameters.  This is the default and cannot be combined with
        !           217: \fB\-6\fR.
        !           218: .TP
        !           219: .BI \-6
        !           220: Use the DHCPv6 protocol to obtain whatever IPv6 addresses are available
        !           221: along with configuration parameters.  It cannot be combined with
        !           222: \fB\-4\fR.  The \fB\-S -T -P\fR and
        !           223: \fB\-N\fR arguments provide more control over aspects of the DHCPv6
        !           224: processing.  Note: it is not recommended to mix queries of different
        !           225: types together or even to share the lease file between them.
        !           226: .TP
        !           227: .BI \-1
        !           228: Try to get a lease once.  On failure exit with code 2.  In DHCPv6 this
        !           229: sets the maximum duration of the initial exchange to
        !           230: .I timeout
        !           231: (from 
        !           232: .IR dhclient.conf(5)
        !           233: with a default of sixty seconds).
        !           234: .TP
        !           235: .BI \-d
        !           236: .\" This is not intuitive.
        !           237: Force
        !           238: .B dhclient
        !           239: to run as a foreground process.  Normally the DHCP client will run
        !           240: in the foreground until is has configured an interface at which time
        !           241: it will revert to running in the background.  This option is useful
        !           242: when running the client under a debugger, or when running it out of
        !           243: inittab on System V systems.  This implies \fB-v\fR.
        !           244: .TP
        !           245: .BI \-nw
        !           246: Become a daemon immediately (nowait) rather than waiting until an
        !           247: an IP address has been acquired.
        !           248: .TP
        !           249: .BI \-q
        !           250: Be quiet at startup, this is the default.
        !           251: .TP
        !           252: .BI \-v
        !           253: Enable verbose log messages.
        !           254: .\" This prints the version, copyright and URL.
        !           255: .TP
        !           256: .BI \-w
        !           257: Continue running even if no broadcast interfaces were found.  Normally
        !           258: DHCP client will exit if it isn't able to identify any network interfaces
        !           259: to configure.  On laptop computers and other computers with
        !           260: hot-swappable I/O buses, it is possible that a broadcast interface may
        !           261: be added after system startup.  This flag can be used to cause the client
        !           262: not to exit when it doesn't find any such interfaces.   The
        !           263: .B omshell(1)
        !           264: program can then be used to notify the client when a network interface
        !           265: has been added or removed, so that the client can attempt to configure an IP
        !           266: address on that interface.
        !           267: .TP
        !           268: .BI \-n
        !           269: Do not configure any interfaces.  This is most likely to be useful in
        !           270: combination with the
        !           271: .B -w
        !           272: flag.
        !           273: .TP
        !           274: .BI \-e \ VAR=val
        !           275: Define additional environment variables for the environment where 
        !           276: .B dhclient-script(8)
        !           277: executes.  You may specify multiple 
        !           278: .B \-e
        !           279: options on the command line.
        !           280: .TP
        !           281: .BI \-r
        !           282: Release the current lease and stop the running DHCP client as previously
        !           283: recorded in the PID file.  When shutdown via this method 
        !           284: .B dhclient-script(8)
        !           285: will be executed with the specific reason for calling the script set.
        !           286: The client normally doesn't release the current lease as this is not
        !           287: required by the DHCP protocol but some cable ISPs require their clients
        !           288: to notify the server if they wish to release an assigned IP address.
        !           289: .\" TODO what dhclient-script argument?
        !           290: .\" When released,
        !           291: .TP
        !           292: .BI \-x
        !           293: Stop the running DHCP client without releasing the current lease.
        !           294: Kills existing \fBdhclient\fR process as previously recorded in the
        !           295: PID file.  When shutdown via this method 
        !           296: .B dhclient-script(8)
        !           297: will be executed with the specific reason for calling the script set.
        !           298: .TP
        !           299: .BI \-p \ port
        !           300: The UDP port number on which the DHCP client should listen and transmit.
        !           301: If unspecified,
        !           302: .B dhclient
        !           303: uses the default port of 68.  This is mostly useful for debugging purposes.
        !           304: If a different port is specified on which the client should listen and
        !           305: transmit, the client will also use a different destination port -
        !           306: one less than the specified port.
        !           307: .TP
        !           308: .BI \-s \ server-addr
        !           309: Specify the server IP address or fully qualified domain name to use as
        !           310: a destination for DHCP protocol messages before 
        !           311: .B dhclient
        !           312: has acquired an IP address.  Normally,
        !           313: .B dhclient
        !           314: transmits these messages to 255.255.255.255 (the IP limited broadcast
        !           315: address).  Overriding this is mostly useful for debugging purposes.  This
        !           316: feature is not supported in DHCPv6 (\fB-6\fR) mode.
        !           317: .TP
        !           318: .BI \-g \ relay
        !           319: .\" mockup relay
        !           320: Set the giaddr field of all packets to the \fIrelay\fR IP address
        !           321: simulating a relay agent.  This is for testing pruposes only and
        !           322: should not be expected to work in any consistent or useful way.
        !           323: .TP
        !           324: .BI \--version
        !           325: Print version number and exit.
        !           326: .PP
        !           327: .I Options available for DHCPv6 mode:
        !           328: .TP
        !           329: .BI \-S
        !           330: .\" TODO: mention DUID?
        !           331: Use Information-request to get only stateless configuration parameters
        !           332: (i.e., without address).  This implies \fB\-6\fR.  It also doesn't
        !           333: rewrite the lease database.
        !           334: .\" TODO: May not be used with -N -P or -T. ??
        !           335: .TP
        !           336: .BI \-T
        !           337: .\" TODO wanted_ia_ta++
        !           338: Ask for IPv6 temporary addresses, one set per \fB\-T\fR flag.  This
        !           339: implies \fB\-6\fR and also disables the normal address query.
        !           340: See \fB\-N\fR to restore it.
        !           341: .TP
        !           342: .BI \-P
        !           343: Enable IPv6 prefix delegation.  This implies \fB\-6\fR and also
        !           344: disables the normal address query.  See \fB\-N\fR to restore it.
        !           345: Note only one requested interface is allowed.
        !           346: .TP
        !           347: .BI \-N
        !           348: .\" TODO: is this for telling an already running dhclient?
        !           349: Restore normal address query for IPv6. This implies \fB-6\fR.
        !           350: It is used to restore normal operation after using \fB-T\fR or \fB-P\fR.
        !           351: .PP
        !           352: .I Modifying default file locations:
        !           353: The following options can be used to modify the locations a client uses
        !           354: for it's files.  They can be particularly useful if, for example,
        !           355: .B DBDIR
        !           356: or
        !           357: .B RUNDIR
        !           358: have not been mounted when the DHCP client is started.
        !           359: .TP
        !           360: .BI \-cf \ config-file
        !           361: Path to the client configuration file.  If unspecified, the default
        !           362: .B ETCDIR/dhclient.conf
        !           363: is used.  See \fBdhclient.conf(5)\fR for a description of this file.
        !           364: .TP
        !           365: .BI \-lf \ lease-file
        !           366: Path to the lease database file.  If unspecified, the default
        !           367: .B DBDIR/dhclient.leases
        !           368: is used.  See \fBdhclient.leases(5)\fR for a descriptionof this file.
        !           369: .TP
        !           370: .BI \-pf \ pid-file
        !           371: Path to the process ID file.  If unspecified, the default
        !           372: .B RUNDIR/dhclient.pid
        !           373: is used.
        !           374: .TP
        !           375: .BI \--no-pid
        !           376: Option to disable writing pid files.  By default the program
        !           377: will write a pid file.  If the program is invoked with this
        !           378: option it will not attempt to kill any existing client processes
        !           379: even if invoked with \fB-r\fR or \fB-x\fR.
        !           380: .TP
        !           381: .BI \-sf \ script-file
        !           382: Path to the network configuration script invoked by
        !           383: .B dhclient
        !           384: when it gets a lease.  If unspecified, the default
        !           385: .B CLIENTBINDIR/dhclient-script
        !           386: is used.  See \fBdhclient-script(8)\fR for a description of this file.
        !           387: 
        !           388: 
        !           389: .PP
        !           390: .SH CONFIGURATION
        !           391: The syntax of the \fBdhclient.conf(5)\fR file is discussed separately.
        !           392: .SH OMAPI
        !           393: The DHCP client provides some ability to control it while it is
        !           394: running, without stopping it.  This capability is provided using OMAPI,
        !           395: an API for manipulating remote objects.  OMAPI clients connect to the
        !           396: client using TCP/IP, authenticate, and can then examine the client's
        !           397: current status and make changes to it. 
        !           398: .PP
        !           399: Rather than implementing the underlying OMAPI protocol directly, user
        !           400: programs should use the dhcpctl API or OMAPI itself.   Dhcpctl is a
        !           401: wrapper that handles some of the housekeeping chores that OMAPI does
        !           402: not do automatically.   Dhcpctl and OMAPI are documented in
        !           403: \fBdhcpctl(3)\fR
        !           404: and \fBomapi(3)\fR.   Most things you'd want to do with the client can
        !           405: be done directly using the \fBomshell(1)\fR command, rather than
        !           406: having to write a special program.
        !           407: .SH THE CONTROL OBJECT
        !           408: The control object allows you to shut the client down, releasing all
        !           409: leases that it holds and deleting any DNS records it may have added.
        !           410: It also allows you to pause the client - this unconfigures any
        !           411: interfaces the client is using.   You can then restart it, which
        !           412: causes it to reconfigure those interfaces.   You would normally pause
        !           413: the client prior to going into hibernation or sleep on a laptop
        !           414: computer.   You would then resume it after the power comes back.
        !           415: This allows PC cards to be shut down while the computer is hibernating
        !           416: or sleeping, and then reinitialized to their previous state once the
        !           417: computer comes out of hibernation or sleep.
        !           418: .PP
        !           419: The control object has one attribute - the state attribute.   To shut
        !           420: the client down, set its state attribute to 2.   It will automatically
        !           421: do a DHCPRELEASE.   To pause it, set its state attribute to 3.   To
        !           422: resume it, set its state attribute to 4.
        !           423: .PP
        !           424: .SH ENVIRONMENT VARIABLES
        !           425: .PP
        !           426: The following environment variables may be defined
        !           427: to override the builtin defaults for file locations.
        !           428: Note that use of the related command-line options
        !           429: will ignore the corresponding environment variable settings.
        !           430: .TP
        !           431: .B PATH_DHCLIENT_CONF
        !           432: The dhclient.conf configuration file.
        !           433: .TP
        !           434: .B PATH_DHCLIENT_DB
        !           435: The dhclient.leases database.
        !           436: .TP
        !           437: .B PATH_DHCLIENT_PID
        !           438: The dhclient PID file.
        !           439: .TP
        !           440: .B PATH_DHCLIENT_SCRIPT
        !           441: The dhclient-script file.
        !           442: .PP
        !           443: .SH FILES
        !           444: .B CLIENTBINDIR/dhclient-script,
        !           445: .B ETCDIR/dhclient.conf, DBDIR/dhclient.leases, RUNDIR/dhclient.pid,
        !           446: .B DBDIR/dhclient.leases~.
        !           447: .SH SEE ALSO
        !           448: dhcpd(8), dhcrelay(8), dhclient-script(8), dhclient.conf(5),
        !           449: dhclient.leases(5), dhcp-eval(5).
        !           450: .SH AUTHOR
        !           451: .B dhclient(8)
        !           452: has been written for Internet Systems Consortium
        !           453: by Ted Lemon in cooperation with Vixie
        !           454: Enterprises.  To learn more about Internet Systems Consortium,
        !           455: see
        !           456: .B https://www.isc.org
        !           457: To learn more about Vixie
        !           458: Enterprises, see
        !           459: .B http://www.vix.com.
        !           460: .PP
        !           461: This client was substantially modified and enhanced by Elliot Poger
        !           462: for use on Linux while he was working on the MosquitoNet project at
        !           463: Stanford.
        !           464: .PP
        !           465: The current version owes much to Elliot's Linux enhancements, but
        !           466: was substantially reorganized and partially rewritten by Ted Lemon
        !           467: so as to use the same networking framework that the Internet Systems
        !           468: Consortium DHCP server uses.   Much system-specific configuration code
        !           469: was moved into a shell script so that as support for more operating
        !           470: systems is added, it will not be necessary to port and maintain
        !           471: system-specific configuration code to these operating systems - instead,
        !           472: the shell script can invoke the native tools to accomplish the same
        !           473: purpose.
        !           474: .PP

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