Print this page
7388 Support DHCP Client FQDN. Allow IAID/DUID for all v4.

Split Close
Expand all
Collapse all
          --- old/usr/src/man/man1m/dhcpagent.1m.man.txt
          +++ new/usr/src/man/man1m/dhcpagent.1m.man.txt
↓ open down ↓ 3 lines elided ↑ open up ↑
   4    4  
   5    5  NAME
   6    6         dhcpagent - Dynamic Host Configuration Protocol (DHCP) client daemon
   7    7  
   8    8  SYNOPSIS
   9    9         dhcpagent [-a] [ -d n] [-f] [-v]
  10   10  
  11   11  
  12   12  DESCRIPTION
  13   13         dhcpagent implements the client half of the Dynamic Host Configuration
  14      -       Protocol (DHCP) for machines running Solaris software.
       14 +       Protocol (DHCP) for machines running illumos software.
  15   15  
  16   16  
  17   17         The dhcpagent daemon obtains configuration parameters for the client
  18   18         (local) machine's network interfaces from a DHCP server. These
  19   19         parameters may include a lease on an IP address, which gives the client
  20   20         machine use of the address for the period of the lease, which may be
  21   21         infinite. If the client wishes to use the IP address for a period
  22   22         longer than the lease, it must negotiate an extension using DHCP. For
  23   23         this reason, dhcpagent must run as a daemon, terminating only when the
  24   24         client machine powers down.
  25   25  
  26   26  
  27      -       For IPv4, the dhcpagent daemon is controlled through ifconfig(1M) in
  28      -       much the same way that the init(1M) daemon is controlled by
  29      -       telinit(1M). dhcpagent can be invoked as a user process, albeit one
  30      -       requiring root privileges, but this is not necessary, as ifconfig(1M)
  31      -       will start it automatically.
       27 +       For IPv4, the dhcpagent daemon is controlled through ipadm(1M),
       28 +       nwamcfg(1M), or ifconfig(1M) in much the same way that the init(1M)
       29 +       daemon is controlled by telinit(1M). dhcpagent can be invoked as a user
       30 +       process, albeit one requiring root privileges, but this is not
       31 +       necessary, as ipadm(1M), nwamcfg(1M), or ifconfig(1M) will start
       32 +       dhcpagent automatically.
  32   33  
  33   34  
  34   35         For IPv6, the dhcpagent daemon is invoked automatically by in.ndpd(1M).
  35   36         It can also be controlled through ifconfig(1M), if necessary.
  36   37  
  37   38  
  38   39         When invoked, dhcpagent enters a passive state while it awaits
  39      -       instructions from ifconfig(1M) or in.ndpd(1M). When it receives a
  40      -       command to configure an interface, it brings up the interface (if
  41      -       necessary) and starts DHCP. Once DHCP is complete, dhcpagent can be
  42      -       queried for the values of the various network parameters. In addition,
  43      -       if DHCP was used to obtain a lease on an address for an interface, it
  44      -       configures the address for use. When a lease is obtained, it is
  45      -       automatically renewed as necessary. If the lease cannot be renewed,
  46      -       dhcpagent will unconfigure the address, but the interface will be left
  47      -       up and dhcpagent will attempt to acquire a new address lease. dhcpagent
  48      -       monitors system suspend/resume events and will validate any non-
  49      -       permanent leases with the DHCP server upon resume. Similarly, dhcpagent
  50      -       monitors link up/down events and will validate any non-permanent leases
  51      -       with the DHCP server when the downed link is brought back up. The lease
  52      -       validation mechanism will restart DHCP if the server indicates that the
  53      -       existing lease is no longer valid. If the server cannot be contacted,
  54      -       then the existing lease will continue. This behavior can be modified
  55      -       with the VERIFIED_LEASE_ONLY parameter in the /etc/default/dhcpagent
  56      -       file.  See the description of this parameter below.
       40 +       instructions from ipadm(1M), nwamcfg(1M), ifconfig(1M), or in.ndpd(1M).
       41 +       When dhcpagent receives a command to configure an interface, dhcpagent
       42 +       brings up the interface (if necessary) and starts DHCP. Once DHCP is
       43 +       complete, dhcpagent can be queried for the values of the various
       44 +       network parameters. In addition, if DHCP was used to obtain a lease on
       45 +       an address for an interface, dhcpagent configures the address for use.
       46 +       When a lease is obtained, it is automatically renewed as necessary. If
       47 +       the lease cannot be renewed, dhcpagent will unconfigure the address,
       48 +       but the interface will be left up, and dhcpagent will attempt to
       49 +       acquire a new address lease.
  57   50  
  58   51  
       52 +       dhcpagent monitors system suspend/resume events and will validate any
       53 +       non-permanent leases with the DHCP server upon resume. Similarly,
       54 +       dhcpagent monitors link up/down events and will validate any non-
       55 +       permanent leases with the DHCP server when the downed link is brought
       56 +       back up. The lease validation mechanism will restart DHCP if the server
       57 +       indicates that the existing lease is no longer valid. If the server
       58 +       cannot be contacted, then the existing lease will continue. This
       59 +       behavior can be modified with the VERIFIED_LEASE_ONLY parameter in the
       60 +       /etc/default/dhcpagent file.  See the description of this parameter
       61 +       below.
       62 +
       63 +
  59   64         For IPv4, if the configured interface is found to be unplumbed, or to
  60   65         have a different IP address, subnet mask, or broadcast address from
  61   66         those obtained from DHCP, the interface is abandoned from DHCP control.
  62   67  
  63   68  
  64   69         For IPv6, dhcpagent automatically plumbs and unplumbs logical
  65   70         interfaces as necessary for the IPv6 addresses supplied by the server.
  66   71         The IPv6 prefix length (netmask) is not set by the DHCPv6 protocol, but
  67   72         is instead set by in.ndpd(1M) using prefix information obtained by
  68   73         Router Advertisements.  If any of the logical interfaces created by
