Re: [Netconf] draft-ietf-netconf-zerotouch-21 feedback

Tarko Tikan <tarko@lanparty.ee> Sun, 18 March 2018 19:07 UTC

Return-Path: <tarko@lanparty.ee>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B5123126D73 for <netconf@ietfa.amsl.com>; Sun, 18 Mar 2018 12:07:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level:
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=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 9s6H7i0M0RJ4 for <netconf@ietfa.amsl.com>; Sun, 18 Mar 2018 12:07:26 -0700 (PDT)
Received: from valgus.lanparty.ee (valgus.lanparty.ee [194.126.124.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A9D1A126BF3 for <netconf@ietf.org>; Sun, 18 Mar 2018 12:07:26 -0700 (PDT)
Received: from tuli.elion.ee ([194.126.117.170] helo=[10.65.100.136]) by valgus.lanparty.ee with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from <tarko@lanparty.ee>) id 1exdeL-0004xm-Pv; Sun, 18 Mar 2018 21:07:22 +0200
To: Kent Watsen <kwatsen@juniper.net>, "netconf@ietf.org" <netconf@ietf.org>
References: <4dbe32ed-7469-7469-cd46-aee06bb2c79c@lanparty.ee> <7B96ECE5-75EF-4DFF-A6E8-39AD5E96C879@juniper.net>
From: Tarko Tikan <tarko@lanparty.ee>
Message-ID: <ed540b4c-7ad5-3085-6e48-1f1b3ee47f8f@lanparty.ee>
Date: Sun, 18 Mar 2018 21:07:21 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <7B96ECE5-75EF-4DFF-A6E8-39AD5E96C879@juniper.net>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-SA-Exim-Connect-IP: 194.126.117.170
X-SA-Exim-Mail-From: tarko@lanparty.ee
X-SA-Exim-Version: 4.2.1 (built Tue, 02 Aug 2016 21:08:31 +0000)
X-SA-Exim-Scanned: Yes (on valgus.lanparty.ee)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/TwVsXfOMnc81Fj1wF7vXcxbwpLk>
Subject: Re: [Netconf] draft-ietf-netconf-zerotouch-21 feedback
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 18 Mar 2018 19:07:30 -0000

hey,

>> I might be mistaken but currently it looks like secure bootstrap is not
>> possible without properly precustomized devices. If hw-model, os-name
>> etc. are not sent in get-bootstrapping-data in untrusted mode it becomes
>> impossible to generate correct configuration for the device.
> 
> I'm curious what you mean by the first sentence.  Looking to the 2nd
> sentence for clues, be aware that those three input parameters are
> optional and only needed in select cases.  When get-bootstrapping-data is
> sent to an untrusted bootstrap server, the primary input is the device's
> authentication credentials (e.g., TLS-level client certificate) with
> which the bootstrap server can use to return signed data.  Please take
> a look at Appendix A (Promoting a Connection from Untrusted to Trusted).

Well I'm worried about the implications of the trust model. Getting the 
owner CA trust anchor onto the devices from factory would be as 
complicated as todays ZTP. Getting ownership vouchers from the 
manufacturer is better but from practical perspective it would be best 
if there would be insecure mode where device blindly trusts whatever is 
served by bootstrapping server.

>> 2) Currently used ZTP interface information should be sent in
>> get-bootstrapping-data. Minimally ifName and vlan ID (for the scenarios
>> where ZTP DHCP client sends out DHCP discovery on all 4k vlan IDs).
>>
>> This is required for devices that might have multiple ZTP capable
>> interfaces (router with DSL and SFP interface for example) and it's not
>> known which interface might be used during installation. Without this
>> information it again becomes impossible to generate correct
>> configuration for the device.
> 
> I see.  One or more additional input parameters would be needed to
> address this.  Do you think a single parameter "interface" (the name
> of the ZTP interface used) would suffice, or perhaps a generic "opaque"
> parameter for a vendor-specific text format would be more flexible?
> Currently, if needed, vendors could define a vendor-specific parameters
> but, of course, that could affect interoperability - as not all bootstrap
> servers will handle the additional input the same way.

The first concern is ZTP in general so it'll do even if it is vendor 
specific. But such things tend to be forgotten by vendors and if the 
interface parameter is optional then we might end up in the same 
situation as today - ZTP exists on paper but unusable in real life 
unless you can directly map device serial number to intended role.

It would be tempting to make it a single parameter filled with ifName of 
relevant interface. But that would be problematic in cases where device 
sends DHCP discoveries with all possible VLAN IDs while the subinterface 
for that VLAN might not exist. So when interface parameter is filled 
with ge-0/0/0 for example but vlan 123 is in use, the parameter should 
say ge-0/0/0.123.

>> 3) zerotouch/enabled? MUST be restored to "true" when device is
>> reset to factory config using a push-button or CLI command. There
>> have been negative examples where even factory default customization
>> is wiped clean during the push-button factory reset.
> 
> True, and it is the intention of the draft to enable devices to be
> "reset" in the field, thereby returning them to their initial states,
> as described in Section 5.   Perhaps the draft isn't saying this
> clearly enough?  Please let us know which section you were looking
> at when thinking this.

I was reading 5.1 when I thought about that. I mentioned this because I 
have seen situations where devices will end up in some limbo state after 
factory reset even when they were ZTP capable from the factory. IMHO if 
someone claims they support draft-ietf-netconf-zerotouch then their 
devices MUST return to zerotouch/enabled?=true in every factory reset 
situation imaginable.

-- 
tarko