Brussels / 3 & 4 February 2024


Improving IPv6-only experience on Linux

IPv6-only networks are slowly becoming reality and are very well supported by mobile operating systems as well as macOS. Linux is slightly falling behind. In this talk, I will cover how IPv6-only and IPv6-mostly networks work and what needs to be done to have first class support in Linux. Let's talk about IPv6-mostly networks - the kind of networks which run IPv6-only for devices supporting it while providing some IPv4 for devices dependent on it. This can be done by DHCPv4 option called IPv6-only Preferred. Using this option, a device can opt-out from IPv4 if it does not need it for proper functionality.

But even if a device opts out from IPv4, chances are it would need some IPv4-as-a-service for supporting legacy applications. Typically, 464XLAT concept is used. This relies on a client-side translator (CLAT) responsible for converting residual IPv4 into IPv6. If such a translator is missing, which is the case for the most Linux desktop distributions nowadays, most things would work normally, but chances are you will hit some corner case where your computer complains about no connectivity. There are solutions to set up CLAT on Linux but none of them is mature enough. Let's talk about what needs to be done to change this.


  • clatd: a CLAT daemon utilizing userspace translator TAYGA or nat46 kernel-space translator

  • Jool: Open Source SIIT and NAT64 for Linux

  • RFC 6877: 464XLAT: Combination of Stateful and Stateless Translation

  • RFC 8925: IPv6-Only Preferred Option for DHCPv4

  • RFC 8781: Discovering PREF64 in Router Advertisements


Photo of Ondřej Caletka Ondřej Caletka