1 Policy Disputes in Path-Vector Protocols A Safe Path-Vector Protocol Zacharopoulos Dimitris
2 Overview Describe basic problems The SPVP framework Stability proposals Candidate protocols
3 Basic problems with routing BGP can theoretically diverge Unable to simulate the Internet ISPs don’t publish their policies
4 SPVP Framework This framework applies to all path- vector protocols like BGP Designed to capture the semantics of such protocols Basic information –Permitted paths –Ranking of those paths
5 Route selection process in BGP BGP Record –nlri: –next_hop: –as_path: –local_pref: –med: –c_set:
6 Route selection process in BGP First check the nlri Second local_pref Third shortest as_path Fourth lowest med Fifth and last, smallest next_hop
7 SPVP Specifications and notation Connected graph G=(V,E) –V = {0,1,2,…,n} nodes –E = edges –For any node u, peers(u) = w {u,w} belong in E –0 is the origin –P = {v k,v k-1,…,v 1,v 0 } a path in G –P v = permitted paths from v to 0 –λ v is a ranking function over P v P 1,P 2 belong to P v and λ v (P 1 ) < λ v (P 2 ), P 2 is preferred over P 1 –Λ is a set of ranking functions S=(G,P,Λ) is an SPVP specification
8 Note Reachability Stability –Node i is stable if λ i ((i,j)P j ) λ i (P i ) whenever (i,j)P j belongs in P i –A tree T is stable if all nodes are stable Solvability –If there is a stable routing tree for S
9 Examples of SPVP specifications Figure (b) is a solution for the SPVP specification of figure (a) T 1 = (1 3 0), (2 0), (3 0), (4 3 0) (stable) T 2 = (1 0), (2 0), (3 0), (4 3 0) (unstable)
10 Sufficient conditions for stability The Dispute Digraph Dispute Wheels
11 The Dispute Digraph –Q is a permitted path at v –P is a permitted path at u –The arc is a local policy dispute about the relative ranking of P and Q (u,v)Q is rejected at u or λ u ((u,v)Q) < λ u (P), λ v (P[v,0]) λ v (Q)
12 The Dispute digraphs
13 Dispute Wheels Π = (U, Q, R) of size k : Dispute wheel U = { u 0, u 1, …,u k-1 } : Set of nodes Q = {Q 0, Q 1, …,Q k-1 }: Set of paths R = {R 0, R 1, …,R k-1 } : Set of paths 1) R i is a path from u i to u i+1 2) Q i belongs to P u(i) 3) R i Q i+1 belongs to P u(i) 4) λ u(i) (Q i ) λ u(i) (R i Q i+1 )
14 Properties of Dispute Wheels If a specification S has more than one solution, then it has a dispute wheel No dispute wheel implies a solution Divergence Implies a Dispute wheel If there is a cycle in the evaluation graph, then S contains a dispute wheel Conclusion: If S has no dispute wheel, then the evaluation graph has no cycles and so S is safe
15 Sufficient Condition The lack of Dispute wheels means stability The converse does not hold This Specification has a dispute wheel but the evaluation graph has no cycles
16 A Safe Path Vector Protocol Address the same problems –Stable Paths Propose three protocols –SPVP 1 : Unable to detect oscillation –SPVP 2 : Dynamically computing histories –SPVP 3 : Detect and suppress unsafe paths
17 The Stable Paths Problem Same as Dispute Digraph and Dispute Wheel Always try to reach an equilibrium point in which each node is assigned its local maximum rank
18 Simple Path Vector Protocol 1 Abstract version of BGP Will always diverge for unsolvable Stable Paths Problem Also might diverge for solvable SPP
19 Simple Path Vector Protocol 2 Adds a dynamically computed attribute to messages: path history Check step 6 Node 2 adopted path (2 0) because it went down from (2 1 0) because node 1 went up to (1 3 0) because node 3 went down from ( ) because node 4 went down from (4 2 0) because 2 went up to (2 1 0)
20 Simple Path Vector Protocol 2 Node 2 adopted path (2 0) because it went down from (2 1 0) because node 1 went up to (1 3 0) because node 3 went down from ( ) because node 4 went down from (4 2 0) because 2 went up to (2 1 0) Use path change event. The history will be: ( ) ( ) ( ) ( ) ( ) This history contains a cycle Extend this to all nodes
21 This is a dynamic trace for SPVP 2 At step 9 every node has a cycle in its history
22 Simple Path Vector Protocol 3 Dynamically suppress a bad path Our example should converge to the path assignment: ((1 3 0), , (3 0), (4 3 0)) At step 6 there is a cycle detected. So node 2 adds path (2 0) to a set of bad paths and adopts the empty path So BAD GADGET is solved
23 Conclusion SPVP 3 is a safe Routing Protocol Try to extend BGP to add history in route records Propose triggered histories –Start recording when a conflict occurs
24 Summary Defined basic routing problems –Instability Introduced the SPVP framework Described a safe routing protocol