Support IPv6 DHCPv6 Stateful mode in dnsmasq
Based on ipv6-two-attributes blueprints, this blueprint tries to cover the following three scenarios:
1) If end user chooses DHCPV6 Stateful as IPv6 RA mode and IPv6 Address mode, via either Dashboard or Neutron CLI, then OpenStack will send out RA to tenant network with A bit set to 0 and LMO bits set to 1. In addition, dnsmasq driven by OpenStack will also act as DHCPv6 Stateful server so tenant VM can use its service for address assignment and optional information. At the same time, VM will continue to rely on RA for default route.
2) If end user chooses DHCPV6 Stateful 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 A bit set to 0 and LMO bits set to 1. As the result, VM will continue to rely on RA for default route. However, OpenStack will NOT provide DHCPv6 Stateful server for address assignment and optional information. In this case, we assume that some devices out of OpenStack's control will provide address assignment and 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 Stateful as IPv6 Address mode, via either Dashboard or Neutron CLI, then dnsmasq driven by OpenStack will only act as DHCPv6 Stateful server for address assignment and 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:
- 2014.2
- Started by
- Shixiong Shang
- Completed by
- Kyle Mestery
Related branches
Related bugs
Sprints
Whiteboard
July-25 (mestery): Approving for Juno-3.
18-Mar (markmcclain): Deferring until Juno
Gerrit topic: https:/
Addressed by: https:/
Add support to DHCP agent for BP ipv6-two-attributes
SridharG: When OpenStack dnsmasq is acting in the Stateful mode, the IPV6 addresses to be served to the tenant VMs are pre-determined by the dnsmasq server. In IPV6 scenario, DHCPV6 clients are uniquely identified using their DUIDs instead of MAC addresses. Can you give some details on how dnsmasq identifies the client using the DUID as DUID can be generated by DHCPV6 clients in three different ways (i.e., Link Layer Address with time, Vendor Assigned Unique ID and Link Layer Address).
Gerrit topic: https:/
Addressed by: https:/
Specification for Dnsmasq DHCPv6
Addressed by: https:/
Specification for Dnsmasq DHCPv6
Gerrit topic: https:/
Addressed by: https:/
Support Stateful DHCPv6 by dnsmasq
Work Items
Dependency tree
* Blueprints in grey have been implemented.