How to route FreeTV with Edgerouter

I recently had the chance to get the fiber at home. However, due to historical reasons, I want to keep my FreeBox along with the Multiposte FreeTV service where I could watch TV on PCs connected to the network. Having two networks, I purchased and configured an Ubiquiti EdgeRouter Lite in failover mode. It’s quite a struggle to get the FreeTV feature working on this configuration, this is how I managed to do it.

First, we need to create a routing rule to the network. Free uses the 212.27.0.0/16 block (at least 3 addresses in that block) as block for the TV. Theses IPs are intercepted by the FreeBox itself, and a quick ping can show (<1ms). So, we create a routing rule for this network by specifying a gateway (interface did not work) which is the Freebox itself. See the following screenshot.

Routing rule

Be sure to put a small distance so this rule overrides the general rules.

Second, in order to have the traffic coming back, we need to add this block to the PRIVATE_NETS in the Firewall/NAT tab.

Private net rule

From this point, you will be able to browse http://mafreebox.freebox.fr and get the freebox information or download the playlist.

However, the playlist, due to the fact it uses RTSP protocol, will not work on any PC on the network.

The final trick is a bit undocumented: the Edgerouter has a kernel module for tracking RTSP connections! You just need to activate it in SSH with:

sudo modprobe nf_nat_rtsp

This will be reset at the next boot. In order to have it persist, create a file in /config/scripts/pre-config.d with the same contents.

Everything works perfectly! Bonus point: you’ll have all your bandwith to watch TV.