Pitch's slides on BGP route convergence

advertisement
 Policy Disputes in Path-Vector Protocol
 A Safe Path Vector Protocol
 The Stable Paths Problem and Interdomain routing
Pitch Patarasuk
Safety in BGP
 BGP is the only interdomain routing protocol in the
internet
 A routing protocol is safe when it is guaranteed to
converge
 RIP and OSPF protocols are safe
 Use shortest-path algorithm
 BGP is not safe
2
Safety in BGP (Cont.)
 BGP does not use pure shortest-path algorithm
 BGP allow policy concerns to override distance
metric
 Each AS decides its own policy with little knowledge
of of other ASs’ policies
3
How to make BGP safe?
 Policy
 Static


ASs do not share their policies
The problem is NP-complete

Heuristic
 Dynamic

Paths that are potentially create problem will be
deleted
4
Outline
 SPP (stable path problem)
 SPVP (simple path vector protocol)

SPVP1
 SPVP2
 SPVP3
 Dispute Digraph
 Dispute Wheel
5
Stable Path Problem (SPP)
 Simplify BGP solvability problem to a problem of





“whether every node has a stable route to one
destination node”
Destination node == node 0
(x) = path assignment from node x to node 0
 = path assignment of every node to node 0
 = ((1), (2), (3), ……………….)
When  does not change




Stable state
Converge
 is the solution to this problem
 is a stable path assignment of this problem
6
Stable Path Problem (Cont.)
 When  keep changing

Diverge
** NOTE **
 Even if there is a solution, the problem can still be
diverge (cannot find a solution)
 Even if a problem converge, some nodes may not
have a route to node 0
  = (10, , 310, 40)
7
SPP – permitted path
permitted path(1) = ( 1 0, 1 3 0)
permitted path(2) = ( 2 0, 2 1 0)
permitted path(3) = (3 0)
permitted path(4) = (4 3 0, 4 2 0)
8
SPP – path rank
9
SPP – path assignment
 = ( 1 3 0, 2 0, 3 0, 4 3 0)
1 = 1 3 0
2 = 2 0
3 = 3 0
4 = 4 3 0
10
How to check whether a path assignment
is stable?
 = (10, 20, 30, 430)
 = (130, 20, 30, 430)
 = (10, 210, 30, 430)
 = (130, 210, 30, 430)
 = (10, 20, 30, 420)
 = (130, 20, 30, 420)
 = (10, 210, 30, 420)
 = (130, 210, 30, 420)
11
How to check whether a path assignment
is stable? (Cont.)
 = (10, 20, 30, 430)
 = (130, 20, 30, 430)
 = (10, 210, 30, 430)
= (130, 210, 30, 430)
 = (10, 20, 30, 420)
 = (130, 20, 30, 420)
 = (10, 210, 30, 420)
 = (130, 210, 30, 420)
 Node i is stable if rank (i,j)P(j) < rank P(i) whenever (i,j)P(j) is a
permitted path at i
 ** note that (2 1)(1 0) == (2 1 0) **
12
How to check whether a path assignment
is stable? (Cont.)
 Choice( , u) is a union of


(u 0) if u is connected to 0 and (u 0) is a permitted
path at u
(u v) (v) when u is connected to v and (u v) (v)
is a permitted path at u
let  = (1 0, 2 0, 3 0, 4 3 0)
Choices( ,1) = (1 0, 1 3 0)
Choices( , 2) = (2 0, 2 10)
Choices( , 3) = (3 0)
Choices( , 4) = (4 3 0, 4 2 0)
13
How to check whether a path assignment
is stable? (Cont.)
 Let W is a subset of permitted path at u,
Best(W, u) = P  W with a maximum ranking
 The path assignment at node u, (u), is stable if (u)
= best(choices(, u), u)
 The path assignment  is stable if (u) is stable at
every node u.
14
Example: Good Gadget
 There is only one solution (stable path assignment)
for this problem
  = ( 1 3 0, 2 0, 3 0, 4 3 0)
15
Example: Good Gadget (Cont.)
 = ( 1 3 0, 2 0, 3 0, 4 3 0)
 Choices(, 1) = (1 0, 1 3 0)
Best (Choices(, 1), 1) = 1 3 0 = (1) => stable
 Choices(, 2) = (2 0)
Best (Choices(, 2), 2) = 2 0 = (2) => stable
 Choices(, 3) = (3 0)
Best (Choices(, 3), 3) = 3 0 = (3) => stable
 Choices(, 4) = (4 3 0, 4 2 0)
