--- title: Who are the upstreams for AMPRNet? description: date: 2024-04-27 tags: - networking draft: false extra: auto_center_images: true aliases: - /blog/ampr-upstreams --- I happened to be poking through the [AMPRNet](https://ampr.org) gateway list today, and pretty much out of nowhere came up with the question: *I wonder what networks most commonly house AMPR gateways?* So, in this short post, I shall set out to answer that question. ## A brief overview Feel free to read about AMPRNet yourself online. There's lots of great information floating around. For anyone looking for a TLDR before continuing, you can basically think of AMPRNet as an ad-hoc mesh of gateways that act as core routers for tiny slices of IP space. These gateways share routing information with each other and form a mixed-topology network that spans the globe. ## What gateways exist? Firstly, in order to figure out what networks house gateways, I need to know what gateways exist. AMPR operators have access to a little API that allows us to query for a list of all active gateways, so thats where I shall start. If you happen to be following along at home, heres the commands I am using to get my list of gateway IPs: ```bash AMPR_API_TOKEN="your-api-token-here" http get https://portal.ampr.org/api/v1/encap/routes \ "Authorization: Bearer $AMPR_API_TOKEN" \ "Accept: application/json" \ | jq ".encap[].gatewayIP" \ | tr -d '"' \ | sort \ | uniq ``` This returns a nicely sorted list of approximately 650 unique gateways. ## Where are they? Now that I have a list of IPs, I just put them into a file (`/tmp/ips` in my case) and asked the [BGP.tools API](https://bgp.tools/kb/api) for info about them. ```bash echo "begin\n$(cat /tmp/ips)\nend" | nc bgp.tools 43 | tee /tmp/bgp-tools-result ``` This gives me a very long list of ASNs for each gateway, which I can then process. Taking the `/tmp/bgp-tools-result` file that the previous command generated, I can now run the following command to get a list of unique ASNs: ```bash cat /tmp/bgp-tools-result \ | cut -d "|" -f 7 \ | sort \ | uniq -c \ | sort -n -r ``` ## The results At the time of writing, here's the distribution of gateways by Autonomous System: | Count | Autonomous System | |-------|---------------------------------------------------| | 46 | Comcast Cable Communications, LLC | | 25 | Charter Communications Inc | | 23 | The Constant Company, LLC | | 23 | AT&T Services, Inc. | | 22 | Verizon Business | | 16 | Charter Communications | | 15 | Akamai (Linode) | | 14 | Free SAS | | 11 | Amazon.com, Inc. | | 10 | Lumen (ex. Qwest) | | 10 | Cox Communications Inc. | | 10 | Bell Canada | | 9 | Ote SA (Hellenic Telecommunications Organisation) | | 9 | DigitalOcean LLC | | *249* | *Various Others* |
**Note:** the *Various Others* row represents nearly 230 ASes that only host 1 gateway, and a smaller handful that host a few more.