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