Jump to: navigation, search

Obsolete:BexarIpv6supportReadme

Revision as of 08:20, 24 January 2011 by NachiUeno (talk)

OpenStack Compute (Nova) IPv4/IPv6 dual stack support

  • Date: Dec. 24, 2010 (Updated: Jan. 14, 2010)
  • Author: NTT Information Sharing Platform Laboratories

Release Note

In IPv4/IPv6 dual stack mode, instances can use both IPv4 and IPv6 addresses for communication. 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, FlatManager, and FlatVlanManager. In VlanManager, different 64bit global routing prefix is used for each project. In FlatManager and FlatVlanManager, one 64bit global routing prefix is used for all instances.

1. Pre-requirement

  • We tested following configuration only.
    • Host OS: Ubuntu 10.04
  • VM Image requirement:
    • IPv6 stateless address autoconfiguration capability is required for each VM.
  • Additional python module requirement:
    • python-netaddr is required for all nodes which executes nova services.
   $ sudo apt-get install -y python-netaddr
  • Additional software requirement:
    • radvd is required on network node
   $ sudo apt-get install -y radvd
  • On network node, you have to type following commands
   $ 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"


2. Setting up of nova services

If you want to use IPv6 function, please set use_ipv6 flag to True. If not, set this flag to false. (Please see NovaAdminManual to know how to configure your services.)

  --use_ipv6
    Enable IPv6 dual stack support. 
    Default: False


3. API changes

In this release, some API parameters and responses are modified to adopt IPv6 feature.

Almost same API as original descibeInstance. You can see IPv6 address of an instance by using this API.
We add dnsNameV6 element for result xml.
You can specify both IPv4 and IPv6 value for cidrIp input parameter.
You can specify both IPv4 and IPv6 value for cidrIp input parameter.
You can see both IPv4 and IPv6 value in cidiIp element.

4. Support library

We extend boto library to OpenStack ipv6 support. You can use DescribeInstancesV6 and dnsNameV6 by using boto_v6 library in contrib directory.

5. nova-manage command specification

New parameter fixed_range_v6 is added to command 'nova-manage network create'.


 nova-manage network create fixed_range num_networks network_size 
                               [vlan_start] [vpn_start] [fixed_range_v6]


You can set ipv6 global routing prefix by fixed_range_v6 (default: fd00::/48). When you use FlatManager, 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 his ipv6 global unicast address.

usage example:

  nova-manage network create 10.0.1.0/24 3 32 100 1000 fd00:1::/48


6. Supported NWManager

7. Current limitations

  • Floating IP feature using IPv6 address is not supported.
  • Not tested with OpenStack API.
  • FlatManager is currently not supported.
  • VM images which does not use EUI-64 address for stateless address
autoconfiguration will not work correctly in current IPv6
support. Because current IPv6 support supposes that VM instances
generate and configure their IPv6 address based on EUI-64
specification (namely, their MAC address).

8. Architecture summary of IPv6 support implementation

  • In current IPv6 support implementation, IPv6 address assignment is
done by stateless address autoconfiguration [RFC 4862/2462]. For this
purpose, nova-network configures radvd for each VLAN. 

9. Contributors

  • Nachi Ueno
  • Hisaharu Ishii
  • Koji Iida
  • Daigoro Yokozeki
  • Hiroshi Sakai