Professional Documents
Culture Documents
Computer Networks
Dr. Jorge A. Cobb
Overview
We will show how BGP diverges
Provide a formal model for the study of this
divergence
Show that detecting if BGP will diverge is intractable
(probably will not go through this)
We present a sufficient condition to prevent
divergence
We present a dynamic solution to prevent
divergence at run time
2
Conflicting Policies
P
u v d
Q
3
Stable Path Problem (SPP)
Provides a formalization of BGP.
Designed by T. Griffin, B. Shepherd, G. Wilfong.
Each node represents an entire AS
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
4
Stable Path Problem (SPP)
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
5
Stable Path Problem (SPP)
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
6
Stable Path Problem (SPP)
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
7
Stable Path Problem (SPP)
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
8
Stable Path Problem (SPP)
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
9
Stable Path Problem (SPP)
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
10
Stable Path Problem (SPP)
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
11
Stable Path Problem (SPP)
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
Possible divergence!
12
Stable Paths Problem (formally)
13
Graph G
The network is a graph G = (V, E)
• V = {0, 1, 2, . . . , n} is the set of nodes
14
Permitted Paths
15
Ranking Function
λu is a ranking function over Pu
If P ∈ Pu, then
λu (P) represents how desirable P is to u.
16
S = (G, P,Λ)
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
17
Stable Path Assignments
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
19
Stable Path Assignments (continued ..)
20
best(0) = { (0) } best(4) = { (4,3,0) }
best(1) = { (1,3,0) }
best(2) = { (2,0) }
best(3) = { (3,0) }
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
21
Solvable SPP
A SPP S = (G, P,Λ) is solvable iff there is a stable path
assignment of S. (This path assignment is known as a
“solution”).
Note that a solution may not be reachable from all initial states.
22
Stable Path Assignment Example
(2 1 0) 5 (5 2 1 0)
(2 0)
2
(4 2 0)
4 (4 3 0)
0
(1 3 0)
(1 0) 1 3 (3 0)
23
Multiple Solutions
(1 2 0) (1 2 0) (1 2 0)
(1 0) (1 0) (1 0)
1 1 1
0 0 0
2 2 2
(2 1 0) (2 1 0) (2 1 0)
(2 0) (2 0) (2 0)
24
Multiple solutions can result in “Route Triggering”
(1 0) (1 0)
(1 2 3 0)
1 1 1
primary (1 2 3 0)
link
(2 3 0) (2 3 0)
(2 1 0) 2 0 2 0 (2 1 0) 2 0
backup
link
(3 2 1 0) 3 3 3 (3 2 1 0)
(3 0) (3 0)
25
BAD GADGET : No Solution
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 2 0)
3 4
(3 0) (4 3 0)
26
SURPRISE : Beware of Backup Policies
(1 3 0) (2 1 0)
(1 0) 1 2 (2 0)
(3 4 2 0) (4 0)
3 4
(3 0) (4 2 0)
(4 3 0)
This is a stable configuration
What if link (4, 0) goes down?
Bad gadget! (no solution)
Not robust to link failures
27
PRECARIOUS:
Solvable, but may get trapped!
(1 5 7 8 0) (2 5 7 8 0)
(1 3 5 7 0) (2 1 5 7 0) (7 8 0)
(1 5 7 0) (2 5 7 0) (7 0)
1 (5 7 8 0) 2
7
(5 7 0)
5 0
3 4 8
(3 5 7 8 0) (4 2 5 7 8 0) (8 7 0)
(3 4 2 5 7 0) (4 2 5 7 0) (8 0)
(3 5 7 0) (4 3 5 7 0)
28
Problem: Find a stable state
Problem: find a stable system state
• i.e., for all u, π(u) = best(π,u)
Two approaches: static and dynamic
• Static: given S = (G, P,Λ) find a stable path
assignment (i.e. write an algorithm whose input is S
and output is π)
• Dynamic: let each AS (i.e. node) continue to execute
π(u) := best(π,u)
until s table path assignment is found
29
What to do!
Static Dynamic
Approach Approach
Inter-AS
Automated Analysis
of Routing Policies coordination
(This is very hard
NP-hard actually).
These approaches are complementary
30