World IPv6 Day

Details
World IPv6 Day
June 8, 2011
https://www.worldipv6d... (https://www.worldipv6day.org/)
While most of us don't have native IPv6 Internet service, you can still participate in World IPv6 Day by tunneling IPv6 over IPv4/UDP (behind a NAT is ok) via a Teredo relay. Here's a quick and easy way to get going with IPv6 via Teredo tunneling on Ubuntu Linux (that's what you use, right?):
- Install miredo
$ sudo apt-get install miredo
Verify:
$ ifconfig
(should show information for the a interface named "teredo")
At this point, you should be able to access some IPv6 websites, such as:
https://ip6.me/... (https://ip6.me/)
If you want to check the bandwidth of IPv4 vs IPv6, try downloading something from freebsd.org:
$ wget -4 ftp://ftp.freebsd.org... (ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.2/FreeBSD-8.2-RELEASE-i386-disc1.iso)
$ wget -6 ftp://ftp.freebsd.org... (ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.2/FreeBSD-8.2-RELEASE-i386-disc1.iso)
There are still some issues to address though, so read on.
- Your browser (as well as other IPv4/6 capable applications) are likely to prefer IPv4 over IPv6 when both types of DNS records are present.
How to test:
First, verify that a host has both IPv4 and IPv6 DNS records:
$ host www.freebsd.org
Then, observe which type of IP address is used (works the same for telnet and firefox):
$ telnet www.freebsd.org 80
How to fix:
Edit /etc/gai.conf to change the default address precedence rules. My /etc/gai.conf was completely commented out. There should be at least one uncommented line in order to override the default settings, but make sure any rule starting with 2001:0:: is commented out or not present. The following should work:
label ::1/128 0
label ::/0 1
label 2002::/16 2
label ::/96 3
label ::ffff:0:0/96 4
label fec0::/10 5
label fc00::/7 6
#label 2001:0::/32 7
FYI, these rules are based on your available source addresses. IPv4 addresses are encoded as IPv6 addresses (matching ::ffff:0:0/96).
- Google uses DNS whitelisting to control who can access their IPv6 DNS records. You likely won't be able to access Google over IPv6 at this point.
How to test:
$ host www.google.com
If there is an IPv6 address among those returned, you're ok.
How to fix:
Use a DNS server which provides Google's IPv6 records. For example, if you are using DHCP, add the following line to /etc/dhcp3/dhclient.conf, then refresh your DHCP:
prepend domain-name-servers 74.82.42.42;
This DNS server belongs to Hurricane Electric. It's the first one I found which was Google-approved. Don't judge me for using an IPv4 DNS server...
- Ok, now you have both IPv4 and IPv6 access, and you think you're using IPv6 for some websites. But how do you REALLY know you're using IPv6, and how do you know a website isn't mixing IPv4 and IPv6? One way is to disable IPv4. Well, you can't actually disable IPv4 since you need it for IPv6. But you can install a filter that blocks the browser from using IPv4 while allowing the Teredo packets. For example, since Teredo uses UDP and web browsers use TCP, we could block all outgoing IPv4/TCP packets:
$ sudo iptables -A OUTPUT -p tcp -j REJECT
Note that iptables only applies to IPv4. Now you'll have to figure how in the world to browse the Internet in IPv6 only... which probably means finding some web page with links to IPv6-enabled web sites.
Now you are equipped to help Google, Facebook, and Yahoo beta-test their IPv6 stuff on Wednesday. Hopefully it will be ready and working that day.
How to undo when you've had enough of IPv6:
$ sudo apt-get remove miredo
Undo edits to /etc/dhcp3/dhclient.conf
Undo edits to /etc/gai.conf
A reboot is enough restore your default iptables configuration

World IPv6 Day