[Rift] Possible chain reaction of LIE messages with multiple neighbors on LAN?
Bruno Rijsman <brunorijsman@hotmail.com> Sat, 11 August 2018 16:11 UTC
Return-Path: <brunorijsman@hotmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5FE32130FB5 for <rift@ietfa.amsl.com>; Sat, 11 Aug 2018 09:11:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.124
X-Spam-Level:
X-Spam-Status: No, score=-1.124 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FORGED_HOTMAIL_RCVD2=0.874, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hotmail.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 TYDiFq6hriJG for <rift@ietfa.amsl.com>; Sat, 11 Aug 2018 09:11:50 -0700 (PDT)
Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-oln040092001060.outbound.protection.outlook.com [40.92.1.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 50E22130DE2 for <rift@ietf.org>; Sat, 11 Aug 2018 09:11:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S0cEfnVzGSuIrfcYK6sK6faH0/C0c/ZN8wHCEgiNO9w=; b=rBOIO4M4Ua3MCr8lfdgriuo/xFcSsX2lFY020XOSUNsWA0fJmL9z/vtpIsx+wieJiJFSSt91cxPWMzzUBgVMO+4wvxEWCZhzv6qC+IjpPlAJ/s2orW7SIgnz32Wa6K4oO77OjTYZDa2Ff7cXhu82X9wg1y5uabZ53QScD+k93TR8Byq+8h7+4S9ORp/1tg3KdM1WstUODCBSjLqwSEZx/J+J1Rg2vKjhcHb9ZcL7TENMTEjYJmdzolhNYm77MGnC0jU1+bmTZZBp+MNweBIJ6nGmU4tC6tIrB6jper9aipIzyvHrQsjgMToYd7j6eL5QGJUERxRooF/+SQ9YN/47Cw==
Received: from SN1NAM01FT031.eop-nam01.prod.protection.outlook.com (10.152.64.53) by SN1NAM01HT054.eop-nam01.prod.protection.outlook.com (10.152.64.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1059.14; Sat, 11 Aug 2018 16:11:49 +0000
Received: from CY4PR13MB1334.namprd13.prod.outlook.com (10.152.64.51) by SN1NAM01FT031.mail.protection.outlook.com (10.152.65.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1059.14 via Frontend Transport; Sat, 11 Aug 2018 16:11:49 +0000
Received: from CY4PR13MB1334.namprd13.prod.outlook.com ([fe80::9d67:fb4e:cce7:86c4]) by CY4PR13MB1334.namprd13.prod.outlook.com ([fe80::9d67:fb4e:cce7:86c4%3]) with mapi id 15.20.1059.014; Sat, 11 Aug 2018 16:11:49 +0000
From: Bruno Rijsman <brunorijsman@hotmail.com>
To: Tony Przygienda <prz@juniper.net>, Tony Przygienda <prz@juniper.net>
CC: "rift@ietf.org" <rift@ietf.org>
Thread-Topic: Possible chain reaction of LIE messages with multiple neighbors on LAN?
Thread-Index: AQHUMY4BsAxKPbncEUKHX46qCpvPsw==
Date: Sat, 11 Aug 2018 16:11:48 +0000
Message-ID: <CY4PR13MB13347632849CEF3B35533040CB3B0@CY4PR13MB1334.namprd13.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-clientproxiedby: SN4PR0501CA0136.namprd05.prod.outlook.com (2603:10b6:803:2c::14) To CY4PR13MB1334.namprd13.prod.outlook.com (2603:10b6:903:9f::20)
x-incomingtopheadermarker: OriginalChecksum:3577E3073EB316098E784733FA5B2A29FBE29FBE5CE0B916ECEBDAC55EF3EBB8; UpperCasedChecksum:6CC2D1EA61040DDCFF96B6EBA87E5F03900F45A377928F506A75F065D3C60828; SizeAsReceived:7415; Count:48
x-ms-exchange-messagesentrepresentingtype: 1
x-tmn: [NNgEK0acBrJ+ihjwVT2/gugflVhs3kW+]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; SN1NAM01HT054; 6:RuswBw/fw0EXi5lLTbl/mi/mzntCZeDZgNoTZ0oEmJM7CLu+em5GZuwgCYGCerndFuggnD6D+dRtCGyN4aHPzxXYpoHYmqGVSW0+y+O3tUMlIHX7H1QHY2Ssja323kw8nAwbI2aWjj2xYYH3CU/YdtecL2KFdqnMkdPHEpjrl/P+rKCm6zDLC7T3Y/9AvOJvwQEHbBz+Xg3g0JayQ3GE2op3085jbyNaeo4SrhohAe8Q9LuLUGVgcm9ks4ExCe5rDbOv9KGf4dEnzwMSYVsaYkU0zS6xVH6nehioYJ4joKQsNmWhQVu/BuO3Ew2srZVzSgUemz4FuH8qTprWmAkctgZ72YsLn2G0V5/IfhHZO2qPfh8Y0VYKyK+52UF05zx/2fPalYDrmNWjfHl6UJAXXH8ULxgRZRwwerojLz8BOdAAEca6EDwXV5eeAshJck1l2m+Acuw2perI+kQf5dh5HA==; 5:5drXY2GHDn2lmWxNGQKZqzpEM4LiBdLG5sWom8nM+krj3zBeCQHikvYw25+DcdOdyKfnRT7o74qVCpstdDoo5pssqQDUaDEGxX2diljWOt6pIKL9DIK8Xj5ZIKKmwMtrj6YL+rmhUB166/Z3sQoDChP+j0D56RX8QtCMWUXK8oM=; 7:OcNTAR22fwTnChrazEHbCogWXf6Xq2JGbDAs66oAxaWf1CP3tF6QoFYUmnVh7cazqgTaT9jgc5g5yXlJAE1Ud72P3cSQp6QBzCcJW8b1BQ6J0vtMM2N+WMVGSx2pW2cUEpW2QHVNau3D9zAx63iCm6krjzaPe1LetfSiEeV93Os1TSzFYCBuRLAfnA8RfmaZvjPiPjVL8i07bkgVhRAfWjnQ0VlWOx2/dzFsAsV+LKVNvZKNErGVMwdtocvPen3U
x-incomingheadercount: 48
x-eopattributedmessage: 0
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101475)(1601125500)(1701031045); SRVR:SN1NAM01HT054;
x-ms-traffictypediagnostic: SN1NAM01HT054:
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(4566010)(82015058); SRVR:SN1NAM01HT054; BCL:0; PCL:0; RULEID:; SRVR:SN1NAM01HT054;
x-forefront-prvs: 0761DE1EDD
x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(189003)(199004)(6506007)(104016004)(386003)(73972006)(2420400007)(81156014)(8676002)(15650500001)(2900100001)(6346003)(26005)(102836004)(87572001)(476003)(10710500007)(486006)(83332001)(74316002)(105586002)(106356001)(1941001)(86362001)(256004)(6436002)(14454004)(110136005)(82202002)(68736007)(5660300001)(966005)(20460500001)(5250100002)(53366004)(7110500001)(56003)(97736004)(606006)(53376002)(55016002)(9686003)(54896002)(6306002)(8936002)(33656002)(7696005)(4326008)(236005)(25786009)(99286004)(15852004)(493534005)(19477635001); DIR:OUT; SFP:1901; SCL:1; SRVR:SN1NAM01HT054; H:CY4PR13MB1334.namprd13.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: hotmail.com does not designate permitted sender hosts)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=brunorijsman@hotmail.com;
x-microsoft-antispam-message-info: vbzIGxRiGLOZqw/pCT/D4p+cpa3t7hHu9dLmpCFmDcvfQEkAVXPIpo3LtqpHzMqE+O2NvkYucrPs5A/lRt2EqkVU85D9yY6uw6DVparJ89nksUCTyMcvuR8NywUYLfCvddxWVAtaY99ycsfHLAfdI9/7/kmahXzk3qvD2r62YXkPGe89kg250LD9Ly4gCl1Ht1rfwbt8QZSCenjk9AYF21nVoDlrO0h5V1ke3NO1Suc=
Content-Type: multipart/alternative; boundary="_000_CY4PR13MB13347632849CEF3B35533040CB3B0CY4PR13MB1334namp_"
MIME-Version: 1.0
X-OriginatorOrg: hotmail.com
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: dd759f05-a917-4aa0-a2f5-4cc35c50e0c8
X-MS-Exchange-CrossTenant-Network-Message-Id: 792727fd-fa24-46e3-d7c7-08d5ffa5240d
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: dd759f05-a917-4aa0-a2f5-4cc35c50e0c8
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2018 16:11:48.9843 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Internet
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1NAM01HT054
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/k0_nvTMdxHlFQe2PEwevdsA_tSI>
Subject: [Rift] Possible chain reaction of LIE messages with multiple neighbors on LAN?
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 11 Aug 2018 16:11:52 -0000
Hi Tony and list, I noticed some “interesting" behavior while testing multiple RIFT neighbors on a LAN: When you have multiple neihghbors on a LAN, you can end up in a situation where the nodes send an exploding storm of LIE messages. The LIE messages are sent in a tight loop (they are triggered by state transitions, not by time expiries) and the number of messages increases exponentially very quickly. Wireshark sees hundreds of packets per second, which continues until you shut the entire topology down. - For a wireshark traffic graph see http://bit.ly/rift-multiple-neighbor-chain-reaction-wireshark-traffic-graph - For a wireshark trace see http://bit.ly/rift-multiple-neighbor-chain-reaction-wireshark-trace - For a visualization of the events see http://bit.ly/rift-multiple-neighbor-chain-reaction-visualization - For the topology details see http://bit.ly/rift-multiple-neighbor-chain-reaction-topology I *think* this behavior is not implementation-specific but rather a direct consequence of what is written in the specification. (It could be that I missed something in the speciciation, in which case I would be happy to stand corrected and fix my implementation.) Here is the topology: # Topology: multi_neighbor # # +-----------+ +-----------+ +-----------+ # | node1 | | node2 | | node3 | # | (level 0) | | (level 1) | | (level 2) | # +-----------+ +-----------+ +-----------+ # | if1 | if1 | if1 # | | | # =============================================== LAN # # Adjacency will not reach 3-way because RIFT only allows point-to-point LANs # Furthermore, this topology uses the default RIFT multicast addresses and ports Here is what I think happens: At boot time, each node sends out a LIE message before it has received any LIE messages from any of the other nodes (because of the SendLie state entry action for state OneWay). (1) Each node receives two LIE messages, one from each of the other nodes (2) When the first LIE message is received, it triggers a NewNeighbor event, which causes a transition to state TwoWay and which also pushes a SendLie event (see item #7 on page 81 of draft-rift-02). This immediately (no delay) multicasts a LIE message which is received by both other nodes. (3) When the second LIE message is received, it triggers a MultipleNeighbors event, which causes the node to transition back from state TwoWay to state OneWay. Because of the state entry action for state OneWay, this causes another immediate (no delay) SendLie which sends out a LIE message which is received by both other nodes. Thus, when one node (say node 1) sends a LIE, it causes the other nodes (node 2 and 3 in this case) to *immediately* send out *two* LIE messages each. This is a run-away chain reaction in a tight loop: 1 LIE message immediately leads to 2 LIE messages, which immediately leads to 4 LIE messages, etc. etc. As you scroll down in the visualization, you can see the forest of blue lines (which represent messsages) thickening into a spagheti mess. Note the time-stamps in the 2nd column on the left side: it all happens in a very short amount of time. It was evidently a conscious decision in the spec to send LIE packets not only periodically but also one certain state transitions (e.g. as a state entry action for the ONE_WAY state). While this does indeed speed up (re)convergence you have to be very careful that there are no scenarios where you end up in an uncontrolled storm of LIE messages as this example demonstrates. — Bruno
- [Rift] Possible chain reaction of LIE messages wi… Bruno Rijsman
- Re: [Rift] Possible chain reaction of LIE message… Antoni Przygienda
- Re: [Rift] Possible chain reaction of LIE message… Bruno Rijsman
- Re: [Rift] Possible chain reaction of LIE message… Antoni Przygienda
- Re: [Rift] Possible chain reaction of LIE message… Bruno Rijsman
- Re: [Rift] Possible chain reaction of LIE message… Antoni Przygienda