Re: [Anima] I-D Action: draft-ietf-anima-bootstrapping-keyinfra-08.txt

Brian E Carpenter <brian.e.carpenter@gmail.com> Wed, 18 October 2017 03:19 UTC

Return-Path: <brian.e.carpenter@gmail.com>
X-Original-To: anima@ietfa.amsl.com
Delivered-To: anima@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A3067127005 for <anima@ietfa.amsl.com>; Tue, 17 Oct 2017 20:19:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BOyoki2HEgLK for <anima@ietfa.amsl.com>; Tue, 17 Oct 2017 20:19:10 -0700 (PDT)
Received: from mail-pg0-x22b.google.com (mail-pg0-x22b.google.com [IPv6:2607:f8b0:400e:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6E2B2126B71 for <anima@ietf.org>; Tue, 17 Oct 2017 20:19:09 -0700 (PDT)
Received: by mail-pg0-x22b.google.com with SMTP id l24so3096242pgu.11 for <anima@ietf.org>; Tue, 17 Oct 2017 20:19:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:references:organization:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=vRYeX0xKThzCXu5lELOOS9V8nEIV7ABFSKqgEqaA0QA=; b=qJPKmSf3mQj0ZCeTBkA+9ivPYc+W1v+RvwpAemy1yKs94OS67psQuR04aSGhjOzDXz v+03oVAEmwBJ4o2sPUduqgZ5bXoPP6Jb0qFhe1MO8Wp0moQ6chme+En9iuaHBVJce6HT 1XQSPnsIGfzaBmbpGg+U8htUmOmVQHXnSKk2RcMjUSmiSph+yui77xBChpashYyKyh2w atLbWa5nLIubKT14CgtQutVYyUTCnyYhxRUIXt3L8998V+hwzJ+mxTCWmDgk6I9bi366 PEaiJNYriYUXp2cs53A+1EkaLHqGhSEhjZXUo1R/0AhLVl3an1JKI8FRANRKtjUKr0kJ 1GAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:references:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=vRYeX0xKThzCXu5lELOOS9V8nEIV7ABFSKqgEqaA0QA=; b=RqHOOqJR8fDmyfrBKMPJHBzXRzd1Kosvs0E/y6kps5vu1IN9pAH9bqbZcsXgAGF05l ThOtPpA2+9PHBCq8E5JrkjhtbzcRgKB+ndAowS1Duj8DM0IMbX8ZQBTLKxMIPtmlnApr drZ5mOihQNJa3mp5xp5xL6WnARNfIumLgwYAoILcbYVaelaa+nechRJ3TowHtzfn4VSq j1a1ZHh8V9wmNbMad9SHNsBoIm7/ebQNqa1qAB7JGJVxgCQq1W5Y3CJAvwQpIThPgRTP UESbY/es422cy78ORHpl0JV+6HwFGtlxZKOeA+Kk7J6sQHdN7b4zl+spvGJ8b7icWN30 CVdA==
X-Gm-Message-State: AMCzsaXOpRbqK6pTJMkksGKx6Z/zoZOWYHqredgYRZxSQVELTd9nK8Zx 8PtKTJPU8zFSxnpbLDNb8iJLWg==
X-Google-Smtp-Source: AOwi7QBVSOkBpmfgy3dePOtQSyaVWpHXKM+DjUiI85tUFH1b0AtZDMD3GMKrtIhxHeSWCMByy/G/tg==
X-Received: by 10.101.70.76 with SMTP id k12mr12614997pgr.19.1508296748951; Tue, 17 Oct 2017 20:19:08 -0700 (PDT)
Received: from ?IPv6:2406:e007:6d3c:1:28cc:dc4c:9703:6781? ([2406:e007:6d3c:1:28cc:dc4c:9703:6781]) by smtp.gmail.com with ESMTPSA id 76sm21550354pfq.4.2017.10.17.20.19.06 for <anima@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Oct 2017 20:19:07 -0700 (PDT)
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
To: Anima WG <anima@ietf.org>
References: <150791598017.23771.18187732712497738112@ietfa.amsl.com>
Organization: University of Auckland
Message-ID: <7fcffe21-d396-bad5-b311-d2879b14b0f1@gmail.com>
Date: Wed, 18 Oct 2017 16:19:09 +1300
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <150791598017.23771.18187732712497738112@ietfa.amsl.com>
Content-Type: text/plain; charset="utf-8"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/F4zjCPoPn-eWWip4PwQxvSR_KDQ>
Subject: Re: [Anima] I-D Action: draft-ietf-anima-bootstrapping-keyinfra-08.txt
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima>, <mailto:anima-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima/>
List-Post: <mailto:anima@ietf.org>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima>, <mailto:anima-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Oct 2017 03:19:13 -0000

Hi,

Unfortunately this is still a little broken around both GRASP objectives,
in a way that needs to be fixed:

> 4.1.1.  Proxy Grasp announcements
> 
>    A proxy uses the GRASP M_FLOOD mechanism to announce itself.  The
>    pledge SHOULD listen for messages of these form.  This announcement
>    can be within the same message as the ACP announcement detailed in
>    [I-D.ietf-anima-autonomic-control-plane].
> 
> 
>     proxy-objective = ["AN_Proxy", [ O_IPv6_LOCATOR, ipv6-address,
>     transport-proto, port-number ] ]

That's not valid syntax for an objective. Also, in the Flood message you
have the option of associating a locator directly with the flooded
objective, as part of the basic message format. My suggestion:

The objective is defined in fragmentary CDDL as:

 registrar-objective = ["AN_Proxy", objective-flags, loop-count, null]

 objective-flags = ; as in the GRASP specification
 loop-count =  1   ; restricted to link-local use

 The objective-flags field is set to indicate synchronization.

 The loop-count is set to 1 to limit the scope of flooding
 to the local link.

 The value field is set to a null value.

In the GRASP Flood message, an IPv6 locator option is
associated with the objective as described in Section 2.8.11
of [I-D.ietf-anima-grasp]. The locator format is
 [O_IPv6_LOCATOR, ipv6-address, transport-proto, port-number]
where
>     ipv6-address       - the v6 LL of the proxy
>     transport-proto    - 6, for TCP 17 for UDP
>     port-number        - the TCP or UDP port number to find the proxy

Then there are more problems with this:

> 4.4.  Proxy discovery of Registrar
> 
>    The Registrar SHOULD announce itself so that proxies can find it and
>    determine what kind of connections can be terminated.
> 
>    When the Registrar joins an Autonomic Control Plane
>    ([I-D.ietf-anima-autonomic-control-plane]) it MUST respond to GRASP
>    ([I-D.ietf-anima-grasp]) M_NEG_SYN message.

There is no such thing as M_NEG_SYN. Anyway this is a backwards
way of describing things. I think you should start with something
like:

When the Registrar joins an Autonomic Control Plane
[I-D.ietf-anima-autonomic-control-plane] it MUST be
ready to support the GRASP [I-D.ietf-anima-grasp]
object "AN_registrar" defined below. This is an
objective that supports only discovery; it does not
support synchronization or negotiation. When a proxy
sends a GRASP Discovery (M_DISCOVERY) message seeking
this objective, the Registrar SHOULD respond with a
GRASP Discovery Response (M_RESPONSE) message including
relevant locators as described below.

The objective is defined in fragmentary CDDL as:

 registrar-objective = ["AN_join_registrar", objective-flags,
                            loop-count, null]

 objective-flags = ; as in the GRASP specification
 loop-count =      ; as in the GRASP specification


 The objective-flags field is set to indicate discovery.

 The loop-count is set to a suitable value to limit the scope of
 discovery.  A suggested default value is 6.

 The value field is set to a null value.

>    The registrar responds to discovery messages from the proxy (or GRASP
>    caches between them) as follows: (XXX changed from M_DISCOVERY)
> 
>     objective         = ["AN_registrar", F_DISC, 255 ]

Why 255? Do you expect networks to be that big? Discovery
loops will be detected anyway, but I think a much more conservative
value is appropriate.

>     discovery-message = [M_NEG_SYN, session-id, initiator, objective]

Nope. M_DISCOVERY is needed. But anyway, what is the point of
replicating bog-standard GRASP here? Possibly in an appendix, but not
main text.

>    Figure 6: Registrar Discovery
> 
>    The response from the registrar (or cache) will be a M_RESPONSE with
>    the following parameters:
> 
>     response-message = [M_RESPONSE, session-id, initiator, ttl,
>     (+locator-option // divert-option), ?objective)]

Here an example is more helpful than more cut-and-paste from
GRASP.

>     initiator = ACP address of Registrar

Wrong, another argument against redundancy.
See https://tools.ietf.org/html/draft-ietf-anima-grasp-15#section-2.8.5

>     locator1  = [O_IPv6_LOCATOR, fd45:1345::6789, 6,  443]
>     locator2  = [O_IPv6_LOCATOR, fd45:1345::6789, 17, 5683]
>     locator3  = [O_IPv6_LOCATOR, fe80::1234, 41, nil]

OK. This is fine in terms of GRASP syntax, although it's
a slightly special case of implying semantics within the
locators. The only problem is mine: my prototype code can't
do this without enhancement. I'd suggest giving the example
a bit more precisely, something like:

An example M_RESPONSE packet, following the GRASP syntax,
could be as follows:

 [M_RESPONSE, session-id, initiator, ttl,
 [O_IPv6_LOCATOR, fd45:1345::6789, 6,  443],
 [O_IPv6_LOCATOR, fd45:1345::6789, 17, 5683],
 [O_IPv6_LOCATOR, fe80::1234, 41, null]]

Also, technically, using proto = 41 extends the formal GRASP syntax.
We could let that slide, holding it in reserve for GRASP 2.0, or
we could at least note that it's an extension.
  
Regards
   Brian