On Inferring Autonomous System Relationships in the Internet Lixin

advertisement
Inferring Autonomous System
Relationships in the Internet
Lixin Gao
• Background
– Network is typically modelled as a graph.
• Does it work in BGP?
• Routing in BGP is controlled by the policy. Does connectivity
imply reachability?
– Need to have AS relation to characterize the Internet.
• BGP allows each AS to choose its own policy in selecting
routes and propagating reachability information.
• The policies are constrained only by the contractual
commercial agreements.
– What are the types of the AS relationship?
– What kind of paths appear in the BGP routing table?
– Is it possible to infer the AS relationship from public
information (BGP routing table)
• Network model:
– connectivity between ASes can be modeled using an AS graph, G=
(V, E).
– Import policies transform incoming routes.
• u sends v a set of routes R, import (u, v)[R] represents the set of
updated routes after the import policies are applied.
• E.g. if v in r.as_path then import (u, v)[{r}] = {}
– The best path to d, B(u, d) is selected from the updated
routes from all neighbor.
– Export policies export(v, u) is applied to the best routes
before they are send to neighbor v
– Routing table enable is either B(u, d) or a local path.
• AS relationships
– The commercial agreements between pairs of
administrative domains can be classified into:
• customer-provider relationship
• peering relationship
• mutual-transit(sibling) relationship
• Relationship between a pair of ASes:
–
–
–
–
customer-to-provider relationship
provider-to-customer relationship
peer-to-peer relationship
sibling-to-sibling relationship
BGP export rules
Own
Routes
Exporting to
a Provider
Exporting to
a Customer
Exporting to
a Peer
Exporting to
a Sibling
Customer’s Sibling’s Provider’s Peer’s
Routes
Route
Route
Route
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
×
Lemma: If u0’s BGP routing table contains an entry with AS
path (u1,u2,…,un) for destination prefix d, then,
(a) any node ui selects a route with as_path (ui+1,…,un) as the best
route to prefix d, and,
(b) ui exports its best route ui-1
• Valley-free property
– After traversing a provider-to-customer or peerto-peer edge, the AS path can not traverse a
customer-to-provider or peer-to-peer edge.
– Formally, an AS path (u1,u2,…,un) is valley-free
iff the following conditions hold true
• A provider-to-customer edge can be followed by only providerto-customer or sibling-to-sibling edges
• A peer-to-peer edge can be followed by only provider-tocustomer or sibling-to-sibling edges
• Theorem: If all ASes set their export
policies according to the BGP export rules,
then an AS path in any BGP routing table
entry is valley-free
• An AS path of a BGP routing table entry has
one of the following patterns:
–
–
–
–
–
–
an uphill path
a downhill path
an uphill path followed by a downhill path
an uphill path followed by a peer-to-peer edge
a peer-to-peer edge followed by a downhill path
an uphill path followed by a peer-to-peer edge
followed by a downhill path
• Algorithm for inferring AS relationships:
– Assume the pattern of routes in BGP routing
table.
– Other intuition: a provider typically has a larger
size than its customer and the size of an AS is
typically proportional to its degree in the AS
graph
• top provider of an AS path is the AS that has the highest degree
among all ASes in the path
• consecutive AS pairs on the left of the top provider are
customer-to-provider or sibling-to-sibling edges and on the
right are provider-to-customer or sibling-to-sibling edges
• Inferring customer-provider, providercustomer, and sibling-sibling relations:
Input: BGP routing table RT
Output: Annotated AS graph G
Phase 1: Compute the degree for each AS
Phase 2: Parse AS path to initialize consecutive AS pair
relationship
Phase 3: Assign relationship to AS pairs
• This is a heuristic that may generate inconsistent
results.
• Inferring peer-peer relation:
– Peer-to-peer edge between top provider and one of its
neighbors only
– If the top provider has sibling-to-sibling relationship
with one of its neighbors, then it has a peer-to-peer
relationship with the other neighbor
– We use the heuristic that peer-to-peer edge is between
the top provider and its neighboring AS that has a
higher degree because such edges are between ASes of
comparable sizes
– We also use the heuristic that the degrees of two peers
do not differ significantly - ASes having peer-to-peer
relationship do not differ by more than R times
• Final algorithm:
Input: BGP routing table RT
Output: Annotated AS graph
Phase 1: Use the algorithm to coarsely classify AS pairs
into having provider-to-customer or sibling-to-sibling
relationships
Phase 2: Identify AS pairs that can not have a peer-to-peer
relationship
Phase 3: Assign peer-to-peer relationships from rest of
the connected AS pairs as long as the pair degrees do
not differ by more than R times
Download