Inferring AS Relationships The Problem One view AS relationships BGP route tables The other view BGP route tables AS relationships Available Internet route logs Oregon Routeviews project European RIPE project Why Inference? Connectivity does not imply reachability End-to-end performance cannot be inferred from AS (connectivity) graph Contractual agreements between ISPs are proprietary ISP B ISP A customer ISP C Annotated AS Graph Provider-to-customer Peer-to-peer Sibling-to-sibling Selective Export Rule Consider AS u and AS v provider(u) peer(u) For each best route r of u, if r is a provider / peer route of u, then export(v,u)[{r}] = {} Consider AS u and AS v customer(u) sibling(u) There is a best route r of u s.t. r is a provider / peer route of u, and export(v,u)[{r}] {} Transit Implications ASes u and v are peers iff neither u transits traffic for v nor v transits traffic for u AS u is provider of v iff u transits traffic for v and v does not transit traffic for u ASes u and v have a sibling relationship iff both u transits traffic for v and v transits traffic for u Routing Table Entry Information If u0’s BGP table contains route e, where e.as_path = (u1, …, un), then ui selects route with as_path (ui+1, … un) as best route to prefix ui exports its best route to ui-1 Valley-free Property AS path of BGP routing table entry has following valley-free property A provider-customer edge can be followed by only provider-customer or sibling-sibling edges A peer-peer edge can be followed only by provider-customer or sibling-sibling edges Example Paths 6 2 3 1 4 Valley-free: (1,2,3) (1,2,6,3) Non valley-free: (1,4,3) (1,4,5,3) 5 More Routing Entry Patterns Downhill path: a sequence of edges that are either provider-customer or sibling-sibling Maximal downhill path: longest such path Uphill path: a sequence of edges that are either customer-provider or sibling-sibling Maximal uphill path: longest such path BGP Path Patterns An uphill path A downhill path An uphill path followed by a downhill path An uphill path followed by a peer-peer edge A peer-peer edge followed by a downhill path An uphill path followed by a peer-peer edge, which is followed by a downhill path Heuristic Inference Alogrithm Provider typically has a larger size than its customer Size of AS is typically proportional to its degree in AS graph The uphill (downhill) top provider of an AS path should be the AS with highest degree among all ASes in its maximal uphill (downhill) path Top provider is the AS with higher degree between the uphill and downhill top providers Inference Algorithm (cont’d) Consecutive AS pairs that appear before the top provider in the AS path are customerprovider or sibling-sibling edges Consecutive pairs that appear after the top provider in the AS path are providercustomer or sibling-sibling edges Pairs of top provider and top provider’s neighbor are the peer-peer edges Provider-customer and Sibling Relationships Given AS path, find top provider Consecutive AS pairs before top provider are customerprovier or sibling-sibling edges If (u1,u2) appears, then u2 provides transit for u1 Consecutive pairs after top provider are providercustomer or sibling-sibling If (u1,u2) appears, then u1 provides transit for u2 u1 is provider of u2 iff u1 provides transit for u2 but u2 does not provide transit for u1 AS pair have sibling relationship if they provide transit for each other Basic Algorithm Given BGP routing tables, run in three phases Phase 1: compute the degree for each AS Phase 2: parse AS path to initialize consecutive AS pair’s transit relationship Phase 3: assign relationships to AS pairs based on transit results Refined Algorithm Basic algorithm may misclassify if some BGP speakers are misconfigured E.g., configured to provide transit between two providers Assume that the fraction of misconfigured BGP speakers is small Count the number of routing table entries that infer a transit relationship Confirm transit only of number exceeds threshold L Peering Relationships At most one peer-to-peer link on each path Top provider either peers with its left neighbor or right neigbor in the path Three phases Phase 1: classify the provider-customer and sibling relationships Phase 2: identify AS pairs that may have a peering relationship Neighbor of top provider in an AS path, not a sibling of the provider, and has higher degree than the other neighbor if neither neighbor of the top provider is a sibling Phase 3: confirm candidate AS pairs by checking for “similar” degrees of the two ASes in a pair