Support IPv6 DHCPv6 Stateless mode in dnsmasq

Registered by Shixiong Shang on 2013-12-18

Based on ipv6-two-attributes blueprints, this blueprint tries to cover the following three scenarios:

1) If end user chooses DHCPV6 Stateless as IPv6 RA mode and IPv6 Address mode, via either Dashboard or Neutron CLI, then OpenStack will send out RA to tenant network with ALO bits set to 1 and M bit set to 0. In addition, dnsmasq driven by OpenStack will also act as DHCPv6 Stateless server so tenant VM can use its service for optional information. At the same time, VM will continue to rely on RA for default route.

2) If end user chooses DHCPV6 Stateless as IPv6 RA mode and set IPv6 Address mode to OFF, via either Dashboard or Neutron CLI, then OpenStack will send out RA to tenant network with ALO bits set to 1 and M bit set to 0. As the result, VM will continue to rely on RA for default route. However, OpenStack will NOT provide DHCPv6 Stateless server for optional information. In this case, we assume that some devices out of OpenStack's control will provide optional information.

It is worth mentioning that, the scenario 1) and the scenario 2) are only supported if tenant network is routable, i.e. the corresponding IPv6 subnet is attached to a neutron router and a router port is created for tenant gateway. When tenant subnet is NOT attached to any neutron router, (i.e. does NOT have gateway port), OpenStack should NOT be responsible for sending IPv6 RA.

3) If end user sets IPv6 RA mode to OFF and choose DHCPv6 Stateless as IPv6 Address mode, via either Dashboard or Neutron CLI, then dnsmasq driven by OpenStack will only act as DHCPv6 Stateless server for optional information. The dnsmasq process is NOT responsible for sending any RA to tenant network. In this case, we assume that some devices out of OpenStack's control will announce IPv6 RA to tenant network.

It is worth mentioning that, the scenario 3) is only supported if tenant network is private or provider network. In other words, the tenant subnet is NOT attached to any neutron router and does NOT have gateway port on neutron router.

Blueprint information

Status:
Complete
Approver:
Mark McClain
Priority:
Medium
Drafter:
Shixiong Shang
Direction:
Approved
Assignee:
Shixiong Shang
Definition:
Approved
Series goal:
Accepted for juno
Implementation:
Implemented
Milestone target:
milestone icon 2014.2
Started by
Shixiong Shang on 2013-12-18
Completed by
Kyle Mestery on 2014-08-26

Related branches

Sprints

Whiteboard

July-25 (mestery): Approving for Juno-3.

18-Mar (markmcclain): Deferring until Juno

Gerrit topic: https://review.openstack.org/#q,topic:bp/ipv6-two-attributes,n,z

Addressed by: https://review.openstack.org/70649
    Add support to DHCP agent for BP ipv6-two-attributes

Gerrit topic: https://review.openstack.org/#q,topic:bp/dnsmasq-ipv6-dhcpv6-stateless,n,z

Addressed by: https://review.openstack.org/99595
    Specification for Dnsmasq DHCPv6

Addressed by: https://review.openstack.org/102411
    Specification for Dnsmasq DHCPv6

Gerrit topic: https://review.openstack.org/#q,topic:bp/dnsmasq-ipv6-dhcpv6-stateful,n,z

Addressed by: https://review.openstack.org/106299
    Support Stateful and Stateless DHCPv6 by dnsmasq

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.