questions about (system) dhclient

Dave Duchscher daved at tamu.edu
Tue Apr 1 14:48:07 UTC 2014


On Apr 1, 2014, at 7:48 AM, Rick Miller <vmiller at hostileadmin.com> wrote:

> On Mon, Mar 31, 2014 at 4:31 PM, Robert Huff <roberthuff at rcn.com> wrote:
> 
>>        [Please keep me CC'd as I am not subscribed.  Thanks.]
>> 
>>        I have a system, running r263263, where dhclient is misbehaving.
>> (Yes - this is CURRENT, but I have no reason to believe this inherently a
>> version-specific issue.  I am also on current@, and nothing like this has
>> been reported.)
>>        The system has an Intel Pro/1000 ethernet card, "em0", connected
>> to a Arris CM820 cable modem.
>>        This is the relevant portion of dhclient.conf:
>> 
>> http://users.rcn.com/dhclient.conf
>> 
>>        Upon execution, I get this:
>> 
>> http://users.rcn.com/roberthuff/dhcp_offer
> 
> 
> The conversation between a DHCP server and client consists of the initial
> DHCP DISCOVER request from the client broadcasted to the network to which a
> DHCP ACK is expected in reply from an available DHCP server.  Upon receipt
> of DHCP ACK, the client sends another DHCP DISCOVER to the server asking
> for configuration information necessary to initialize networking.  The
> server's response is a DHCP OFFER containing all the information requested
> by the client.
> 
> I illustrate this in a sequence diagram describing a PXE workflow for
> FreeBSD installation at
> http://hostileadmin.com/images/FreeBSD_PXE_Install_Workflow.gif.  The first
> four steps in the sequence is the workflow's first DHCP conversation.


The description of the DHCP packet flow is incorrect. DHCP packet flow
is the following for clients requesting a new lease. Diagram below
copied from RFC 2131. For clients renewing a lease, only the REQUEST and
ACK steps are done.

                Server          Client          Server
            (not selected)                    (selected)

                  v               v               v
                  |               |               |
                  |     Begins initialization     |
                  |               |               |
                  | _____________/|\____________  |
                  |/DHCPDISCOVER | DHCPDISCOVER  \|
                  |               |               |
              Determines          |          Determines
             configuration        |         configuration
                  |               |               |
                  |\             |  ____________/ |
                  | \________    | /DHCPOFFER     |
                  | DHCPOFFER\   |/               |
                  |           \  |                |
                  |       Collects replies        |
                  |             \|                |
                  |     Selects configuration     |
                  |               |               |
                  | _____________/|\____________  |
                  |/ DHCPREQUEST  |  DHCPREQUEST\ |
                  |               |               |
                  |               |     Commits configuration
                  |               |               |
                  |               | _____________/|
                  |               |/ DHCPACK      |
                  |               |               |
                  |    Initialization complete    |
                  |               |               |
                  .               .               .
                  .               .               .
                  |               |               |
                  |      Graceful shutdown        |
                  |               |               |
                  |               |\ ____________ |
                  |               | DHCPRELEASE  \|
                  |               |               |
                  |               |        Discards lease
                  |               |               |
                  v               v               v
     Figure 3: Timeline diagram of messages exchanged between DHCP
               client and servers when allocating a new network address

--
DaveD




More information about the freebsd-net mailing list