]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
New dhcpd.leases document
authorTed Lemon <source@isc.org>
Fri, 26 Jun 1998 04:17:25 +0000 (04:17 +0000)
committerTed Lemon <source@isc.org>
Fri, 26 Jun 1998 04:17:25 +0000 (04:17 +0000)
server/dhcpd.leases.cat5

index 9aab943a6b58a5832f129d77fcd50bb983358afb..f509e62214deed5e9fc5e5c925547e475fe0780d 100644 (file)
@@ -10,39 +10,161 @@ N\bNA\bAM\bME\bE
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        The  Internet Software Consortium DHCP Server keeps a per­
        sistent database of leases that  it  has  assigned.   This
-       database  is  a  free-form ASCII file containing one valid
-       declaration per  lease.   If  more  than  one  declaration
-       appears  for  a  given  lease, the last one in the file is
-       used.  The file is written as a log, so  this  is  not  an
-       unusual occurrance.
+       database  is a free-form ASCII file containing a series of
+       lease declarations.   Every  time  a  lease  is  acquired,
+       renewed  or released, its new value is recorded at the end
+       of the lease  file.   So  if  more  than  one  declaration
+       appears for a given lease, the last one in the file is the
+       current one.
 
        When dhcpd is first installed, there is no lease database.
-       However, dhcpd requires that a lease database  be  present
+       However,  dhcpd  requires that a lease database be present
        before it will start.  To make the initial lease database,
        just create an empty file called /var/db/dhcpd.leases.
 
-       In order to prevent the lease database from growing  with­
-       out  bound,  the  file  is  rewritten  from  time to time.
+       In  order to prevent the lease database from growing with­
+       out bound, the  file  is  rewritten  from  time  to  time.
        First, a temporary lease database is created and all known
        leases are dumped to it.   Then, the old lease database is
-       renamed /var/db/dhcpd.leases~.   Finally, the newly  writ­
+       renamed  /var/db/dhcpd.leases~.   Finally, the newly writ­
        ten lease database is moved into place.
 
        There is a window of vulnerability where if the dhcpd pro­
-       cess is killed or the system crashes after the  old  lease
-       database  has been renamed but before the new one has been
-       moved into place, there will be  no  /var/db/dhcpd.leases.
+       cess  is  killed or the system crashes after the old lease
+       database has been renamed but before the new one has  been
+       moved  into  place, there will be no /var/db/dhcpd.leases.
        In this case, dhcpd will refuse to start, and will require
-       manual intervention.   D\bDO\bO N\bNO\bOT\bT simply create  a  new  lease
+       manual  intervention.    D\bDO\bO  N\bNO\bOT\bT simply create a new lease
        file when this happens - if you do, you will lose all your
-       old bindings, and  chaos  will  ensue.    Instead,  rename
-       /var/db/dhcpd.leases~  to  /var/db/dhcpd.leases, restoring
-       the old, valid lease file, and then  start  dhcpd.    This
+       old  bindings,  and  chaos  will  ensue.   Instead, rename
+       /var/db/dhcpd.leases~ to  /var/db/dhcpd.leases,  restoring
+       the  old,  valid  lease file, and then start dhcpd.   This
        guarantees that a valid lease file will be restored.
 
 F\bFO\bOR\bRM\bMA\bAT\bT
