Re: [rbridge] a stronger RPF check for TRILL
Jon Hudson <jon.hudson@gmail.com> Fri, 09 March 2012 22:19 UTC
Return-Path: <rbridge-bounces@postel.org>
X-Original-To: ietfarch-trill-archive-Osh9cae4@ietfa.amsl.com
Delivered-To: ietfarch-trill-archive-Osh9cae4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 509BA21E8088 for <ietfarch-trill-archive-Osh9cae4@ietfa.amsl.com>; Fri, 9 Mar 2012 14:19:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.801
X-Spam-Level:
X-Spam-Status: No, score=-4.801 tagged_above=-999 required=5 tests=[AWL=1.198, BAYES_00=-2.599, J_CHICKENPOX_55=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FCsFdRbxXQob for <ietfarch-trill-archive-Osh9cae4@ietfa.amsl.com>; Fri, 9 Mar 2012 14:19:54 -0800 (PST)
Received: from boreas.isi.edu (boreas.isi.edu [128.9.160.161]) by ietfa.amsl.com (Postfix) with ESMTP id 5285A21E805F for <trill-archive-Osh9cae4@lists.ietf.org>; Fri, 9 Mar 2012 14:19:54 -0800 (PST)
Received: from boreas.isi.edu (localhost [127.0.0.1]) by boreas.isi.edu (8.13.8/8.13.8) with ESMTP id q29LteUS019249; Fri, 9 Mar 2012 13:55:41 -0800 (PST)
Received: from mail-gx0-f180.google.com (mail-gx0-f180.google.com [209.85.161.180]) by boreas.isi.edu (8.13.8/8.13.8) with ESMTP id q29LtIo9019196 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for <rbridge@postel.org>; Fri, 9 Mar 2012 13:55:27 -0800 (PST)
Received: by gglu1 with SMTP id u1so1738147ggl.39 for <rbridge@postel.org>; Fri, 09 Mar 2012 13:55:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=references:in-reply-to:mime-version:content-transfer-encoding :content-type:message-id:cc:x-mailer:from:subject:date:to; bh=NZdykYT2svMcr89WhyGU6N9Rv3XIRn7nbl7cje/2bjg=; b=Ak84LkH6Z0a5YFZgdaeXDPIQRLSx0l2C4Fs4VFLdULRn69EgohF1P76Dk7D+hgYwIX 5OHRbPsGUC6jU1MSbTKV6uSUPP5Xq3jGMQjIr/E2WJj2FlSzcrDdRPJJUOW+rKLbs/10 t/SpsQm0sZhuCsRWbs1tNv7x0VlLgXtd57JlTOL6tE6Pc82DrNaELw6rWn3dGX740w+4 swN5DmxPcNKClwXlg0wSuGyKf0QrYuZ4r1h7Zn1V2lHQLSfEmatGnXSp4BQuY3gojTVr pMQtJjuFNXMePaqfZ8Y9Lq2wyNBpIpz/QiyhlkKP2fZ9it1j6mhxGwUgli+2+3seV6FB mYMA==
Received: by 10.182.52.104 with SMTP id s8mr1465496obo.59.1331330117810; Fri, 09 Mar 2012 13:55:17 -0800 (PST)
Received: from [10.0.1.15] (c-98-234-218-27.hsd1.ca.comcast.net. [98.234.218.27]) by mx.google.com with ESMTPS id x9sm3352692oea.7.2012.03.09.13.55.14 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 09 Mar 2012 13:55:16 -0800 (PST)
References: <OF717BEAAE.B04DF3B2-ON872579BB.00608789-882579BB.00615D1A@us.ibm.com> <CA+-tSzwj5KRZnBAnPQYsN=hvm-tV1MsefXN8NqKvoh3RbHHOEQ@mail.gmail.com> <CAF4+nEGHy=EJYFx3Vg+zDv_aKorNAk7N32r4nqUCS=Y3Xmj56g@mail.gmail.com> <CAFOuuo4QEC8npinO0OxVWhwutsb+fD1Gh0KCKru29-Xrnsf=Nw@mail.gmail.com>
In-Reply-To: <CAFOuuo4QEC8npinO0OxVWhwutsb+fD1Gh0KCKru29-Xrnsf=Nw@mail.gmail.com>
Mime-Version: 1.0 (1.0)
Message-Id: <1C4D6949-3235-4BB0-B148-C88791DD5CC0@gmail.com>
X-Mailer: iPhone Mail (9B176)
From: Jon Hudson <jon.hudson@gmail.com>
Date: Fri, 09 Mar 2012 13:55:11 -0800
To: Radia Perlman <radiaperlman@gmail.com>, SantoshRajagopalan <sunny.rajagopalan@us.ibm.com>
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: jon.hudson@gmail.com
X-MIME-Autoconverted: from quoted-printable to 8bit by boreas.isi.edu id q29LtIo9019196
Cc: Donald Eastlake <d3e3e3@gmail.com>, "rbridge@postel.org" <rbridge@postel.org>, Anoop Ghanwani <anoop@alumni.duke.edu>
Subject: Re: [rbridge] a stronger RPF check for TRILL
X-BeenThere: rbridge@postel.org
X-Mailman-Version: 2.1.6
Precedence: list
List-Id: "Developing a hybrid router/bridge." <rbridge.postel.org>
List-Unsubscribe: <http://mailman.postel.org/mailman/listinfo/rbridge>, <mailto:rbridge-request@postel.org?subject=unsubscribe>
List-Archive: <http://mailman.postel.org/pipermail/rbridge>
List-Post: <mailto:rbridge@postel.org>
List-Help: <mailto:rbridge-request@postel.org?subject=help>
List-Subscribe: <http://mailman.postel.org/mailman/listinfo/rbridge>, <mailto:rbridge-request@postel.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: rbridge-bounces@postel.org
Errors-To: rbridge-bounces@postel.org
I agree! Both stronger & easier to read/understand. Very nice Santosh! On Mar 9, 2012, at 7:57 AM, Radia Perlman <radiaperlman@gmail.com> wrote: > Ah. Yes, thank you for that explanation, Donald. Santosh is indeed > correct, and it also makes the spec easier to read, which is an > additional plus. > > Radia > > On Fri, Mar 9, 2012 at 6:44 AM, Donald Eastlake <d3e3e3@gmail.com> wrote: >> Hi Anoop, >> >> On Fri, Mar 9, 2012 at 7:51 AM, Anoop Ghanwani <anoop@alumni.duke.edu> wrote: >>> The tree adjacency check already accounts for this. >>> http://tools.ietf.org/html/rfc6325#section-4.6.2.5 >>> >>>>> >>> The Outer.MacSA is checked and the frame discarded if it is not a >>> tree adjacency for the tree indicated by the egress RBridge nickname >>> on the port where the frame was received. >>>>> >>> >>> This is done in addition to the port-based RPF check. >> >> Ahhh, but this is not quite a strong as what Santosh is suggesting. >> The subtle weakness is that "adjacency" has no directionality. >> >> RFC 6325 currently specifies this part of the RPFC as two separate checks: >> 1. Is ( tree, Outer.MacSA, arrival port) an allowed triplet according >> to the current topology and tree? >> 2. Is ( tree, ingress, arrival port ) an allowed triplet according to >> the current topology and tree? >> >> What Santosh is suggesting, which would be just a little stronger and >> arguably simpler, is equivalent to replacing this with one test: >> -- Is ( tree, Outer.MacSA, ingress, arrival port ) an allowed quadruplet? >> >> This is stronger because, on a multi-access link, one Outer.MacSA may >> only be allowed on frames from the ingress and other Outer.MacSA may >> only only be allowed on frames ingressed elsewhere. >> >> I think some existing silicon may already use this combined RPFC test... >> >> Thanks, >> Donald >> ============================= >> Donald E. Eastlake 3rd +1-508-333-2270 (cell) >> 155 Beaver Street, Milford, MA 01757 USA >> d3e3e3@gmail.com >> >>> Anoop >>> >>> On Thu, Mar 8, 2012 at 9:43 AM, Santosh Rajagopalan >>> <sunny.rajagopalan@us.ibm.com> wrote: >>>> It appears the the multidestination frame checks present in TRILL may not be >>>> strong enough to cover some cases of packet duplicates during network >>>> transition scenarios. In this email, I'm going to suggest a modification of >>>> the TRILL RPF check to cover these cases. >>>> >>>> The root problem is that there's a notion of directionality built into the >>>> RPF concept ("accept packets from X along this vector"). In a p2p link, >>>> specifying the port alone uniquely qualifies that vector. However, in a >>>> multiaccess link, there are many "links/adjacencies" overlaid on the >>>> physical link. To identify one of them, you need to specify both the >>>> outer_smac *and* the port. So the RPF check should actually be "accept >>>> packets from X along (outer_smac, port)". >>>> >>>> Consider this network: >>>> >>>> F--A--B--C--o--D >>>> All the links except the link between C and D are p2p links. C and D are >>>> connected over a classical ethernet network (represented by the pseudonode >>>> "o"). Let's say D gets picked as the root for a multidestination tree (the >>>> choice of root is unimportant here). >>>> The resulting tree looks like: >>>> >>>> F--A--B--C--o--D >>>> >>>> Now lets say that a link comes up from A to the same classical ethernet >>>> network. So the network looks like this: >>>> ________ >>>> | | >>>> F--A--B--C--o--D >>>> >>>> Let's say the resulting tree in steady state includes all links except the >>>> B-C link. After the network has converged, a packet that starts out from F >>>> will go F->A, where A will send one copy to the A-B link and another copy >>>> into the CE network, from where it will be received by C and D. >>>> >>>> However, lets consider a transition stage where A and D have acted on their >>>> LSPs and programmed their forwarding plane, while B and C have not yet done >>>> so. >>>> This means that B and C both consider the link between them to still be part >>>> of the tree. >>>> >>>> So a packet that starts out from F and reaches A will be copied by A into >>>> the A-B link and the A-o link. D's RPF check says to accept packets on this >>>> tree coming from F over its link to the CE network, so it gets accepted. D >>>> is also adjacent to A on the tree, so the tree adjacency check also passes. >>>> >>>> However, the packet that gets to B gets sent out by B to C. C's RPF check >>>> still has the old state, and it thinks the packet is ok. C sends the packet >>>> along the old tree, which is towards the CE network. D receives one more >>>> packet, but the tree adjacency check passes because C is adjacent to D in >>>> the new tree as well. The RPF check also passes because D's link to the CE >>>> network is ok for receiving packets from A. >>>> >>>> So now D gets duplicates of every packet until B and C act on their LSPs and >>>> program their hardware tables. The AF state is (I believe) irrelevant here >>>> because we're talking about TRILL encapsulated packets, not native CE >>>> frames. >>>> >>>> In the example above, the adjacency check alone doesn't help, because the >>>> rbridge D has adjacencies to both A & C on the tree. A check on (port, smac) >>>> will pass for packets from both A and C. >>>> >>>> The only check which can stop this from happening, I believe, is if you >>>> replace the current RPF check which looks like this: >>>> {tree_id, source_rbridge}->{allowed_port} >>>> >>>> with a modified check which looks like this: >>>> >>>> {tree_id, rbridge}->{allowed_port, allowed_outer_smac} >>>> >>>> This will make sure that packets will be accepted by D only if they were >>>> sent by A. This combined check can be a replacement for the currently >>>> separate adjacency and RPF checks. >>>> >>>> Thoughts? >>>> -- >>>> Sunny Rajagopalan >>>> >>>> >>>> _______________________________________________ >>>> rbridge mailing list >>>> rbridge@postel.org >>>> http://mailman.postel.org/mailman/listinfo/rbridge >>>> >>> _______________________________________________ >>> rbridge mailing list >>> rbridge@postel.org >>> http://mailman.postel.org/mailman/listinfo/rbridge >> >> _______________________________________________ >> rbridge mailing list >> rbridge@postel.org >> http://mailman.postel.org/mailman/listinfo/rbridge > > _______________________________________________ > rbridge mailing list > rbridge@postel.org > http://mailman.postel.org/mailman/listinfo/rbridge _______________________________________________ rbridge mailing list rbridge@postel.org http://mailman.postel.org/mailman/listinfo/rbridge
- Re: [rbridge] a stronger RPF check for TRILL Donald Eastlake
- [rbridge] a stronger RPF check for TRILL Santosh Rajagopalan
- Re: [rbridge] a stronger RPF check for TRILL Anoop Ghanwani
- Re: [rbridge] a stronger RPF check for TRILL Radia Perlman
- Re: [rbridge] a stronger RPF check for TRILL Jon Hudson
- Re: [rbridge] a stronger RPF check for TRILL letracy
- Re: [rbridge] a stronger RPF check for TRILL Santosh Rajagopalan
- Re: [rbridge] a stronger RPF check for TRILL Sam Aldrin
- Re: [rbridge] a stronger RPF check for TRILL letracy
- Re: [rbridge] a stronger RPF check for TRILL Donald Eastlake
- Re: [rbridge] a stronger RPF check for TRILL Santosh Rajagopalan