routing ipv6 from Hetzner to an OpenStack instance

The 2a01:4f8:162:12e3::2 IPv6 address is assigned to from the IPv6 subnet provided by Hetzner. The OpenStack host on which the instance running is running is configured as a proxy with

sysctl -w net.ipv6.conf.all.proxy_ndp=1
ip -6 neigh add proxy 2a01:4f8:162:12e3::2 dev eth0

and an OpenStack Essex bug is worked around by manually disabling hairpin_mode:

echo 0 > /sys/class/net/br2003/brif/vnet1/hairpin_mode

The page can then be retrieved with

$ curl --verbose -6
* About to connect() to port 80 (#0)
*   Trying 2a01:4f8:162:12e3::2...
* connected
* Connected to (2a01:4f8:162:12e3::2) port 80 (#0)
> Host:
> Accept: */*
<address>Apache/2.2.19 (Debian) Server at Port 80</address>
* Connection #0 to host left intact
* Closing connection #0

Continue reading “routing ipv6 from Hetzner to an OpenStack instance”