RE: [dhcwg] dhc wg last call on "DHCP Relay AgentAssignmentNotification Option"

"Bernie Volz \(volz\)" <volz@cisco.com> Wed, 14 June 2006 19:43 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1FqbHM-0008SL-0e; Wed, 14 Jun 2006 15:43:52 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1FqbHL-0008S9-66 for dhcwg@ietf.org; Wed, 14 Jun 2006 15:43:51 -0400
Received: from rtp-iport-1.cisco.com ([64.102.122.148]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1FqbHK-0000rN-Sl for dhcwg@ietf.org; Wed, 14 Jun 2006 15:43:51 -0400
Received: from rtp-core-1.cisco.com ([64.102.124.12]) by rtp-iport-1.cisco.com with ESMTP; 14 Jun 2006 12:43:50 -0700
X-BrightmailFiltered: true
X-Brightmail-Tracker: AAAAAA==
X-IronPort-AV: i="4.06,133,1149490800"; d="scan'208"; a="29518872:sNHT24066688"
Received: from xbh-rtp-211.amer.cisco.com (xbh-rtp-211.cisco.com [64.102.31.102]) by rtp-core-1.cisco.com (8.12.10/8.12.6) with ESMTP id k5EJhoYL015005; Wed, 14 Jun 2006 15:43:50 -0400 (EDT)
Received: from xmb-rtp-20a.amer.cisco.com ([64.102.31.15]) by xbh-rtp-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.211); Wed, 14 Jun 2006 15:43:50 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Subject: RE: [dhcwg] dhc wg last call on "DHCP Relay AgentAssignmentNotification Option"
Date: Wed, 14 Jun 2006 15:43:49 -0400
Message-ID: <8E296595B6471A4689555D5D725EBB2101BE4527@xmb-rtp-20a.amer.cisco.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [dhcwg] dhc wg last call on "DHCP Relay AgentAssignmentNotification Option"
Thread-Index: AcZz2jZAOPbWpR/1TU2nGHP0gKb/OQcDstUw
From: "Bernie Volz (volz)" <volz@cisco.com>
To: Thomas Narten <narten@us.ibm.com>
X-OriginalArrivalTime: 14 Jun 2006 19:43:50.0114 (UTC) FILETIME=[DBE78420:01C68FEA]
X-Spam-Score: 0.0 (/)
X-Scan-Signature: a2c12dacc0736f14d6b540e805505a86
Cc: dhcwg@ietf.org, Stig Venaas <stig.venaas@uninett.no>, "Ralph Droms (rdroms)" <rdroms@cisco.com>
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: dhcwg.ietf.org
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:dhcwg@ietf.org>
List-Help: <mailto:dhcwg-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=subscribe>
Errors-To: dhcwg-bounces@ietf.org

Thomas, and DHC WG:

Thomas' comments got me thinking some more about this "reliablity"
issue. And, though I don't know if Thomas intended it this way, there is
an issue. Ralph will be submitted an updated draft to "correct" this
issue.

Suppose we have the following timeline of events:

T+00 - Client sends REQUEST for a binding.
     - Relay forwards to server.
     - Server sends REPLY, which is "delayed" by the network.
       (Relay and client don't yet see this packet; assume
       there is a cloud between relay and server and some
       route is flopping and/or congested.)
T+02 - Client retransmits REQUEST for a binding. 
     - Relay forwards to server.
     - Server sends REPLY.
     - Relay forwards REPLY to client and processes data from
       notification option and records binding.
     - Client records binding but discovers that it can't use
       the address.
[Both client and relay are in agreement.]
T+03 - Client sends a DECLINE.
     - Relay forwards to server.
     - Server sends REPLY.
     - Relay forwards reply to client and processes data from
       notification option and removes binding.
     - Client completes DECLINE.
[Both client and relay are in agreement.]
T+04 - Delayed REPLY from REQUEST (T+00) arrives at Relay.
     - Relay forwards REPLY to client and processes data from
       notification option and records binding.
     - Client ignores REPLY as the transaction-id is invalid
       for an outstanding transaction.

Now, the Relay believes the client has a binding which it doesn't have!

If a RELEASE/DECLINE REPLY were delayed, a Relay may REMOVE an active
binding.

So, the updated draft will correct this by adding a new option which is
added by the server and includes a 64-bit monotonically increasing
sequence number (there are suggestions for how a server might do this).
This sequence number is for the REPLYs that a server sends (at least
those that contain the Notification option).

When a Relay receives the notification option and this new sequence
number option (a server-id option is also required to be sent by the
server), the relay can examine its database and ignore things from the
same server with a lower sequence number.

One other change is that a Relay must not remove information for at
least the maximum datagram lifetime (similar to what TCP requires). That
way, it can correctly handle all of the issues.

And, the server is required to send ALL current bindings (for the client
on the link) in the Notification option, not just the deltas.

Again, a revised draft will be published shortly (though perhaps it will
take a bit to pop out of the queue?).

So, thanks for catching this issue Thomas!

- Bernie

> -----Original Message-----
> From: Thomas Narten [mailto:narten@us.ibm.com] 
> Sent: Tuesday, May 09, 2006 10:33 PM
> To: Bernie Volz (volz)
> Cc: dhcwg@ietf.org; Stig Venaas; Ralph Droms (rdroms)
> Subject: Re: [dhcwg] dhc wg last call on "DHCP Relay 
> AgentAssignmentNotification Option" 
> 
> > It is 100% reliable in the sense that if the relay doesn't get the
> > message, how would the client? Thus, the relay has at least as good
> > information as the client (and in some cases, perhaps 
> better since the
> > message could always be lost between the relay and client).
> 
> Makes sense.
> 
> But, isn't one of the problems (if I recall from what is done in IPv4)
> that relay agents can reboot and lose all their state? What happens
> then? How does the relay recover? Is this extension going to be used
> to help in that case too?
> 
> Thomas
> 
> _______________________________________________
> dhcwg mailing list
> dhcwg@ietf.org
> https://www1.ietf.org/mailman/listinfo/dhcwg
> 

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