Best (Choices(, 4), 4) = 4 3 0 = (4) => stable
**  = ( 1 3 0, 2 0, 3 0, 4 3 0) is stable **
16
Unstable path assignment example #1
Stable:  = ( 1 3 0, 2 0, 3 0, 4 3
0)
Unstable:  = ( 1 0, 2 1 0, 3 0, 4 3 0)
 Choices(, 1) = (1 0, 1 3 0)
Best (Choices(, 1), 1) = 1 3 0 != (1) => unstable
 Choices(, 2) = (2 0, 2 1 0)
Best (Choices(, 2), 2) = 2 1 0 != (2) => unstable
 (3), (4) are stable
  = ( 1 0, 2 1 0, 3 0, 4 3 0) are not stable
17
Simple path vector protocol (SPVP)
 SPVP1
 Basic
 Not safe
 SPVP2
 Contains path history
 Can detect protocol oscillation due to policy
conflict
 Still not safe
 SPVP3
 Extends SPVP2 to make it safe by suppressing
paths that can make the protocol diverge
18
SPVP1
 Let rib(u) =  (u) for each node u
 Each node u send rib(u) to its neighbor
 When each node receives rib(w) from its neighbor w,
called rib-in(u<=w), it computes best(u)
 If best(u) != rib(u), it replace rib(u) with best(u), and
sends new rib(u) to all its neighbor
 When no node sends new rib(u) to its neighbor, the
protocol is in a stable state, the problem is converge
 If there will never be a stable state, the problem is
diverge
19
Algorithm for SPVP1
 Rib(u) = path from u to node 0
 Rib-in(u <= w) = rib(w) received from the neighbor w
 Best(u) = computed new path from u to 0 from all Rib-
ins(u <=w)
20
Example: Good Gadget
  = (130, 210, 30, 430)
  = (130, 20, 30, 430)
  = (130, 20, 30, 420)
  is stable => problem is converge
21
Example2: Bad Gadget (no solution)
** Step 0 and 9 are the same
** one round of oscillation
22
Example3:
Naughty Gadget
 Has a solution
 (130,20,30,420)
 Diverge
 Cannot go to (130,20,30,420)
state with SPVP protocol
23
Protocol Oscillation

Assume node u abandons
path p1 and adopts path p2,
we say that

Node u went down from p1 if
p2 has lower rank than p1
 Node u went up to p2 if p2
has higher rank than p1