↓ open down ↓ 24 lines elided ↑ open up ↑
  93   98         need to be merged, or may be inconsistent. Furthermore, the
  94   99         configuration of the interfaces is asynchronous, so requests may arrive
  95  100         while some or all of the interfaces are still unconfigured. To handle
  96  101         these cases, one interface may be designated as primary, which makes it
  97  102         the authoritative source for the values of DHCP parameters in the case
  98  103         where no specific interface is requested. See dhcpinfo(1) and
  99  104         ifconfig(1M) for details.
 100  105  
 101  106  
 102  107         For IPv4, the dhcpagent daemon can be configured to request a
 103      -       particular host name. See the REQUEST_HOSTNAME description in the FILES
 104      -       section. When first configuring a client to request a host name, you
 105      -       must perform the following steps as root to ensure that the full DHCP
      108 +       particular Fully Qualified Domain Name (FQDN) or host name. See the
      109 +       REQUEST_FQDN or REQUEST_HOSTNAME description in the FILES section. When
      110 +       first configuring a client to request an FQDN or host name, you must
      111 +       perform the following steps as root to ensure that the full DHCP
 106  112         negotiation takes place:
 107  113  
 108  114           # pkill dhcpagent
 109  115           # rm /etc/dhcp/interface.dhc
 110  116           # reboot
 111  117  
 112  118  
 113  119  
 114  120  
 115  121         All DHCP packets sent by dhcpagent include a vendor class identifier
↓ open down ↓ 268 lines elided ↑ open up ↑
 384  390             Contains the configuration for interface. The mere existence of
 385  391             this file does not imply that the configuration is correct, since
 386  392             the lease might have expired. On start-up, dhcpagent confirms the
 387  393             validity of the address using REQUEST (for DHCPv4) or Confirm
 388  394             (DHCPv6).
 389  395  
 390  396  
 391  397         /etc/dhcp/duid
 392  398         /etc/dhcp/iaid
 393  399  
 394      -           Contains persistent storage for DUID (DHCP Unique Identifier) and
 395      -           IAID (Identity Association Identifier) values. The format of these
 396      -           files is undocumented, and applications should not read from or
 397      -           write to them.
      400 +           Contains persistent storage for system-generated DUID (DHCP Unique
      401 +           Identifier) and interface-specific IAID (Identity Association
      402 +           Identifier) values which are used if no CLIENT_ID is defined (see
      403 +           below). The format of these files is undocumented, and applications
      404 +           should not read from or write to them.  Instead, dhcpinfo(1) can be
      405 +           used to query the dhcpagent for ClientID.  For DHCPv6 interfaces,
      406 +           the result will contain the DUID. For DHCPv4 interfaces with
      407 +           V4_DEFAULT_IAID_DUID enabled (see below), the result will contain
      408 +           the IAID and DUID.
 398  409  
 399  410  
 400  411         /etc/default/dhcpagent
 401  412  
 402  413             Contains default values for tunable parameters. All values may be
 403  414             qualified with the interface they apply to by prepending the
 404  415             interface name and a period (".") to the interface parameter name.
 405  416             The parameters include: the interface parameter name.
 406  417  
 407  418             To configure IPv6 parameters, place the string .v6 between the