-       The format of the lease declarations is not currently doc­
-       umented.
+       Lease descriptions are stored in a format that  is  parsed
+       by  the  same  recursive  descent  parser used to read the
+       d\bdh\bhc\bcp\bpd\bd.\b.c\bco\bon\bnf\bf(\b(5\b5)\b) and d\bdh\bhc\bcl\bli\bie\ben\bnt\bt.\b.c\bco\bon\bnf\bf(\b(5\b5)\b) files.   Currently, the
+       only  declaration that is used in the dhcpd.leases file is
+       the l\ble\bea\bas\bse\be declaration.
+
+        l\ble\bea\bas\bse\be _\bi_\bp_\b-_\ba_\bd_\bd_\br_\be_\bs_\bs {\b{ _\bs_\bt_\ba_\bt_\be_\bm_\be_\bn_\bt_\bs_\b._\b._\b. }\b}
+
+       Each lease declaration include the single IP address  that
+       has been leased to the client.   The statements within the
+       braces define the duration of the lease and to whom it  is
+       assigned.
+
+       The  start  and end time of a lease are recorded using the
+       ``starts'' and ``ends'' statements:
+
+
+
+
+                                                                1
+
+
+
+
+
+dhcpd.leases(5)                                   dhcpd.leases(5)
+
+
+         s\bst\bta\bar\brt\bts\bs _\bd_\ba_\bt_\be;\b;
+         e\ben\bnd\bds\bs _\bd_\ba_\bt_\be;\b;
+
+       Dates are specified as follows:
+
+        _\bw_\be_\be_\bk_\bd_\ba_\by _\by_\be_\ba_\br/\b/_\bm_\bo_\bn_\bt_\bh/\b/_\bd_\ba_\by _\bh_\bo_\bu_\br:\b:_\bm_\bi_\bn_\bu_\bt_\be:\b:_\bs_\be_\bc_\bo_\bn_\bd
+
+       The weekday is present to make it easy for a human to tell
+       when  a  lease  expires  - it's specified as a number from
+       zero to six, with zero being Sunday.  The day of  week  is
+       ignored on input.  The year is specified with the century,
+       so it should generally be four digits  except  for  really
+       long  leases.  The month is specified as a number starting
+       with 1 for January.  The day  of  the  month  is  likewise
+       specified starting with 1.  The hour is a number between 0
+       and 23, the minute a number between 0 and 59, and the sec­
+       ond also a number between 0 and 59.
+
+       Lease  times  are  specified in Greenwich Mean Time (GMT),
+       not in the local time zone.   Since Greenwich is  actually
+       on Daylight Savings Time part of the year, there is proba­
+       bly nowhere in the world where the  times  recorded  on  a
+       lease  are always the same as wall clock times.  On a unix
+       machine, one can often figure out the current time in  GMT
+       by typing d\bda\bat\bte\be -\b-u\bu.
+
+       The  MAC address of the network interface that was used to
+       acquire the lease is recorded with the h\bha\bar\brd\bdw\bwa\bar\bre\be statement:
+
+        h\bha\bar\brd\bdw\bwa\bar\bre\be _\bh_\ba_\br_\bd_\bw_\ba_\br_\be_\b-_\bt_\by_\bp_\be _\bm_\ba_\bc_\b-_\ba_\bd_\bd_\br_\be_\bs_\bs;\b;
+
+       The  MAC  address  is specified as a series of hexadecimal
+       octets, seperated by colons.
+
+       If the client used a  client  identifier  to  acquire  its
+       address,  the  client identifier is recorded using the u\bui\bid\bd
+       statement:
+
+        u\bui\bid\bd _\bc_\bl_\bi_\be_\bn_\bt_\b-_\bi_\bd_\be_\bn_\bt_\bi_\bf_\bi_\be_\br;\b;
+
+       The client identifier is recorded as a series of hexadeci­
+       mal  octets, regardless of whether the client specifies an
+       ASCII string or uses the newer hardware  type/MAC  address
+       format.
+
+       If  the  client sends a hostname using the _\bC_\bl_\bi_\be_\bn_\bt _\bH_\bo_\bs_\bt_\bn_\ba_\bm_\be
+       option, as specified in  some  versions  of  the  DHCP-DNS
+       Interaction  draft,  that  hostname  is recorded using the
+       c\bcl\bli\bie\ben\bnt\bt-\b-h\bho\bos\bst\btn\bna\bam\bme\be statement.
+
+        c\bcl\bli\bie\ben\bnt\bt-\b-h\bho\bos\bst\btn\bna\bam\bme\be "\b"_\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be"\b";\b;
+
+       If the  client  sends  its  hostname  using  the  _\bH_\bo_\bs_\bt_\bn_\ba_\bm_\be
+       option,  as  Windows  95  does,  it  is recorded using the
+
+
+
+                                                                2
+
+
+
+
+
+dhcpd.leases(5)                                   dhcpd.leases(5)
+
+
+       h\bho\bos\bst\btn\bna\bam\bme\be statement.
+
+        h\bho\bos\bst\btn\bna\bam\bme\be "\b"_\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be"\b";\b;
+
+       The DHCP server may determine that a lease has  been  mis­
+       used  in  some  way, either because a client that has been
+       assigned a lease NAKs it,  or  because  the  server's  own
+       attempt to see if an address is in use prior to reusing it
+       reveals that the address is in fact already in  use.    In
+       that  case,  the a\bab\bba\ban\bnd\bdo\bon\bne\bed\bd statement will be used to indi­
+       cate that the lease should not be reassigned.
+
+        a\bab\bba\ban\bnd\bdo\bon\bne\bed\bd;\b;
+
+       Abandoned leases are  reclaimed  automatically.    When  a
+       client  asks  for a new address, and the server finds that
+       there are no new addresses, it checks to see if there  are
+       any  abandoned  leases,  and  allocates the least recently
+       abandoned lease.   The standard  mechanisms  for  checking
+       for  lease address conflicts are still followed, so if the
+       abandoned lease's IP address is still in use, it  will  be
+       reabandoned.
+
+       If  a  client  r\bre\beq\bqu\bue\bes\bst\bts\bs  an  abandoned address, the server
+       assumes that the reason the address was abandoned was that
+       the  lease  file was corrupted, and that the client is the
+       machine that responded when the lease was probed,  causing
+       it to be abandoned.   In that case, the address is immedi­
+       ately assigned to the client.
 
 F\bFI\bIL\bLE\bES\bS
        /\b/v\bva\bar\br/\b/d\bdb\bb/\b/d\bdh\bhc\bcp\bpd\bd.\b.l\ble\bea\bas\bse\bes\bs
@@ -61,6 +183,16 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-                                                                1
+
+
+
+
+
+
+
+
+
+
+                                                                3