Fly.ioExplainer
32 Bit Real Estate
Summary
Fly.io’s globally distributed network needs routable IPv4 addresses because it assigns distinct public addresses to applications, including non-HTTP services such as UDP DNS servers and TCP game servers. The post explains how address control depends on Regional Internet Registry transfers, a BGP4 ASN, upstream peering, and advertising the same address from multiple locations for Anycast routing. IPv6 and TLS SNI can reduce address demand, but IPv6 connectivity remains unreliable for many users and SNI does not cover non-TLS applications; keeping separate provisioning paths is also considered undesirable. IPv4 blocks are therefore bundled with apps, while outright acquisition is preferred to leasing because addresses can remain assigned indefinitely, despite future IPv6 obsolescence and the risk that their value could eventually fall to zero.
Context
Fly.io needs routable IPv4 addresses to route users to nearby application instances through Anycast, particularly for non-HTTP applications such as UDP DNS servers and TCP game servers. IPv4 addresses are a significant operating cost, and many users are not reliably connected over IPv6.
Approach / What changed
The network acquires IPv4 blocks through transfers arranged with Regional Internet Registries, associates them with a BGP4 ASN, and advertises the same addresses from multiple regions through upstream BGP4 peering. Addresses are bundled with applications rather than replaced broadly by IPv6, TLS SNI, or leased blocks.
Takeaways
Controlling an IPv4 block involves demonstrating authority over its prefixes, completing an RIR transfer, obtaining an ASN, and getting upstream providers to accept route announcements.
TLS SNI can share IPv4 addresses for TLS applications, but it does not support apps without TLS, including some DNS, game-server, and media-relay use cases.
Leasing IPv4 addresses would reduce inventory risk and potentially provide more capacity, but fixed terms and renewal dependence make it unsuitable for addresses intended to remain assigned indefinitely.
Source and freshness
- Source
- fly.io
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.