↓ open down ↓ 12 lines elided ↑ open up ↑
 420  431                 lease in /etc/dhcp/interface.dhc or /etc/dhcp/interface.dh6 for
 421  432                 later use. In addition, when the link status changes to up or
 422  433                 when the system is resumed after a suspend, the client will
 423  434                 verify the lease with the server. If the server is unreachable
 424  435                 for verification, then the old lease will be discarded (even if
 425  436                 it has time remaining) and a new one obtained.
 426  437  
 427  438                 Enabling this option is often desirable on mobile systems, such
 428  439                 as laptops, to allow the system to recover quickly from moves.
 429  440  
      441 +               Default value of this option is no.
 430  442  
      443 +
 431  444             OFFER_WAIT
 432  445  
 433      -               Indicates how long to wait between checking for valid OFFERs
 434      -               after sending a DISCOVER. For DHCPv6, sets the time to wait
 435      -               between checking for valid Advertisements after sending a
 436      -               Solicit.
      446 +               Indicates how long to wait in seconds between checking for
      447 +               valid OFFERs after sending a DISCOVER. For DHCPv6, sets the
      448 +               time to wait between checking for valid Advertisements after
      449 +               sending a Solicit.
 437  450  
      451 +               Default value of this option is 3.
 438  452  
      453 +
 439  454             CLIENT_ID
 440  455  
 441  456                 Indicates the value that should be used to uniquely identify
 442  457                 the client to the server. This value can take one of three
 443  458                 basic forms:
 444  459  
 445  460                   decimal,data...
 446  461                   0xHHHHH...
 447  462                   "string...."
 448  463  
