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

From: "Glenn Waters"<[email-masked]>
Date: Tue, 5 Feb 2002 10:01:33 -0500

Comments inline...

-----Original Message-----
From: Matt Frick [mailto:[email-masked]] 
Sent: Monday, February 04, 2002 16:20
To: Waters, Glenn [CAR:IO47:EXCH]
Cc: [email-masked]
Subject: Re: [dhcwg] Confusion on RFC 3011 subnet selection option

In the case where a server is serving addresses from multiple logical
subnets on the same network segment, how does the server know which
subnet the DHCP client is sending the DHCP discover/request out on when
it's broadcast to all 1s?

</gww> 
The server knows which subnet the discover/request are sent on by either
receiving the packet on a directly connected subnet or by the giaddr. 
<gww/>

It seems like this would be the most appropriate option for selecting
the subnet in the above scenario, but requiring the giaddr to be set
prevents it from being usable in the above scenario.  Is there any way
it could have been written so that the option would work directly from a
DHCP client to a DHCP server such as the above scenario?  It seems like
requiring the giaddr is only useful when there's no routing between the
two interfaces, but by forcing it to be required, doesn't that make this
option only usable in that specific circumstance?

</gww> 
The subnet selection option is NOT specifically designed for a client to
select its own subnet. It is designed for devices that act on behalf of
other clients (DHCP or otherwise).
<gww/>

-Matt Frick

Glenn Waters wrote:

>
>
> This option is intended for use by a device that is requesting address
> on behalf of another device. The word client in this case implies that
> you already have an IP address (static or dynamic).
>
> This option is not intended to allocate an address on a specific
> subnet on devices that are connected to multiple subnets. The correct
> way to allocate an address on a specific subnet is to send the DHCP
> request out on the subnet for which you wish to have an address
> allocated.
>
> /gww
>
> -----Original Message-----
> From: Matt Frick [mailto:[email-masked]]
> Sent: Friday, February 01, 2002 18:50
> To: [email-masked]
> Subject: [dhcwg] Confusion on RFC 3011 subnet selection option
>
> 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

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

---

From: Ted Lemon <[email-masked]>
Date: Tue, 5 Feb 2002 10:00:37 -0600

Glenn, I'd just like to point out that DHCP packets are never sent on 
subnets.   They are sent on links.   Normally we can get away with 
confusing subnets for links, but in the case of DHCP, it winds up creating 
a great deal of confusion.   A DHCP server cannot tell on what subnet a 
client's broadcast was sent - all it can tell is on what link a client's 
broadcast was sent.

So unfortunately there is a natural opportunity to become confused about 
what the subnet selection option does, which I believe is what happened 
here.   I hate to suggest updating anyhting that's made it to RFC when we 
have so much other work that's still pending, but it might be worth adding 
some clarification about this.

---

From: "Matt Frick" <[email-masked]>
Date: Tue, 05 Feb 2002 17:18:47 -0800

OK, one more question (or two,) and I'll stop bothering everyone.   ;^)
Does "requesting an address on behalf of another device" mean that it's
acting as a relay agent, or that it's doing something like obtaining the
leases for itself to put in it's available address pool to re-lease to
it's clients?  Basically, can a relay agent add this option when it
realizes that the address that would normally go into the giaddr field
cannot be routed to by the DHCP server?

-Matt Frick

---

From: Jitesh N Verma <[email-masked]>
Date: Wed, 6 Feb 2002 11:18:12 +0530 (IST)

Hi all,
	I read the RFC3011 at least 10 times to understand what is written
in the document. After so much of effort I did understand the situation
the RFC is meant for. But I was not 100% sure either. Because I had to assume
several undocumented things to understand.
	The point I want to raise is why to write RFC documents in such 
a cryptic/mystic langauge. Why can't the author give an example of the
scenario in which the document is applicable. What is the point in coming
out with a standard document if normal user can't understand it?
	The usage of giaddr field has already created lot of confusion in
DHCP circle in the past. The complicated topics must be explained properly.
Nothing should be left for implementor's assumption. I am not asking for
writting whole story. But, at least a hint or guideline should be given. 
	I hope the author of the RFC3011 updates it. If it is not updated,
the working group will be getting several such mails from new users
and implementors.

Cheers,
Jitesh

-- 
-----------------------------------------------------------------------

    ~                                                             ~
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
^ Jitesh N. Verma                     Tel. 91-80-225 1554 Ext. 1424   ^
^ HEWLETT PACKARD                     Fax. 91-80-220 0196             ^
^ INDIA SOFTWARE OPERATIONS         Email. [email-masked]        ^
^ 29, CUNNINGHAM ROAD               Pager. 9624-263608                ^
^ BANGALORE 560 052        __      Telnet. 847-1424                   ^
^                         / /                                         ^
^                        / /___ _____                                 ^
^                       / __  // __  /                                ^
^                      / / / // /_/ /                                 ^
^                     /_/ /_// ____/                                  ^
^                           / /                                       ^
^                          /_/                                        ^
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*