List Info

Thread: Client IAADDR copying between Advertise and Request




Client IAADDR copying between Advertise and Request
country flaguser name
United States
2007-03-28 12:38:22
Presently, RFC3315 indicates that it is optional for a
client
to either provide, or neglect to provide, the IAADDR
contents
found in the Advertise packet the client has selected, and
is
Request'ing.

So, a server has to be prepared to deal with either case.

This is kind of a pet peeve for me, and I thought I'd take
a
moment to write down why in the spirit of the DHCPv6
bake-off
"issues list".  It's a fairly long explanation
unfortunately,
and I don't really see a way to trim it.

Sorry about that.


For a client, the act of copying a field from one packet to
another is trivial, so making this optional is a
"trivial
simplification" from the client's perspective.  It
doesn't
really win you a lot.  It doesn't affect software design
or implementation ("architecture") choices.

For some DHCPv6 servers, the act of finding an address to
allocate to a client might be more expensive than to look up
an
address (we have no crystal ball to show us future
implementations, or all "implementation
environments").

That is: "what address should this client use?" is
often more
expensive than "is address 5 available?".  We
don't know "how
much" more expensive.

So this is a "irksome complication" from the
server's
perspective.  It definitely affects software design and
implementation choices, although mildly.


The first part of my pet peeve is that the protocol has
pitted
these two against each other, and has chosen that the
server
should be complicated to simplify the client.  It's
obviously
my own opinion that the simplification does not justify the
complication, but that's mainly where this peeves me.


The second part of my pet peeve here has to do with a class
of
software implementer who are not well represented at IETF
(possibly because we would collectively consume their
twitching
carcass in a savage feeding frenzy).

I speak of those individuals who implement to the RFC in
part,
but mostly base their implementations off of what they see
on the
wire - they seek to inter-operate with one or at most two
big-name
brands, and write their software to process packets that
come from
them.  This is much more expedient than reading and
understanding
a long document.

As examples, we could speak of DHCPv4 client implementations
that
rely on specific client-identifier server behaviour.  We
could
speak of the recent reports a DHCP server has had with a
client
implementation's interpretation of DNAv4.  Or we could also
use
as example certain DNS implementations that treat the
compression
to byte 0 tag as a "start of answer" magic value,
rather than
properly parsing the packet (and so failing - even crashing
- when
the answer was not compressed to the question).

These experiences tell us that "protocol
correctness" is not what
usually wins out here.

I sense, based upon what we've seen so far in published
DHCPv6 clients (and my experience in writing a DHCPv6
client)
that most, if not all clients, will choose to provide the
IAADDR
contents.  It's just too easy not to.

So I believe allowing a client implementor to understand
that
providing the IAADDR is optional is bad guidance.  At some
point, I think we can reasonably worry, this may not
inter-operate
universally, even if we don't approve of it.


Consistency is better than flexibility.  Having clients
consistently do the same thing is more advantageous than
the flexibility of being allowed to omit the IAADDR.

-- 
David W. Hankins	"If you don't do it right the first
time,
Software Engineer		you'll just have to do it again."
Internet Systems Consortium, Inc.	-- Jack T. Hankins

_______________________________________________
dhcwg mailing list
dhcwgietf.org
https://
www1.ietf.org/mailman/listinfo/dhcwg

Re: Client IAADDR copying between Advertise and Request
country flaguser name
Sweden
2007-03-28 13:02:59
On Wednesday 28 March 2007 19:38, David W. Hankins wrote:

<snip>

My gut feeling is that you're right. Maybe because that's
how DHCPv4 did it, 
also because SOLICIT/ADVERTISE/REQUEST/REPLY seems like one
transaction, and 
changing the address mid-way through seems to violate the
whole idea of a 
transaction.

Initially I agreed wholeheartedly with you, but Bernie had
some interesting 
points that made me consider the issue carefully -
unfortunately I can't 
recall his points now. I hope he'll grace us with those
again and let the 
wider audience get involved in this issue.

Bud Millwood
Weird Solutions, Inc.
http://www.weird-solut
ions.com
tel: +46 8 758 3700
fax: +46 8 758 3687

_______________________________________________
dhcwg mailing list
dhcwgietf.org
https://
www1.ietf.org/mailman/listinfo/dhcwg

Re: Client IAADDR copying between Advertise and Request
country flaguser name
United States
2007-03-28 23:39:19
To me it seems that if the client sends the IAADDR, the
server's job  
is potentially easier, if address allocation is expensive;
otherwise,  
it doesn't make much difference.   So it's probably
reasonable to  
strongly suggest that clients send IAADDR when they have it.
   
However, they won't always have it.   So servers have to
deal with  
the case where the client doesn't remember an old value for
IAADDR,  
and thus can't send it.



_______________________________________________
dhcwg mailing list
dhcwgietf.org
https://
www1.ietf.org/mailman/listinfo/dhcwg

Re: Client IAADDR copying between Advertise and Request
country flaguser name
United States
2007-03-29 10:50:22
On Wed, Mar 28, 2007 at 11:39:19PM -0500, Ted Lemon wrote:
> However, they won't always have it.   So servers have
to deal with  
> the case where the client doesn't remember an old value
for IAADDR,  
> and thus can't send it.

Hm, I was aiming at Advertise->Request specifically,
leaving
"trickle downs" to other behaviour (such as
sending a Request
with no IAADDRS in response to a Reply with
STATUS_NoBinding)
as an excercise for the reader.

But you are right that since Advertises are cached until
the
first retransmission, it is an implementation consideration
wether or not to retain the IAADDR until it is time to send
a
Request.

So this makes the 'implementation considerations' possibly
about
equal for both sides.  Since the client would have to retain
the
server-id, I wonder if the server is still the one getting
the
short end of this stick.


And this still leaves me queasy over the prospect that this
protocol feature will produce interoperability failures
when
our "second class" implementers start their work.

-- 
David W. Hankins	"If you don't do it right the first
time,
Software Engineer		you'll just have to do it again."
Internet Systems Consortium, Inc.	-- Jack T. Hankins

_______________________________________________
dhcwg mailing list
dhcwgietf.org
https://
www1.ietf.org/mailman/listinfo/dhcwg

Re: Client IAADDR copying between Advertise and Request
country flaguser name
United States
2007-03-29 11:02:11
On Mar 29, 2007, at 8:50 AM, David W. Hankins wrote:
> So this makes the 'implementation considerations'
possibly about
> equal for both sides.  Since the client would have to
retain the
> server-id, I wonder if the server is still the one
getting the
> short end of this stick.

Well, sure, but the DUID is an identifier.   If the server
wants to  
provisionally allocate an address to the client at advertise
time,  
then doing the lookup at request time based on DUID isn't
much  
different than doing a lookup based on IP address - they're
both  
about the same size, and probably best hashed.   So I don't
think  
there's any particular win for the server in the advertise
case if  
the client sends the IAADDR - the only thing that's
different is  
which key you use.



_______________________________________________
dhcwg mailing list
dhcwgietf.org
https://
www1.ietf.org/mailman/listinfo/dhcwg

Re: Client IAADDR copying between Advertise and Request
country flaguser name
United States
2007-03-29 12:17:39
On Thu, Mar 29, 2007 at 09:02:11AM -0700, Ted Lemon wrote:
> Well, sure, but the DUID is an identifier.   If the
server wants to  
> provisionally allocate an address to the client at
advertise time,  
> then doing the lookup at request time based on DUID
isn't much  
> different than doing a lookup based on IP address -
they're both  
> about the same size, and probably best hashed.   So I
don't think  
> there's any particular win for the server in the
advertise case if  
> the client sends the IAADDR - the only thing that's
different is  
> which key you use.

I note with interest that asking the client to retain and
provide
the IAADDR in Advertise->Request is not argued as being
more than
a "trivial" consideration...at worst being a
/second/ field the
client must retain, if it chooses not to keep Advertisements
in
their complete form.

I further note with interest that provisional allocations
based
on DUID hashes represents an implementation choice made by
the
protocol on behalf of the implementor which can not be
described
as "trivial".

So, I am not finding a lot here that argues with my core
complaints.

-- 
David W. Hankins	"If you don't do it right the first
time,
Software Engineer		you'll just have to do it again."
Internet Systems Consortium, Inc.	-- Jack T. Hankins

_______________________________________________
dhcwg mailing list
dhcwgietf.org
https://
www1.ietf.org/mailman/listinfo/dhcwg

Re: Client IAADDR copying between Advertise and Request
country flaguser name
United States
2007-03-29 12:57:04
On Mar 29, 2007, at 10:17 AM, David W. Hankins wrote:
> So, I am not finding a lot here that argues with my
core complaints.

The point is simply that your core complaints don't seem to
me to be  
talking about something that I think you can really call a
problem.    
What you are proposing is an optimization, not a bug fix.  
My  
previous message talked about why I don't think it's an
important  
optimization.   But aside from that, what you're proposing
actually  
creates an interoperability risk in order to get this
optimization.    
I thought the risk was fairly obvious, so I focused on why
it wasn't  
a particularly important optimization, but maybe it's
worthwhile to  
explore the risk a bit further - I hadn't really thought it
through,  
but just assumed that it would be risky.   More detailed
analysis  
confirms that theory:

One way to interpret what you are proposing is to say that
the DHCP  
server could be allowed to fail in the face of a missing
IAADDR in a  
DHCP Request.   Or it could be allowed to succeed.   So
perhaps  
you're proposing that neither behavior is wrong, but that
it's  
worthwhile to allow it to succeed.

But in fact, if you make succeeding when no IAADDR is given
optional,  
then you create an interoperability problem.   Most client 

implementors simply take a DHCP server and try their client
against  
it; when it works, they assume that they have
interoperability.   
Getting them to make changes beyond this is hard - in most
cases it  
doesn't happen, particularly if they test against a very
commonly  
used server.   What happens instead is that DHCP server
implementors  
have to account for quirks in the client's behavior.

So consider what happens if the DHCP server they test
against  
supports the 3315 behavior, rather than your 3315bis
behavior, which  
is optional.   In that case, the client may be implemented
assuming  
that it needn't send the IAADDR option.   And since this
works  
against the server they're testing with, they assume their
client  
follows the standard, and they burn it into ROMs and ship it
out.

If succeeding when no IAADDR is given is required, rather
than  
optional, then no such interoperability problem occurs.   So
I think  
the change you propose, while it sounds nice from an
implementation  
perspective, is not really a good idea.

You could also propose requiring the DHCP server *not* to
succeed if  
IAADDR is not present.   The problem there is that the cat
is already  
out of the bag - there are quite a few server
implementations.    
While it's possible that we could put the toothpaste back in
the tube  
at this point, I think that if we were to make this a MUST
NOT, we'd  
get minimal or at least slow compliance, and so in all
likelihood the  
DHCP server that the client implementor would test against
would be  
in spec for 3315, but out of spec for 3315bis.   So this
doesn't  
solve the interoperability problem your proposed change
creates -  
even though 3315bis *requires* the behavior you want, in
practice  
that behavior isn't really required, so we can't count on
servers  
implementing it.

So what this boils down to is that whether 3315bis contains
the  
changes you want or not, I think you're going to have to
implement to  
3315 - your server is going to have to work when the client
doesn't  
send IAADDR.   So even though your changes are not wrong in
the  
abstract, I think they provide no practical benefit to you,
and  
significant risk to all of us.



_______________________________________________
dhcwg mailing list
dhcwgietf.org
https://
www1.ietf.org/mailman/listinfo/dhcwg

Re: Client IAADDR copying between Advertise and Request
country flaguser name
United States
2007-03-29 13:00:02
On Thu, Mar 29, 2007 at 10:57:04AM -0700, Ted Lemon wrote:
> But in fact, if you make succeeding when no IAADDR is
given optional,  
> then you create an interoperability problem.   Most
client  

Actually, I was arguing that the server should fail if it
receives
a request with no IAADDR.  That is, to make it mandatory
for
clients to supply an IAADDR in Requests (and this means we
have
to drop some other unimportant optimiations).

I'm glad we could come to agreement.

-- 
ISC Training!  http://www.isc.org/train
ing/  trainingisc.org
Washington DC area, April 16-20 2007.  DNS & BIND, DDNS
& DHCP.
-- 
David W. Hankins	"If you don't do it right the first
time,
Software Engineer		you'll just have to do it again."
Internet Systems Consortium, Inc.	-- Jack T. Hankins

_______________________________________________
dhcwg mailing list
dhcwgietf.org
https://
www1.ietf.org/mailman/listinfo/dhcwg

Re: Client IAADDR copying between Advertise and Request
country flaguser name
United States
2007-03-29 13:14:17
On Mar 29, 2007, at 11:00 AM, David W. Hankins wrote:
> Actually, I was arguing that the server should fail if
it receives
> a request with no IAADDR.  That is, to make it
mandatory for
> clients to supply an IAADDR in Requests (and this means
we have
> to drop some other unimportant optimiations).

Oh, okay.   So did you read the second half of my message,
where I  
explained why this isn't going to do you any good?



_______________________________________________
dhcwg mailing list
dhcwgietf.org
https://
www1.ietf.org/mailman/listinfo/dhcwg

Re: Client IAADDR copying between Advertise and Request
country flaguser name
United States
2007-03-29 17:18:13
On Thu, Mar 29, 2007 at 11:00:02AM -0700, David W. Hankins
wrote:
> Actually, I was arguing that the server should fail if
it receives
> a request with no IAADDR.  That is, to make it
mandatory for
> clients to supply an IAADDR in Requests (and this means
we have
> to drop some other unimportant optimiations).

Oops.  Typing too fast.

To clarify, I am making no suggestions for server behaviour.
 I
am arguing solely about client behaviour.  The first
sentence was
mis-written (s/should/might/ maybe).  The second sentence
is
correct.

-- 
David W. Hankins	"If you don't do it right the first
time,
Software Engineer		you'll just have to do it again."
Internet Systems Consortium, Inc.	-- Jack T. Hankins

_______________________________________________
dhcwg mailing list
dhcwgietf.org
https://
www1.ietf.org/mailman/listinfo/dhcwg

[1-10] [11]

about | contact  Other archives ( Real Estate discussion Medical topics )