[homenet] HNCP

Mark Townsley <mark@townsley.net> Thu, 13 February 2014 17:41 UTC

Return-Path: <mark@townsley.net>
X-Original-To: homenet@ietfa.amsl.com
Delivered-To: homenet@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 17FA51A0384 for <homenet@ietfa.amsl.com>; Thu, 13 Feb 2014 09:41:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
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 aDRBd25dtBSE for <homenet@ietfa.amsl.com>; Thu, 13 Feb 2014 09:41:45 -0800 (PST)
Received: from mail-pa0-f54.google.com (mail-pa0-f54.google.com [209.85.220.54]) by ietfa.amsl.com (Postfix) with ESMTP id 6FA071A02CD for <homenet@ietf.org>; Thu, 13 Feb 2014 09:41:43 -0800 (PST)
Received: by mail-pa0-f54.google.com with SMTP id fa1so11080468pad.13 for <homenet@ietf.org>; Thu, 13 Feb 2014 09:41:42 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:content-type:message-id:mime-version :subject:date:references:to:in-reply-to; bh=6LdPAnXr8Cv+LTc78D14ROpo9rj4uPbWnf6y687srx0=; b=jrKS76b0kBzD8i4BpRxd1fMXtSGhGIUHmuDV2u3/nK8d2BiJ+dV5MW2+5TMLYvN43V +kg1pL3g0wJ3bSs3W0JJLng8JKKKjf6u599m6ogccvSLuebfJLP33gyuIM6pxV+gYN97 L/+9+20oWsr953AQVcaYtKJnquT+2NWuzBrcKkL4WyLq++Ah8cksT9Xl8E1AfE0QvaeG A8ObdRKjv6+/Ze/Glg65DlBqvRPv/cdttwFERTRcca4BhqUIw26adMBFFUpEKOKIDQ0B 3LVofiqJov8dqocs1lVEvabfmYdyPm1CxOM4HMxtzJInnsfzkFlaM1xx3kE8QSm3rZ38 MP0Q==
X-Gm-Message-State: ALoCoQnJAq512FtPL/xnl0NTwhnAEsC08aP4W7Z0HnBVmu95Ezj2PT1ul8z6qLb5OvfhCy9eo7iU
X-Received: by 10.68.202.225 with SMTP id kl1mr3314519pbc.54.1392313302275; Thu, 13 Feb 2014 09:41:42 -0800 (PST)
Received: from sjc-vpn7-1914.cisco.com (128-107-239-235.cisco.com. [128.107.239.235]) by mx.google.com with ESMTPSA id qh2sm19756522pab.13.2014.02.13.09.41.38 for <homenet@ietf.org> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 13 Feb 2014 09:41:39 -0800 (PST)
From: Mark Townsley <mark@townsley.net>
Content-Type: multipart/alternative; boundary="Apple-Mail=_B7100CA9-4DC7-4D04-931B-1998DE72D011"
Message-Id: <6BF5B681-446C-4BCA-9B53-A05A9D4A9E38@townsley.net>
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
Date: Thu, 13 Feb 2014 09:41:36 -0800
References: <58809B4D-CCE4-4DAC-9A1A-DD475584E65B@iki.fi>
To: "homenet@ietf.org Group" <homenet@ietf.org>
In-Reply-To: <58809B4D-CCE4-4DAC-9A1A-DD475584E65B@iki.fi>
X-Mailer: Apple Mail (2.1510)
Archived-At: http://mailarchive.ietf.org/arch/msg/homenet/BrOmYfURp8JEq7jgcjKrh9PrdAk
Subject: [homenet] HNCP
X-BeenThere: homenet@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <homenet.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/homenet>, <mailto:homenet-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/homenet/>
List-Post: <mailto:homenet@ietf.org>
List-Help: <mailto:homenet-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/homenet>, <mailto:homenet-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 13 Feb 2014 17:41:49 -0000

All,

In case anyone missed it, Markus and Pierre posted drafts and a pointer to an implementation describing the Home Net Control Protocol. 

I'd like to provide some additional background, hat off.

