Audience

This post is mostly a quick-and-dirty little piece of documentation, and certainly isn’t meant to be exhaustive, or anything.

Feel free to use it if can help you understand something :)

What ?

My current ISP is Free.

Like most customer-grade ISP, they provide me with a box, to setup in my apartment (surprisingly named Freebox).

I’d like to replace it with a custom router, in my case, a Turris Omnia (which I chose mostly because it’s fully open-source, including the hardware, and seems pretty capable)

Why ?

  • Although the Freebox is the most capable ISP-provided box I’ve had a chance to use so far, it’s still lacking in capabilities :

    • Fine-grained IPv6 firewall
    • My model’s WiFi is … old. I’d rather switch the end router than upgrade my subscription
    • No way to ssh or install anything
  • Better control in general, I might want to do various stuff that the box wouldn’t allow

  • Fun !

How ?

While replacing the freebox with a custom router is not officially supported, it’s more than tolerated : it’s a pretty common and well-documented setup.

Their user portal actually helps you with the setup !

Most information here comes from various threads on lafibre.info. Honestly, there’s pretty much everything you need over there, it’s just kinda scattered around.

Basic setup

The Turris Omnia basically runs OpenWRT, with some extra little goodies that try to make everything easier.

Let’s follow the initial router setup, plug in the SFP fiber module, and … that’s not enough.

You need to spoof the box’s Mac address, and ask for a public IP through DHCP, in vlan 836.

Then you get a public IPv4, NAT, and it works.

The other possible case

Apparently, depending on where you are on their network, you have either :

  • Native IPv4 through DHCP, IPv6 through a 6rd tunnel
  • Native IPv6 through DHCPv6, (I assume DHCPv6-PD), and IPv4 through a 4rd tunnel

Just configuring VLAN + Mac spoofing, I got a routable IPv4, so, I’m in the first case, and now need to setup a 6rd tunnel

6rd

Some docs about 6rd :

Fun fact : 6rd was actually created by Free for their own infrastructure, which they deployed in record time (5 weeks, YOLO), before being submitted as RFC, and eventually standardized.

Be sure to read enough of those docs to understand how the protocol works, then back to our config.

I’m configuring my router Through LuCI, a kinda standard web interface for configuring OpenWRT. The same config could of course be done in CLI, but for now, a web interface will do.

Let’s create a 6rd interface, put it in the WAN firewall zone, and fill it with the following configuration :

  • Local IPv4 address : Leave it to the IPv4 gotten through DHCP
  • Remote IPv4 address : 192.88.99.101, this is apparently a single anycasted IP to use for everyone.
  • IPv6 prefix : found in your client portal. Enter the full prefix as given, not just the beginning.
  • IPv6 prefix length : 60 (not 28, this is the prefix including your encoded IPv4)
  • IPv4 prefix length : 32

You should now have some IPv6 too !

What about Televison / Phone ?

Don’t know. Don’t care.

I came across some info on lafibre.info, so, it’s likely possible to get them to work. But since I don’t use them in the first place, I haven’t tried to make them work.