Re: Persistent loops when mixing rtgwg-enterprise-pa-multihoming and rtgwg-dst-src-routing

Matthieu Boutier <boutier@irif.fr> Wed, 26 July 2017 13:05 UTC

Return-Path: <boutier@irif.fr>
X-Original-To: rtgwg@ietfa.amsl.com
Delivered-To: rtgwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EC79C126C22 for <rtgwg@ietfa.amsl.com>; Wed, 26 Jul 2017 06:05:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 IlfYKlwTVit6 for <rtgwg@ietfa.amsl.com>; Wed, 26 Jul 2017 06:05:22 -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 EFBE2120721 for <rtgwg@ietf.org>; Wed, 26 Jul 2017 06:05:21 -0700 (PDT)
Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/56228) with ESMTP id v6QD5DCj023524; Wed, 26 Jul 2017 15:05:14 +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 E9BA5EB2FC; Wed, 26 Jul 2017 15:05:13 +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 cWmg4l7VltPO; Wed, 26 Jul 2017 15:05:09 +0200 (CEST)
Received: from host-37-32.sg.lan (unknown [172.23.37.32]) (Authenticated sender: boutier) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 58624EB2D0; Wed, 26 Jul 2017 15:05:08 +0200 (CEST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
Subject: Re: Persistent loops when mixing rtgwg-enterprise-pa-multihoming and rtgwg-dst-src-routing
From: Matthieu Boutier <boutier@irif.fr>
In-Reply-To: <D59D5469.BA187%acee@cisco.com>
Date: Wed, 26 Jul 2017 15:05:07 +0200
Cc: David Lamparter <equinox@diac24.net>, "rtgwg@ietf.org" <rtgwg@ietf.org>, Anton Smirnov <as@cisco.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <BFA9B79E-65F1-4679-BBED-A1FF80CC2050@irif.fr>
References: <20170719172913.GU773745@eidolon> <D59D5469.BA187%acee@cisco.com>
To: "Acee Lindem (acee)" <acee@cisco.com>
X-Mailer: Apple Mail (2.3124)
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [194.254.61.138]); Wed, 26 Jul 2017 15:05:14 +0200 (CEST)
X-Miltered: at korolev with ID 59789389.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 59789389.000 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/<boutier@irif.fr>
X-j-chkmail-Score: MSGID : 59789389.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Status: Ham
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtgwg/Qivs6vE7aPUH1V_79jzcbJoEPT4>
X-BeenThere: rtgwg@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Routing Area Working Group <rtgwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtgwg/>
List-Post: <mailto:rtgwg@ietf.org>
List-Help: <mailto:rtgwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 26 Jul 2017 13:05:25 -0000

Hi,

David, you're right, and as you remark, the draft says:

2.5: « It is also useful to note that the prefixes assigned to the site by
       different ISPs will not overlap. »

This hypothesis breaks your example.  But, as you, I think that we should
not rely on such hypothesis: it seems error-prone.  And I think that some
drafts (including yours) report use cases with overlapping prefixes.

> Note that doing the source address lookup first maps directly to the
> PA multi-homing use-case.

Acee, I strongly disagree with that, and that's all the point of section
3 of draft-ietf-rtgwg-enterprise-pa-multihoming.  We have routers A and B
advertising respectively (D=::/0, S=2001:db8:a::/48) and
(D=2001:db8:a::/48, S= ::/0).  This is exactly two routes.  No more.  A
dest-src table, like the one in the Linux kernel (IPv6 subtrees) will
handle these routes correctly:

        Destination                Source      Nexthop
    --------------------------------------------------
               ::/0      2001:db8:a::/48             X
    2001:db8:a::/48                 ::/0             Y

Two routes are advertised, the routing table has two routes: everything is
clear.  By the way, this is the simplest realistic scenario possible:

    2001:db8:a::/48
    +------+----…---- R --- ISP
    |      |
    H1     H2

So now, how to read this table?  If you do source lookup first, *all* your
packets are going towards the Internet, even the one coming from the
Internet… too bad.  If you do destination lookup first, everything is ok.

Now, the purpose of section 3 of enterprise-pa-multihoming-01 is just (in
my understanding) to tell people how to configure their routers if they
don't have native source-specific tables with destination-first ordering.
In that case, you have to deal with policy routing using multiple routing
tables with trafic engineering rules over it.  The result is:

             Source          Destination      Nexthop
    ---------------      -----------------------------
    (unscoped) ::/0      2001:db8:a::/48             X

             Source          Destination      Nexthop
    ---------------      -----------------------------
    2001:db8:a::/48                 ::/0             Y
                         2001:db8:a::/48             X  # section 3's copy

However, section 3's method only works with disjoint source prefixes.  We
provided a general solution...  From a draft cited in this draft:

   [SS-ROUTING]
              Boutier, M. and J. Chroboczek, "Source-Specific Routing",
              August 2014.
              In Proc.  IFIP Networking 2015.  A slightly earlier
              version is available online from http://arxiv.org/
              pdf/1403.0445.

... and an implementation....

    https://github.com/boutier/babeld/blob/dev/disambiguation.c

Section 3 should be more clear about its motivations, and might just be a
reference to David's draft.  It's also unclear if it's the role of the
administrator to configure routing or if it's the role of the routing
protocol.  Section 3 says « The method described in this document is
intended to be easy to understand for network enterprise operators while
at the same time being functionally correct ».  I believe that presenting
plain dst-src tables is much easier to understand.

Anyway.  Also, the first examples of the draft use SADR domains and
"normal-routed" domain, sometimes with tunnels and so on... while saying
that having such topology may not lead to have the best route.  I think
that the draft would be improved if it first present the clean solution
which is: *all the network support dst-src routing*.  This is what we
really want for the long term.  I think that all the discussion of 2.1
and 2.2 about what if all my routers don't implement SADR should be
moved in an annex named "progressive deployment" (or something like that).

Matthieu