Subject: [dhcwg] Confusion on RFC 3011 subnet selection option

From: "Matt Frick" <[email-masked]>
Date: Fri, 01 Feb 2002 15:50:15 -0800

After re-reading RFC 3011 many times, I'm still a bit confused, and
hopefully there are some talented indivuals out there on the email list
that can help me out.

From what I understand, (other than the obvious subnet-related parts)
the subnet selection option overrides the current usage of giaddr which
is used by relay agents to specify:
1) the address to which the server is to send it's reply, and
2) the subnet from which to allocate the address.
It seems that the option is designed to be used / necessary only when a
relay agent needs the server to reply to an address on a subnet that is
different than the subnet on which the address should be allocated,
since

        "in all packets that the DHCP client sends that contain the
subnet
        selection option, the giaddr field in the BOOTP header MUST be
        set to an IPv4 address on which the DHCP client will accept
        DHCP packets. (e.g.: the address on the subnet connected
        to the internal network)." [RFC 3011, page 4]

Since the RAS device in the motivational example is connected to the
internal network on which the DHCP server is located, does that mean
that the RAS device is the "client" in the above quote?  If it is, then
that would explain why it has an address on which it can receive DHCP
packets to put in the giaddr when sending a discover or request (ie.
when it's not bound) -- perhaps the address sent in the giaddr field is
not a DHCP obtained address, but a statically defined address on the
internal network.

Can this option be sent by a end client (host) directly to a server, or
must it pass through a relay agent?  The reason it seems likely that a
relay agent is required, is that when the giaddr is nonzero, the server
will repond to the server port, not the client port:

       "The server SHOULD next check the 'giaddr' field.  If this field
is
        non-zero, the server SHOULD send the BOOTREPLY as an IP unicast
        to the IP address identified in the 'giaddr' field.  The UDP
        destination port MUST be set to BOOTPS (67)." [RFC 1542, page
20]

especially since:

        "This option does not require changes to operations or features
of the
        DHCP server other than to select the subnet on which to allocate
on
        address." [RFC 3011, page 3]

So, I guess the big mystery (atleast for me,) is this: can an end client
send a subnet selection option?  When the client doesn't have a binding
(and it's sending a subnet selection option,) can / should the giaddr be
set to zero?
Or, is this option reserved for situations more complicated than a
simple scenario where a DHCP server has several subnets and a directly
connected client wants to request an address on a specific subnet?

Thanks for reading this far, hopefully this RFC can be clarified.
-Matt Frick

_______________________________________________
dhcwg mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/dhcwg