Brendan's site

Experimenting with hosting IPv6-only services

Published on: by Brendan

Updated on: • 4 min read

This blog is part of an experiment to see how feasible it is to self-host IPv6-only services on a FreeBSD host. The host is just an old computer sitting in my home. Nothing special.

Why is this blog and experiment IPv6-only?

It's 2026.

IPv6 has been around for a long time. Google reports that IPv6 traffic now carries roughly half of the traffic reaching its services..

IPv4 is on life support. The problem of IPv4 exhaustion was recognised in the early 1990s. The supply of unallocated IPv4 addresses ran out over a decade ago.

IPv4 addresses are now a commodity. Since then, IPv4 addresses have become scarce, traded on secondary markets or hoarded by speculators. Yes, despite there being no more IPv4 blocks for allocation, some reports estimate that about 20% of /8 IPv4 address space is unused. These costs are ultimately passed on to consumers.

NAT was meant to be a short-term solution. In 1994, we knew that:

"[t]he long-term solutions consist of various proposals for new internet protocols with larger addresses. Until the long-term solutions are ready an easy way to hold down the demand for IP addresses is through address reuse."

In 1995, a draft for an internet protocol with larger addresses was introduced. Throughout the late 1990s and early 2000s, support for IPv6 was added to all major distributions.

Somewhere along the way, we forgot that "nothing is more permanent than a temporary solution." NAT has become so ubiquitous that many ISPs now rely on CGNAT to conserve scarce IPv4 address space. For some users, CGNAT is invisible. For anyone trying to self-host services from their home, it can be a significant barrier.

I believe that CGNAT is a barrier to true self-hosting: the ability to own and control your own data by running applications or services on your computer, that you own, in your house. Without a publicly routable address, self-hosting becomes significantly more difficult. Behind CGNAT, services are inaccessible from outside your network unless additional mechanisms are used. These additional mechanisms are workarounds for the limitations imposed by NAT. Workarounds for CGNAT often amount to kicking the can down the road: overcoming one barrier by introducing another.

Overlay networks that 'punch' through CGNAT only partially let you self-host. These solutions are partial because they address only one barrier: making resources accessible from outside your network. They do not, by themselves, provide a publicly routable address. These solutions then introduce other barriers: financial costs, the time required to configure your own devices, and the ongoing effort of maintaining devices for less technical family members. But most importantly, they introduce a dependency on another service provider.

Renting someone else's computer or using a tunnel comes closer to letting you self-host. These let you host services on a computer with a publicly routable address, or proxy the connection back to your server at home. However, these solutions can also introduce recurring costs that rarely seems to decrease. But most importantly, they introduce a dependency on another service provider.

You may be lucky enough to have an ISP that doesn't use CGNAT and can assign a static IPv4 address to you. If you do, you can self-host by forwarding ports on your router to a reverse proxy or directly to the services you run. But you will incur an additional cost. Because IPv4 addresses have become scarce commodities, obtaining address space carries costs for ISPs. This cost is passed on to you.

However, whether a static IPv4 address is available often depends less on technical considerations and more on the historical distribution of IPv4 address space. Some countries have more than four IPv4 addresses per person. People in those countries may have the option to pay for a static IPv4 address. Other countries have fewer than four IPv4 addresses per 1,000 people. For many users in those countries, NAT is effectively unavoidable for IPv4 connectivity.

I am not arguing that depending on other providers' infrastructure is inherently a problem. For some use cases, there are very good reasons to use overlay networks or a VPS. Some dependencies are unavoidable. Regardless of how you self-host, you will depend on your ISP and will probably also depend on your domain registrar and DNS provider.

Ultimately, I believe that relying on NAT limits your choices about how and whether you incur costs or depend on other service providers. If you run simple public-facing services, such as a static blog, you don't need the complexity of a VPS to proxy connections back to your home computer unless you prefer not to have people directly access your computer. You should be able to choose to publicly host something on an old laptop with a broken screen, or Raspberry Pi 3B, or refurbished thin client running NetBSD without incurring extra technical complexity or financial costs. That should remain your choice.

Compared with overlay networks, rented IPv4 addresses, or VPSs, I believe IPv6 gives you more choice. You should have the freedom to choose to self-host on ordinary hardware that you already own without needing to incur additional costs, complexity, or dependencies.

It's 2026.