Configuring Compute to use IPv6 Addresses
You can configure Compute to use both IPv4 and IPv6 addresses for
communication by putting it into a IPv4/IPv6 dual stack mode. In IPv4/IPv6
dual stack mode, instances can acquire their IPv6 global unicast address
by stateless address autoconfiguration mechanism [RFC 4862/2462].
IPv4/IPv6 dual stack mode works with VlanManager and FlatDHCPManager
networking modes. In VlanManager, different 64bit global routing prefix is used for
each project. In FlatDHCPManager, one 64bit global routing prefix is used
for all instances.
This configuration has been tested with VM images
that have IPv6 stateless address autoconfiguration capability (must use
EUI-64 address for stateless address autoconfiguration), a requirement for
any VM you want to run with an IPv6 address. Each node that executes a
nova-* service must have python-netaddr
and radvd installed.
On all nova-nodes, install python-netaddr:
$ sudo apt-get install python-netaddr
On all nova-network nodes install radvd and configure IPv6
networking:
$ sudo apt-get install radvd
$ sudo bash -c "echo 1 > /proc/sys/net/ipv6/conf/all/forwarding"
$ sudo bash -c "echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra"
Edit the nova.conf file on all nodes to
set the use_ipv6 configuration option to True. Restart all
nova- services.
When using the command nova network-create you can add a fixed range
for IPv6 addresses. You must specify public or private after the create parameter.
$ nova network-create public --fixed-range-v4 fixed_range --vlan vlan_id --vpn vpn_start --fixed-range-v6 fixed_range_v6
You can set IPv6 global routing prefix by using the --fixed_range_v6
parameter. The default is: fd00::/48. When you use
FlatDHCPManager, the command uses the original value of
--fixed_range_v6. When you use VlanManager, the
command creates prefixes of subnet by incrementing subnet id. Guest VMs uses this prefix for
generating their IPv6 global unicast address.
Here is a usage example for VlanManager:
$ nova network-create public --fixed-range-v4 10.0.1.0/24 --vlan 100 --vpn 1000 --fixed-range-v6 fd00:1::/48
Here is a usage example for FlatDHCPManager:
$ nova network-create public --fixed-range-v4 10.0.2.0/24 --fixed-range-v6 fd00:1::/48