[babel] Rationale for mixed unicast/multicast Hellos

Juliusz Chroboczek <jch@irif.fr> Sat, 08 April 2017 15:29 UTC

Return-Path: <jch@irif.fr>
X-Original-To: babel@ietfa.amsl.com
Delivered-To: babel@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AF39C1243F3 for <babel@ietfa.amsl.com>; Sat, 8 Apr 2017 08:29:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.001
X-Spam-Level:
X-Spam-Status: No, score=-0.001 tagged_above=-999 required=5 tests=[RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] 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 YFSYiVxIQKdv for <babel@ietfa.amsl.com>; Sat, 8 Apr 2017 08:29:51 -0700 (PDT)
Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) (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 35D531201F8 for <babel@ietf.org>; Sat, 8 Apr 2017 08:29:51 -0700 (PDT)
Received: from potemkin.univ-paris7.fr (potemkin.univ-paris7.fr [IPv6:2001:660:3301:8000::1:1]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/56228) with ESMTP id v38FTm9U021026 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 8 Apr 2017 17:29:49 +0200
Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by potemkin.univ-paris7.fr (8.14.4/8.14.4/relay2/56228) with ESMTP id v38FTmo4013455; Sat, 8 Apr 2017 17:29:48 +0200
Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id AE351D78B7; Sat, 8 Apr 2017 17:29:48 +0200 (CEST)
X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr
Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id Xm3v31P2IIYf; Sat, 8 Apr 2017 17:29:47 +0200 (CEST)
Received: from trurl.irif.fr (unknown [78.194.40.74]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 72FAAD78C3; Sat, 8 Apr 2017 17:29:47 +0200 (CEST)
Date: Sat, 08 Apr 2017 17:29:49 +0200
Message-ID: <87inme29zm.wl-jch@irif.fr>
From: Juliusz Chroboczek <jch@irif.fr>
To: mrcullen42@gmail.com
Cc: babel@ietf.org
In-Reply-To: <73C8A005-98F7-4E0F-AF96-D083905EBD22@gmail.com>
References: <87y3vcuuv8.wl-jch@irif.fr> <1344FE29-570C-4ECA-83C4-8AC400A347D6@inf-net.nl> <73C8A005-98F7-4E0F-AF96-D083905EBD22@gmail.com>
User-Agent: Wanderlust/2.15.9
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset="US-ASCII"
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]); Sat, 08 Apr 2017 17:29:49 +0200 (CEST)
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (potemkin.univ-paris7.fr [194.254.61.141]); Sat, 08 Apr 2017 17:29:48 +0200 (CEST)
X-Miltered: at korolev with ID 58E901EC.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-Miltered: at potemkin with ID 58E901EC.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 58E901EC.000 from potemkin.univ-paris7.fr/potemkin.univ-paris7.fr/null/potemkin.univ-paris7.fr/<jch@irif.fr>
X-j-chkmail-Enveloppe: 58E901EC.000 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/<jch@irif.fr>
X-j-chkmail-Score: MSGID : 58E901EC.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Score: MSGID : 58E901EC.000 on potemkin.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Status: Ham
X-j-chkmail-Status: Ham
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/BJwFoozwmNBEqsRKmvoTYQ5ZYys>
Subject: [babel] Rationale for mixed unicast/multicast Hellos
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "A list for discussion of the Babel Routing Protocol." <babel.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/babel>, <mailto:babel-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/babel/>
List-Post: <mailto:babel@ietf.org>
List-Help: <mailto:babel-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/babel>, <mailto:babel-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 08 Apr 2017 15:29:54 -0000

> I still think we would do better, in the limited cases where Unicast
> hellos are needed because broadcast/multicast hellos are not possible
> (secure links between neighbors or NBMA links) to just serialize any
> hellos that would have been broadcast on those links with the
> serialization feature enabled on a link-by-link basis.

I know that's your use case, Margaret, but I'm trying to design a protocol
extension that meets the three uses cases outlined in my mail dated
3 April 2017.  I'll get into a little more detail below.

> It has the benefit of being very simple to implement, and being
> completely compatible with the current protocol.

Agreed.

> Why do we want to support a mix of unicast and multicast hellos on
> a single link?

The basic issue is that multicast Hellos are the only way to perform
in-band discovery.  (Not a concern for you, Margaret, since you do
out-of-band discovery in your implementation.)

Consider an implementation that performs authentication by sending all the
protocol traffic over unicast and protecting it with DTLS.  Such an
implementation would send updates aggregated into large unicast packets,
and occasionally piggyback a Hello/IHU pair into such a unicast packet.
However, it would still want to announce itself to any new peers, so
occasionally it would send an unauthentified multicast Hello on each
interface.

Now it would be possible to require that Hellos be sent to all peers on an
interface, whether over multicast or multiple unicast, so that seqnos
remain in sync.  (I believe you're the one who suggested that, Margaret,
or at least you're the person who gave me the idea.)  I've considered
that, but it has four problems: it complicates the implementation by
adding a special case to the packet scheduler, it requires sending extra
traffic to some unicast peers (think battery-powered devices that have
a higher update interval than other peers), it breaks multicast
link-quality estimation (in 802.11, ETX only works well over multicast),
and finally it breaks the RTT extension (which is only effective if Hello
and IHU are sent in the same packet, so the receiver can correlate
timestamps).

Altogether, I think that adding a new packet type for Unicast Hellos is
the right tradeoff: it makes a weakly compatible protocol change (legacy
implementations will fail to associate with unicast-only peers, but
nothing will break), and finally it's conceptually manageable, without any
fragile special cases.

-- Juliusz