Title: BGP: Introduction and Issues
1BGP Introduction and Issues
2What Is BGP?
- Border Gateway Protocol BGP-4
- The de-facto interdomain routing protocol
- BGP includes specifications
- Which information gets advertised and how
- BGP includes a routing protocol
- Establishes and uses a routing table
- Internal Gateway Protocol (I-BGP in the book)
3Why Is There Such Fuss about BGP?
- BGP dictates routing at the AS level
- Absence of understanding poor performance
- BGP is complicated
- Designed to be flexible
- Involves multiple fields
- Understanding BGP behavior is not intuitive
- Implementation and business policies
- The routing of the Internet relies on BGP
4Some Open Questions
- How well does BGP work now?
- How can I manage a BGP network?
- How secure and robust is BGP?
- Cyber-terrorism
- How would we re-design BGP now?
- How well will BGP scale for our future needs?
5Roadmap
- Introduction to BGP
- Highlights of BGP issues
- Goal instigate interest in BGP
6Some Basic Numbers
- 17,000 Autonomous Systems approx.
- Corporate Networks
- ISP Internal Networks
- National Service Providers
- Identified by ASN a 16 bit value
- Assigned by IANA
- Superlinear growth (Huston, Siganos et al.)
7How A BGP graph Looks Like
AS 2
AS 5
- Each AS has designated BGP routers
- BGP routers of an AS communicate internally with
another protocol (IGP)
AS 4
AS 3
AS 1
8IP Addresses and Prefixes
- IP addresses have 32 bits 4 octets of bits
(IPv4) - A prefix is a group of IP addresses
- 128.32.101.5 is an IP address (32 bits)
- 128.32.0.0/16 is a prefix of the 16 first bits
- 128.32.0.0 128.32.255.255 (216 addresses)
- 128.32.4.0/24 is a prefix of the 24 first bits -
longer
9Routing is Based on Prefixes
- A BGP Routing table has prefixes for entries
- For a IP address of a packet, find longest match
- Example packet IP 128.32.101.1
- 128.1.1.4 matches the first 8 bits no match!
- 128.32.0.0/16 match for 16 bits
- 128.32.101.0/24 is a longer match
10Prefix Matching in More Detail
- For a IP address of a packet, find longest match
- Example Compare
- packet IP 128.32.101.1
- With 128.32.0.0/16
- IP 01000000. 001000000. 01100101
.00000001 - Mask 11111111. 111111111. 00000000 .00000000
- AND 01000000. 001000000. 00000000 .00000000
- Prefix 01000000. 001000000. 00000000. 00000000
- Equal? Yes
11Advertising Routing Information
- Each AS advertises what it can reach from each
BGP router - Policies I filter what you advertise
- Policies II filter from what you hear advertised
- Build up a BGP routing table
- Remember which prefix you hear from which link
12What Does a Routing Table Look Like?
Prefix Origin AS Path
128.32.0.0/16 123 14 56 123
123 34 101 203 123
128.32.101.0/24 15 50 15 15
- Origin AS owns the address
- Routing tables can have peculiarities
13Route Advertising
- Distance Vector style protocol
- Hear advertisements IP prefix, AS-path
- Filter if desired (i.e. ignore)
- Append yourself IP prefix, myASAS-path
- Forward to appropriate ASs
14Basic AS relationships
- Customer Provider
- Customer pays Provider for service
- The Customer is always right
- Peer to Peer mutual cooperation
- Ex. MCI and ATT
- Sibling-Sibling
- Ex. ATT research and ATT wireless
15The Internet as a Directed Graph
- Every edge is bidirectional
- Business relationships are represented
16The Initial Idea
- Data flows between customers-providers
- Top level providers are peers
- They exchange information to ensure connectivity
- What can possibly go wrong?
17And then came the rain
- Thousands of ASs
- Complicated relationships
- Multiple providers for one AS!!
- Multihoming
- Traffic engineering
- I want to use multiple paths and load balance
18Example The Intended Use
19BGP Graph and Routing Policies
200
100
10
11
12
13
1
4
3
2
- Up then down 1, 10, 100, 200, 13, 4
- No valleys, no up-down-up, no more than 1
peer-peer
20The Rules of BGP Routing
- Transit traffic traffic that does not go to my
customers (or their customers) - A provider carries any traffic to, from customer
- Peers exchange traffic only if between their
customers
21Implementing BGP Rules
- A customer advertises whatever she wants
- A provider forwards everything from customer
- So that world now where customer IPs are
- A provider advertises whatever customer wants to
customer - A peer hears but does not advertise further
prefixes from a peer - A peer advertises only its customers to a peer
22Some Simple Policies Transitivity
ISP 1
ISP 2
Not allowed
AS X
- A customer should not be transit for its
Providers - For this ASX should not advertise ISP1
advertisements
23Basic AS Relationships
Provider
Customer
200
100
Peer
Peer
10
11
12
13
1
4
3
2
- Customer Provider customer pays and is always
right - Peer to Peer Exchange traffic only between their
customers - Sibling-Sibling Exchange traffic at will
24How BGP Policy Restricts Routing
Provider
Customer
Peer
100
Peer
200
10
11
13
12
1
4
3
2
- Routing rules
- Provider accept everything
- Peer only if it is for its customers
- Path Properties
- Up then down
- No up-down-up, at most 1 peer-peer steps
25How Policies Affect Routing
Customer 1
- A Provider will get rid of traffic as soon as
possible, - But a Provider will carry the traffic for its
customer - Did anyone say traffic is asymmetric?
ISP1
ISP2
Customer 2
26BGP Path-Length Asymmetry
- Consider number of AS traversed by a path
- Asymmetry 46 of pairs differ by at least one AS
hop -
Siganos 01
27Determining The Logical Graph
- The business relationships are critical
- How can I find the relationships?
- Infer relationships from routing tables
- IRR database manually maintained error prone
28Two Inference Algorithms
- Inference algorithm Gao 00
- Using 1 routing table
- Exploit the up-down path property
- in a routing path, assume highest degree node as
peak - Inference using multiple tables Subramanian02
- Use multiple points of observation to improve
results
29Things Become InterestingTraffic Engineering
- How can I pick a route?
- Local Preference path attribute
- AS2 wants to prefer fast thick link
- Advertisement from right router of AS2 has
higher Local Preference - Any BGP router in AS2 will prefer the
AS 2
LP 100
LP 80
slow
208.1.1.0/24
AS 1
30Load Balancing - Appetizer
- I want to share traffic between my two providers
- How can I do this?
31Load Balancing Long Prefix Match Takes All!
ISP 3
138.39/16
138.39.1/24
ISP 2
ISP 1
138.39.1/24
138.39/16
138.39.1/24
Customer
138.39.1/24
32So How Can I Balance the Load?
- Ask my provider to not aggregate my prefix
- Will this work?
- Split my prefix in two
- 138.39.1.0/24
- A 138.39.1.31/28
- B 138.39.1.32/28
- Advertise only one part to ISP2
- ISP2 traffic destined for prefixes in A
- ISP1 traffic destined for prefixes in B
33Summary Up to Now
- BGP-4 is the de facto protocol for interdomain
routing - BGP was developed to achieve
- Flexible policy implementation
- Scalability via route aggregation given CIDR
- There are many open issues
- BGP is a hot research topic
34The Growth of BGP Table
35The BGP Growth The Truth
- Growth flattened out
- Why?
- Better management
- Dot-com crash?
36Routing Table Variation
- Larger ASes have significantly larger tables
37Update Activity Per Prefix
- Measure rate of announcements withdrawals
path updates - Compare relative update rate per prefix
- length to the relative number of prefixes of
that length - gt1 implies higher than average update rate (less
stable) - lt1 implies lower than average update rate(more
stable)
38Measured Update Rate
39BGP robustness
- Measuring the BGP updates
40Analyzing Messages By Content
- Aggregated per 30 seconds
41Initial Observations
- Updates show daily and weekly periodicity
- There is no evidence BGP disturbance
- The Baltimore tunnel train 18 July that destroyed
Internet lines - Sept 11 attack
- There are some spikes at
- 19 July
- 18-22 September
42BGP Updates Correlations
43BGP Under Attack
44Router CPU Activity Correlates
45The Attack of The Worm
46Classification of Instabilities
47Isolating Instability 1 unstable peer
48Detecting abnormal BGP activity
49The Worm Activity
50 The Worm Correlates Again
51(No Transcript)
52(No Transcript)
53(No Transcript)
54(No Transcript)
55(No Transcript)
56(No Transcript)
57Summary of BGP Instability
- Globally correlated BGP instability is not
uncommon - Some causes are well understood
(misconfiguration, bad path announcements) - Some others are less well understood, and more
worrisome - worms
58BGP Up Close and Personal
- Establishing a connection
- Messages
- Path Attributes
59Establishing A BGP Session
- BGP uses TCP connections
- For reliability
- A BGP session is between two routers
- Typically directly connected (Ethernet, FDDI)
- Routers establish a BGP session
- Authentication and set-up
- Update and withdrawals
- If disconnected, all paths are invalidated
60Messages
- First open TCP connection
- Identification and authentication
- BGP messages
- OPEN set-up, negotiate timer for keep-alive
- UPDATE routing changes
- NOTIFICATION termination, and error messages
- KEEPALIVE confirm that connection is active
61UPDATE Message
- Advertise reachability information
- Withdraw paths to prefixes
- Update information prefixes
- Introduce new prefixes
- Modify important path attributes for new prefixes
and the related paths
62Standard Path Attributes
- Attribute Type, Length, Value
- Origin where did I hear this from
- BGP (external) or IGP (internal)
- AS Path sequence of ASs
- Flexible handling of loops
- Recovering from disconnected ASs!
- Next Hop set explicitly who the next router
should be (possibly a non BGP speaker)
63Multi-Exit Discriminator (MED)
MED 10
AS 2
AS 1
MED 50
- Indication to external peers of the preferred
path into the AS - Lowest Med Preferred
64Note for MED
- One AS sets the values
- Another AS interprets and uses them
- Thus
- Cooperative ASes
- Only between two ASes (1 hop scope)
- MED is meaningless in the next hop
- MED can be used only if both routes are
advertised from the same AS
65Local Preference
AS 2
AS 1
- Choosing paths internally
- Within an AS
- Set Local Preference to pick the path you want to
send data to - The higher Local Preference is preferred
L1
L2
AS3
Here MED can not be used since we have different
AS
66Aggregation of updates
- AS want to aggregate as much as possible
- Reduce routing state
- Reduce information that needs to be exchanged
- Main idea send one update instead of two
- All other attributes are the same (path,
preferences etc) - The prefixes have to be subsets, or adjacent
adjacent
subset
67Atomic Aggregate
- Sometimes we aggregate paths that are different
(ie different AS sequence) - Atomic aggregate shows that some of the
destinations in this prefix are not necessarily
following the same path - This does not allow other routers to de-aggregate
the path, thus creating entries that should not
appear
68Atomic Aggregate
138.39/16 3 1 4
138.39/16 1 4
AS 3
AS 1
AS 2
138.39/16
138.39.1/24
138.39.1/24
AS 4 138.39/16
AS 5
- AS 2 thinks that all 138.39/16 follow the 3 1 4
path
69BGP Route Selection Process
- Maximum prefix length match
- Highest Local Priority
- Shortest AS Path
- Lowest MED (if routes through same AS)
- Min Cost Next hop router (consulting IGP)
- Prefer external to internal routes
- Pick lowest BGP identifier among many E-BGP
- Pick lowest BGP identifier among many I-BGP
70(No Transcript)
71Internal BGP (I-BGP)
- Communication between routers of an AS
- I-BGP very similar to E-BGP except
- Different advertising rules
- Do not re-advertise a path internally
- I-BGP 1 -gt I-BGP 2 -X- I-BGP3
- But readvertise (in -out, out -in)
- I-BGP 1 -gt I-BGP 2 -gt E-BGP1
- E-BGP 1 -gt I-BGP 2 -gt I-BGP1
72I-BGP Re-Advertising
I-BGP
E-BGP
- B will not re-ad. to C what it hears from A
- But it will re-ad to D
- Why?
- Paths are identified by AS, and internally you
have the same AS - To avoid routing loops
A
B
D
C
73I-BGP Mesh
- I-BGP routers form a fully connected mesh
- (clique)
- Scalability becomes an issue
- The full mesh is independent of physical
connectivity
74A Subtle Difference I-BGP vs E-BGP
- E-BGP routers communicate using the IP of the
physical interface (link) - Link based reliability
- I-BGP routers have virtual or loopback
interface - Even when link fails, routers may be reachable
- Node based reliabiity
75Static vs Dynamic Configuration
- In practice, many customers do not speak BGP
- Do not have an AS number
- They are configured statically
76One vs Many Providers
- Single homed vs multihomed
- Customers for reliability and performance connect
to many providers - Difference
- Single homed easy to manage
- Multihomed tricky
- Route aggregation
- Load balancing
77Multihoming
- How can I use my multiple connections
efficiently? - Multihoming is quite widespread
- Users take it up to themselves Huston
- Consequence non-aggregatable state
78Two routers two links
- Multiplex traffic at link or IP layer
- Use Next Hop to point to virtual router IP
- Second look up how can I reach virtual IP?
- Pick one of the two links randomly or statically
- Furthermore, when one link is down the other one
is chosen
79Multihoming with One Routers 1 ISP
ISP 1
- Customer can advertise different prefixes on each
link - Reliability?
- Use Multi-Exit-Discriminator
- Use Local Preference
- ISP to pick link
- Customers IBGP to pick router
B
C
A
P1
P2
80Issues
- The mechanisms are there, but they depend on many
factors - How much traffic each prefix generates?
- Balancing incoming and outgoing traffic
- Dynamically adapting to changing conditions
- Technical issues
- Some ISPs do not accept very long prefixes
- Longer than they would be in classful routing
- Longer than 19 for new prefixes
81Multihoming with Two Routers 1 ISP
Internet
- Similar case for Provider to Customer
- For Customer to Provider
- A could alternate paths
- Reordering of packets
- ISP 1 could advertise different addresses on each
link - I.e. 1 ISP customers
- 2 Default (everybody else)
ISP 1
B
C
ISP 1 Customers
A
P1
P2
82Multihoming With Two Providers
ISP 3
138.39/16
138.39.1/24
ISP 2
ISP 1
138.39.1/24
138.39/16
138.39.1/24
Customer
138.39.1/24
83Two Providers Multihoming Getting Address Space
- Given two ISP
- Get space from one (we saw before)
- Get space from both
- Advertise only related prefix to ISP
- Aggregation but not reliability
- Advertise both prefixes to ISPs
- No aggregation but reliability
- Get space independently of both
- Max flexibility, not reliability
- If too narrow of prefix, may not propagate, no
connectivity
84I-BGP Scalability
- Full mesh is not scalable O(N2) IBGP sessions
- Approaches to scalable I-BGP
- Hierarchical structure Route reflectors
- Divide and conquer Confederations
85Route Reflection
- Explicitly allow some I-BGP routers to
readvertise - Route reflectors represent other routers
- Hierarchical structure avoids loops and problems
D
E
B
C
A
86Confederations
- Decompose an AS to sub-AS
- Externally one AS
- Internally like E-BGP (E-I-BGP)
- Loop avoidance
- AS-CONFED-SET
- AS-CONFED-SEQUENCE
D
E
B
C
A
87Confederation BGP Rules
- Differences of BGP between sub-ASes
- Local-Preference is transitive
- Recall in BGP it is not
- NEXT-HOP attribute is forwarded
- Path within AS is monitored with sub-AS no.
- AS-CONFED-SEQ
- AS-CONFED-SEQUENCE
88Handling the Dynamic Nature
89To Refresh or not to Refresh?
- BGP uses hard state
- BGP routers consider a path is usable
- until explicitly withdrawn
- the session fails
- How do I detect if a connection failed?
- Keep-alive messages
90Path Updates Frequency
- Send updates of a path no sooner 30 sec
- Why?
- Stability
- Overhead reduction
- Side-effects
- Convergence can take longer
- What is the right interval?
- Recent studies say that 30s is too long
91Route Flapping and Damping
- Flapping constant alternating updates
- It can happen!
- Route update dampening
- Consider stability of path before using it
- How store penalty value for each path
- Issue router needs to remember withdrawn paths
92Overview up to Now
- BGP is Distance Vector
- BGP uses TCP and hard-state
- Routing updates are delayed and batched
- Route dampening to alleviate instabilities
93End
94Current Research the AS Topology
- Characterize the topology using power-laws
(Faloutsos 99, Siganos et al 01) - Modeling the evolution of the topology
- (Barabasi, Siganos01)
95Ongoing Research AS paths
- 107 Gb of AS paths over 3 years
- Exponential growth, but distances remain the same
- Inflation due to policy
- 20 of paths are larger than they could
- Significant Routing Asymmetry
- 40 paths by at least one hop
96Near Future Research Plans
- Mine the collected paths for patterns
- How stable were the paths?
- Can we identify illegal paths?
- Identify pathologies (ie. loops)
97Overview of Plans for Research
- How well does BGP work now?
- How secure and robust is BGP?
- Cyber-terrorism how much damage can be done?
- How would we design BGP now?
- People are asking this question
- How well will BGP scale?
- How can we manage BGP (avoid human errors)?
- Approach
- Analytical and simulations with SSFNET
98Conclusions
- BGP is an open and exciting topic
- The community knows very little
- Big ticket items
- Measurments and modeling
- Robustness, security
- Network Management traffic engineering
- Scalability
99Multihoming With Two Providers
ISP 3
138.39/16
138.39.1/24
ISP 2
ISP 1
138.39.1/24
138.39/16
138.39.1/24
Customer
138.39.1/24
100Policies on Transitivity
Isp 1
Isp 2
Nontransit A customer should not Be transit for
its Providers
Not allowed
AS X
AS 1
Transit
AS 3
AS 4
AS 2
101More BGP attributes
- Communities
- Confederations
- Route Reflectors
102Convergence
103Multi-Exit Discriminator(MED)
- Indication to external peers of the preferred
path into the AS - Lowest Med Preferred
104Note in MED
- One AS sets the values
- Another AS interpets and uses them
- Thus
- Cooperative ASes
- Only between two ASes (1 hop scope)
- MED is meaningless in the next hop
- MED can be used only if both routes are
advertised from the same AS
105Local Preference
- Choosing paths internally
- Within an AS
- Set Local Preference to pick the path you want to
send data to - The higher Local Preference is preferred
106Atomic Aggregate
- Sometimes we aggregate paths that are different
(ie different AS sequence) - Atomic aggregate shows that some of the
destinations in this prefix are not necessarily
following the same path
107Aggregator
- Notify that an aggregation took place
- Which AS
- Which router
- For management and traceback purposes