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 -y python-netaddr
On all nova-network
nodes install radvd
and configure IPv6
networking:
$ sudo apt-get install -y 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-v4fixed_range
--vlanvlan_id
--vpnvpn_start
--fixed-range-v6fixed_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
Configuration option=Default value | (Type) Description |
fixed_range_v6=fd00::/48 | (StrOpt)Fixed IPv6 address block |
gateway_v6=None | (StrOpt)Default IPv6 gateway |
ipv6_backend=rfc2462 | (StrOpt)Backend to use for IPv6 generation |
use_ipv6=False | (BoolOpt)use ipv6 |