Subject: Re: [dhcwg] WGLC for draft-ietf-dhc-dhcpv6-load-balancing-01 - Respond by March 31, 2014

From: Tomek Mrugalski <[email-masked]>
Date: Fri, 11 Apr 2014 19:37:19 +0200

On 13.03.2014 03:36, Bernie Volz (volz) wrote:
> This WGLC is for draft-ietf-dhc-dhcpv6-load-balancing-01. Please send
> your comments by March 31, 2014. If you do not feel this document should
> advance, please state your reasons why.
Apologies for late response, I was on vacation.

I did carefully review draft-ietf-dhcpv6-load-balancing-01 and have some
comments. The text mostly addresses my previous concerns, but there are
still some minor corrections to be made. I support this document moving
forward and all issues mentioned below can be fixed in updated revision
after WGLC.

Even though the list may seem a bit long, these are really easy to fix
things.

1. I think you can drop the "DHC" from the title. It's name of the
working group, not the algorithm. Or even make the title shorter and
also drop "Algorithm". "Load Balancing for DHCPv6" is short and gets the
message across.

2. The new text in Introduction section mentions servers load and refers
to section 5.3 of RFC6853. That section mentions client requirements.
You probably meant some other section?

3. In section 3 the new text says: "LEASEQUERY [RFC5007] messages with a
query based on IP SHOULD NOT have load balancing applied to them." I
would make it MUST NOT. Also "LEASEQUERY and its extensions...". That's
sort of obvious that bulk and active leasequery are out of scope for
load balancing as they are TCP based, but it's better to be explicit here.

4. "LEASEQUERY messages with a query based on Client ID SHOULD have load
balancing applied to them". This one is interesting. I would assume that
leasequery messages are sent to specific server directly, so they are
outside of scope for load balancing. Furthermore, I think it is legal to
send QUERY_BY_CLIENTID queries over TCP connection. Obviously, load
balacing is out of scope for any TCP connections.

I don't have any strong opinion here, but I think leasequery should be
not load balanced at all, regardless of the query type. I talked about
this with Bernie and he seems to agree with that. If you still want to
keep that text, I think it should say "LEASEQUERY message with a
QUERY_BY_CLIENTID that are sent over UDP SHOULD have load balancing
applied to them."

5. Also in section 3: "Load balancing only applies to incoming UDP
DHCPv6 messages that servers would normally process: SOLICIT, REQUEST,
CONFIRM, RENEW, REBIND, RELEASE, DECLINE, INFORMATION-REQUEST, and
RECONFIGURE-REQUEST [RFC6977]." That's an unfortunate choice of words.
The text may be interpreted as if these were the only messages that
server processes, which is not true. Server will process any messages
that it received, including LEASEQUERY, RELAY-FORW and others. Perhaps
adding "client-originated UDP DHCPv6 messages" would be better? Or
saying "Load balancing only applies to the following incoming UDP DHCPv6
messages:"?

6. Still in section 3: "DHCPV4-QUERY [I-D.ietf-dhc-dhcpv4-over-dhcpv6]
messages SHOULD NOT be load balanced, but should be subject to DHCPv4
load balncing, if the server supports it.". Did you want the second
"should" to be capitalized?

That one is interesting. Right now the DHCPv6 relay does not need to do
any special about DHCPv4-over-DHCPv6 messages, just forward them towards
the server (it may do fancy things, but it doesn't have to). With this
statement, suddenly it becomes much more complex, as the DHCPv6 relay
should become DHCPv4 aware, DHCPv4 LB aware and have separate
configuration for DHCPv4 LB. Nowadays, realistically speaking relays
which do LB for DHCPv6 will also do LB for DHCPv4. But this may not be
the case in a decade or so.

7. As I pointed out earlier
(http://www.ietf.org/mail-archive/web/dhcwg/current/msg14316.html), it
would be good to mention in the security considerations that if the hash
buckets are misconfigured, some clients would be ingored. It is not a
security threat per se, just a new failure mode that is introduced by
this draft. Personally, I think it is worth mentioning, but I won't
insist on it if you think otherwise.

8. There is an informative reference to I-D.ietf-dhc-dhcpv4-over-dhcpv6,
but the normative text uses it. I'm afraid this is a normative, not an
informative reference. It's ok to have normative references to other
drafts. It introduces a dependency, but dhcpv4-over-dhcpv6 is sent to
IESG already, it shouldn't delay this work.

Tomek

---

From: Tomek Mrugalski <[email-masked]>
Date: Fri, 11 Apr 2014 19:46:05 +0200

> advance, please state your reasons why.

Apologies for a bit of delay with wrapping this one out.

Chairs discussed this WGLC. Even though the number of responses was a
bit low, this second WLGC is on a draft that was very similar to the
previous WGLC that we had over a year ago. Furthermore, this is an
application of a well known and operationally proven algorithm to DHCPv6
and there was never any opposition for this work.

Hence we declare this WGLC to be successful. Some minor issues were
raised, so an updated revision is needed. Andre, please address them and
upload -02.

Thank you to everyone who responded to this WGLC.

Bernie & Tomek

---

From: Andre Kostur <[email-masked]>
Date: Tue, 22 Apr 2014 11:31:33 -0700

Some of the changes have been integrated, but a few discussion points remain:

> Also "LEASEQUERY and its extensions...". That's

I'm a little unclear as to what change is suggested here.  Change
"LEASEQUERY" to "LEASEQUERY and its extensions" ?

> QUERY_BY_CLIENTID that are sent over UDP SHOULD have load balancing

The document does already specify that it only applies to UDP DHCPv6
messages.  Devices doing leasequery are likely configured to send to
all DHCPv6 servers that they know about, and part of the goal is to
help reduce the load on the servers.  Thinking a little more on this,
I agree that in the general case of load balancing, the server's don't
necessarily know which server has allocated the IP, so this probably
should but a MUST NOT.  However, in the case where the servers are
sharing lease data, this could be relaxed to a MAY so that it can
still take advantage of the lessening of the load.  This would come
into play when the servers may be under a heavy load already due to
their populating having rebooted and the routing element (CMTS?) is
rebuilding its IP association tables.

> the case in a decade or so.

According to that draft, the relays don't participate in the v4
decisions.  If they receive a DHCPV4-QUERY, they may send those
messages to a different server than their general DHCPv6 servers.
Where this comes into play is on the DHCP 4o6 Server.  I'd like those
servers to not decide on load balancing based on the DHCPv6
properties, but to make that decision based on the DHCPv4 properties
if the 4o6 server has implemented DHCPv4 load balancing.

-- 
Andre Kostur

---

From: "Bernie Volz (volz)" <[email-masked]>
Date: Tue, 22 Apr 2014 19:45:09 +0000

Regarding Leasequery, I'd prefer to not do load balancing on these.

There's not much reason to load balance these because they generally are very 'cheap' for a server to process (no database writes, etc.). And, there isn't a clear path for how the request got to the server (i.e., went through relay or not), so it is more difficult to know if all servers got the request (though certainly if you mandate that some Leasequery requests can be load balanced, you'd also have to mandate that at least those requests are sent to all of the load balancing servers).

And there are also some failover interactions (at least there were with v4 because of lazy update and if load balancing is used in the failover relationship) that can result in the wrong answer.

- Bernie

-----Original Message-----
From: Andre Kostur [mailto:[email-masked]] 
Sent: Tuesday, April 22, 2014 2:32 PM
To: Tomek Mrugalski
Cc: Bernie Volz (volz); [email-masked]
Subject: Re: [dhcwg] WGLC for draft-ietf-dhc-dhcpv6-load-balancing-01 - Respond by March 31, 2014

Some of the changes have been integrated, but a few discussion points remain:

> Also "LEASEQUERY and its extensions...". That's sort of obvious that 
> bulk and active leasequery are out of scope for load balancing as they 
> are TCP based, but it's better to be explicit here.

I'm a little unclear as to what change is suggested here.  Change "LEASEQUERY" to "LEASEQUERY and its extensions" ?

> 4. "LEASEQUERY messages with a query based on Client ID SHOULD have 
> load balancing applied to them". This one is interesting. I would 
> assume that leasequery messages are sent to specific server directly, 
> so they are outside of scope for load balancing. Furthermore, I think 
> it is legal to send QUERY_BY_CLIENTID queries over TCP connection. 
> Obviously, load balacing is out of scope for any TCP connections.
>

The document does already specify that it only applies to UDP DHCPv6 messages.  Devices doing leasequery are likely configured to send to all DHCPv6 servers that they know about, and part of the goal is to help reduce the load on the servers.  Thinking a little more on this, I agree that in the general case of load balancing, the server's don't necessarily know which server has allocated the IP, so this probably should but a MUST NOT.  However, in the case where the servers are sharing lease data, this could be relaxed to a MAY so that it can still take advantage of the lessening of the load.  This would come into play when the servers may be under a heavy load already due to their populating having rebooted and the routing element (CMTS?) is rebuilding its IP association tables.

> That one is interesting. Right now the DHCPv6 relay does not need to 
> do any special about DHCPv4-over-DHCPv6 messages, just forward them 
> towards the server (it may do fancy things, but it doesn't have to). 
> With this statement, suddenly it becomes much more complex, as the 
> DHCPv6 relay should become DHCPv4 aware, DHCPv4 LB aware and have 
> separate configuration for DHCPv4 LB. Nowadays, realistically speaking 
> relays which do LB for DHCPv6 will also do LB for DHCPv4. But this may 
> not be the case in a decade or so.

According to that draft, the relays don't participate in the v4 decisions.  If they receive a DHCPV4-QUERY, they may send those messages to a different server than their general DHCPv6 servers.
Where this comes into play is on the DHCP 4o6 Server.  I'd like those servers to not decide on load balancing based on the DHCPv6 properties, but to make that decision based on the DHCPv4 properties if the 4o6 server has implemented DHCPv4 load balancing.

--
Andre Kostur