Blog is now IPv6 Enabled

Although my awesome hosting company dreamhost are not serving up via IPv6 yet, I’ve IPv6 enabled by blog for them by using apache reverse proxy on my home machine.

I configured apache much like: http://linux.yyz.us/ipv6/proxy.html with a few differences

1. I didnt use NameVirtualHost, just put a specific IP in. NameVirtualHosts just feel a bit unnecessary with IPv6, and this way i can point several aliases at the entry without defining them all. This may be considered a small security issue, as other people could point their illegitimate domain names at your site and it would still work and look official.

2. So i didnt have to register all of the aliases, i did not enable ProxyPreserveHost

3. As bryars.eu would resolve to AAAA and A, I didn’t want Apache to get in a loop and proxy to itself, so i added an alias v4 to ensure v4 only forwarding.

For some reason it was sending 301 redirects until the DNS was all sorted

# Contents of /etc/apache2/sites-available/bryars.eu-proxy
<VirtualHost [2001:470:9272:1::2]>
 ServerName bryars.eu
 CustomLog /var/log/apache2/bryars.eu-proxy.log combined

 ProxyRequests Off
 <proxy http://v4.bryars.eu/*>
 Order deny,allow
 Allow from all
 </proxy>
 ProxyPass             /       http://v4.bryars.eu/
 ProxyPassReverse      /       http://v4.bryars.eu/
</VirtualHost>

Also added the IP address to my /etc/network/interfaces so it would get allocated when the tunnel came up, by adding the following line to my tunnel interface stanza:

up ip addr add 2001:470:9272:1::2/64 dev $IFACE preferred_lft 0

The preferred_lft 0 is to mark the ip as deprecated so it doesn’t get used as the default address for outgoing connections. For more information see: http://www.davidc.net/networking/ipv6-source-address-selection-linux

Leave a Reply

Your email address will not be published. Required fields are marked *