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