Running IPv6-only or IPv6-mostly network on TurrisOS

Hello everyone,

since the support for PREF64 RA option was merged into TurrisOS 6.5, you might find it interesting to run an IPv6-only or IPv6-mostly network on your Turris router.

I have recently held a tutorial on how to run an IPv6-mostly networks on OpenWRT. Feel free to give it a try!


Normally we dont have access to the first topic you mentioned.
But thanks for link to the video. I am watching it right now.

Those jool packages are named diffrently than on your presentation:

root@router:~# opkg list | grep jool
jool-tools - 4.1.5-1 - Jool is an Open Source SIIT and NAT64 for Linux.  This packa
ge provides the userspace control programs for Jool.
kmod-jool - 5.15.135+4.1.5-1-59c7aae3065e1430c1f2c7c63d04911e - Jool is an Open Sou
rce SIIT and NAT64 for Linux.  This package provides the kernel module for Jool.

Are they good enough? Edit: Checked and they are fine.

Anyway we need to wait for RC to be released. Cannot be patient enough

1 Like

Ok I managed to set it up until NAT64 including. Now waiting for the patch mentioned to reach HBS and I will continue with setup. I had problems with getting IPv6 on juul interface. So I got pissed and simple reboot fixed that. Thanks for the tutorial so far.

I went the very same way as @AreYouLoco. IPv6 for namespace worked flawlessly, but when restarting the router, the jool interface doesn’t exist anymore (as the respective file sits in /tmp/...)? Should the script be executed a boottime?


→ for sure it doesn’t work from within jool namespace… :man_facepalming:
Also when pinging cloudflare from within namespace, it doesn’t work:

root@turris:~# ping 64:ff9b::
PING 64:ff9b:: 56 data bytes
--- 64:ff9b:: ping statistics ---
12 packets transmitted, 0 received, 100% packet loss, time 11414ms

Yes I have put it in /etc/rc.local

I also made some modification to the script for the jool and openwrt interfaces IP and netmask. Since its only two interfaces that need to talk to each other I used netmask /31 and it still works

My bad, works fine.

@Ondrej_Caletka : option bridge_empty '1' is actually not needed here (slide 7) - you have put lan2 into the bridge, therefore it is not empty and thus will come up:

This tutorial is, as you stated, for stateful Nat64. In order to do stateless Nat64 (availability of IPv6 service for IPv4 client), one needs to reverse the setup for the jool namespace, right? How would that look like?

Yeah, indeed. Run it after every boot from rc.local.

Sure, whatever. That does not make any difference to anything.

In that particular case yes, but chances are you don’t want to put any interface into the bridge and only use it for wireless. Using bridge_empty will make it work in any case.

Yes, basically everything stays the same, except you configure Jool differently. You will probably also need to route some IPv4 prefix into the translator namespace and set up EAM table. But it really depends on your particular use case.

1 Like