Currently we don't have IPv6 at the office, an in the current state of the internet there's no need to: there's no exclusive IPv6 content available.
So why bother? Just for fun! And it's easy!
You can request an IPv6 tunnel at SixXS. You have to register and fill out some web forms to request your IPv6 tunnel. After a few days you'll receive notice of your new tunnel. Meanwhile you can process some of th efollowing steps.
Now you have to enable IPv6 on your Pi, this is described on this page.
AICCU is the Automatic IPv6 Connectivity Client Utility, see also the AICCU page at SixXS. To install AICCU on your Pi is easy, execute the following:
sudo apt-get install aiccu
After you received notice of your SixXS tunnel, you have to configure /etc/aiccu.conf
:
sudo nano /etc/aiccu.conf
Follow SiXXS directions on editing this file.
Now (re)start AICCU so the config will be active:
sudo service aiccu restart
There you have it: your Raspberry Pi has an IPv6 connection to the internet, try:
ping6 www.google.com
The Raspberry Pi has a new network interface aiccu
for it's IPv6 connection:
ifconfig aiccu
Now it would be interresting of course to have all your PC's connected to the internet…
Lookup your IPv6 subnet associated with your SixXS tunnel at SixXS. It looks (somewhat) like 2001:18fa:fd00:37f0::/64
.
Now assign one IP adress in the subnet to your eth0 interface, e.g. 2001:18fa:fd00:37f0::1. This can be done by adding the following lines to your Raspberry's /etc/network/interfaces
file . On the command line:
sudo edit /etc/network/interfaces
Add the following lines (fill in your own IP address!):
iface eth0 inet6 static address 2001:18fa:fd00:37f0::1 netmask 64
Now install radvd, execute following command:
sudo apt-get install radvd
Configure radvd by editing the /etc/radvd.conf
file:
sudo nano /etc/radvd.conf
Make the contents of the file like this (again: fill in your own IP address!):
interface eth0 { AdvSendAdvert on; AdvManagedFlag on; AdvOtherConfigFlag on; AdvLinkMTU 1280; MinRtrAdvInterval 3; MaxRtrAdvInterval 4; prefix 2001:18fa:fd00:37f0::1/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; };
Now (re)start radvd to activate the new configuration:
sudo service radvd restart
Now the magic should happen: all your IPv6 enabled devices suddenly have an IPv6 connection to the internet. This can be checked by browsing to http://ipv6.google.com
.
An issue now is the fact that you have an open connection to the internet! You need an iptables firewall on your Raspberry Pi to address this issue.
/etc/rc.local
file (Check that these lines are before any exit 0
line, otherwise they won't be executed!!):/sbin/ip6tables -F /sbin/ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/ip6tables -A INPUT -m state --state INVALID -j DROP /sbin/ip6tables -A INPUT -i aiccu -p icmpv6 -j ACCEPT /sbin/ip6tables -A INPUT -i aiccu --log-prefix ip6tables:DROP: -j LOG /sbin/ip6tables -A INPUT -i aiccu -j DROP /sbin/ip6tables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/ip6tables -A FORWARD -m state --state INVALID -j DROP /sbin/ip6tables -A FORWARD -i aiccu --log-prefix ip6tables:DROP: -j LOG /sbin/ip6tables -A FORWARD -i aiccu -j DROP
/etc/rc.local
on the commandline.ip6tables -L -n
, this should render the following output:Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all ::/0 ::/0 state RELATED,ESTABLISHED DROP all ::/0 ::/0 state INVALID ACCEPT icmp ::/0 ::/0 DROP all ::/0 ::/0 Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT all ::/0 ::/0 state RELATED,ESTABLISHED DROP all ::/0 ::/0 state INVALID DROP all ::/0 ::/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination