DHCPINFORM via a relay agent
sasaki at fcc.ad.jp
Sat Aug 19 10:59:30 UTC 2006
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
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?
Fusion Communications Corp.
Kan Sasaki sasaki at fcc.ad.jp
More information about the dhcp-users