Draft-dickson-idr-second-best Second-Best: A Path-Hunting Solution Brian Dickson

Slides:



Advertisements
Similar presentations
Routing Convergence and the Impact of Scale Dan Massey Colorado State University.
Advertisements

The Impact of Policy and Topology on Internet Routing Convergence NANOG 20 October 23, 2000 Abha Ahuja InterNap *In collaboration with.
© 2009 Cisco Systems, Inc. All rights reserved. Cisco Public Presentation_ID 1 BGP Diverse Paths draft-ietf-grow-diverse-bgp-paths-dist-02 Keyur Patel.
Internet Routing (COS 598A) Today: Topology Size Jennifer Rexford Tuesdays/Thursdays 11:00am-12:20pm.
1 Copyright  1999, Cisco Systems, Inc. Module10.ppt10/7/1999 8:27 AM BGP — Border Gateway Protocol Routing Protocol used between AS’s Currently Version.
Advanced Networks 1. Delayed Internet Routing Convergence 2. The Impact of Internet Policy and Topology on Delayed Routing Convergence.
Border Gateway Protocol Ankit Agarwal Dashang Trivedi Kirti Tiwari.
© J. Liebeherr, All rights reserved 1 Border Gateway Protocol This lecture is largely based on a BGP tutorial by T. Griffin from AT&T Research.
Fundamentals of Computer Networks ECE 478/578 Lecture #18: Policy-Based Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
1 Interdomain Routing Protocols. 2 Autonomous Systems An autonomous system (AS) is a region of the Internet that is administered by a single entity and.
Best Practices for ISPs
Swinog-3, 19 September 2001 Fabien Berger, BGP Oscillation …the Internet routing protocol is diverging! Fabien Berger CCIE#6143 IP-Plus.
BGP in 2009 Geoff Huston APNIC May Conventional BGP Wisdom IAB Workshop on Inter-Domain routing in October 2006 – RFC 4984: “routing scalability.
Berkeley slides were used for this tutorial 1 Internet Networking Spring 2003 Tutorial 3 DUAL Algorithm.
1 Network Architecture and Design Routing: Exterior Gateway Protocols and Autonomous Systems Border Gateway Protocol (BGP) Reference D. E. Comer, Internetworking.
CS Summer 2003 Lecture 3. CS Summer 2003 What is a BGP Path Attribute? BGP uses a set of parameters known as path attributes to characterize.
1 An Experimental Analysis of BGP Convergence Time Timothy Griffin AT&T Research & Brian Premore Dartmouth College.
CS Summer 2003 Lecture 4. CS Summer 2003 Route Aggregation The process of representing a group of prefixes with a single prefix is known as.
Slide -1- February, 2006 Interdomain Routing Gordon Wilfong Distinguished Member of Technical Staff Algorithms Research Department Mathematical and Algorithmic.
More on BGP Check out the links on politics: ICANN and net neutrality To read for next time Path selection big example Scaling of BGP.
A Routing Control Platform for Managing IP Networks Jennifer Rexford Princeton University
Berkeley slides were used for this tutorial1 Internet Networking Spring 2006 Tutorial 2 DUAL Algorithm.
© 2009 Cisco Systems, Inc. All rights reserved. ROUTE v1.0—6-1 Connecting an Enterprise Network to an ISP Network Considering the Advantages of Using BGP.
Better by a HAIR: Hardware-Amenable Internet Routing Brent Mochizuki University of Illinois at Urbana-Champaign Joint work with: Firat Kiyak (Illinois)
Computer Networks Layering and Routing Dina Katabi
1 © 2006 Cisco Systems, Inc. All rights reserved. Cisco Confidential Session Number Presentation_ID Advanced BGP Convergence Techniques Pradosh Mohapatra.
Advertising Equal Cost Multi-Path Routes in BGP Manav Bhatia Samsung India Software Operations, Bangalore – India July 17, th IETF - Vienna draft-ecmp-routes-in-bgp-00.txt.
1 Interdomain Routing (BGP) By Behzad Akbari Fall 2008 These slides are based on the slides of Ion Stoica (UCB) and Shivkumar (RPI)
Scaling iBGP. BGP iBGP –Internal BGP –BGP peering between routers in same AS –Goal: get routes from a border router to another border router without losing.
6.829 BGP Recitation Rob Beverly September 29, 2006.
CAIA Seminar – 18 August 2007 – Taming BGP An incremental approach to improving the dynamic properties of BGP Geoff Huston.
SEP: Sensibility analysis of BGP convergence and scalability using network simulation Sensibility analysis of BGP convergence and scalability using network.
David Wetherall Professor of Computer Science & Engineering Introduction to Computer Networks Hierarchical Routing (§5.2.6)
© 2001, Cisco Systems, Inc. A_BGP_Confed BGP Confederations.
Border Gateway Protocol (BGP) W.lilakiatsakun. BGP Basics (1) BGP is the protocol which is used to make core routing decisions on the Internet It involves.
More on Internet Routing A large portion of this lecture material comes from BGP tutorial given by Philip Smith from Cisco (ftp://ftp- eng.cisco.com/pfs/seminars/APRICOT2004.
Routing Convergence Dan Massey Colorado State University.
A Measurement Study on the Impact of Routing Events on End-to-End Internet Path Performance Feng Wang 1, Zhuoqing Morley Mao 2 Jia Wang 3, Lixin Gao 1,
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429/556 Introduction to Computer Networks Inter-domain routing Some slides used with.
Lecture 2 Agenda –Finish with OSPF, Areas, DR/BDR –Convergence, Cost –Fast Convergence –Tools to troubleshoot –Tools to measure convergence –Intro to implementation:
1 Evolution Towards Global Routing Scalability draft-zhang-evolution-01 Varun Khare Beichuan Zhang
Evolving Toward a Self-Managing Network Jennifer Rexford Princeton University
BGP Scalability. 2 © 2002, Cisco Systems, Inc. Introduction Will discuss various bugs we have fixed in BGP scalability Talk about different configuration.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v3.2—6-1 Scaling Service Provider Networks Scaling IGP and BGP in Service Provider Networks.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v3.2—5-1 Customer-to-Provider Connectivity with BGP Connecting a Multihomed Customer to a Single Service.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v3.2—7-1 Optimizing BGP Scalability Using BGP Route Dampening.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v3.2—1-1 BGP Overview Understanding BGP Path Attributes.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v3.2—7-1 Optimizing BGP Scalability Improving BGP Convergence.
1 Border Gateway Protocol (BGP) and BGP Security Jeff Gribschaw Sai Thwin ECE 4112 Final Project April 28, 2005.
Text BGP Basics. Document Name CONFIDENTIAL Border Gateway Protocol (BGP) Introduction to BGP BGP Neighbor Establishment Process BGP Message Types BGP.
RRG Nov 08 Mapped BGP Paul Francis, Cornell Xiaohu Xu, Huawei Hitesh Ballani, Cornell.
23Mar BGP Data-Plane Benchmarking Applicable to Modern Routers Rajiv Papneja Ilya Varlashkin Bhavani Parise Dean Lee Sue Hares.
AS Numbers - Again Geoff Huston APNIC October 2009
1 QOS ©2000, Cisco Systems, Inc. BGP MED Churn Daniel Walton
Analysis on Two Methods in Ingress Local Protection.
BGP 1. BGP Overview 2. Multihoming 3. Configuring BGP.
Evolution Towards Global Routing Scalability
Border Gateway Protocol
Goals of soBGP Verify the origin of advertisements
Rip Routing Protocol.
BGP supplement Abhigyan Sharma.
© 2002, Cisco Systems, Inc. All rights reserved.
Lixin Gao ECE Dept. UMASS, Amherst
John Scudder October 24, 2000 BGP Update John Scudder October 24, 2000.
Internet Routing (COS 598A) Today: Topology Size
COS 561: Advanced Computer Networks
Scaling Service Provider Networks
BGP Instability Jennifer Rexford
Computer Networks Protocols
BGP Route Reflectors and Confederation
Presentation transcript:

draft-dickson-idr-second-best Second-Best: A Path-Hunting Solution Brian Dickson

NB: changes to ID Normally, would not do this before a meeting But, removing things makes for easier review And, shortens the presentation REMOVED: BACKUP_ONLY  will propose backup_only as a well-known community instead

Purpose of this draft Provide a solution to path-hunting Secondary benefit – fix persistent oscillations

Cost Summary Requires additional memory usage for in-rib Initialization requires two passes of best-path Update processing cost (per update) will often be reduced, not increased (!)‏ Reduction in path-hunting further reduces update frequency, and thus total cost No impact to FIB size FIB updates when best changes – no different

Basic Idea: pick local second-best and send both best and second-best best second-best best second-best best second-best

Basic Idea: delete and send withdrawal immediately best second-best best second-best best second-best NB: This withdrawal is ALWAYS a transient state, and will be followed later with new Best (and Second Best if one exists). We do this to propagate the withdrawal as far and as fast as possible.

Basic Idea: promote second-best best second-best best second-best best second-best

Basic Idea: recalculate both (deferred update)‏ (old second-)best (new) second-best (old second-)best (new) second-best (old second-)best (new) second- best

Detail per prefix: received per peer best second-best best second-best best second-best Peer SendsIN-RIB RIB best second-best best second-best best second-best best second-best Peer A Peer B Peer C

Selection: Case 1 (normal)‏ best second-best best second-best best second-best Peer SendsIN-RIB RIB best second-best best second-best best second-best best second-best Peer A Peer B Peer C

Selection: Case 2 (rare)‏ best second-best best second-best best second-best Peer SendsIN-RIB RIB best second-best best second-best best second-best best second-best Peer A Peer B Peer C

Update criteria We always want a feasible second-best Second-best may temporarily not be truly second-best choice, but... Second-best must always be some peer's current best (or second-best, in the “rare” case)‏ Track linkages from IN-RIB to RIB for optimization, so we can... Avoid re-calculating best/second unnecessarily

Withdraw logic: modify IN-RIB only if best & second are not affected best second-best best second-best best second-best Peer SendsIN-RIB RIB best second-best best second-best best second-best best second-best Peer A Peer B Peer C No need to run new path selection process

Withdraw logic: promote IN-RIB second-best to RIB second-best best second-best best second-best best second-best Peer SendsIN-RIB RIB best second-best best second-best best second-best best second-best Peer A Peer B Peer C Defer running new path-selection rather than “blocking” But, do run new path selection process

Withdraw logic: no IN-RIB 2 nd best? Find new RIB 2 nd best (if possible)‏ best second-best best second-best best second-best Peer SendsIN-RIB RIB best second-best best second-best best Peer A Peer B Peer C Do NOT defer doing path-selection !!

Withdraw logic: no IN-RIB 2 nd best? Find new RIB 2 nd best (if possible)‏ best second-best best second-best best second-best Peer SendsIN-RIB RIB best Peer A Peer B Do NOT defer doing path-selection !!

Withdraw logic: no 2 nd best found? Withdraw 2 nd best (rare)‏ best second-best Peer SendsIN-RIB RIB best Peer A Peer B Do NOT defer doing path-selection !! NB: This withdrawal is NOT a transient state. This means recipient may process its changes immediately.

Withdraw 2 nd : modify IN-RIB only, if best & second are not affected best second-best best second-best best second-best Peer SendsIN-RIB RIB best second-best best second-best best second-best best second-best Peer A Peer B Peer C No need to run new path selection process

Withdraw 2 nd logic: affect 2 nd best? Find new 2 nd best (if possible)‏ best second-best best second-best best second-best Peer SendsIN-RIB RIB best second-best best second-best best second-best best second-best Peer A Peer B Peer C Do NOT defer doing path selection!

EBGP Peers: suppression logic and 2 nd best selection best second-best best (second-best)‏ OUT-RIBIN-RIB RIB (best) [suppress] second-best best second-best Router A best second-best best second-best best second-best best second-best Router B OUT-RIB IN-RIB RIB Special case!

EBGP Peers: Withdraw results in: temporary routing loop... best second-best best (second-best)‏ OUT-RIBIN-RIB RIB (best) [suppress] (second-)best best second-best Router A best second-best best second-best best second-best best (second-)best Router B OUT-RIB IN-RIB RIB Special case!

EBGP Peers:...a loop that disappears quickly best (second-)best best (second-best)‏ OUT-RIBIN-RIB RIB (best) [suppress] (second-)best best (second-)best Router A best (second-)best best second-best best second-best best (second-)best Router B OUT-RIB IN-RIB RIB Special case!

IBGP Peers: suppression logic and 2 nd best selection best second-best RIB Router A best second-best best second-best Router B RIB Router C

IBGP Peers: withdrawal behaviour: sub-optimal, no loop... best second-best RIB Router A best second-best best (second-)best Router B RIB Router C

IBGP Peers:... and then optimal best second-best RIB Router A best (second-)best best (second-)best Router B RIB Router C

Comparison with draft-walton-* draft-walton-add-paths and -bgp-route- oscillation address only the oscillation issue draft-walton requires more than 2 route instances, more memory doesn't affect path-hunting behaviour does solve oscillation issue this draft also solves oscillation issue (via its minor tweak to path selection)‏

Comparison with draft-filsfils-* draft-filsfils provide a cute hack for achieving fast convergence for one specific case requires multipath-bgp, and carrying peering network in IGP (an operational risk for third- party unpaid transit, BTW)‏ only affects local AS convergence, has no affect on path-hunting remains to be seen how well it compares to second-best on that specific scenario

Comparison with sigcomm2000 paper example Excellent paper by Labowitz, Ahuja, Bose, Jahanian, sigcomm2000 on Delayed Internet Routing Convergence Examples of unconstrained redistribution and path-hunting steps observed, v.s. MRAI timers With proposed modification, withdrawal propagation occurs without MRAI timer exp. Minimal announcements, mostly withdrawals Nearly no path hunting – withdrawals catch up

Example – 4-node mesh Key: [Router((list of best paths),(list of second-best paths))] where: *Best +Second-Best - (no entry or supressed due to loop prevention)‏ Initial State (steady state, queues empty)‏ 0((*R,+1R,2R,3R),(-,-,-,-))‏ 1((*R,+0R,2R,3R),(-,-,20R,30R))‏ 2((*R,+0R,1R,3R),(-,01R,10R,30R))‏ 3((*R,+0R,1R,2R),(-,01R,10R,20R))‏

Example – 4-node mesh – option 1 Option 1: Triggering of re-calculate immediately upon receiving Withdraw(Best)‏ State of each router's IN-RIBs Queue(s) of messages Initiating withdrawal and subsequent possible path hunting: R->0 RW; R->1 RW; R->2 RW; R->3 RW processing queued messages... 0((-,+1R,2R,3R),(-,-,-,-)) 0->1 0RW; 0->2 0RW; 0->3 0RW 1((-,+0R,2R,3R),(-,-,20R,30R)) 1->0 1RW; 0->2 1RW; 1->3 1RW 2((-,+0R,1R,3R),(-,01R,10R,30R)) 2->0 2RW; 2->1 2RW; 2->3 2RW 3((-,+0R,1R,2R),(-,01R,10R,20R)) 3->0 3RW; 3->1 3RW; 3->2 3RW recalculating... 0((-,*1R,+2R,3R),(-,-,-,-)) 0->1 (-,02R); 0->2 (01R,-); 0->3 (01R,02R)‏ 1((-,*0R,+2R,3R),(-,-,20R,30R)) 1->0 (-,12R); 1->2 (10R,-); 1->3 (10R,12R)‏ 2((-,*0R,+1R,3R),(-,01R,10R,30R)) 2->0 (-,21R); 2->1 (20R,-); 2->3 (20R,21R)‏ 3((-,*0R,+1R,2R),(-,01R,10R,20R)) 3->0 (-,31R); 3->1 (30R,-); 3->2 (30R,31R)‏ [begin MRAI timers] processing queued messages... 0((-,-,-,-),(-,12R,23R,31R)) 0->1 (-,02R) 02RW 03RW; 0->2 (01R,-) 01RW 03RW; 0->3 (01R,02R) 01RW 02RW 1((-,-,-,-),(-,02R,23R,30R)) 1->0 (-,12R) 12RW 13RW; 1->2 (10R,-) 10RW 13RW; 1->3 (10R,12R) 10RW 12RW 2((-,-,-,-),(-,01R,13R,30R)) 2->0 (-,21R) 21RW 23RW; 2->1 (20R,-) 20RW 23RW; 2->3 (20R,21R) 20RW 21RW 3((-,-,-,-),(-,01R,12R,20R)) 3->0 (-,31R) 31RW 32RW; 3->1 (30R,-) 30RW 32RW; 3->2 (30R,31R) 30RW 31RW processing queued messages... 0((-,-,-,-),(-,-,-,-))‏ 1((-,-,-,-),(-,-,-,-))‏ 2((-,-,-,-),(-,-,-,-))‏ 3((-,-,-,-),(-,-,-,-))‏ Total steps: 13 Number of MRAI timer expiries: 0 Total elapsed time: O(RTT*3 + 3*CPU_COST), possibly << 1s.

Example – 4-node mesh – option 2 Option 2: Delay triggering path selection and announcements until queues are drained: State of each router's IN-RIBs Queue(s) of messages Initiating withdrawal and subsequent possible path hunting: R->0 RW; R->1 RW; R->2 RW; R->3 RW processing queued messages... 0((-,+1R,2R,3R),(-,-,-,-)) 0->1 0RW; 0->2 0RW; 0->3 0RW 1((-,+0R,2R,3R),(-,-,20R,30R)) 1->0 1RW; 0->2 1RW; 1->3 1RW 2((-,+0R,1R,3R),(-,01R,10R,30R)) 2->0 2RW; 2->1 2RW; 2->3 2RW 3((-,+0R,1R,2R),(-,01R,10R,20R)) 3->0 3RW; 3->1 3RW; 3->2 3RW 0((-,-,-,-),(-,12R,23R,31R)) 0->1 02RW 03RW; 0->2 01RW 03RW; 0->3 01RW 02RW 1((-,-,-,-),(-,02R,23R,30R)) 1->0 12RW 13RW; 1->2 10RW 13RW; 1->3 10RW 12RW 2((-,-,-,-),(-,01R,13R,30R)) 2->0 21RW 23RW; 2->1 20RW 23RW; 2->3 20RW 21RW 3((-,-,-,-),(-,01R,12R,20R)) 3->0 31RW 32RW; 3->1 30RW 32RW; 3->2 30RW 31RW 0((-,-,-,-),(-,-,-,-))‏ 1((-,-,-,-),(-,-,-,-))‏ 2((-,-,-,-),(-,-,-,-))‏ 3((-,-,-,-),(-,-,-,-))‏ Total steps: 9 Number of MRAI timer expries: 0 Total elapsed time: O(RTT*2 + 2*CPU_COST), possibly << 1s.

Summary Incremental to current BGP standard Extra memory needed  Sensible implementations likely to minimize the impact of additional paths/attributes No additional FIB usage Reduced CPU usage, bandwidth, churn Dramatically faster local and global convergence Next steps?

Thank you Presentation on IETF 71 site Draft updates forthcoming (including some presented here and sent to IDR list)‏ Author: Brian Dickson,