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 ××× ××××× ××× ×××××
Lemma: If u 0 ’s BGP routing table contains an entry with AS path (u 1,u 2,…,u n ) for destination prefix d, then, (a) any node u i selects a route with as_path (u i+1,…,u n ) as the best route to prefix d, and, (b) u i exports its best route u i-1
Valley-free property –After traversing a provider-to-customer or peer- to-peer edge, the AS path can not traverse a customer-to-provider or peer-to-peer edge. –Formally, an AS path (u 1,u 2,…,u n ) is valley- free iff the following conditions hold true A provider-to-customer edge can be followed by only provider-to-customer or sibling-to-sibling edges A peer-to-peer edge can be followed by only provider-to- customer 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, provider- customer, 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