Re: [babel] Example configuration

Mahesh Jethanandani <mjethanandani@gmail.com> Tue, 06 August 2019 19:04 UTC

Return-Path: <mjethanandani@gmail.com>
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 26F1712013C for <babel@ietfa.amsl.com>; Tue, 6 Aug 2019 12:04:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 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_HELO_NONE=0.001, 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 ndO0GNuIY12a for <babel@ietfa.amsl.com>; Tue, 6 Aug 2019 12:04:16 -0700 (PDT)
Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) (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 BFD501200A3 for <babel@ietf.org>; Tue, 6 Aug 2019 12:04:16 -0700 (PDT)
Received: by mail-pf1-x42a.google.com with SMTP id p184so42004719pfp.7 for <babel@ietf.org>; Tue, 06 Aug 2019 12:04:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=pmpIsDFlo768njtw3zQTJ6M6lkCVHEAGL/RBYMxExmI=; b=gyIbyHVvJjXJYBTWS2NWFdjAIsttT8e919F3lD1lqDAWlvtivk2hFnlxHUM5AsAexo iXx+SkrCUtQbW7QsTl+8EF/7UOMQr7LhBDjbtZiMG3XE/nlW6BeAzhvc1qxStBA0np/U V67tb+IPmu2Mngvkd65UDW++fTap+Rt/ENYJRJhv8dpVt/4qyQ6dcWuxb259AArVBQGI /k/gLjuJHXv2yxdmhzKHrj4ZfnDpFZ75UXYgatD/oCv2iFJelyr4A4P+0gJP1IY+C0bY uallrLyrLia1o+RR7eWJ1yfkD/XGdAK1L7UT3+edNubPL1PUZYDcHmTPDFfSGC0P4kNu phuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=pmpIsDFlo768njtw3zQTJ6M6lkCVHEAGL/RBYMxExmI=; b=umnT36adx/9gqtzaXPUHIegfH9TDytq+DpO2nyWJ++DVul2ifJZoG+m13AeF/9Ud3H hk3yazsa/g3Rr74bl03R/3moy+nOXqFtPZYiMEoid/tZ2saOfj51mbZAjFwLVMrLKxto JOdUO0SLwSkqbKsEWKo0mDmSHNG8Pnw7e74xDWt9ZZxqxcGBJiUZwz6AgFjOWqazoWL2 0GQsebLp9exe+Nq6ecwmAdT0GQL3Eze5Je1mZnB5M6xPcOLrkPRAbuVwin7qC6bWznaL /KCg921lJOvVMPqEYt4OUUZS05reL0X7k23A/pk/hE8rtrx4Xvpp8RcW8VGf7vBCwwn0 SvpA==
X-Gm-Message-State: APjAAAVyjhY+kg7WV9ZvzSEOUBi2lkpEi/P6llZsuXB4Q8UfcE+e98ep NLOzkLN9DUn0b75J9FGR0TJO6GWYD98=
X-Google-Smtp-Source: APXvYqyJIFLCqfkz7fYb8ZPZ2hKOVfnEqoYYOHX5+P+j0Is2iY/AVXKkrcRkMxsCIyIHPynBa+ug8Q==
X-Received: by 2002:a17:90a:3401:: with SMTP id o1mr4624282pjb.7.1565118256055; Tue, 06 Aug 2019 12:04:16 -0700 (PDT)
Received: from [10.33.122.240] ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id z20sm139922789pfk.72.2019.08.06.12.04.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Aug 2019 12:04:14 -0700 (PDT)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Message-Id: <0E0A89B7-3D7A-4605-8776-2CF685B268B0@gmail.com>
Content-Type: multipart/mixed; boundary="Apple-Mail=_29C2421E-7C8D-4C62-BE9F-039DF6A825F7"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Tue, 06 Aug 2019 12:04:13 -0700
In-Reply-To: <8736itu6j8.wl-jch@irif.fr>
Cc: Babel at IETF <babel@ietf.org>
To: Juliusz Chroboczek <jch@irif.fr>
References: <E726ED50-6D90-4537-B237-6E52D375F50B@gmail.com> <8736itu6j8.wl-jch@irif.fr>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/Hd3k7S1iRnpNaUbUHISdpbZ4hZE>
Subject: Re: [babel] Example configuration
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.29
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: Tue, 06 Aug 2019 19:04:19 -0000

Hi Juliusz,

As I said before, thanks for these examples. They truly will help anyone trying to configure babel using NETCONF/YANG.

See inline.

> On Jul 25, 2019, at 2:51 PM, Juliusz Chroboczek <jch@irif.fr> wrote:
> 
>> In my presentation on the YANG model for Babel, I asked for help in
>> trying to improve the example configuration of Babel. The example was
>> shown in XML, but that does not mean I am expecting anyone to help me
>> improve the example in XML.
> 
> I'll use the syntax of the babeld configuration file.
> 
> Here's a pretty minimal config:
> 
>  interface eth0
>  interface wlan0
> 
> This says to run Babel on interfaces eth0 and wlan0.  Babeld will
> automatically detect that eth0 is wired and wlan0 is wireless, and will
> configure the right parameters automatically.

The XML encoding of the above example can be found in example-babel-configuration-2.4.xml which is attached to this e-mail.

> 
> Here's a slightly less minimal configuration:
> 
>  interface eth0
>  interface eth1 type wireless
>  interface tun0 type tunnel
> 
> Here, interface eth1 is an Ethernet bridged to a wireless radio, so
> babeld's autodetection fails, and the interface type needs to be
> configured manually.  Tunnels are not detected automatically, so this
> needs to be specified.
> 
> This is equivalent to the following:
> 
>  interface eth0
>  interface eth1 link-quality true split-horizon false
>  interface tun0 enable-timestamps true max-rtt-penalty 96

The XML encoding of the above example can be found in example-babel-configuration-2.5.xml. You will notice that eth1 type is set to ‘wireless’ using ‘link-properties’. Same for tun0 and ‘tunnel’.

> 
> Here's another configuration:
> 
>  interface eth0
>  interface ppp0 hello-interval 30 update-interval 120
>  in if ppp0 metric 1024
>  out if ppp0 metric 1024
> 
> Here, ppp0 is a metered 3G link used for fallback connectivity.  It runs
> with much higher than default time constants in order to avoid control
> traffic as much as possible, and the metric of routes through that link
> are increased so that they are not used unless all other options fail.

Here is where I am stuck. Currently, there is a babel-mcast-hello-interval parameter defined in the information model under the interface. But this a read-only attribute, meaning it is a operational value, not a configuration value. There is no unicast hello interval, which is what I am assuming you mean above. So the question is, do we need one, and if it is configurable parameter, it needs to read-write. Secondly, babel-update-interval is also an read-only (operational) parameter, therefore cannot be configured. If this needs to be a configurable parameter, the information model will need to be updated.

Also, there is no metric configuration on an interface today. Certainly not based on in and out traffic. If we need to add it, the information model needs to be updated.

> 
> Here's a configuration for David:
> 
>  interface eth0
>  interface wlan0 unicast true
> 
> This requests that all control traffic other than Hellos on the wlan0
> interface be sent as unicast.  This can be useful when wlan0 uses
> a technology on which multicast is prohibitively expensive.

Currently, we have no way to configure an interface to send unicast traffic in a preferred manner. If this is required, we will need to update the babel-interface-obj in the information model. I also notice something called unicast-only, which by its name tells me send unicast traffic only. Also not in the information model.

> 
> Another one:
> 
>  interface atm0 split-horizon false unicast true

Currently, I can configure the interface for split-horizon, but cannot configure it for unicast traffic. Looks like we need this to be added.

> 
> Here, atm0 is an NBMA interface.  Transitive connectivity is not
> guaranteed, so we disable the split-horizon optimisation.  Unicast is to
> be preferred to multicast whenever possible.
> 
> Here is a configuration that is not yet implemented, but planned for
> a future version:
> 
>  interface wg0 unicast-only true
>  neighbour fe80::1234 if wg0
> 
> Here, wg0 is a Wireguard tunnel, and doesn't support multicast at all.
> All traffic over that interface is sent as unicast, so automatic discovery
> is not possible.  Thus, we need to specify the link-local addresses of
> neighbours manually.

Again, this is something that the current information model does not support. If we need to be able to specify a link-local address for a neighbor, the information model will need to be updated. That command also needs to specify which interface the link local address needs to be associated with.

> 
> Hope this helps,

Yes, it does. And plenty!

> 
> -- Juliusz
> 
> 

Mahesh Jethanandani
mjethanandani@gmail.com