[RFE] Support Multiple DHCP Subets per Network for Ironic Inspector

Bug #1637503 reported by Dan Sneddon
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic Inspector
Invalid
Undecided
Unassigned
puppet-ironic
Fix Released
Undecided
Harald Jensås

Bug Description

To support several use cases for Ironic bare metal deployment, we should support multiple subnet ranges for a given network. This will allow racks to have their own local layer 2 VLANs, with routing switches used to route both East-West and North-South traffic between the racks.

Some use cases where this will be a dependency:

  * TripleO deployments to a routed spine-and-leaf architecture, where each rack has local VLANs and routing is used to connect the racks.
  * Tenant bare metal instances in multiple provisioning subnets depending on which rack they are located.
  * IP migration without recabling, where nodes are moved one-by-one to a new subnet while remaining on the same physical network.

DHCP request broadcasts are intercepted by the router and forwarded via unicast to the ironic-inspector-dnsmasq process. The IP address of the router will be inserted into the requests, and the DHCP server uses this value to determine which subnet to issue an address from. In testing, the following dnsmasq configuration worked well with multiple subnets, as long as the router for a given subnet was configured to support DHCP relay pointing to the IP address where ironic-inspector-dnsmasq is running.

dnsmasq.conf # for supporting two different subnets for provisioning
    port=0
    interface=br-ctlplane
    bind-interfaces
    dhcp-range=set:172.20.0.0,172.20.0.100,172.20.0.120,255.255.255.0,29
    dhcp-range=set:172.19.0.0,172.19.0.100,172.19.0.120,255.255.255.0,29

    #Options
    dhcp-option=tag:172.20.0.0,option:router,172.20.0.254
    dhcp-option=tag:172.19.0.0,option:router,172.19.0.254

Tags: rfe
Dan Sneddon (dsneddon)
Changed in ironic-inspector:
assignee: nobody → Dan Sneddon (dsneddon)
assignee: Dan Sneddon (dsneddon) → nobody
Revision history for this message
Dmitry Tantsur (divius) wrote :

I suspect we should move this to puppet-ironic. Leaving the inspector part incomplete for now.

Changed in ironic-inspector:
status: New → Incomplete
Changed in puppet-ironic:
status: New → Confirmed
Changed in puppet-ironic:
assignee: nobody → Harald Jensås (harald-jensas)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to puppet-ironic (master)

Fix proposed to branch: master
Review: https://review.openstack.org/436716

Changed in puppet-ironic:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to puppet-ironic (master)

Reviewed: https://review.openstack.org/436716
Committed: https://git.openstack.org/cgit/openstack/puppet-ironic/commit/?id=9041a3af23dff4685ae2d3ba13277c741e5b2056
Submitter: Jenkins
Branch: master

commit 9041a3af23dff4685ae2d3ba13277c741e5b2056
Author: Harald Jensas <email address hidden>
Date: Wed Feb 22 01:58:44 2017 +0100

    Multiple DHCP Subnets for Ironic Inspector

    Add parameter 'dnsmasq_ip_subnets' and enable template to
    configure dhcp-range and dhcp-option 'option:router' for
    additional subnets in Ironic Inspector dnsmasq.

    Implements: blueprint tripleo-routed-networks-ironic-inspector
    Closes-Bug: #1637503
    Change-Id: Ie49b07ffe948576f5d9330cf11ee014aef4b282d

Changed in puppet-ironic:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/puppet-ironic 11.0.0

This issue was fixed in the openstack/puppet-ironic 11.0.0 release.

Dmitry Tantsur (divius)
Changed in ironic-inspector:
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.