The work Markus, Stephen and Pierre have been doing is funded by a "Cisco Technology Fund" grant. The purpose of this grant has been to deliver technology backed by open source code that will be adopted by a community willing to maintain it, with the ultimate goal of that technology making its way into commercial product (for this to matter, it needs to make it into far more than Cisco product). During its first phase of operation, the main focus was on work originally started by Jari Arkko, Acee Lindem, and Benjamin Paterson in OSPF by fleshing this out in code and spec. Much was learned, and you may have seen some of the results at various bits-n-bytes and in draft updates (or the Markus' github if you were watching). The second phase, which began after the Berlin IETF, has been to take what was learned in the first phase and focus on:

- upstreaming the technology into an open source project (in this case, OpenWRT)
- modularity and adaptability to other routing protocols (e.g., ISIS)
- best-effort capabilities in simple topologies in case one common routing protocol support was not available
- integration with draft-behringer-homenet-trust-bootstrap and draft-kline-default-perimeter

The result after several months of heads-down effort is contained in the drafts below. The document from pfister is an evolution of the IPv6 prefix assignment work started by Jari, but in its own document such that it can be referenced by to OSPF, ISIS, HNCP, etc. The two from stenberg describe HNCP, as well as a general way to support Stuart's work in draft-cheshire-mdnsext-hybrid in a zeroconf mannter when the list of routers in a site is known (as HNCP does, or any link-state routing protocol should). 

Personally, I was very skeptical when the team let me know that the result of their analysis led them to the need to create HNCP. If nothing else, between the OSPF work done in Phase one, and the HNCP work in Phase two, these are two concrete examples in draft and code form for the WG to examine to help decide the first question at the top of Ole's flowchart posted here earlier.

For those with no time to read the drafts, here's my one paragraph synopsis of what HNCP does:

HNCP uses the Trickle (RFC6206) algorithm to trigger when basic configuration state for the homenet is out of sync on any router. Essentially, a hash (or signature if security is present) over an ordered list of the known homenet nodes and attributes necessary to keep the homenet alive is handed over to Trickle. Trickle worries only about that hash value, and whether all nodes agree that the value is the same. When they don't agree, HNCP sends update messages between nodes until Trickle is happy again. The HNCP document also defines some specifics used in the OpenWRT implementation for border detection (based on draft-kline-homenet-default-perimeter), some hooks for integration with Behringer's trust bootstrapping (not 100% finished though), IPv4 and IPv6 prefix distribution, and an auto-negotiation mechanism depending on what type of routing protocol support is available. In the event no common routing protocol is available, HNCP defines a "fallback" mode that at least gets packets out the right interface and avoids loops, even if the path is not ideal, has no metrics, etc. 

This is all pretty close to what the team set out to achieve with the 4 bullets above as constraints and guidelines. Of this I can't help to be impressed. It came with a new protocol though, which shouldn't be taken lightly, but indeed might be necessary. I look forward to what the WG ultimately decides here. 

Finally, if you want to follow some of the work being done by Markus, Stephen, Pierre, et. al. without necessarily logging into a github to do it, you can poke around here: http://www.homewrt.org (it may be a tad behind the latest-greatest though). 

Hat back on now… Tim, Ray and I are working with the ADs to get the homenet-arch doc through the system. According to Tim, all DISCUSS points have been worked out on email with ADs weeks if not months ago, and the results are in -12 which has been posted. We're back to prodding ADs for time and mental cache reloading of their issues for them to clear. Once that is finished, the WG will finally be at a point that it can "officially" work on solutions.

Now, as Markus asked, "Discuss"! :-)

- Mark


Markus Stenberg <markus.stenberg@iki.fi> (and Pierre Pfister) wrote:

> Drafts:
>   http://tools.ietf.org/html/draft-stenberg-homenet-hncp-00
>   http://tools.ietf.org/html/draft-stenberg-homenet-dnssd-hybrid-proxy-zeroconf-00
>   http://tools.ietf.org/html/draft-pfister-homenet-prefix-assignment-00 
> 
> Experimental partial implementation:
>   https://github.com/sbyx/hnetd/
> 
> Discuss.
> 
> Cheers,
> 
> -Markus
> _______________________________________________
> homenet mailing list
> homenet@ietf.org
> https://www.ietf.org/mailman/listinfo/homenet