Miredo is a Teredo implementation that runs on FreeBSD. The FreeBSD system should already have functional dual-stack connectivity before installing Miredo. You'll need root privileges to run most of the commands below.
Do one of the following
pkg_add -r miredo
Enable Miredo during system startup.
echo miredo_enable=YES >> /etc/rc.conf
Enable IPv6 forwarding.
echo net.inet6.ip6.forwarding=1 >> /etc/sysctl.conf
Edit the Miredo config:
- Uncomment RelayType and change it to relay
- Comment out any ServerAddress
Start and test Miredo
Before starting Miredo, check the IPv6 route table for the lack of a 2001::/32 route
netstat -rn | grep 2001::/32
You should get no output from the above.
Ping6 and traceroute6 to a known Teredo client (eg. teredomon.mucip.net or mire.remlab.net). The client will be multiple hops away.
Now startup Teredo relaying.
Recheck the IPv6 route table and traceroute6 paths. You should now see a 2001::/32 route and the Teredo client will be 0 hops away.
> netstat -rn | grep 2001::/32
Redistribute the Teredo 2001::/32 route
To allow your FreeBSD Teredo relay to be useable by the rest of your IPv6 network, you'll need to add a 2001::/32 route to your routers. Two ways to do that are:
- Add a static route on your router to 2001::/32 with your FreeBSD system IPv6 address as the gateway address and propagate the static route to your network.
- Run a dynamic routing protocol on the FreeBSD system compatible with your existing network routers.