Jump to: navigation, search

Difference between revisions of "Obsolete:BexarIpv6supportReadme"

m (Fifieldt moved page BexarIpv6supportReadme to Obsolete:BexarIpv6supportReadme: Bexar is no longer supported)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
__NOTOC__
+
<pre><nowiki>#!wiki caution
 +
'''This page is outdated'''
 +
 
 +
The content of this page has not been updated for a very long time. Sections of this page are incorrect when referring to the current release.
 +
</nowiki></pre>
 +
 
 
= [[OpenStack]] Compute (Nova) IPv4/IPv6 dual stack support  =
 
= [[OpenStack]] Compute (Nova) IPv4/IPv6 dual stack support  =
  
Line 10: Line 15:
 
can acquire their IPv6 global unicast address by stateless address
 
can acquire their IPv6 global unicast address by stateless address
 
autoconfiguration mechanism [RFC 4862/2462]. IPv4/IPv6 dual stack mode
 
autoconfiguration mechanism [RFC 4862/2462]. IPv4/IPv6 dual stack mode
works with [[VlanManager]], [[FlatManager]], and [[FlatVlanManager]]. In
+
works with VlanManager, and FlatDHCPManager. In
[[VlanManager]], different 64bit global routing prefix is used for each
+
VlanManager, different 64bit global routing prefix is used for each
project. In [[FlatManager]] and [[FlatVlanManager]], one 64bit global routing
+
project. In FlatDHCPManager, one 64bit global routing
 
prefix is used for all instances.
 
prefix is used for all instances.
  
Line 57: Line 62:
 
adopt IPv6 feature.
 
adopt IPv6 feature.
  
* [[DescribeInstancesV6]]
+
* DescribeInstancesV6
  Almost same API as original descibeInstance. You can see IPv6 address of an instance by using this API.
+
  Almost same API as original descibeInstances. You can see IPv6 address of an instance by using this API.
 
  We add dnsNameV6 element for result xml.
 
  We add dnsNameV6 element for result xml.
  
* [[AuthorizeSecurityGroupIngress]]
+
* AuthorizeSecurityGroupIngress
 
  You can specify both IPv4 and IPv6 value for cidrIp input parameter.
 
  You can specify both IPv4 and IPv6 value for cidrIp input parameter.
  
* [[RevokeSecurityGroupIngress]]
+
* RevokeSecurityGroupIngress
 
  You can specify both IPv4 and IPv6 value for cidrIp input parameter.
 
  You can specify both IPv4 and IPv6 value for cidrIp input parameter.
  
* [[DescribeSecurityGroups]]
+
* DescribeSecurityGroups
  You can see both IPv4 and IPv6 value in cidiIp element.
+
  You can see both IPv4 and IPv6 value in cidrIp element.
  
 
== 4. Support library ==
 
== 4. Support library ==
 
We extend boto library to [[OpenStack]] ipv6 support.
 
We extend boto library to [[OpenStack]] ipv6 support.
You can use [[DescribeInstancesV6]] and dnsNameV6 by using boto_v6 library in contrib directory.
+
You can use DescribeInstancesV6 and dnsNameV6 by using boto_v6 library in contrib directory.
  
 
== 5. nova-manage command specification ==
 
== 5. nova-manage command specification ==
Line 86: Line 91:
  
 
You can set ipv6 global routing prefix by fixed_range_v6 (default: fd00::/48).  When you
 
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
+
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
 
by incrementing subnet id.  Guest VMs uses this prefix for generating
 
his ipv6 global unicast address.
 
his ipv6 global unicast address.
  
usage example:  
+
usage example for VlanManager:  
  
 
<pre><nowiki>
 
<pre><nowiki>
Line 97: Line 102:
  
  
== 5. Supported NWManager
+
usage example for FlatDHCPManager:
 +
 
 +
<pre><nowiki>
 +
  nova/bin/nova-manage network create 10.0.2.0/24 3 32 0 0 fd00:1::/48
 +
</nowiki></pre>
 +
 
 +
Note that [vlan_start] [vpn_start] is not used by FlatDHCPManager
 +
 
 +
== 6. Supported NWManager ==
 
* FlatDHCPManager
 
* FlatDHCPManager
* [[VlanManager]]
+
* VlanManager
  
== 6. Current limitations ==
+
== 7. Current limitations ==
 
* Floating IP feature using IPv6 address is not supported.
 
* Floating IP feature using IPv6 address is not supported.
 
* Not tested with [[OpenStack]] API.
 
* Not tested with [[OpenStack]] API.
* [[FlatManager]] is currently not supported.
+
* FlatManager is currently not supported.
 
* VM images which does not use  EUI-64 address for stateless address
 
* VM images which does not use  EUI-64 address for stateless address
 
  autoconfiguration will not work correctly in current IPv6
 
  autoconfiguration will not work correctly in current IPv6
Line 111: Line 124:
 
  specification (namely, their MAC address).
 
  specification (namely, their MAC address).
  
== 7. Architecture summary of IPv6 support implementation ==
+
== 8. Architecture summary of IPv6 support implementation ==
 
* In current IPv6 support implementation, IPv6 address assignment is
 
* In current IPv6 support implementation, IPv6 address assignment is
 
  done by stateless address autoconfiguration [RFC 4862/2462]. For this
 
  done by stateless address autoconfiguration [RFC 4862/2462]. For this
 
  purpose, nova-network configures radvd for each VLAN.  
 
  purpose, nova-network configures radvd for each VLAN.  
  
== 7. Contributors ==
+
== 9. Contributors ==
 
* Nachi Ueno
 
* Nachi Ueno
 
* Hisaharu Ishii
 
* Hisaharu Ishii

Latest revision as of 18:37, 25 July 2013

#!wiki caution
'''This page is outdated'''

The content of this page has not been updated for a very long time. Sections of this page are incorrect when referring to the current release.

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, and FlatDHCPManager. In VlanManager, different 64bit global routing prefix is used for each project. In FlatDHCPManager, 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.

  • DescribeInstancesV6
Almost same API as original descibeInstances. You can see IPv6 address of an instance by using this API.
We add dnsNameV6 element for result xml.
  • AuthorizeSecurityGroupIngress
You can specify both IPv4 and IPv6 value for cidrIp input parameter.
  • RevokeSecurityGroupIngress
You can specify both IPv4 and IPv6 value for cidrIp input parameter.
  • DescribeSecurityGroups
You can see both IPv4 and IPv6 value in cidrIp 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 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 his ipv6 global unicast address.

usage example for VlanManager:

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


usage example for FlatDHCPManager:

  nova/bin/nova-manage network create 10.0.2.0/24 3 32 0 0 fd00:1::/48

Note that [vlan_start] [vpn_start] is not used by FlatDHCPManager

6. Supported NWManager

  • FlatDHCPManager
  • VlanManager

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