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

Brian E Carpenter <brian.e.carpenter@gmail.com> Mon, 23 October 2017 23:59 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 9FB7D13A5BC for <anima@ietfa.amsl.com>; Mon, 23 Oct 2017 16:59:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 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] 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 4dOH610L6MQs for <anima@ietfa.amsl.com>; Mon, 23 Oct 2017 16:59:28 -0700 (PDT)
Received: from mail-pg0-x22c.google.com (mail-pg0-x22c.google.com [IPv6:2607:f8b0:400e:c05::22c]) (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 A3FDD13ADD2 for <anima@ietf.org>; Mon, 23 Oct 2017 16:59:28 -0700 (PDT)
Received: by mail-pg0-x22c.google.com with SMTP id s2so13034385pge.10 for <anima@ietf.org>; Mon, 23 Oct 2017 16:59:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:organization:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=MvFUq6tXV+Oy63/Zjt9ISBHlvkMBd6inp/jED96wVzA=; b=AnTS/etaOe7jZyM4SpX9R/G/m+Viw/i/wl7gskrj9qTVAEciGG5F5gC03eyjYxY9T4 Va3UcUPIyTxImxuPvuIn0lw5LD6IqlOi70MUJ7HzkBvNkZF3Hlkye1P+uSrL+q8e644r nUEmk+l/n0bl4zD0IQrMj3Oc+HZ/2aB744jT1ds7Hc3qIU/CBlZxlTAjIKC0jem4fb6w aKeKIW+C+WNN4QRaZfYx1b7I2QGblmFA/gXmFq4VgKlhH+eRrsUy10cwupfe3VbdPhgL j4P+sEmE1+sABPX6wQFYkilol2iUcrc6fc75wGk27WCH9oohmi/BYFKzXthclKkmB2OA W4jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=MvFUq6tXV+Oy63/Zjt9ISBHlvkMBd6inp/jED96wVzA=; b=O+29oDRTZ5nLRmfpSNhSFTJZlU5sES61FPPCQD61UQINjscNEV8TlJM9CWgJW7WqHg maxqvMphJYpYX+QV/E0XZj2S4rRh1PyqNSQ0JTo29baHRqvhEriUzLG0U858tMIHRSTK swMmXrI/P6DtiFeh2liwNJ9BmAC7F9lZ5EKa358W/htfXqMAom8ji/uRdEg/SExJNCL3 FG+0NeXlsXsx+/z4E0IgdJI1KPCdMKs+iDd9RQugGF/czrildgJ+chjv9UgYVZUNjnPX egjdpH1opFRyym9hMb/RGloKGusN+jutGDjXfn8WMI8qZNhwfLYC65CPVxZqvyS7GyUD Wu/w==
X-Gm-Message-State: AMCzsaVXDRdUTqf3op942Ei/DO4yPJdIn/PVL2YEwlJiO0Y003mrjEPk E7spBN4OGr85J4bWFtcCUEXNKw==
X-Google-Smtp-Source: ABhQp+TawpprQL9wM/D3iEAXfiQCt27X3EbosYXEusUR3AjDVfTgXj5myVFfOIx84R7gwZBQRVOzKw==
X-Received: by 10.99.116.25 with SMTP id p25mr12720659pgc.26.1508803167717; Mon, 23 Oct 2017 16:59:27 -0700 (PDT)
Received: from [130.216.38.10] ([130.216.38.10]) by smtp.gmail.com with ESMTPSA id u77sm14438640pfd.168.2017.10.23.16.59.25 for <anima@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 23 Oct 2017 16:59:26 -0700 (PDT)
To: Anima WG <anima@ietf.org>
References: <150791598017.23771.18187732712497738112@ietfa.amsl.com> <7fcffe21-d396-bad5-b311-d2879b14b0f1@gmail.com>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Organization: University of Auckland
Message-ID: <92d647b7-d70f-7078-f929-6cd2205b4a42@gmail.com>
Date: Tue, 24 Oct 2017 12:59:24 +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: <7fcffe21-d396-bad5-b311-d2879b14b0f1@gmail.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/2V88VeEBtdULz57qkpTUjX2RMVE>
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: Mon, 23 Oct 2017 23:59:31 -0000

Just an update on this.

1) I missed a couple of inconsistencies below, noted in line.
2) I updated the GRASP prototype to support the previously
missing features used below. I update my demo ASAs for the
pledge, proxy and registrar roles. They work.

I need to do quite a bit more testing before pushing the
updated code to GitHub, but basically I think the GRASP
aspect of BRSKI is good to go.

On 18/10/2017 16:19, Brian E Carpenter wrote:
> 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]

proxy-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]

 registrar-objective = ["AN_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.

   Brian