DHCPINFORM via a relay agent

Kan Sasaki sasaki at fcc.ad.jp
Sat Aug 19 10:59:30 UTC 2006


Hi lists,

I'm using the ISC dhcp server on FreeBSD. Clients are MS Windows 2000
and XP. My question is about the server response to a DHCPINFORM
message via a relay agent.

A DHCPINFORM message via a relay agent has giaddr. I've captured
packets on both server and client side. I found that the server reply
to giaddr not ciaddr if the message has giaddr. When relay agent
receives a DHCPACK from a server, it relays the message to yiaddr. The
ISC dhcrelay is so. So that client never receive the DHCPACK because
yiaddr in the message is 0.

I've checked RFC2131 and there was a following:

    4.3.5 DHCPINFORM message

       The server responds to a DHCPINFORM message by sending a DHCPACK
       message directly to the address given in the 'ciaddr' field of the
       DHCPINFORM message.  The server MUST NOT send a lease expiration time
       to the client and SHOULD NOT fill in 'yiaddr'.  The server includes
       other parameters in the DHCPACK message as defined in section 4.3.1.

Also, I've checked the source code and found that dhcpinform() sends
packet to giaddr if a DHCPINFORM message has giaddr.

The RFC also says a following:

    4.4.3 Initialization with an externally assigned network address
    (snip)
       The client then unicasts the DHCPINFORM to the DHCP server if it
       knows the server's address, otherwise it broadcasts the message to
       the limited (all 1s) broadcast address.  DHCPINFORM messages MUST be
       directed to the 'DHCP server' UDP port.

When I captured packets on client side, the client broadcasted a
DHCPINFORM message though it knew the server address.

I'm confused. Which is wrong? Is this a bug or a configuration issue?

Thanks,

-- 
Fusion Communications Corp.
Kan Sasaki  sasaki at fcc.ad.jp


More information about the dhcp-users mailing list