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

Matthieu Boutier <boutier@irif.fr> Sat, 29 July 2017 08:47 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 1F46E132047 for <rtgwg@ietfa.amsl.com>; Sat, 29 Jul 2017 01:47:03 -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 KAWogRCYhtV9 for <rtgwg@ietfa.amsl.com>; Sat, 29 Jul 2017 01:47:01 -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 CC7C3120227 for <rtgwg@ietf.org>; Sat, 29 Jul 2017 01:47:00 -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/75695) with ESMTP id v6T8kt5O002048 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 29 Jul 2017 10:46:55 +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/75695) with ESMTP id v6T8ktee004212; Sat, 29 Jul 2017 10:46:55 +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 5DA7BEB2D0; Sat, 29 Jul 2017 10:46:55 +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 az1LgDzfhpJw; Sat, 29 Jul 2017 10:46:54 +0200 (CEST)
Received: from mac-matthieu.lan (AAubervilliers-652-1-222-176.w83-112.abo.wanadoo.fr [83.112.109.176]) (Authenticated sender: boutier) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id A18BDEB2FC; Sat, 29 Jul 2017 10:46:50 +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: <670146D0-A26A-4AA5-AC6C-253B81271C12@gmail.com>
Date: Sat, 29 Jul 2017 10:46:49 +0200
Cc: "Acee Lindem (acee)" <acee@cisco.com>, Anton Smirnov <as@cisco.com>, "rtgwg@ietf.org" <rtgwg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <1DA4E10A-A73E-4B1D-B527-6825EA47AEFF@irif.fr>
References: <20170719172913.GU773745@eidolon> <D59D5469.BA187%acee@cisco.com> <BFA9B79E-65F1-4679-BBED-A1FF80CC2050@irif.fr> <D59E78D6.BA292%acee@cisco.com> <E2F46315-BB0F-4463-B7D1-11E0965E92B8@irif.fr> <670146D0-A26A-4AA5-AC6C-253B81271C12@gmail.com>
To: Fred Baker <fredbaker.ietf@gmail.com>
X-Mailer: Apple Mail (2.3124)
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, 29 Jul 2017 10:46:55 +0200 (CEST)
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (potemkin.univ-paris7.fr [194.254.61.141]); Sat, 29 Jul 2017 10:46:55 +0200 (CEST)
X-Miltered: at korolev with ID 597C4B7F.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-Miltered: at potemkin with ID 597C4B7F.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 597C4B7F.000 from potemkin.univ-paris7.fr/potemkin.univ-paris7.fr/null/potemkin.univ-paris7.fr/<boutier@irif.fr>
X-j-chkmail-Enveloppe: 597C4B7F.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 : 597C4B7F.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Score: MSGID : 597C4B7F.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/rtgwg/AD4OR5Lo5mKpIWYatK7i1i7HQlM>
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: Sat, 29 Jul 2017 08:47:03 -0000

> Actually, I don't. I can produce cases in which source first gives the wrong route, and in which destination first gives the wrong route.

Interesting! (but I'm lost with the example below)

> The only way I see to make doing either one first *always* gives the right result is if a small set of routes is duplicated.

Did you mean: it any cases, the administrator himself will have to
duplicate routes to achieve its goals?

> The issue is when prefixes overlap. If you have sources S1 and S2, destinations D1 and D2, D1 is a more specific of D2, and D1 is advertised by S1 but not S2, and D2 is advertised by S2. If you are looking from S1, you should find S1->D1, and if you are looking from S2, you should find S2->D2. If you look destination first, and happen to be looking from S2, I think you wind up trying to find S2->D1, which doesn't exist.

I'm lost somewhere.  I'm unable to draw this example, being confused with
"who announces what?".  For example, when you say "D1 is advertised by S1
but not S2", does that mean that S1 wants to announce a route for the
destination D1 and for all sources except S2?  or S1 announces (D1, S1)
but not (D1, S2) ?  The first solution would give:

     (D1, ¬S2)
---.  <--     
S1 |----------
---'

:/

> This is the reason I have suggested a PATRICIA algorithm or something like it that looks up both addresses at the same time.

I should have missed the reference.  Could you please resend?  I guess you
first complete tables and then do the lookup, right?

Thanks,
Matthieu