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
Example application: sufficient condition to
guarantee convergence.
2
BGP is Solving What Problem?
Underlying problem
Distributed means of
computing a solution.
Shortest Paths
RIP, OSPF, IS-IS
X?
BGP
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 protocol3
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
4
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.
222 10 0
5
5210
2
4
420
430
3
30
0
1
130
10
most preferred
…
least preferred (not 5null)
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
6
A Solution to SPP
A solution
need not
represent a
shortest path
tree or a
spanning tree
210
20
5
5210
2
4
420
430
3
30
0
1
130
10
7
There can be Multiple
Solutions to an SPP
120
10
120
10
1
120
10
1
0
0
2
210
20
DISAGREE
1
2
210
20
First solution
0
2
210
20
Second solution
8
Multiple Solutions Can Occur
Due to Recovery:
10
1230
1
230
210
2
1
primary
link
0
2
0
1
10
1230
2
230
310
0
backup
link
3210
30
3
Remove primary link
3
3
3210
30
Restore primary link
9
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
10
Bad Gadget: No Solution
Stage 1:
1: [10]
2: [210]
3: [30]
Stage 2:
1:[130]
2:[20]
3:[320]
Back to stage 1
2
210
20
4
0
1
130
10
3
320
30
11
Bad Gadget: No Solution
Stage 1:
1: [10]
2: [20]
3: [320]
Stage 2:
1:[130]
2:[210]
3:[30]
Back to stage 1
2
210
20
4
0
1
130
10
3
320
30
12
Has A Solution, But Can Get
Trapped:
4
310
3120
5
5310
563120
53120
4310
453120
43120
1
3
120
10
0
6
2
6310
643120
63120
This part has a solution only
when node 1 is assigned the
direct path (1 0).
210
20
As with DISAGREE, this part
has two distinct solutions 13
Has A Solution, But Can Get
Trapped:
4
310
3120
5
5310
563120
53120
4310
453120
43120
1
3
120
10
0
6
2
6310
643120
63120
This part has a solution only
when node 1 is assigned the
direct path (1 0).
210
20
As with DISAGREE, this part
has two distinct solutions 14
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
15
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
16
SPVP Protocol
Pick the best path available at any time
process spvp[u] {
receive P from w
{ rib-in(uw) := u P
if rib(u) != best(u) {
rib(u) := best(u)
foreach v in peers(u) {
send rib(u) to v
}
}
}
}
17
SPVP and SPP
SPVP wanders around assignment
space
SPP Solvable
must converge
SPVP Can Diverge
must diverge
18
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
19
Dispute Digraph Example
130
10
210
20
1
2
0
20
10
420
210
3420
3
4
3420
30
420
430
BAD GADGET II
CYCLE
430
130
30
20
Dispute Wheels
R_k
u_0
u_k
Q_0
Q_k
•At
u_i,
rank
of
Q_i
u_1
R_1 is less than or equal
u_2to rank of R_iQ_(i+1)
Q_1
R_0
Q_2
Q_(I+1)
Q_i
u_(i+1)
R_i
u_i
•There exists a
dispute wheel iff
there exists
cycle in the dispute
digraph
21
Dispute Wheel Example
1230
120
10
2310
230
20
1
2
3
1
1
2
0
0
3
3
2
3120
310
30
22
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 ….
23