4

A DHCP request from multiple hosts can be differentiated using the source MAC address. So, why is the DHCP client ID needed to differentiate the DHCP request?

I understand that they need some IP address because DHCP works on Application layer. So, that IP address can be 255.255.255.255 for the destination. For the DHCP client the source IP will be 0.0.0.0. However, the request can be differentiated easily with the MAC address. Thus, they really don't need DHCP client ID?

3
  • I'm not sure to what ID you are referring. There is a "Transaction ID, a random number chosen by the client, used by the client and server to associate messages and responses between a client and a server," but there is nothing called a "Client ID" that is a required part of a DHCP packet.
    – Ron Maupin
    Jul 22, 2018 at 23:02
  • Also, not every LAN protocol uses MAC addresses; only the IEEE protocols do, and some of those use 48-bit MAC addresses, and some of those use 64-bit MAC addresses.
    – Ron Maupin
    Jul 22, 2018 at 23:07
  • 1
    Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you can provide and accept your own answer.
    – Ron Maupin
    Dec 25, 2018 at 9:06

2 Answers 2

5
   DHCP defines a new 'client identifier' option that is used to pass an
   explicit client identifier to a DHCP server.  This change eliminates
   the overloading of the 'chaddr' field in BOOTP messages, where
   'chaddr' is used both as a hardware address for transmission of BOOTP
   reply messages and as a client identifier.  The 'client identifier'
   is an opaque key, not to be interpreted by the server; for example,
   the 'client identifier' may contain a hardware address, identical to
   the contents of the 'chaddr' field, or it may contain another type of
   identifier, such as a DNS name.  The 'client identifier' chosen by a
   DHCP client MUST be unique to that client within the subnet to which
   the client is attached. If the client uses a 'client identifier' in
   one message, it MUST use that same identifier in all subsequent
   messages, to ensure that all servers correctly identify the client.

RFC 2131

It allows the client to specify something other than a MAC.

RFC 2132, section 9.14 defines the Client-Identifier option.

0
1

In my opinion, this is absolutely mandatory to support DHCP relaying. In DHCP relaying, the src IP and destination IP's are changed. Also, the source and destination mac address. So, on receiving the dhcp messages from the dhcp server, the relay interface can't keep a track of the mac address. In fact, it will just forward the packet to broadcast IP with no accurate destination mac -address. With the help of client ID, the DHCP client can understand whether the packet is meant for them or not.

3
  • 2
    Client-ID (option 61) is not required, even for relay. You are incorrectly assuming the MAC of the container (ethernet packet) is used by the DHCP server. It isn't. chaddr -- client hardware address -- is used, which is part of the DHCP (and BOOTP) PDU. This should be the interface MAC for an ethernet interface, but technically, the client can fill it in with whatever it wants. (yes, that can cause problems for relaying)
    – Ricky
    Jul 23, 2018 at 7:31
  • And this is also not how DHCP relay work. The relay will sent a unicast packet to the configured, well known, DHCP server, and this packet contains in the payload the required info.
    – JFL
    Jul 23, 2018 at 7:38
  • I will suggest you to read the CCENT/CCNA ICND1 book and there it clearly mention that the Src IP and destination IP is changed by the DHCP relay agent. Basically, the packet source becomes the relay interface IP address and destination IP address becomes DHCP server. Also, note that the packets are accepted by any device if the mac address matches. Thus, it is essential to put the correct mac address. There are exceptions like broadcast mac address though. Jul 23, 2018 at 21:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.