Towards Passive Analysis of Anycast in Global Routing: Unintended Impact of Remote Peering,
Rui Bian, Shuai Hao, Haining Wang, Amogh Dhamdere, Alberto Dainotti, and Chase Cotton.
ACM SIGCOMM Computer Communication Review (CCR), Volume 49 Issue 3, July 2019.
We developed a passive method to study IP anycast by utilizing BGP data. We proposed a set of BGP-related features to classify anycast/unicast prefixes by using the BGP data (RouteViews and RIPE RIS) and evaluated the effectiveness of our approach by using the active measurement results as a near-ground-truth. The results show that our approach achieves high classification accuracy, about 90% for anycast and 99% for unicast.
While further delving into the causes of inaccuracy, we found that remote peering has an unintended impact on anycast routing, due to its invisibility at layer-3, breaking the assumption that the peered autonomous systems are physically close and provide a short path. In our study, 19.2% of anycast prefixes are sensitive to remote peering and around 40% of such prefixes are further confirmed to be impacted by remote peering via traceroute measurements. [paper]
construct_datasets.py
: construct datasets for classification fromfull_results_anycast.txt
andfull_results_unicast.txt
and datasets contain five featuresN, P1, P2, MD, ML
, details in paper §3.2extract_asrelation_distance.py
: process raw BGP file (BGP data from RouteViews and RIPE RIS from June 1st 00:00 UTC to June 1st 23:59 UTC) and extract the distance of ASesprocess_anycast_to_get_complete_data.py
: process BGP data (BGP data from RouteViews and RIPE RIS from June 1st 00:00 UTC to June 1st 23:59 UTC) and extract BGP featuresprocess_data_mulway_ris.py
: process raw BGP data, extract origin/upstream ASes, and the distance of upstream ASes for each prefixprocess_unicast_to_get_complete_data.py
: process unicast prefix BGP data (BGP data from RouteViews and RIPE RIS from June 1st 00:00 UTC to June 1st 23:59 UTC) and extract BGP featuresdecision_tree_save_results.py
: classification using decision tree algorithmrandomforest_save_results
: classification using random forest algorithm
anycast_2017_uniq.txt
: (near-)Ground truth of anycast prefixes from Anycast enumeration (CoNEXT'15 paper)as_distance
: AS distance from RIPE RIS and RouteViews datadatasets_prefix_N_P1_P2_MD_ML.txt
: feature data for classificationfull_results_anycast.txt
: anycast prefix feature data, the format is
prefix in groundtruth|prefix in BGP|origin AS|number of orgin AS|number of upstream AS (N)|number of collectors|number of upstream AS pairs|number of upstream AS pairs whose distance above 1|number of upstream AS pairs whose distance above 2| Percentage of upstream AS pairs whose distance is more than 1 (P1)|Percentage of upstream AS pairs whose distance is more than 2 (P2)|maximum distance between upstream ASes (MD)| minimum of distance between upstream ASes| mean of distance| standard deviation of distance|maximum length of AS paths (ML)|minimum of length of AS paths|mean of length of AS paths| standard deviation of length of AS paths
full_results_unicast.txt
: unicast prefixes' feature data, format is same asfull_results_anycast.txt
full_results_all.txt
: all prefixes' feature data constructed from raw BGP data (BGP data from RouteViews and RIPE RIS from June 1st 00:00 UTC to June 1st 23:59 UTC), format is same asfull_results_anycast.txt
(except no groundtruth prefixes, because they are constructed from Raw BGP data)res_DT_5.txt
: results of decision tree classificationres_RF_5.txt
: results of random forest classification
Anycast-data-UMD
: Anycast experiment data from University of Maryland's D-Root Nameserver (SIGCOMM'18 paper)asn_ixp
: IXP member ASNs and remote peering ASes (IXP member ASN collected from IXP websites; remote peering AS data from IMC'18 remote peering paper)aspair_ixp
: AS pair of IXP member and remote peering IP (constructed fromIXP_members
andasn_ixp
)rp_in_ixp
: BGP searching results of remote peering (using AS pairs to search in anycast prefix BGP records)anycast_2017_uniq.txt
: (near-)Ground truth of anycast prefixes from Anycast enumerationatlas_exp_prefix_msmid.txt
: Measurement ID of RIPE Atlasinferences_all.txt
: information including local and remote peering from IMC'18 remote peering paperinferences_remote.txt
: remote peering information from IMC'18 remote peering papertraceroute_prefix_ip_path.txt
: traceroute results (IP paths) from RIPE Atlas experimentstraceroute_prefix_asn_pyasn.txt
: ASN paths from RIPE Atlas experimentspath collection
: path collection (details in paper §5.2) results from RIPE Atlas traceroute experiments
Due to limit of size, we didn't include large files like BGP data, which can be downloaded from RouteView/RIPE NCC, or retrieved from CAIDA's BGPStream. If you need those files to reproduce your results, we have included the method in our paper and feel free to contact us by email (bianrui@udel.edu).