Myatu
19-05-2009, 21:50
But wait, there's more!
The whole idea of this exercise is to assign IPv6 addresses to containers/KVMs in Proxmox. Given there's no NAT or similar with IPv6 (and why? you've got trillions of addresses to pick from!), it ought to be straight forward by simply assigning an address with your prefix. Not so, I'm afraid!
First, Proxmox's web interface isn't IPv6 ready yet. So from the shell on the host you use:
Where xxxx is your private prefix at OVH and YYYY a specific address for the container.
At this point, you can use ping6 to ping the host. But that's it - it's not reachable from the internet and vice versa. This had me pulling my hairs for HOURS, trying to figure that one out. I tried forcing routes to the gateway, etc., etc.
Turns out, Proxmox does not enable Proxy Neighbor Discovery (and same goes for OpenVZ if you use that). So the router at OVH has no clue about it and therefore can't route any traffic. So here's what you need to do as well...
On the host, you MUST enable Proxy Neighbor Discovery with
You should be able to add this to /etc/sysctl.conf as well, but the more networking stuff you install, the more likely this gets overridden...
Then you can "force" the discovery of a container with
Here I'm assuming that eth0 is actually the main entry point for your public network
Furthermore, make sure that in /etc/vz/vzctl.conf IPv6 support is enabled (IPV6="yes", near the bottom) and forwarding is enabled as well (/etc/sysctl.conf, net.ipv6.conf.all.forwarding=1 or "echo 1 > /proc/sys/net/ipv6/conf/all/forwarding")
Now your container is visible to the internet with the assigned IP (a traceroute6 will show eth0 as a router, by the way).
Hopefully this will save someone else countless hours pulling hairs and a caffeine overload...
The whole idea of this exercise is to assign IPv6 addresses to containers/KVMs in Proxmox. Given there's no NAT or similar with IPv6 (and why? you've got trillions of addresses to pick from!), it ought to be straight forward by simply assigning an address with your prefix. Not so, I'm afraid!
First, Proxmox's web interface isn't IPv6 ready yet. So from the shell on the host you use:
Code:
# vzctl set--ipadd 2001:41d0:xxxx:xxxx::yyyy --save
At this point, you can use ping6 to ping the host. But that's it - it's not reachable from the internet and vice versa. This had me pulling my hairs for HOURS, trying to figure that one out. I tried forcing routes to the gateway, etc., etc.
Turns out, Proxmox does not enable Proxy Neighbor Discovery (and same goes for OpenVZ if you use that). So the router at OVH has no clue about it and therefore can't route any traffic. So here's what you need to do as well...
On the host, you MUST enable Proxy Neighbor Discovery with
Code:
# echo 1 > /proc/sys/net/ipv6/conf/all/proxy_ndp
Then you can "force" the discovery of a container with
Code:
ip -6 neigh add proxy 2001:41d0:xxxx:xxxx::yyyy dev eth0
Furthermore, make sure that in /etc/vz/vzctl.conf IPv6 support is enabled (IPV6="yes", near the bottom) and forwarding is enabled as well (/etc/sysctl.conf, net.ipv6.conf.all.forwarding=1 or "echo 1 > /proc/sys/net/ipv6/conf/all/forwarding")
Now your container is visible to the internet with the assigned IP (a traceroute6 will show eth0 as a router, by the way).
Hopefully this will save someone else countless hours pulling hairs and a caffeine overload...