Look at node 2 from step 6
backward:
node 2 adopts (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 (3 4 2 0) because
node 4 went down from (4 2 0)
because node 2 went up to (2
1 0)
 ** there is a cycle between
went up and down to/from
path 210 **
24
SPVP2
 Each node has path history
 Each node send path history to its neighbor
 Policy based oscillation can be detected

But do nothing => still not safe
 The sentence “node 2 adopts (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 (3 4 2 0) because
node 4 went down from (4 2 0) because node 2 went
up to (2 1 0)” can be translated to
(- 2 1 0) (+ 1 3 0) (- 3 4 20) (- 4 2 0) (+ 2 1 0)
25
SPVP2 Example: bad gadget
26
SPVP2 Example: bad gadget
(Cont.)
27
SPVP2: algorithm
28
SPVP3: A safe path vector protocol
 B(u) = bad paths at node u
 Choices(u) now exclude every path in B(u)
 In step 6, node 2 has a cycle in its history of path (2
0), it add path (2 0) to B(2) and adopts empty path
 The solution of this problem is ( 1 3 0, , 3 0, 4 3 0)
 The protocol converge, there is no oscillation, but
node 2 cannot get to node 0
29
Dispute Digraph
 There are 2 types of arc in dispute digraph


Transmission arc
Dispute arcs
30
Transmission arc
 P = = => (u v)P when






u and v are peers
 P is permitted at v
 (u v)P is permitted at u
(1 0) = = => (2 1 0)
(2 0) = = => (4 2 0)
(3 0) = = => (1 3 0)
(3 0) = = => (4 3 0)
(4 2 0) = = => (3 4 2 0)
** node 1 adopts path (10) which allow node 2 to permit path
(2 1 0) **
31
Dispute arc
Q ===> (u v)P when




(u v)P is a permitted path at u
Q and P are permitted path at
v
Path (u v)Q is not permitted at
u, or path Q has lower rank
than P at node u
Path Q has higher rank than P
at node v
 Node v could increase the rank of its best path by
abandon path P and adopt path Q, however, this will
force node u to abandon path (u v)P
32
Dispute arc
 (1 3 0) ===> (2 1 0)
 (2 1 0) ===> (4 2 0)
 (3 4 2 0) ===> (1 3 0)
 (3 4 2 0) ===> (4 3 0)
 (4 3 0) ===> (3 4 2 0)
33
Dispute digraph: good gadget
 Acyclic (no loop)
 Converge, unique solution, safe, robust
34
Dispute digraph: naughty
gadget
 2 loops
 (430=>3420=>430)
 (3420=>130=>210=>420=>3420)
35
Dispute digraph: bad gadget
 1 loop
 (3420=>130=>210=>420=>3420)
36
Loops in dispute digraph
 Acyclic (no loop)
 good
 Contains loops (dispute cycles)
 Potentially
bad
37
Dispute Wheel
 An alternative representation structure of a dispute
cycle
 A specification S has a dispute wheel if and only if the
dispute digraph DD(S) contains a cycle
 Dispute cycles are built from local relationships
between peers
 Dispute wheels are based on long-distance
relationships
38
Dispute Wheel (Cont.)
 A dispute wheel of size k is
 A sequence of nodes U = U0…Uk-1
 A sequence of paths Q = Q0….Qk-1
 A sequence of paths R = R0….Rk-1
 Such that for each 0 <= i <= k-1
 Ri is a path from ui to ui+1
 Qi is a permitted path at Ui
 RiQi+1 is a permitted path at Ui
 Rank Qi < RiQi+1 at Ui
39
Dispute wheel of size 3: bad gadget
U0
U2
R2=21
Q0=10
Q2=20
R0=13
Q1=30
R1=342
U1
At U0: rank (Q0 == 10) < (R0Q1 == 1330 == 130)
At U1: rank (Q1 == 30) < (R1Q2 == 34220 == 3420)
At U2: rank (Q2 == 20) < (R2Q3 == 2110 == 210)
40
Properties of dispute wheel
 No dispute wheel implies solvability
 No dispute wheel implies a unique solution
 No dispute wheel implies safety
 No dispute wheel implies robustness
** No dispute wheel == no dispute cycle in DD(S) **
41
Two trees imply a dispute wheel
120
10
210
20
Disagree
solutions
 Disagree


Has 2 solutions (2 trees)
Contains a dispute wheel
42
Disagree problem
** May or may not converge **
43
An algorithm to find a stable path assignment
 Start from a problem of size 0, then 1, 2 ,….,k-1,






where k is a number of nodes
Grow an assignment in a greedy manner
i is a stable path assignment of size i
Vi  V where every node in (u) is in Vi, 0  Vi
 = (130, 210, 30, 430), (0)=0
V1 = {0,3}
u  V-V1 = {1,2,4}
44
 Direct path to V1
 Node 1: 130
 Node 2: 20
 Node 4: 430
 2 = (130,20,30,430)
 V2 = {0,3,1}
 V3 = {0,3,1,2}
 V4 = {0,3,1,2,4}
  = (130,20,30,430)
 If this algorithm cannot find a solution, there must
exists a dispute wheel
45
Stable path problem VS Shortest path problem
 Routing protocol based on shortest path is always
safe
 Routing protocol can be safe even if it does not use
the shortest path

BGP: Good gadget
46
Routing protocol based on cost function
 Not all path are permitted
 May not be safe
 Safe if there is no negative cost cycle
Naughty gadget (unsafe)
 A cycle 1342 has a negative cost of -16
47
Routing protocol based on cost function (Cont.)
 The protocol can also be safe even if there exists a
negative cost cycle
** A+B+C < 0 **
** no dispute cycle  safe ** 48
Assumptions in these works
 Ignore all issues relating to internal BGP
 There is at most one link between any two ASs
 Ignore address aggregation
49
Conclusions
 Shortest path is safe, BGP is not
 There are 3 ways to make routing protocol safe
 Policy
 Static
 Dynamic
 Static
 Dispute digraph




Dispute cycle
Dispute wheel
No dispute wheel == no dispute cycle
No dispute wheel == safe, robust
50
Conclusions (Cont.)
 Dynamic
 SPP (simple path problem)



simplify the problem
route to one destination
SPVP (simple path vector protocol)



SPVP1: Like what is used in BGP, unsafe
SPVP2: Can detect oscillation caused by policy conflict
SPVP3: Get rid of bad path  safe , however, some nodes may
not have a route to a destination
 Routing based on cost function without a negative
cost cycle is safe
51
Questions?
52
Download