12 BGP
12 BGP
Routing Review
z The Story So Far…
15-441 Computer Networking » Routing protocols generate the forwarding table
Lecture 12 – BGP » Two styles: distance vector, link state
» Scalability issues:
– Distance vector protocols suffer from count-to-infinity
Peter Steenkiste – Link state protocols must flood information through
Departments of Computer Science and network
3 3 4 4
1
2/19/2008
1 2
• Can result in sub-optimal paths
2.2
1.1 2.1
2.2.2 1 2
2.1 2.2
1.2 2.2.1
1.1
1.2.1 1.2 221
2.2.1
1.2.1
1.2.2
start
3
end
3.2.1
3
7 7 8 8
• After looking at
RIP/OSPF descriptions
z Routing hierarchy • End-hosts connected to
R
routers
• Routers exchange R R R
z Internet structure messages to determine R
connectivity
• NOT TRUE!
z External BGP (E-BGP)
9 9 10 10
2
2/19/2008
R
EGP z NOT TRUE EITHER!
EGP R R R
z ISP’s aren’t equal
3 EGP
4.2
EGP
4.1 IGP » Size R
4
IGP » Connectivity
5 3.2
3.1
IGP
5.1 5.2
13 13 14 14
15 15 16 16
z “Valley-free” routing
»Number links as (+1, 0, -1) for
provider, peer and customer z Routing hierarchy
»In
In any path should only see
sequence of +1, followed by at most
one 0, followed by sequence of -1 z Internet structure
z WHY?
»Consider the economics of the
z External BGP (E-BGP)
situation
17 17 18 18
3
2/19/2008
z Link state or distance vector? z Each routing update carries the entire path
» No universal metric – policy decisions z Loops are detected as follows:
z Problems with distance-vector: » When AS gets route, check if AS already in
path
» Bellman-Ford algorithm may not converge
– If yes, reject route
z Problems with link state: – If no, add self and (possibly) advertise route
» Metric used by routers not the same – further
loops z Advantage:
» LS database too large – entire Internet » Metrics are local - AS chooses path,
» May expose policies to other AS’s protocol ensures no loops
19 19 20 20
z Open
z A multi-homed AS refuses to act as » Announces AS ID
transit » Determines hold timer – interval between
» Limit path advertisement keep_alive or update messages, zero interval
implies no keep_alive
keep alive
z A multi-homed AS can become transit
z Keep_alive
for some AS’s » Sent periodically (but before hold timer expires) to
» Only advertise paths to some AS’s peers to ensure connectivity.
» Sent in place of an UPDATE message
z An AS can favor or disfavor certain z Notification
AS’s for traffic transit from itself » Used for error notification
» TCP connection is closed immediately after
notification
23 23 24 24
4
2/19/2008
25 25 26 26
27 27 28 28
AS 200 AS 100
z Hint to external neighbors about the preferred
170.10.0.0/16 180.10.0.0/16 path into an AS
»Non-transitive attribute
AS 300
– Different AS choose different scales
29 29 30 30
5
2/19/2008
MED MED
31 31 32 32
35 35