Annotation of embedaddon/dhcp/server/dhcpd.8, revision 1.1

1.1     ! misho       1: .\"    dhcpd.8
        !             2: .\"
        !             3: .\" Copyright (c) 2009-2011 by Internet Systems Consortium, Inc. ("ISC")
        !             4: .\" Copyright (c) 2004-2007 by Internet Systems Consortium, Inc. ("ISC")
        !             5: .\" Copyright (c) 1996-2003 by Internet Software Consortium
        !             6: .\"
        !             7: .\" Permission to use, copy, modify, and distribute this software for any
        !             8: .\" purpose with or without fee is hereby granted, provided that the above
        !             9: .\" copyright notice and this permission notice appear in all copies.
        !            10: .\"
        !            11: .\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
        !            12: .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            13: .\" MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
        !            14: .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            15: .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            16: .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
        !            17: .\" OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            18: .\"
        !            19: .\"   Internet Systems Consortium, Inc.
        !            20: .\"   950 Charter Street
        !            21: .\"   Redwood City, CA 94063
        !            22: .\"   <info@isc.org>
        !            23: .\"   https://www.isc.org/
        !            24: .\"
        !            25: .\" This software has been written for Internet Systems Consortium
        !            26: .\" by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
        !            27: .\"
        !            28: .\" Support and other services are available for ISC products - see
        !            29: .\" https://www.isc.org for more information or to learn more about ISC.
        !            30: .\"
        !            31: .\" $Id: dhcpd.8,v 1.29.32.4.6.1 2011-04-15 22:26:21 sar Exp $
        !            32: .\"
        !            33: .TH dhcpd 8
        !            34: .SH NAME
        !            35: dhcpd - Dynamic Host Configuration Protocol Server
        !            36: .SH SYNOPSIS
        !            37: .B dhcpd
        !            38: [
        !            39: .B -p
        !            40: .I port
        !            41: ]
        !            42: [
        !            43: .B -f
        !            44: ]
        !            45: [
        !            46: .B -d
        !            47: ]
        !            48: [
        !            49: .B -q
        !            50: ]
        !            51: [
        !            52: .B -t
        !            53: |
        !            54: .B -T
        !            55: ]
        !            56: [
        !            57: .B -4
        !            58: | 
        !            59: .B -6
        !            60: ]
        !            61: [
        !            62: .B -s
        !            63: .I server
        !            64: ]
        !            65: [
        !            66: .B -cf
        !            67: .I config-file
        !            68: ]
        !            69: [
        !            70: .B -lf
        !            71: .I lease-file
        !            72: ]
        !            73: [
        !            74: .B -pf
        !            75: .I pid-file
        !            76: ]
        !            77: [
        !            78: .B --no-pid
        !            79: ]
        !            80: [
        !            81: .B -tf
        !            82: .I trace-output-file
        !            83: ]
        !            84: [
        !            85: .B -play
        !            86: .I trace-playback-file
        !            87: ]
        !            88: [
        !            89: .I if0
        !            90: [
        !            91: .I ...ifN
        !            92: ]
        !            93: ]
        !            94: 
        !            95: .B dhcpd
        !            96: --version
        !            97: .SH DESCRIPTION
        !            98: The Internet Systems Consortium DHCP Server, dhcpd, implements the
        !            99: Dynamic Host Configuration Protocol (DHCP) and the Internet Bootstrap
        !           100: Protocol (BOOTP).  DHCP allows hosts on a TCP/IP network to request
        !           101: and be assigned IP addresses, and also to discover information about
        !           102: the network to which they are attached.  BOOTP provides similar
        !           103: functionality, with certain restrictions.
        !           104: .SH OPERATION
        !           105: .PP
        !           106: The DHCP protocol allows a host which is unknown to the network
        !           107: administrator to be automatically assigned a new IP address out of a
        !           108: pool of IP addresses for its network.   In order for this to work, the
        !           109: network administrator allocates address pools in each subnet and
        !           110: enters them into the dhcpd.conf(5) file.
        !           111: .PP
        !           112: There are two versions of the DHCP protocol DHCPv4 and DHCPv6.  At
        !           113: startup the server  may be started for one or the other via the
        !           114: .B -4
        !           115: or 
        !           116: .B -6
        !           117: arguments.
        !           118: .PP
        !           119: On startup, dhcpd reads the
        !           120: .IR dhcpd.conf
        !           121: file and stores a list of available addresses on each subnet in
        !           122: memory.  When a client requests an address using the DHCP protocol,
        !           123: dhcpd allocates an address for it.  Each client is assigned a lease,
        !           124: which expires after an amount of time chosen by the administrator (by
        !           125: default, one day).  Before leases expire, the clients to which leases
        !           126: are assigned are expected to renew them in order to continue to use
        !           127: the addresses.  Once a lease has expired, the client to which that
        !           128: lease was assigned is no longer permitted to use the leased IP
        !           129: address.
        !           130: .PP
        !           131: In order to keep track of leases across system reboots and server
        !           132: restarts, dhcpd keeps a list of leases it has assigned in the
        !           133: dhcpd.leases(5) file.   Before dhcpd grants a lease to a host, it
        !           134: records the lease in this file and makes sure that the contents of the
        !           135: file are flushed to disk.   This ensures that even in the event of a
        !           136: system crash, dhcpd will not forget about a lease that it has
        !           137: assigned.   On startup, after reading the dhcpd.conf file, dhcpd
        !           138: reads the dhcpd.leases file to refresh its memory about what leases
        !           139: have been assigned.
        !           140: .PP
        !           141: New leases are appended to the end of the dhcpd.leases
        !           142: file.   In order to prevent the file from becoming arbitrarily large,
        !           143: from time to time dhcpd creates a new dhcpd.leases file from its
        !           144: in-core lease database.  Once this file has been written to disk, the
        !           145: old file is renamed
        !           146: .IR dhcpd.leases~ ,
        !           147: and the new file is renamed dhcpd.leases.   If the system crashes in
        !           148: the middle of this process, whichever dhcpd.leases file remains will
        !           149: contain all the lease information, so there is no need for a special
        !           150: crash recovery process.
        !           151: .PP
        !           152: BOOTP support is also provided by this server.  Unlike DHCP, the BOOTP
        !           153: protocol does not provide a protocol for recovering
        !           154: dynamically-assigned addresses once they are no longer needed.   It is
        !           155: still possible to dynamically assign addresses to BOOTP clients, but
        !           156: some administrative process for reclaiming addresses is required.   By
        !           157: default, leases are granted to BOOTP clients in perpetuity, although
        !           158: the network administrator may set an earlier cutoff date or a shorter
        !           159: lease length for BOOTP leases if that makes sense.
        !           160: .PP
        !           161: BOOTP clients may also be served in the old standard way, which is to
        !           162: simply provide a declaration in the dhcpd.conf file for each
        !           163: BOOTP client, permanently assigning an address to each client.
        !           164: .PP
        !           165: Whenever changes are made to the dhcpd.conf file, dhcpd must be
        !           166: restarted.   To restart dhcpd, send a SIGTERM (signal 15) to the
        !           167: process ID contained in
        !           168: .IR RUNDIR/dhcpd.pid ,
        !           169: and then re-invoke dhcpd.  Because the DHCP server database is not as
        !           170: lightweight as a BOOTP database, dhcpd does not automatically restart
        !           171: itself when it sees a change to the dhcpd.conf file.
        !           172: .PP
        !           173: Note: We get a lot of complaints about this.   We realize that it would
        !           174: be nice if one could send a SIGHUP to the server and have it reload
        !           175: the database.   This is not technically impossible, but it would
        !           176: require a great deal of work, our resources are extremely limited, and
        !           177: they can be better spent elsewhere.   So please don't complain about
        !           178: this on the mailing list unless you're prepared to fund a project to
        !           179: implement this feature, or prepared to do it yourself.
        !           180: .SH COMMAND LINE
        !           181: .PP
        !           182: The names of the network interfaces on which dhcpd should listen for
        !           183: broadcasts may be specified on the command line.  This should be done
        !           184: on systems where dhcpd is unable to identify non-broadcast interfaces,
        !           185: but should not be required on other systems.  If no interface names
        !           186: are specified on the command line dhcpd will identify all network
        !           187: interfaces which are up, eliminating non-broadcast interfaces if
        !           188: possible, and listen for DHCP broadcasts on each interface.
        !           189: .PP
        !           190: .SH COMMAND LINE OPTIONS
        !           191: .TP
        !           192: .BI \-4
        !           193: Run as a DHCP server.  This cannot be combined with \fB\-6\fR.
        !           194: .TP
        !           195: .BI \-6
        !           196: Run as a DHCPv6 server.  This is the default and cannot be combined
        !           197: with \fB\-4\fR.
        !           198: .TP
        !           199: .BI \-p \ port
        !           200: The udp port number on which 
        !           201: .B dhcpd
        !           202: should listen.  If unspecified
        !           203: .B dhcpd
        !           204: uses the default port of 67.  This is mostly useful for debugging
        !           205: purposes.
        !           206: .TP
        !           207: .BI \-s \ address
        !           208: Specify an address or host name to which 
        !           209: .B dhcpd
        !           210: should send replies rather than the broadcast address (255.255.255.255).
        !           211: This option is only supported in IPv4.
        !           212: .TP
        !           213: .BI \-f
        !           214: Force
        !           215: .B dhcpd
        !           216: to run as a foreground process instead of as a daemon in the background.
        !           217: This is useful when running 
        !           218: .B dhcpd 
        !           219: under a debugger, or when running it
        !           220: out of inittab on System V systems.
        !           221: .TP
        !           222: .BI \-d
        !           223: Send log messages to the standard error descriptor.
        !           224: This can be useful for debugging, and also at sites where a
        !           225: complete log of all dhcp activity must be kept but syslogd is not
        !           226: reliable or otherwise cannot be used.   Normally, 
        !           227: .B dhcpd
        !           228: will log all
        !           229: output using the \fBsyslog(3)\fR function with the log facility set to
        !           230: LOG_DAEMON.  Note that \fB\-d\fR implies \fB\-f\fR (the daemon will
        !           231: not fork itself into the background).
        !           232: .TP
        !           233: .BI \-q 
        !           234: Be quiet at startup.  This suppresses the printing of the entire
        !           235: copyright message during startup.  This might be desirable when
        !           236: starting
        !           237: .B dhcpd
        !           238: from a system startup script (e.g., /etc/rc).
        !           239: .TP
        !           240: .BI \-t
        !           241: Test the configuration file.  The server tests the configuration file
        !           242: for correct syntax, but will not attempt to perform any network
        !           243: operations.   This can be used to test a new configuration file
        !           244: automatically before installing it.
        !           245: .TP
        !           246: .BI \-T
        !           247: Test the lease file.  The server tests the lease file
        !           248: for correct syntax, but will not attempt to perform any network
        !           249: operations.   This can be used to test a new leaes file
        !           250: automatically before installing it.
        !           251: .TP
        !           252: .BI \-tf \ tracefile
        !           253: Specify a file into which the entire startup state of the server and
        !           254: all the transactions it processes are logged.  This can be
        !           255: useful in submitting bug reports - if you are getting a core dump
        !           256: every so often, you can start the server with the \fB-tf\fR option and
        !           257: then, when the server dumps core, the trace file will contain all the
        !           258: transactions that led up to it dumping core, so that the problem can
        !           259: be easily debugged with \fB-play\fR.
        !           260: .TP
        !           261: .BI \-play \ playfile
        !           262: Specify a file from which the entire startup state of the server and
        !           263: all the transactions it processed are read.  The \fB-play\fR option
        !           264: must be specified with an alternate lease file,
        !           265: using the \fB-lf\fR switch, so that the DHCP server doesn't wipe out
        !           266: your existing lease file with its test data.  The DHCP server will
        !           267: refuse to operate in playback mode unless you specify an alternate
        !           268: lease file.
        !           269: .TP
        !           270: .BI --version
        !           271: Print version number and exit.
        !           272: .PP
        !           273: .I Modifying default file locations:
        !           274: The following options can be used to modify the locations 
        !           275: .B dhcpd
        !           276: uses for it's files.  Because of the importance of using the same
        !           277: lease database at all times when running dhcpd in production, these
        !           278: options should be used \fBonly\fR for testing lease files or database
        !           279: files in a non-production environment.
        !           280: .TP
        !           281: .BI \-cf \ config-file
        !           282: Path to alternate configuration file.
        !           283: .TP
        !           284: .BI \-lf \ lease-file
        !           285: Path to alternate lease file.
        !           286: .TP
        !           287: .BI \-pf \ pid-file
        !           288: Path to alternate pid file.
        !           289: .TP
        !           290: .BI \--no-pid
        !           291: Option to disable writing pid files.  By default the program
        !           292: will write a pid file.  If the program is invoked with this
        !           293: option it will not check for an existing server process.
        !           294: .PP
        !           295: .SH CONFIGURATION
        !           296: The syntax of the dhcpd.conf(5) file is discussed separately.   This
        !           297: section should be used as an overview of the configuration process,
        !           298: and the dhcpd.conf(5) documentation should be consulted for detailed
        !           299: reference information.
        !           300: .PP
        !           301: .SH Subnets
        !           302: dhcpd needs to know the subnet numbers and netmasks of all subnets for
        !           303: which it will be providing service.   In addition, in order to
        !           304: dynamically allocate addresses, it must be assigned one or more ranges
        !           305: of addresses on each subnet which it can in turn assign to client
        !           306: hosts as they boot.   Thus, a very simple configuration providing DHCP
        !           307: support might look like this:
        !           308: .nf
        !           309: .sp 1
        !           310:        subnet 239.252.197.0 netmask 255.255.255.0 {
        !           311:          range 239.252.197.10 239.252.197.250;
        !           312:        }
        !           313: .fi
        !           314: .PP
        !           315: Multiple address ranges may be specified like this:
        !           316: .nf
        !           317: .sp 1
        !           318:        subnet 239.252.197.0 netmask 255.255.255.0 {
        !           319:          range 239.252.197.10 239.252.197.107;
        !           320:          range 239.252.197.113 239.252.197.250;
        !           321:        }
        !           322: .fi
        !           323: .PP
        !           324: If a subnet will only be provided with BOOTP service and no dynamic
        !           325: address assignment, the range clause can be left out entirely, but the
        !           326: subnet statement must appear.
        !           327: .PP
        !           328: .SH Lease Lengths
        !           329: DHCP leases can be assigned almost any length from zero seconds to
        !           330: infinity.   What lease length makes sense for any given subnet, or for
        !           331: any given installation, will vary depending on the kinds of hosts
        !           332: being served.
        !           333: .PP
        !           334: For example, in an office environment where systems are added from
        !           335: time to time and removed from time to time, but move relatively
        !           336: infrequently, it might make sense to allow lease times of a month or
        !           337: more.   In a final test environment on a manufacturing floor, it may
        !           338: make more sense to assign a maximum lease length of 30 minutes -
        !           339: enough time to go through a simple test procedure on a network
        !           340: appliance before packaging it up for delivery.
        !           341: .PP
        !           342: It is possible to specify two lease lengths: the default length that
        !           343: will be assigned if a client doesn't ask for any particular lease
        !           344: length, and a maximum lease length.   These are specified as clauses
        !           345: to the subnet command:
        !           346: .nf
        !           347: .sp 1
        !           348:        subnet 239.252.197.0 netmask 255.255.255.0 {
        !           349:          range 239.252.197.10 239.252.197.107;
        !           350:          default-lease-time 600;
        !           351:          max-lease-time 7200;
        !           352:        }
        !           353: .fi
        !           354: .PP
        !           355: This particular subnet declaration specifies a default lease time of
        !           356: 600 seconds (ten minutes), and a maximum lease time of 7200 seconds
        !           357: (two hours).   Other common values would be 86400 (one day), 604800
        !           358: (one week) and 2592000 (30 days).
        !           359: .PP
        !           360: Each subnet need not have the same lease\(emin the case of an office
        !           361: environment and a manufacturing environment served by the same DHCP
        !           362: server, it might make sense to have widely disparate values for
        !           363: default and maximum lease times on each subnet.
        !           364: .SH BOOTP Support
        !           365: Each BOOTP client must be explicitly declared in the dhcpd.conf
        !           366: file.   A very basic client declaration will specify the client
        !           367: network interface's hardware address and the IP address to assign to
        !           368: that client.   If the client needs to be able to load a boot file from
        !           369: the server, that file's name must be specified.   A simple bootp
        !           370: client declaration might look like this:
        !           371: .nf
        !           372: .sp 1
        !           373:        host haagen {
        !           374:          hardware ethernet 08:00:2b:4c:59:23;
        !           375:          fixed-address 239.252.197.9;
        !           376:          filename "/tftpboot/haagen.boot";
        !           377:        }
        !           378: .fi
        !           379: .SH Options
        !           380: DHCP (and also BOOTP with Vendor Extensions) provide a mechanism
        !           381: whereby the server can provide the client with information about how
        !           382: to configure its network interface (e.g., subnet mask), and also how
        !           383: the client can access various network services (e.g., DNS, IP routers,
        !           384: and so on).
        !           385: .PP
        !           386: These options can be specified on a per-subnet basis, and, for BOOTP
        !           387: clients, also on a per-client basis.   In the event that a BOOTP
        !           388: client declaration specifies options that are also specified in its
        !           389: subnet declaration, the options specified in the client declaration
        !           390: take precedence.   A reasonably complete DHCP configuration might
        !           391: look something like this:
        !           392: .nf
        !           393: .sp 1
        !           394:        subnet 239.252.197.0 netmask 255.255.255.0 {
        !           395:          range 239.252.197.10 239.252.197.250;
        !           396:          default-lease-time 600 max-lease-time 7200;
        !           397:          option subnet-mask 255.255.255.0;
        !           398:          option broadcast-address 239.252.197.255;
        !           399:          option routers 239.252.197.1;
        !           400:          option domain-name-servers 239.252.197.2, 239.252.197.3;
        !           401:          option domain-name "isc.org";
        !           402:        }
        !           403: .fi
        !           404: .PP
        !           405: A bootp host on that subnet that needs to be in a different domain and
        !           406: use a different name server might be declared as follows:
        !           407: .nf
        !           408: .sp 1
        !           409:        host haagen {
        !           410:          hardware ethernet 08:00:2b:4c:59:23;
        !           411:          fixed-address 239.252.197.9;
        !           412:          filename "/tftpboot/haagen.boot";
        !           413:          option domain-name-servers 192.5.5.1;
        !           414:          option domain-name "vix.com";
        !           415:        }
        !           416: .fi
        !           417: .PP
        !           418: A more complete description of the dhcpd.conf file syntax is provided
        !           419: in dhcpd.conf(5).
        !           420: .SH OMAPI
        !           421: The DHCP server provides the capability to modify some of its
        !           422: configuration while it is running, without stopping it, modifying its
        !           423: database files, and restarting it.  This capability is currently
        !           424: provided using OMAPI - an API for manipulating remote objects.  OMAPI
        !           425: clients connect to the server using TCP/IP, authenticate, and can then
        !           426: examine the server's current status and make changes to it.
        !           427: .PP
        !           428: Rather than implementing the underlying OMAPI protocol directly, user
        !           429: programs should use the dhcpctl API or OMAPI itself.   Dhcpctl is a
        !           430: wrapper that handles some of the housekeeping chores that OMAPI does
        !           431: not do automatically.   Dhcpctl and OMAPI are documented in \fBdhcpctl(3)\fR
        !           432: and \fBomapi(3)\fR.
        !           433: .PP
        !           434: OMAPI exports objects, which can then be examined and modified.   The
        !           435: DHCP server exports the following objects: lease, host,
        !           436: failover-state and group.   Each object has a number of methods that
        !           437: are provided: lookup, create, and destroy.   In addition, it is
        !           438: possible to look at attributes that are stored on objects, and in some
        !           439: cases to modify those attributes.
        !           440: .SH THE LEASE OBJECT
        !           441: Leases can't currently be created or destroyed, but they can be looked
        !           442: up to examine and modify their state.
        !           443: .PP
        !           444: Leases have the following attributes:
        !           445: .PP
        !           446: .B state \fIinteger\fR lookup, examine
        !           447: .RS 0.5i
        !           448: .nf
        !           449: 1 = free
        !           450: 2 = active
        !           451: 3 = expired
        !           452: 4 = released
        !           453: 5 = abandoned
        !           454: 6 = reset
        !           455: 7 = backup
        !           456: 8 = reserved
        !           457: 9 = bootp
        !           458: .fi
        !           459: .RE
        !           460: .PP
        !           461: .B ip-address \fIdata\fR lookup, examine
        !           462: .RS 0.5i
        !           463: The IP address of the lease.
        !           464: .RE
        !           465: .PP
        !           466: .B dhcp-client-identifier \fIdata\fR lookup, examine, update
        !           467: .RS 0.5i
        !           468: The
        !           469: client identifier that the client used when it acquired the lease.
        !           470: Not all clients send client identifiers, so this may be empty.
        !           471: .RE
        !           472: .PP
        !           473: .B client-hostname \fIdata\fR examine, update
        !           474: .RS 0.5i
        !           475: The value the client sent in the host-name option.
        !           476: .RE
        !           477: .PP
        !           478: .B host \fIhandle\fR examine
        !           479: .RS 0.5i
        !           480: the host declaration associated with this lease, if any.
        !           481: .RE
        !           482: .PP
        !           483: .B subnet \fIhandle\fR examine
        !           484: .RS 0.5i
        !           485: the subnet object associated with this lease (the subnet object is not
        !           486: currently supported).
        !           487: .RE
        !           488: .PP
        !           489: .B pool \fIhandle\fR examine
        !           490: .RS 0.5i
        !           491: the pool object associated with this lease (the pool object is not
        !           492: currently supported).
        !           493: .RE
        !           494: .PP
        !           495: .B billing-class \fIhandle\fR examine
        !           496: .RS 0.5i
        !           497: the handle to the class to which this lease is currently billed, if
        !           498: any (the class object is not currently supported).
        !           499: .RE
        !           500: .PP
        !           501: .B hardware-address \fIdata\fR examine, update
        !           502: .RS 0.5i
        !           503: the hardware address (chaddr) field sent by the client when it
        !           504: acquired its lease.
        !           505: .RE
        !           506: .PP
        !           507: .B hardware-type \fIinteger\fR examine, update
        !           508: .RS 0.5i
        !           509: the type of the network interface that the client reported when it
        !           510: acquired its lease.
        !           511: .RE
        !           512: .PP
        !           513: .B ends \fItime\fR examine
        !           514: .RS 0.5i
        !           515: the time when the lease's current state ends, as understood by the
        !           516: client.
        !           517: .RE
        !           518: .PP
        !           519: .B tstp \fItime\fR examine
        !           520: .RS 0.5i
        !           521: the time when the lease's current state ends, as understood by the
        !           522: server.
        !           523: .RE
        !           524: .B tsfp \fItime\fR examine
        !           525: .RS 0.5i
        !           526: the adjusted time when the lease's current state ends, as understood by
        !           527: the failover peer (if there is no failover peer, this value is
        !           528: undefined).  Generally this value is only adjusted for expired, released,
        !           529: or reset leases while the server is operating in partner-down state, and
        !           530: otherwise is simply the value supplied by the peer.
        !           531: .RE
        !           532: .B atsfp \fItime\fR examine
        !           533: .RS 0.5i
        !           534: the actual tsfp value sent from the peer.  This value is forgotten when a
        !           535: lease binding state change is made, to facilitate retransmission logic.
        !           536: .RE
        !           537: .PP
        !           538: .B cltt \fItime\fR examine
        !           539: .RS 0.5i
        !           540: The time of the last transaction with the client on this lease.
        !           541: .RE
        !           542: .SH THE HOST OBJECT
        !           543: Hosts can be created, destroyed, looked up, examined and modified.
        !           544: If a host declaration is created or deleted using OMAPI, that
        !           545: information will be recorded in the dhcpd.leases file.   It is
        !           546: permissible to delete host declarations that are declared in the
        !           547: dhcpd.conf file.
        !           548: .PP
        !           549: Hosts have the following attributes:
        !           550: .PP
        !           551: .B name \fIdata\fR lookup, examine, modify
        !           552: .RS 0.5i
        !           553: the name of the host declaration.   This name must be unique among all
        !           554: host declarations.
        !           555: .RE
        !           556: .PP
        !           557: .B group \fIhandle\fR examine, modify
        !           558: .RS 0.5i
        !           559: the named group associated with the host declaration, if there is one.
        !           560: .RE
        !           561: .PP
        !           562: .B hardware-address \fIdata\fR lookup, examine, modify
        !           563: .RS 0.5i
        !           564: the link-layer address that will be used to match the client, if any.
        !           565: Only valid if hardware-type is also present.
        !           566: .RE
        !           567: .PP
        !           568: .B hardware-type \fIinteger\fR lookup, examine, modify
        !           569: .RS 0.5i
        !           570: the type of the network interface that will be used to match the
        !           571: client, if any.   Only valid if hardware-address is also present.
        !           572: .RE
        !           573: .PP
        !           574: .B dhcp-client-identifier \fIdata\fR lookup, examine, modify
        !           575: .RS 0.5i
        !           576: the dhcp-client-identifier option that will be used to match the
        !           577: client, if any.
        !           578: .RE
        !           579: .PP
        !           580: .B ip-address \fIdata\fR examine, modify
        !           581: .RS 0.5i
        !           582: a fixed IP address which is reserved for a DHCP client that matches
        !           583: this host declaration.   The IP address will only be assigned to the
        !           584: client if it is valid for the network segment to which the client is
        !           585: connected.
        !           586: .RE
        !           587: .PP
        !           588: .B statements \fIdata\fR modify
        !           589: .RS 0.5i
        !           590: a list of statements in the format of the dhcpd.conf file that will be
        !           591: executed whenever a message from the client is being processed.
        !           592: .RE
        !           593: .PP
        !           594: .B known \fIinteger\fR examine, modify
        !           595: .RS 0.5i
        !           596: if nonzero, indicates that a client matching this host declaration
        !           597: will be treated as \fIknown\fR in pool permit lists.   If zero, the
        !           598: client will not be treated as known.
        !           599: .RE
        !           600: .SH THE GROUP OBJECT
        !           601: Named groups can be created, destroyed, looked up, examined and
        !           602: modified.  If a group declaration is created or deleted using OMAPI,
        !           603: that information will be recorded in the dhcpd.leases file.  It is
        !           604: permissible to delete group declarations that are declared in the
        !           605: dhcpd.conf file.
        !           606: .PP
        !           607: Named groups currently can only be associated with
        !           608: hosts - this allows one set of statements to be efficiently attached
        !           609: to more than one host declaration.   
        !           610: .PP
        !           611: Groups have the following attributes:
        !           612: .PP
        !           613: .B name \fIdata\fR
        !           614: .RS 0.5i
        !           615: the name of the group.  All groups that are created using OMAPI must
        !           616: have names, and the names must be unique among all groups.
        !           617: .RE
        !           618: .PP
        !           619: .B statements \fIdata\fR
        !           620: .RS 0.5i
        !           621: a list of statements in the format of the dhcpd.conf file that will be
        !           622: executed whenever a message from a client whose host declaration
        !           623: references this group is processed.
        !           624: .RE
        !           625: .SH THE CONTROL OBJECT
        !           626: The control object allows you to shut the server down.   If the server
        !           627: is doing failover with another peer, it will make a clean transition
        !           628: into the shutdown state and notify its peer, so that the peer can go
        !           629: into partner down, and then record the "recover" state in the lease
        !           630: file so that when the server is restarted, it will automatically
        !           631: resynchronize with its peer.
        !           632: .PP
        !           633: On shutdown the server will also attempt to cleanly shut down all
        !           634: OMAPI connections.  If these connections do not go down cleanly after
        !           635: five seconds, they are shut down preemptively.  It can take as much
        !           636: as 25 seconds from the beginning of the shutdown process to the time
        !           637: that the server actually exits.
        !           638: .PP
        !           639: To shut the server down, open its control object and set the state
        !           640: attribute to 2.
        !           641: .SH THE FAILOVER-STATE OBJECT
        !           642: The failover-state object is the object that tracks the state of the
        !           643: failover protocol as it is being managed for a given failover peer.
        !           644: The failover object has the following attributes (please see
        !           645: .B dhcpd.conf (5)
        !           646: for explanations about what these attributes mean):
        !           647: .PP
        !           648: .B name \fIdata\fR examine
        !           649: .RS 0.5i
        !           650: Indicates the name of the failover peer relationship, as described in
        !           651: the server's \fBdhcpd.conf\fR file.
        !           652: .RE
        !           653: .PP
        !           654: .B partner-address \fIdata\fR examine
        !           655: .RS 0.5i
        !           656: Indicates the failover partner's IP address.
        !           657: .RE
        !           658: .PP
        !           659: .B local-address \fIdata\fR examine
        !           660: .RS 0.5i
        !           661: Indicates the IP address that is being used by the DHCP server for
        !           662: this failover pair.
        !           663: .RE
        !           664: .PP
        !           665: .B partner-port \fIdata\fR examine
        !           666: .RS 0.5i
        !           667: Indicates the TCP port on which the failover partner is listening for
        !           668: failover protocol connections.
        !           669: .RE
        !           670: .PP
        !           671: .B local-port \fIdata\fR examine
        !           672: .RS 0.5i
        !           673: Indicates the TCP port on which the DHCP server is listening for
        !           674: failover protocol connections for this failover pair.
        !           675: .RE
        !           676: .PP
        !           677: .B max-outstanding-updates \fIinteger\fR examine
        !           678: .RS 0.5i
        !           679: Indicates the number of updates that can be outstanding and
        !           680: unacknowledged at any given time, in this failover relationship.
        !           681: .RE
        !           682: .PP
        !           683: .B mclt \fIinteger\fR examine
        !           684: .RS 0.5i
        !           685: Indicates the maximum client lead time in this failover relationship.
        !           686: .RE
        !           687: .PP
        !           688: .B load-balance-max-secs \fIinteger\fR examine
        !           689: .RS 0.5i
        !           690: Indicates the maximum value for the secs field in a client request
        !           691: before load balancing is bypassed.
        !           692: .RE
        !           693: .PP
        !           694: .B load-balance-hba \fIdata\fR examine
        !           695: .RS 0.5i
        !           696: Indicates the load balancing hash bucket array for this failover
        !           697: relationship.
        !           698: .RE
        !           699: .PP
        !           700: .B local-state \fIinteger\fR examine, modify
        !           701: .RS 0.5i
        !           702: Indicates the present state of the DHCP server in this failover
        !           703: relationship.   Possible values for state are:
        !           704: .RE
        !           705: .RS 1i
        !           706: .PP
        !           707: .nf
        !           708: 1   - startup
        !           709: 2   - normal
        !           710: 3   - communications interrupted
        !           711: 4   - partner down
        !           712: 5   - potential conflict
        !           713: 6   - recover
        !           714: 7   - paused
        !           715: 8   - shutdown
        !           716: 9   - recover done
        !           717: 10  - resolution interrupted
        !           718: 11  - conflict done
        !           719: 254 - recover wait
        !           720: .fi
        !           721: .RE
        !           722: .PP
        !           723: .RS 0.5i
        !           724: (Note that some of the above values have changed since DHCP 3.0.x.)
        !           725: .RE
        !           726: .PP
        !           727: .RS 0.5i
        !           728: In general it is not a good idea to make changes to this state.
        !           729: However, in the case that the failover partner is known to be down, it
        !           730: can be useful to set the DHCP server's failover state to partner
        !           731: down.   At this point the DHCP server will take over service of the
        !           732: failover partner's leases as soon as possible, and will give out
        !           733: normal leases, not leases that are restricted by MCLT.   If you do put
        !           734: the DHCP server into the partner-down when the other DHCP server is
        !           735: not in the partner-down state, but is not reachable, IP address
        !           736: assignment conflicts are possible, even likely.   Once a server has
        !           737: been put into partner-down mode, its failover partner must not be
        !           738: brought back online until communication is possible between the two
        !           739: servers.
        !           740: .RE
        !           741: .PP
        !           742: .B partner-state \fIinteger\fR examine
        !           743: .RS 0.5i
        !           744: Indicates the present state of the failover partner.
        !           745: .RE
        !           746: .PP
        !           747: .B local-stos \fIinteger\fR examine
        !           748: .RS 0.5i
        !           749: Indicates the time at which the DHCP server entered its present state
        !           750: in this failover relationship.
        !           751: .RE
        !           752: .PP
        !           753: .B partner-stos \fIinteger\fR examine
        !           754: .RS 0.5i
        !           755: Indicates the time at which the failover partner entered its present state.
        !           756: .RE
        !           757: .PP
        !           758: .B hierarchy \fIinteger\fR examine
        !           759: .RS 0.5i
        !           760: Indicates whether the DHCP server is primary (0) or secondary (1) in
        !           761: this failover relationship.
        !           762: .RE
        !           763: .PP
        !           764: .B last-packet-sent \fIinteger\fR examine
        !           765: .RS 0.5i
        !           766: Indicates the time at which the most recent failover packet was sent
        !           767: by this DHCP server to its failover partner.
        !           768: .RE
        !           769: .PP
        !           770: .B last-timestamp-received \fIinteger\fR examine
        !           771: .RS 0.5i
        !           772: Indicates the timestamp that was on the failover message most recently
        !           773: received from the failover partner.
        !           774: .RE
        !           775: .PP
        !           776: .B skew \fIinteger\fR examine
        !           777: .RS 0.5i
        !           778: Indicates the skew between the failover partner's clock and this DHCP
        !           779: server's clock
        !           780: .RE
        !           781: .PP
        !           782: .B max-response-delay \fIinteger\fR examine
        !           783: .RS 0.5i
        !           784: Indicates the time in seconds after which, if no message is received
        !           785: from the failover partner, the partner is assumed to be out of
        !           786: communication.
        !           787: .RE
        !           788: .PP
        !           789: .B cur-unacked-updates \fIinteger\fR examine
        !           790: .RS 0.5i
        !           791: Indicates the number of update messages that have been received from
        !           792: the failover partner but not yet processed.
        !           793: .RE
        !           794: .SH FILES
        !           795: .B ETCDIR/dhcpd.conf, DBDIR/dhcpd.leases, RUNDIR/dhcpd.pid,
        !           796: .B DBDIR/dhcpd.leases~.
        !           797: .SH SEE ALSO
        !           798: dhclient(8), dhcrelay(8), dhcpd.conf(5), dhcpd.leases(5)
        !           799: .SH AUTHOR
        !           800: .B dhcpd(8)
        !           801: was originally written by Ted Lemon under a contract with Vixie Labs.
        !           802: Funding for this project was provided by Internet Systems
        !           803: Consortium.   Version 3 of the DHCP server was funded by Nominum, Inc.
        !           804: Information about Internet Systems Consortium is available at
        !           805: .B https://www.isc.org/\fR.

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