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.
Install Miredo
Do one of the following
pkg_add -r miredo
or
cd /usr/ports/net/miredo
make install
Configure 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
sysctl net.inet6.ip6.forwarding=1
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.
ping6 teredomon.mucip.net
traceroute6 teredomon.mucip.net
Now startup Teredo relaying.
/usr/local/etc/rc.d/miredo start
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
2001::/32 teredo ULS teredo
> traceroute6 teredomon.mucip.net
1 2001:0:53aa:64c:3c10:f226:af0b:cba 710.172 ms 240.230 ms 240.489 ms
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.