↓ open down ↓ 34 lines elided ↑ open up ↑
 483  498  
 484  499                     Any other type value (0 or 4-65535) can be used with an
 485  500                     even-length hexadecimal string.
 486  501  
 487  502                 The second and third forms of CLIENT_ID are legal for IPv4
 488  503                 only. These both represent raw Client ID (without RFC 4361), in
 489  504                 hex, or NVT ASCII string format. Thus, "Sun" and 0x53756E are
 490  505                 equivalent.
 491  506  
 492  507  
      508 +           V4_DEFAULT_IAID_DUID
      509 +
      510 +               Indicates whether to use, when CLIENT_ID is not defined, a
      511 +               system-managed, RFC 3315-style (i.e., DHCPv6-style) binding
      512 +               identifier as documented in RFC 4361, "Node-specific Client
      513 +               Identifiers for DHCPv4," for IPv4 interfaces which for purposes
      514 +               of backward compatibility do not normally get default binding
      515 +               identifiers.
      516 +
      517 +               An IPv4 interface that is not in an IP network multipathing
      518 +               (IPMP) group, that is not IP over InfiniBand (IPoIB), and that
      519 +               is not a logical interface does not normally get a default
      520 +               binding identifier.
      521 +
      522 +               Default value of this option is no.
      523 +
      524 +
 493  525             PARAM_REQUEST_LIST
 494  526  
 495  527                 Specifies a list of comma-separated integer values of options
 496  528                 for which the client would like values, or symbolic Site or
 497  529                 Option option names.  Symbolic option names for IPv4 are
 498  530                 resolved through /etc/dhcp/inittab.  Option names for IPv6 are
 499  531                 resolved by means of /etc/dhcp/inittab6.
 500  532  
 501  533  
 502  534             PARAM_IGNORE_LIST
 503  535  
 504  536                 Specifies a list of options (constructed in the same manner as
 505  537                 PARAM_REQUEST_LIST) that the DHCP client will ignore. Ignored
 506  538                 options are treated as though the server did not return the
 507  539                 options specified. Ignored options are not visible using
 508  540                 dhcpinfo(1) or acted on by the client. This parameter can be
 509  541                 used, for example, to disable an unwanted client name or
 510  542                 default router.
 511  543  
 512  544  
      545 +           REQUEST_FQDN
      546 +
      547 +               Indicates the client requests the DHCP server to map the
      548 +               client's leased IPv4 address to the Fully Qualified Domain Name
      549 +               (FQDN) associated with the network interface that performs DHCP
      550 +               on the client and to collaborate with a compatible DNS server
      551 +               to manage A and PTR resource records for the FQDN for the life
      552 +               of the lease.
      553 +
      554 +               The hostname in the FQDN is determined from the following
      555 +               possible configurations:
      556 +
      557 +               1.  ipadm(1M): include the -1,--primary flag when creating an
      558 +               address that uses DHCP so that nodename(4) is used as the
      559 +               hostname.
      560 +
      561 +               2.  ipadm(1M): include the -h,--reqhost hostname switch when
      562 +               executing the create-addr -T dhcp subcommand, or use the set-
      563 +               addrprop -p reqhost=hostname subcommand for any existing DHCP
      564 +               address.
      565 +
      566 +               3.  nwamcfg(1M): set a property, ip-primary=on, for an ncu ip
      567 +               that uses DHCP so that nodename(4) is used as the hostname.
      568 +
      569 +               4.  nwamcfg(1M): set a property, ip-reqhost=hostname, for an
      570 +               ncu ip that uses DHCP.
      571 +
      572 +               The hostname value is either a Partially Qualified Domain Name
      573 +               (PQDN) or an FQDN (i.e., a "rooted" domain name ending with a
      574 +               '.' or one inferred to be an FQDN if it contains at least three
      575 +               DNS labels such as srv.example.com).  If a PQDN is specified,
      576 +               then an FQDN is constructed if either a defaultdomain(4) or a
      577 +               resolv.conf(4) domain is defined.
      578 +
      579 +               If an FQDN is sent, REQUEST_HOSTNAME processing will not be
      580 +               done, per RFC 4702 (3.1):  "clients that send the Client FQDN
      581 +               option in their messages MUST NOT also send the Host Name."
      582 +
      583 +               Default value of this option is yes.
      584 +
      585 +
 513  586             REQUEST_HOSTNAME
 514  587  
 515  588                 Indicates the client requests the DHCP server to map the
 516  589                 client's leased IPv4 address to the host name associated with
 517  590                 the network interface that performs DHCP on the client. The
 518      -               host name must be specified in the /etc/hostname.interface file
 519      -               for the relevant interface on a line of the form
      591 +               host name must be specified as documented for a PQDN in
      592 +               REQUEST_FQDN above or specified in the /etc/hostname.interface
      593 +               file for the relevant interface on a line of the form
 520  594  
 521  595                   inet hostname
 522  596  
 523  597  
 524  598                 where hostname is the host name requested.
 525  599  
 526  600                 This option works with DHCPv4 only.
 527  601  
      602 +               Default value of this option is yes.
 528  603  
 529  604  
      605 +
 530  606         /etc/dhcp/eventhook
 531  607  
 532  608             Location of a DHCP event program.
 533  609  
 534  610  
 535  611  ATTRIBUTES
 536  612         See attributes(5) for descriptions of the following attributes:
 537  613  
 538  614  
 539  615  
 540  616  
 541  617         +--------------------+-----------------+
 542  618         |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
 543  619         +--------------------+-----------------+
 544  620         |Interface Stability | Committed       |
 545  621         +--------------------+-----------------+
 546  622  
 547  623  SEE ALSO
 548  624         dhcpinfo(1), ifconfig(1M), init(1M), in.mpathd(1M), in.ndpd(1M),
 549      -       syslog(3C), attributes(5), dhcp(5)
      625 +       ipadm(1M), nwamcfg(1M), syslog(3C), defaultdomain(4), nodename(4),
      626 +       resolv.conf(4), attributes(5), dhcp(5)
 550  627  
 551  628  
 552  629  
 553  630  
 554  631         Croft, B. and Gilmore, J.,Bootstrap Protocol (BOOTP)RFC 951, Network
 555  632         Working Group, September 1985.
 556  633  
 557  634  
 558  635         Droms, R., Dynamic Host Configuration Protocol, RFC 2131, Network
 559  636         Working Group, March 1997.
↓ open down ↓ 43 lines elided ↑ open up ↑
 603  680         detection and trigger an erroneous repair.
 604  681  
 605  682  
 606  683         With DHCPv6, the link-local interface must be configured using
 607  684         /etc/hostname6.hme0 in order for DHCPv6 to run on hme0 at boot time.
 608  685         The logical interfaces for each address are plumbed by dhcpagent
 609  686         automatically.
 610  687  
 611  688  
 612  689  
 613      -                               December 11, 2015                 DHCPAGENT(1M)
      690 +                               November 7, 2016                  DHCPAGENT(1M)
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX