[dhcwg] Iotdir last call review of draft-ietf-dhc-slap-quadrant-07

Jaime Jimenez via Datatracker <noreply@ietf.org> Thu, 04 June 2020 07:58 UTC

Return-Path: <noreply@ietf.org>
X-Original-To: dhcwg@ietf.org
Delivered-To: dhcwg@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 4D54A3A08B1; Thu, 4 Jun 2020 00:58:17 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Jaime Jimenez via Datatracker <noreply@ietf.org>
To: iot-directorate@ietf.org
Cc: last-call@ietf.org, draft-ietf-dhc-slap-quadrant.all@ietf.org, dhcwg@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 7.1.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <159125749726.19650.16749433552197061248@ietfa.amsl.com>
Reply-To: Jaime Jimenez <jaime@iki.fi>
Date: Thu, 04 Jun 2020 00:58:17 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/dhcwg/q1dOurt9v5iCETUOXuYUlhBPiQY>
Subject: [dhcwg] Iotdir last call review of draft-ietf-dhc-slap-quadrant-07
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.29
List-Id: <dhcwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dhcwg/>
List-Post: <mailto:dhcwg@ietf.org>
List-Help: <mailto:dhcwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2020 07:58:17 -0000

Reviewer: Jaime Jimenez
Review result: Ready with Nits

draft-ietf-dhc-slap-quadrant-07 iodir review
============================================

This draft is complementary to draft-ietf-dhc-mac-assign. It defines mechanisms
to allow for the use of IEEE's SLAP quadrant when using DHCP for MAC
allocation. It also defines a new DHCPv6 Option (QUAD) for that purpose.

Both drafts verse on the use of DHCP to assign MAC addresses to hosts, which as
a concept was strange to me to begin with. However I am not up-to-date in the
latest developments on host configuration so I am likely to be missing a big
part of the picture.

I find this draft quite useful to understand the rationale behind
draft-ietf-dhc-mac-assign, and I regret not having paid more attention to it
before I did the draft-ietf-dhc-mac-assign review. At the time I understood the
rationale to be the use of MAC address as a deployment mechanisms while in
reality, it is a privacy mechanism. I think the security scenario makes more
sense as IoT devices normally are deployed with MAC information from the
factory. I believe that is the primary purpose of both dhc-slap-quadrant and
draft-ietf-dhc-mac-assign when it comes to IoT, perhaps that information should
be emphasized on draft-ietf-dhc-mac-assign.

This draft is clearly written and seems ready, below are few concrete comments:

Abstract:

   Consider splitting in two shorter sentences the paragraph below.

   "                                         [...] Recently, the IEEE
   has been working on a new specification (IEEE 802c) which defines a
   new "optional Structured Local Address Plan" (SLAP) that specifies
   different assignment approaches in four specified regions of the
   local MAC address space."

Section 1:

    s/specified regions/regions/ ?
    "different assignment approaches in four specified regions of the"

Section 3:

    "[...] if the IoT device can move, then it might prefer to
      select the SAI or AAI quadrants to minimize address collisions
      when moving to another network."

    I wonder if collisions are likely to occur in practice.

Section 4.1:

    Naive questions on MAC usage. Could an IoT device self-assign a MAC with a
    specific SLAP quadrant information? Would the DHCP Server accept it without
    the negotiation mechanisms described here (providing it is not in the MAC
    address pool)? Could an endpoint use an OUI from a different vendor? If so,
    how are potential collisions or attacks preventable?

    "[...] The server MAY alter the
       allocation at this time."

    It would be helpful to explain in which way allocation might be altered
    (i.e., by reducing the address block)

    "5.  When the assigned addresses are about to expire, the client sends
       a Renew message.  It includes the preferred SLAP quadrant(s) in
       the new QUAD IA_LL-option, so in case the server is unable to
       extend the lifetime on the existing address(es), the preferred
       quadrants are known for the allocation of any "new" addresses."

    Is it correct to assume that step 5 causes either:
     - to assign the existing block
     - to start on step 1 with the new QUAD if the block is no longer available.

    So, is it then the case that the client sends a Renew message -for the
    existing block- with _alternative_ SLAP quadrants different than the ones
    in use in case the block is no longer available?

    "6.  The server responds with a Reply message, including an LLADDR
       option with extended lifetime."

    What happens with the _fail_ case, in which the block is no longer
    available? How is the REPLY format denying the addresses?

    A style suggestion, as "Advertise", "Renew", "Reply", etc are specific DHCP
    message types, you might want to write them capitalized "ADVERTISE",
    "RENEW", "REPLY", etc to avoid potential confusion.

Section 4.2:

    "9.   When the assigned addresses are about to expire, the client
      sends a Renew message.
    [...]
    12.  The relay sends the Reply message back to the client."

    Same as in section 4.1, steps 9 to 12 might need to be revised.

Section 7:

    The Security section looks a bit thin but I have no good suggestions to
    improve. Is it even possible for a bad actor to spoof a RENEW lease on
    behalf of another node? Perhaps some information on authentication
    mechanisms for DHCP would be handy.

References:

    [IEEEStd802c-2017] does not provide a link to the document. It would be
    useful to include that when available.