Re: [Anima-bootstrap] anima-bootstrap: Bootstrap proxy discovery options

Brian E Carpenter <brian.e.carpenter@gmail.com> Sat, 05 December 2015 00:42 UTC

Return-Path: <brian.e.carpenter@gmail.com>
X-Original-To: anima-bootstrap@ietfa.amsl.com
Delivered-To: anima-bootstrap@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DF58A1B3473 for <anima-bootstrap@ietfa.amsl.com>; Fri, 4 Dec 2015 16:42:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.4
X-Spam-Level:
X-Spam-Status: No, score=-1.4 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, J_CHICKENPOX_64=0.6, SPF_PASS=-0.001] autolearn=no
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 HgnxcjUFi7_k for <anima-bootstrap@ietfa.amsl.com>; Fri, 4 Dec 2015 16:42:14 -0800 (PST)
Received: from mail-pf0-x22d.google.com (mail-pf0-x22d.google.com [IPv6:2607:f8b0:400e:c00::22d]) (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 3762F1B3472 for <anima-bootstrap@ietf.org>; Fri, 4 Dec 2015 16:42:14 -0800 (PST)
Received: by pfbg73 with SMTP id g73so34549481pfb.1 for <anima-bootstrap@ietf.org>; Fri, 04 Dec 2015 16:42:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:cc:from:organization:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=l9H1Kaq4RQgE7saPELdR91bQDbPQ8nCDKuaKErnELb0=; b=JchOa8FOxIoUCD7C3jXEFxoIS947Ua4pL2qI82u/C2qyGnrvELLb81I0K+g2TXdFV7 xfM1YfRg/1BPTo78LS7YZy1bOjWF945Qwkw0B0Ad0JeSYXz5azG1UC4dYJdk2CrjJwZa nX+xNy8ukcj9smq899pmf53jibWn+l0iY/xNmqjLOS/i1qJ5F4Fg5WwTivTIM2EGhy+1 xhMGMnv4LjhsNvqHYrj36GqYTh9pJItSun4BSMXr7iwWsBHajy2+c2TeI4O43pYKlo2X SXUmRcZ4ei8pvGY3e7kXesHEQ2tluNYwd4h+fMqEdUAwc3qhFUrRejOvl0QZcRd5eTOx L84A==
X-Received: by 10.98.86.210 with SMTP id h79mr25824853pfj.87.1449276133830; Fri, 04 Dec 2015 16:42:13 -0800 (PST)
Received: from ?IPv6:2406:e007:74e1:1:28cc:dc4c:9703:6781? ([2406:e007:74e1:1:28cc:dc4c:9703:6781]) by smtp.gmail.com with ESMTPSA id o2sm19477864pap.31.2015.12.04.16.42.10 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 04 Dec 2015 16:42:12 -0800 (PST)
To: "Max Pritikin (pritikin)" <pritikin@cisco.com>
References: <20151204014333.GZ29056@cisco.com> <56611639.9060508@gmail.com> <29E5EEC1-9995-4137-B8BE-7E2103810CD9@cisco.com> <56622A8C.2020106@gmail.com> <FD53CF07-302A-4FEC-8119-B2FF98A1916E@cisco.com>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Organization: University of Auckland
Message-ID: <566232EE.4000609@gmail.com>
Date: Sat, 05 Dec 2015 13:42:22 +1300
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0
MIME-Version: 1.0
In-Reply-To: <FD53CF07-302A-4FEC-8119-B2FF98A1916E@cisco.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/anima-bootstrap/i_zQu-xqoXLb-i3KsxhX-EBaLS8>
Cc: "Toerless Eckert (eckert)" <eckert@cisco.com>, "anima-bootstrap@ietf.org" <anima-bootstrap@ietf.org>
Subject: Re: [Anima-bootstrap] anima-bootstrap: Bootstrap proxy discovery options
X-BeenThere: anima-bootstrap@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Mailing list for the bootstrap design team of the ANIMA WG <anima-bootstrap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima-bootstrap>, <mailto:anima-bootstrap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima-bootstrap/>
List-Post: <mailto:anima-bootstrap@ietf.org>
List-Help: <mailto:anima-bootstrap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima-bootstrap>, <mailto:anima-bootstrap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 05 Dec 2015 00:42:16 -0000

> FYI - as an editorial note the paragraph explaining flooding is buried in s3.3.5 and could probably be called out more clearly in the text. Perhaps its own section or in the Response section? Similarly s3.9.1 includes the text: "and for terminating flooding as described in FLOODING” which looks like an incomplete reference as if you had already planned to pull flooding out into its own section.

Good points.

BTW I don't fundamentally care whether or not bootstrap uses the GRASP
mechanisms - I just want to make sure that they *could* be used if that
turns out to be optimal.

Regards
   Brian

On 05/12/2015 13:25, Max Pritikin (pritikin) wrote:
> 
>> On Dec 4, 2015, at 5:06 PM, Brian E Carpenter <brian.e.carpenter@gmail.com> wrote:
>>
>> On 05/12/2015 12:44, Max Pritikin (pritikin) wrote:
>>> Brian, 
>>>
>>> Are the session-id and the nonce equivalent?
>>
>> Well, I made an implementation choice that when an ASA registers itself
>> with GRASP it gets back a nonce, used to validate future calls, so
>> that no other process can masquerade as the same ASA. And yes, I
>> just re-used the existing Session ID mechanism to assign that nonce.
>> However, each transaction that an ASA initiates will get its own
>> Session ID.
>>
>>> Why is the 30000 a parameter passed into the into the grasp.discover call? This looks like a timeout for how long to wait for a response (GRASP_DEF_TIMEOUT/2)? If so this would provide the 30s behavior but is leveraging a side-effect dubiously. Sufficient for PoC; I’m just asking to understand.
>>
>> Correct. Again, it's just an implementation choice and I agree it's a bit
>> of a kludge. It could be done more elegantly. (Although I must say that the
>> threading support in Python is a dream to use.)
> 
> all goodness. thanks. 
> 
>>
>>>
>>> Toerless’s suggestion appears to be to include the “locator-option” within the discover message. Did you include that? Currently "locator-option” is not part of the [grasp] s3.7.2 Discover Message. Are you comfortable adding that as Toerless argues for?
>>
>> It turns out that we have to do that anyway, for other reasons that Joel Halpern
>> pointed out (since Session IDs are unique per node, not network-wide). That will
>> be fixed in the next GRASP draft. But in any case, the recipient of a LL multicast
>> can know the source address (and interface #) even if they are not in the payload.
>> So this isn't a problem.
>>
>> However, I do think that the "announcement" nature of this is better suited
>> to the unsolicited flooding message than the Discovery message, because then
>> it's natural to include data in the message.
> 
> so rather than add “locator-option” to the discovery message use unsolicited response messages. This makes sense (very similar to mDNS approach!). 
> 
> FYI - as an editorial note the paragraph explaining flooding is buried in s3.3.5 and could probably be called out more clearly in the text. Perhaps its own section or in the Response section? Similarly s3.9.1 includes the text: "and for terminating flooding as described in FLOODING” which looks like an incomplete reference as if you had already planned to pull flooding out into its own section.
> 
> - max
> 
>>
>>    Brian
>>
>>>
>>> - max
>>>
>>>> On Dec 3, 2015, at 9:27 PM, Brian E Carpenter <brian.e.carpenter@gmail.com> wrote:
>>>>
>>>> On 04/12/2015 14:43, Toerless Eckert wrote:
>>>>
>>>> ...
>>>>>  IMHO, i would let the proxy periodically (30 secs) just announce that its providing
>>>>>  AN enrollment proxy function via link-local IPv6 multicast. 
>>>>
>>>> Here's the Python code to do that with my prototype:
>>>>
>>>> import grasp
>>>> import time
>>>>
>>>> OK, nonce = grasp.register_asa("Boot")
>>>> if not OK:
>>>>   #we've got a serious problem...
>>>>   raise RuntimeError("Can't register as ASA")
>>>>
>>>> obj = objective(0,":Boot")
>>>> x = grasp.register_obj(nonce, obj)
>>>> if not x == "OK":
>>>>   #we've got a different problem...
>>>>   raise RuntimeError(x)
>>>>
>>>> while True:
>>>>   grasp.discover(nonce, obj, 30000)
>>>>
>>>> What this does is register the caller as an ASA called "Boot" that handles the
>>>> objective called ":Boot", and then LL multicast a discovery message every
>>>> 30s. That will tell the others that it's there. It's running in another window
>>>> as I type. I didn't write the handler code for the receiving end yet though,
>>>> so I just get output like this twice a minute:
>>>>
>>>> CBOR->Python gives:  [1, 1248700, b'$\x06\xe0\x07S\x07\x00\x01(\xcc\xdcL\x97\x03g\x81', ':Boot', 0, 6, 0]
>>>>
>>>>> Maybe with port-number
>>>>>  and protocol (EST over IPv6 link-local ) as parameters so it's extensible.
>>>>
>>>> If you want parameters, we'd need to use the (synch) flooding method
>>>> instead. Maybe I'll write that code next week; it will be very similar to
>>>> the discovery case. I don't think there are any real problems here.
>>>>
>>>> Python+CBOR is fun. Thanks, Toerless, for pushing the CBOR idea.
>>>>
>>>>  Brian
>>>>
>>>> _______________________________________________
>>>> Anima-bootstrap mailing list
>>>> Anima-bootstrap@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/anima-bootstrap
>>>
>>
>