1 / 23

Part IV BGP Modeling

Part IV BGP Modeling. BGP Is Not Guaranteed to Converge!. BGP is not guaranteed to converge to a stable routing. Policy inconsistencies can lead to “livelock” protocol oscillations. Goal: Design a simple, tractable and complete model of BGP modeling

aram
Télécharger la présentation

Part IV BGP Modeling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Part IV BGP Modeling

  2. BGP Is Not Guaranteed to Converge! • BGP is not guaranteed to converge to a stable routing. Policy inconsistencies can lead to “livelock” protocol oscillations. • Goal: • Design a simple, tractable and complete model of BGP modeling • Example application: sufficient condition to guarantee convergence.

  3. Underlying problem Distributed means of computing a solution. Shortest Paths RIP, OSPF, IS-IS X? BGP BGP is Solving What Problem? • X can • aid in the design of policy analysis algorithms and heuristics, • aid in the analysis and design of BGP and extensions, • help explain some BGP routing anomalies, • provide a fun way of thinking about the protocol

  4. Separate Dynamic and Static Semantics • Static semantics: • BGP policies  Stable Paths Problem • Dynamic semantics: • BGP  SPVP • SPVP: Simple Path Vector Protocol • A distributed algorithm for solving Stable Paths Problem

  5. 2 1 0 2 0 5 2 1 0 4 2 0 4 3 0 5 0 3 4 2 1 3 0 1 3 0 1 0 What is Stable Paths Problem? Example: • A graph of nodes and edges, • Node 0, called the origin, • For each non-zero node, a set or permitted paths to the origin. This set always contains the “null path”. • A ranking of permitted paths at each node. Null path is always least preferred. 2 most preferred … least preferred (not null)

  6. A Solution to SPP • A solution is an assignment of permitted paths to each node such that • node u’s assigned path is either the null path or is a path uwP, where wP is assigned to node w and {u,w} is an edge in the graph, • each node is assigned the highest ranked path among those consistent with the paths assigned to its neighbors

  7. 2 1 0 2 0 5 2 1 0 4 2 0 4 3 0 5 0 3 4 2 1 3 0 1 3 0 1 0 A Solution to SPP • A solution need not represent a shortest path tree or a spanning tree

  8. 1 1 1 0 0 0 2 2 2 There can be Multiple Solutions to an SPP 1 2 0 1 0 1 2 0 1 0 1 2 0 1 0 2 1 0 2 0 2 1 0 2 0 2 1 0 2 0 First solution Second solution DISAGREE

  9. 1 1 1 0 0 0 2 3 2 2 3 3 Multiple Solutions Can Occur Due to Recovery: 1 0 1 2 3 0 1 0 1 2 3 0 primary link 2 3 0 2 1 0 2 3 0 3 1 0 backup link 3 2 1 0 3 0 3 2 1 0 3 0 Remove primary link Restore primary link

  10. Ranking BGP Paths • Highest local Preference • Shortest AS path Length • Origin: IGP<EGP<INCOMPLETE • Lowest MED value • IBGP preferred over EBGP • Lowest IGP cost • Tie breaking

  11. 2 1 0 2 0 2 4 0 3 1 3 2 0 3 0 1 3 0 1 0 Bad Gadget: No Solution Stage 1: 1: [10] 2: [210] 3: [30] Stage 2: 1:[130] 2:[20] 3:[320] Back to stage 1

  12. 2 1 0 2 0 2 4 0 3 1 3 2 0 3 0 1 3 0 1 0 Bad Gadget: No Solution Stage 1: 1: [10] 2: [20] 3: [320] Stage 2: 1:[130] 2:[210] 3:[30] Back to stage 1

  13. 1 3 0 2 4 5 6 Has A Solution, But Can Get Trapped: 4 3 1 0 4 5 3 1 2 0 4 3 1 2 0 1 2 0 10 3 1 0 3 1 2 0 2 1 0 2 0 5 3 1 0 5 6 3 1 2 0 5 3 1 2 0 6 3 1 0 6 4 3 1 2 0 6 3 1 2 0 This part has a solution only when node 1 is assigned the direct path (1 0). As with DISAGREE, this part has two distinct solutions

  14. 1 3 0 2 4 5 6 Has A Solution, But Can Get Trapped: 4 3 1 0 4 5 3 1 2 0 4 3 1 2 0 1 2 0 1 0 3 1 0 3 1 2 0 2 1 0 2 0 5 3 1 0 5 6 3 1 2 0 5 3 1 2 0 6 3 1 0 6 4 3 1 2 0 6 3 1 2 0 This part has a solution only when node 1 is assigned the direct path (1 0). As with DISAGREE, this part has two distinct solutions

  15. How To Solve An SPP? • Exponential complexity • Just enumerate all path assignments, And check stability of each…. • NP-complete • 3-SAT can be reduced to SPP

  16. Distributed Algorithms to Solve SPP • OSPF-like • Distributed topology, path ranks • Solve SPP locally • Exponential worst case • How to avoid loops if multiple solutions exist? • RIP-like: • Pick the best path form neighbors’ paths • Tell neighbors about changes • Can diverge • Not guaranteed to find a solution even if it exists • No bound on convergence time

  17. SPVP Protocol • Pick the best path available at any time process spvp[u] { receive P from w  { rib-in(uw) := u P if rib(u) != best(u) { rib(u) := best(u) foreach v in peers(u) { send rib(u) to v } } } }

  18. SPVP and SPP • SPVP wanders around assignment space SPP Solvable SPVP Can Diverge must diverge must converge

  19. A sufficient condition for sanity If an instance of SPP has an acyclic dispute digraph, then Static (SPP) Dynamic (SPVP) solvable safe (can’t diverge) unique solution predictable restoration all sub-problems uniquely solvable robust with respect to link/node failures

  20. 1 3 0 2 1 0 1 0 2 0 1 2 0 3 4 3 4 2 0 4 2 0 3 0 4 3 0 Dispute Digraph Example 2 0 1 0 4 2 0 2 1 0 CYCLE 3 4 2 0 4 3 0 1 3 0 BAD GADGET II 3 0

  21. Dispute Wheels u_0 • At u_i, rank of Q_i is less than or equal to rank of R_iQ_(i+1) • There exists a dispute wheel iff there exists • cycle in the dispute digraph R_k R_0 u_k u_1 R_1 Q_0 u_2 Q_1 Q_k Q_2 Q_(I+1) Q_i u_(i+1) R_i u_i

  22. 1 2 0 3 Dispute Wheel Example 1 2 3 0 1 2 0 1 0 2 3 1 0 2 3 0 2 0 3 1 1 2 0 3 2 3 1 2 0 3 1 0 3 0

  23. A Dynamic Solution • Extend SPVP with a history attribute, • A route’s history contains a path in the dispute digraph that “explains” how the route was obtained, • A route history will contain a dispute cycle if and only if a policy dispute is dynamically realized. • If a route’s history contains a cycle, then suppress it ….

More Related