1 DHCPAGENT(1M)                Maintenance Commands                DHCPAGENT(1M)
   2 
   3 
   4 
   5 NAME
   6        dhcpagent - Dynamic Host Configuration Protocol (DHCP) client daemon
   7 
   8 SYNOPSIS
   9        dhcpagent [-a] [ -d n] [-f] [-v]
  10 
  11 
  12 DESCRIPTION
  13        dhcpagent implements the client half of the Dynamic Host Configuration
  14        Protocol (DHCP) for machines running illumos software.
  15 
  16 
  17        The dhcpagent daemon obtains configuration parameters for the client
  18        (local) machine's network interfaces from a DHCP server. These
  19        parameters may include a lease on an IP address, which gives the client
  20        machine use of the address for the period of the lease, which may be
  21        infinite. If the client wishes to use the IP address for a period
  22        longer than the lease, it must negotiate an extension using DHCP. For
  23        this reason, dhcpagent must run as a daemon, terminating only when the
  24        client machine powers down.
  25 
  26 
  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.
  33 
  34 
  35        For IPv6, the dhcpagent daemon is invoked automatically by in.ndpd(1M).
  36        It can also be controlled through ifconfig(1M), if necessary.
  37 
  38 
  39        When invoked, dhcpagent enters a passive state while it awaits
  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.
  50 
  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 
  64        For IPv4, if the configured interface is found to be unplumbed, or to
  65        have a different IP address, subnet mask, or broadcast address from
  66        those obtained from DHCP, the interface is abandoned from DHCP control.
  67 
  68 
  69        For IPv6, dhcpagent automatically plumbs and unplumbs logical
  70        interfaces as necessary for the IPv6 addresses supplied by the server.
  71        The IPv6 prefix length (netmask) is not set by the DHCPv6 protocol, but
  72        is instead set by in.ndpd(1M) using prefix information obtained by
  73        Router Advertisements.  If any of the logical interfaces created by
  74        dhcpagent is unplumbed, or configured with a different IP address, it
  75        will be abandoned from DHCP control.  If the link-local interface is
  76        unplumbed, then all addresses configured by DHCP on that physical
  77        interface will be removed.
  78 
  79 
  80        In addition to DHCP, dhcpagent also supports BOOTP (IPv4 only). See RFC
  81        951, Bootstrap Protocol. Configuration parameters obtained from a BOOTP
  82        server are treated identically to those received from a DHCP server,
  83        except that the IP address received from a BOOTP server always has an
  84        infinite lease.
  85 
  86 
  87        DHCP also acts as a mechanism to configure other information needed by
  88        the client, for example, the domain name and addresses of routers.
  89        Aside from the IP address, and for IPv4 alone, the netmask, broadcast
  90        address, and default router, the agent does not directly configure the
  91        workstation, but instead acts as a database which may be interrogated
  92        by other programs, and in particular by dhcpinfo(1).
  93 
  94 
  95        On clients with a single interface, this is quite straightforward.
  96        Clients with multiple interfaces may present difficulties, as it is
  97        possible that some information arriving on different interfaces may
  98        need to be merged, or may be inconsistent. Furthermore, the
  99        configuration of the interfaces is asynchronous, so requests may arrive
 100        while some or all of the interfaces are still unconfigured. To handle
 101        these cases, one interface may be designated as primary, which makes it
 102        the authoritative source for the values of DHCP parameters in the case
 103        where no specific interface is requested. See dhcpinfo(1) and
 104        ifconfig(1M) for details.
 105 
 106 
 107        For IPv4, the dhcpagent daemon can be configured to request a
 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
 112        negotiation takes place:
 113 
 114          # pkill dhcpagent
 115          # rm /etc/dhcp/interface.dhc
 116          # reboot
 117 
 118 
 119 
 120 
 121        All DHCP packets sent by dhcpagent include a vendor class identifier
 122        (RFC 2132, option code 60; RFC 3315, option code 16). This identifier
 123        is the same as the platform name returned by the uname -i command,
 124        except:
 125 
 126            o      Any commas in the platform name are changed to periods.
 127 
 128            o      If the name does not start with a stock symbol and a comma,
 129                   it is automatically prefixed with SUNW.
 130 
 131    Messages
 132        The dhcpagent daemon writes information and error messages in five
 133        categories:
 134 
 135        critical
 136 
 137            Critical messages indicate severe conditions that prevent proper
 138            operation.
 139 
 140 
 141        errors
 142 
 143            Error messages are important, sometimes unrecoverable events due to
 144            resource exhaustion and other unexpected failure of system calls;
 145            ignoring errors may lead to degraded functionality.
 146 
 147 
 148        warnings
 149 
 150            Warnings indicate less severe problems, and in most cases, describe
 151            unusual or incorrect datagrams received from servers, or requests
 152            for service that cannot be provided.
 153 
 154 
 155        informational
 156 
 157            Informational messages provide key pieces of information that can
 158            be useful to debugging a DHCP configuration at a site.
 159            Informational messages are generally controlled by the -v option.
 160            However, certain critical pieces of information, such as the IP
 161            address obtained, are always provided.
 162 
 163 
 164        debug
 165 
 166            Debugging messages, which may be generated at two different levels
 167            of verbosity, are chiefly of benefit to persons having access to
 168            source code, but may be useful as well in debugging difficult DHCP
 169            configuration problems.  Debugging messages are only generated when
 170            using the -d option.
 171 
 172 
 173 
 174        When dhcpagent is run without the -f option, all messages are sent to
 175        the system logger syslog(3C) at the appropriate matching priority and
 176        with a facility identifier LOG_DAEMON. When dhcpagent is run with the
 177        -f option, all messages are directed to standard error.
 178 
 179    DHCP Events and User-Defined Actions
 180        If an executable (binary or script) is placed at /etc/dhcp/eventhook,
 181        the dhcpagent daemon will automatically run that program when any of
 182        the following events occur:
 183 
 184        BOUND and BOUND6
 185 
 186            These events occur during interface configuration. The event
 187            program is invoked when dhcpagent receives the DHCPv4 ACK or DHCPv6
 188            Reply message from the DHCP server for the lease request of an
 189            address, indicating successful initial configuration of the
 190            interface. (See also the INFORM and INFORM6 events, which occur
 191            when configuration parameters are obtained without address leases.)
 192 
 193 
 194        EXTEND and EXTEND6
 195 
 196            These events occur during lease extension. The event program is
 197            invoked just after dhcpagent receives the DHCPv4 ACK or DHCPv6
 198            Reply from the DHCP server for the DHCPv4 REQUEST (renew) message
 199            or the DHCPv6 Renew or Rebind message.
 200 
 201            Note that with DHCPv6, the server might choose to remove some
 202            addresses, add new address leases, and ignore (allow to expire)
 203            still other addresses in a given Reply message. The EXTEND6 event
 204            occurs when a Reply is received that leaves one or more address
 205            leases still valid, even if the Reply message does not extend the
 206            lease for any address. The event program is invoked just before any
 207            addresses are removed, but just after any new addresses are added.
 208            Those to be removed will be marked with the IFF_DEPRECATED flag.
 209 
 210 
 211        EXPIRE and EXPIRE6
 212 
 213            These events occur during lease expiration. For DHCPv4, the event
 214            program is invoked just before the leased address is removed from
 215            an interface. For DHCPv6, the event program is invoked just before
 216            the last remaining leased addresses are removed from the interface.
 217 
 218 
 219        DROP and DROP6
 220 
 221            These events occur during the period when an interface is dropped.
 222            The event program is invoked just before the interface is removed
 223            from DHCP control. If the interface has been abandoned due the user
 224            unplumbing the interface, then this event will occur after the
 225            user's action has taken place. The interface might not be present.
 226 
 227 
 228        INFORM and INFORM6
 229 
 230            These events occur when an interface acquires new or updated
 231            configuration information from a DHCP server by means of the DHCPv4
 232            INFORM or the DHCPv6 Information-Request message. These messages
 233            are sent using an ifconfig(1M) dhcp inform command or when the
 234            DHCPv6 Router Advertisement O (letter 0) bit is set and the M bit
 235            is not set.  Thus, these events occur when the DHCP client does not
 236            obtain an IP address lease from the server, and instead obtains
 237            only configuration parameters.
 238 
 239 
 240        LOSS6
 241 
 242            This event occurs during lease expiration when one or more valid
 243            leases still remain. The event program is invoked just before
 244            expired addresses are removed.  Those being removed will be marked
 245            with the IFF_DEPRECATED flag.
 246 
 247            Note that this event is not associated with the receipt of the
 248            Reply message, which occurs only when one or more valid leases
 249            remain, and occurs only with DHCPv6. If all leases have expired,
 250            then the EXPIRE6 event occurs instead.
 251 
 252 
 253        RELEASE and RELEASE6
 254 
 255            This event occurs during the period when a leased address is
 256            released. The event program is invoked just before dhcpagent
 257            relinquishes the address on an interface and sends the DHCPv4
 258            RELEASE or DHCPv6 Release packet to the DHCP server.
 259 
 260 
 261 
 262        The system does not provide a default event program. The file
 263        /etc/dhcp/eventhook is expected to be owned by root and have a mode of
 264        755.
 265 
 266 
 267        The event program will be passed two arguments, the interface name and
 268        the event name, respectively. For DHCPv6, the interface name is the
 269        name of the physical interface.
 270 
 271 
 272        The event program can use the dhcpinfo(1) utility to fetch additional
 273        information about the interface. While the event program is invoked on
 274        every event defined above, it can ignore those events in which it is
 275        not interested.  The event program runs with the same privileges and
 276        environment as dhcpagent itself, except that stdin, stdout, and stderr
 277        are redirected to /dev/null. Note that this means that the event
 278        program runs with root privileges.
 279 
 280 
 281        If an invocation of the event program does not exit after 55 seconds,
 282        it is sent a SIGTERM signal. If does not exit within the next three
 283        seconds, it is terminated by a SIGKILL signal.
 284 
 285 
 286        See EXAMPLES for an example event program.
 287 
 288 OPTIONS
 289        The following options are supported:
 290 
 291        -a
 292 
 293            Adopt a configured IPv4 interface. This option is for use with
 294            diskless DHCP clients. In the case of diskless DHCP, DHCP has
 295            already been performed on the network interface providing the
 296            operating system image prior to running dhcpagent. This option
 297            instructs the agent to take over control of the interface. It is
 298            intended primarily for use in boot scripts.
 299 
 300            The effect of this option depends on whether the interface is being
 301            adopted.
 302 
 303            If the interface is being adopted, the following conditions apply:
 304 
 305            dhcpagent uses the client id specified in /chosen:<client_id>, as
 306            published by the PROM or as specified on a boot(1M) command line.
 307            If this value is not present, the client id is undefined. The DHCP
 308            server then determines what to use as a client id. It is an error
 309            condition if the interface is an Infiniband interface and the PROM
 310            value is not present.
 311 
 312            If the interface is not being adopted:
 313 
 314            dhcpagent uses the value stored in /etc/default/dhcpagent. If this
 315            value is not present, the client id is undefined. If the interface
 316            is Infiniband and there is no value in /etc/default/dhcpagent, a
 317            client id is generated as described by the draft document on DHCP
 318            over Infiniband, available at:
 319 
 320              http://www.ietf.org
 321 
 322 
 323 
 324        -d n
 325 
 326            Set debug level to n. Two levels of debugging are currently
 327            available, 1 and 2; the latter is more verbose.
 328 
 329 
 330        -f
 331 
 332            Run in the foreground instead of as a daemon process. When this
 333            option is used, messages are sent to standard error instead of to
 334            syslog(3C).
 335 
 336 
 337        -v
 338 
 339            Provide verbose output useful for debugging site configuration
 340            problems.
 341 
 342 
 343 EXAMPLES
 344        Example 1 Example Event Program
 345 
 346 
 347        The following script is stored in the file /etc/dhcp/eventhook, owned
 348        by root with a mode of 755. It is invoked upon the occurrence of the
 349        events listed in the file.
 350 
 351 
 352          #!/bin/sh
 353 
 354          (
 355          echo "Interface name: " $1
 356          echo "Event: " $2
 357 
 358          case $2 in
 359          "BOUND")
 360               echo "Address acquired from server "\
 361                   `/sbin/dhcpinfo -i $1 ServerID`
 362               ;;
 363          "BOUND6")
 364               echo "Addresses acquired from server " \
 365                   `/sbin/dhcpinfo -v6 -i $1 ServerID`
 366               ;;
 367          "EXTEND")
 368              echo "Lease extended for " \
 369                   `/sbin/dhcpinfo -i $1 LeaseTim`" seconds"
 370               ;;
 371          "EXTEND6")
 372              echo "New lease information obtained on $i"
 373               ;;
 374          "EXPIRE" | "DROP" | "RELEASE")
 375               ;;
 376 
 377          esac
 378          ) >/var/run/dhcp_eventhook_output 2>&1
 379 
 380 
 381 
 382 
 383        Note the redirection of stdout and stderr to a file.
 384 
 385 
 386 FILES
 387        /etc/dhcp/if.dhc
 388        /etc/dhcp/if.dh6
 389 
 390            Contains the configuration for interface. The mere existence of
 391            this file does not imply that the configuration is correct, since
 392            the lease might have expired. On start-up, dhcpagent confirms the
 393            validity of the address using REQUEST (for DHCPv4) or Confirm
 394            (DHCPv6).
 395 
 396 
 397        /etc/dhcp/duid
 398        /etc/dhcp/iaid
 399 
 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.
 409 
 410 
 411        /etc/default/dhcpagent
 412 
 413            Contains default values for tunable parameters. All values may be
 414            qualified with the interface they apply to by prepending the
 415            interface name and a period (".") to the interface parameter name.
 416            The parameters include: the interface parameter name.
 417 
 418            To configure IPv6 parameters, place the string .v6 between the
 419            interface name (if any) and the parameter name. For example, to set
 420            the global IPv6 parameter request list, use .v6.PARAM_REQUEST_LIST.
 421            To set the CLIENT_ID (DUID) on hme0, use hme0.v6.CLIENT_ID.
 422 
 423            The parameters include:
 424 
 425            VERIFIED_LEASE_ONLY
 426 
 427                Indicates that a RELEASE rather than a DROP should be performed
 428                on managed interfaces when the agent terminates. Release causes
 429                the client to discard the lease, and the server to make the
 430                address available again. Drop causes the client to record the
 431                lease in /etc/dhcp/interface.dhc or /etc/dhcp/interface.dh6 for
 432                later use. In addition, when the link status changes to up or
 433                when the system is resumed after a suspend, the client will
 434                verify the lease with the server. If the server is unreachable
 435                for verification, then the old lease will be discarded (even if
 436                it has time remaining) and a new one obtained.
 437 
 438                Enabling this option is often desirable on mobile systems, such
 439                as laptops, to allow the system to recover quickly from moves.
 440 
 441                Default value of this option is no.
 442 
 443 
 444            OFFER_WAIT
 445 
 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.
 450 
 451                Default value of this option is 3.
 452 
 453 
 454            CLIENT_ID
 455 
 456                Indicates the value that should be used to uniquely identify
 457                the client to the server. This value can take one of three
 458                basic forms:
 459 
 460                  decimal,data...
 461                  0xHHHHH...
 462                  "string...."
 463 
 464 
 465                The first form is an RFC 3315 DUID. This is legal for both IPv4
 466                DHCP and DHCPv6. For IPv4, an RFC 4361 Client ID is constructed
 467                from this value. In this first form, the format of data...
 468                depends on the decimal value. The following formats are defined
 469                for this first form:
 470 
 471                1,hwtype,time,lla
 472 
 473                    Type 1, DUID-LLT. The hwtype value is an integer in the
 474                    range 0-65535, and indicates the type of hardware. The time
 475                    value is the number of seconds since midnight, January 1st,
 476                    2000 UTC, and can be omitted to use the current system
 477                    time. The lla value is either a colon-separated MAC address
 478                    or the name of a physical interface. If the name of an
 479                    interface is used, the hwtype value can be omitted. For
 480                    example: 1,,,hme0
 481 
 482 
 483                2,enterprise,hex...
 484 
 485                    Type 2, DUID-EN. The enterprise value is an integer in the
 486                    range 0-4294967295 and represents the SMI Enterprise number
 487                    for an organization. The hex string is an even-length
 488                    sequence of hexadecimal digits.
 489 
 490 
 491                3,hwtype,lla
 492 
 493                    Type 3, DUID-LL. This is the same as DUID-LLT (type 1),
 494                    except that a time stamp is not used.
 495 
 496 
 497                *,hex
 498 
 499                    Any other type value (0 or 4-65535) can be used with an
 500                    even-length hexadecimal string.
 501 
 502                The second and third forms of CLIENT_ID are legal for IPv4
 503                only. These both represent raw Client ID (without RFC 4361), in
 504                hex, or NVT ASCII string format. Thus, "Sun" and 0x53756E are
 505                equivalent.
 506 
 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 
 525            PARAM_REQUEST_LIST
 526 
 527                Specifies a list of comma-separated integer values of options
 528                for which the client would like values, or symbolic Site or
 529                Option option names.  Symbolic option names for IPv4 are
 530                resolved through /etc/dhcp/inittab.  Option names for IPv6 are
 531                resolved by means of /etc/dhcp/inittab6.
 532 
 533 
 534            PARAM_IGNORE_LIST
 535 
 536                Specifies a list of options (constructed in the same manner as
 537                PARAM_REQUEST_LIST) that the DHCP client will ignore. Ignored
 538                options are treated as though the server did not return the
 539                options specified. Ignored options are not visible using
 540                dhcpinfo(1) or acted on by the client. This parameter can be
 541                used, for example, to disable an unwanted client name or
 542                default router.
 543 
 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 DNS_DOMAINNAME is defined or if
 577                ADOPT_DOMAINNAME is set to yes and an eligible domain name (as
 578                described below) is available.
 579 
 580                If an FQDN is sent, REQUEST_HOSTNAME processing will not be
 581                done, per RFC 4702 (3.1):  "clients that send the Client FQDN
 582                option in their messages MUST NOT also send the Host Name."
 583 
 584                Default value of this option is yes.
 585 
 586 
 587            DNS_DOMAINNAME
 588 
 589                Indicates the value that should be appended to a PQDN specified
 590                by the -h,--reqhost option of ipadm(1M), by the ncu ip-reqhost
 591                property of nwamcfg(1M), or by nodename(4) to construct an FQDN
 592                for REQUEST_FQDN processing.  If the hostname value is already
 593                an FQDN, then the value of this option is not used.
 594 
 595 
 596            ADOPT_DOMAINNAME
 597 
 598                Indicates that a domain name returned by the DHCP server or the
 599                domain from resolv.conf(4) should be adopted if needed to
 600                construct an FQDN from a PQDN specified by the -h,--reqhost
 601                option of ipadm(1M), by the ncu ip-reqhost property of
 602                nwamcfg(1M), or by nodename(4).  If the hostname value is
 603                already an FQDN, then the value of this option is not
 604                applicable.  The eligible DHCP option for domain name is DHCPv4
 605                DNSdmain.
 606 
 607                Default value of this option is no.
 608 
 609 
 610            REQUEST_HOSTNAME
 611 
 612                Indicates the client requests the DHCP server to map the
 613                client's leased IPv4 address to the host name associated with
 614                the network interface that performs DHCP on the client. The
 615                host name must be specified as documented for a PQDN in
 616                REQUEST_FQDN above or specified in the /etc/hostname.interface
 617                file for the relevant interface on a line of the form
 618 
 619                  inet hostname
 620 
 621 
 622                where hostname is the host name requested.
 623 
 624                This option works with DHCPv4 only.
 625 
 626                Default value of this option is yes.
 627 
 628 
 629 
 630        /etc/dhcp/eventhook
 631 
 632            Location of a DHCP event program.
 633 
 634 
 635 ATTRIBUTES
 636        See attributes(5) for descriptions of the following attributes:
 637 
 638 
 639 
 640 
 641        +--------------------+-----------------+
 642        |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
 643        +--------------------+-----------------+
 644        |Interface Stability | Committed       |
 645        +--------------------+-----------------+
 646 
 647 SEE ALSO
 648        dhcpinfo(1), ifconfig(1M), init(1M), in.mpathd(1M), in.ndpd(1M),
 649        ipadm(1M), nwamcfg(1M), syslog(3C), nodename(4), resolv.conf(4),
 650        attributes(5), dhcp(5)
 651 
 652 
 653 
 654 
 655        Croft, B. and Gilmore, J. RFC 951, Bootstrap Protocol (BOOTP), Network
 656        Working Group, September 1985.
 657 
 658 
 659        Droms, R. RFC 2131, Dynamic Host Configuration Protocol, Network
 660        Working Group, March 1997.
 661 
 662 
 663        Lemon, T. and B. Sommerfeld. RFC 4361, Node-specific Client Identifiers
 664        for Dynamic Host Configuration Protocol Version Four (DHCPv4). Nominum
 665        and Sun Microsystems. February 2006.
 666 
 667 
 668        Droms, R. RFC 3315, Dynamic Host Configuration Protocol for IPv6
 669        (DHCPv6). Cisco Systems. July 2003.
 670 
 671 NOTES
 672        The dhcpagent daemon can be used on IPv4 logical interfaces, just as
 673        with physical interfaces. When used on a logical interface, the daemon
 674        automatically constructs a Client ID value based on the DUID and IAID
 675        values, according to RFC 4361. The  /etc/default/dhcpagent CLIENT_ID
 676        value, if any, overrides this automatic identifier.
 677 
 678 
 679        As with physical IPv4 interfaces, the /etc/hostname.hme0:1 and
 680        /etc/dhcp.hme0:1 files must also be created in order for hme0:1 to be
 681        automatically plumbed and configured at boot. In addition, unlike
 682        physical IPv4 interfaces, dhcpagent does not add or remove default
 683        routes associated with logical interfaces.
 684 
 685 
 686        DHCP can be performed on IPMP IP interfaces to acquire and maintain
 687        IPMP data addresses. Because an IPMP IP interface has no hardware
 688        address, the daemon automatically constructs a Client ID using the same
 689        approach described above for IPv4 logical interfaces. In addition, the
 690        lack of a hardware address means the daemon must set the "broadcast"
 691        flag in all DISCOVER and REQUEST messages on IPMP IP interfaces. Some
 692        DHCP servers may refuse such requests.
 693 
 694 
 695        DHCP can be performed on IP interfaces that are part of an IPMP group
 696        (to acquire and maintain test addresses). The daemon will automatically
 697        set the NOFAILOVER and DEPRECATED flags on each test address.
 698        Additionally, the daemon will not add or remove default routes in this
 699        case. Note that the actual DHCP packet exchange may be performed over
 700        any active IP interface in the IPMP group. It is strongly recommended
 701        that test addresses have infinite leases. Otherwise, an extended
 702        network outage detectable only by probes may cause test address leases
 703        to expire, causing in.mpathd(1M) to revert to link-based failure
 704        detection and trigger an erroneous repair.
 705 
 706 
 707        With DHCPv6, the link-local interface must be configured using
 708        /etc/hostname6.hme0 in order for DHCPv6 to run on hme0 at boot time.
 709        The logical interfaces for each address are plumbed by dhcpagent
 710        automatically.
 711 
 712 
 713 
 714                                February 13, 2020                 DHCPAGENT(1M)