Replicating Cloudflare Argo - Part 1

Cloudflare Argo is elegant, and I wanted to replicate it to learn how it works. While I’m still working towards fully understanding it, I’ve already learned a lot. Some of it I remember from taking Cisco classes in high school.

Cloudflare has a lot of servers all over the world. I don’t think they own any of the data centers they’re in, and I don’t believe they are a transit provider. These items led me to think I could build something similar on a smaller scale.

While scouring the internet for tips on setting up BIRD, I came across DN42. Now I have six servers around the world that are part of the DN42 network. My network is a mesh network design, and each node connects to the others over a WireGuard tunnel.

I have servers in the following locations:

  • New Jersey, USA
  • California, USA
  • Frankfurt, DE
  • London, UK
  • Tokyo, JP
  • Singapore

x6c network

So, I created the x6c network. I’m using BIRD with BGP and OSPF. While I’m still not 100% sure of what I’m doing, I believe I have an iBGP using OSPF to maintain the distance between each node. Our BIRD communities let other BIRD peers know some additional information to route traffic across the fastest routes.

I’m not using powerful servers and have limited bandwidth, but I have seen minor performance improvements. My network could route around slower portions of the internet if needed. My ping times from Newark to Singapore are about 17ms faster.

Multipath Interdomain Routing

If you do a search for MIRO on Google Scholar you’ll find a lot of papers on this topic. So, it seems as though this isn’t a revolutionary idea developed by Cloudflare (which they never claimed it was). The Cloudflare network probably does allow them to do this much better than others because they have so many POPs around the world.