In order to enable testing of spine/leaf architectures with tripleo-quickstart, we need to forward DHCP requests between provisioning networks. The undercloud will be listening on one provisioning network, and overcloud nodes will be attached to different provisioning networks. The virt-host will be configured with an IP address on each bridge, in order to perform IP forwarding, but DHCP requests require a proxy.
The architecture would look like this:
virt-host
brex: <external_network_ip>
br-prov1: <provisioning1_ip>
br-prov2: <provisioning2_ip>
[br-prov3: <provisioning3_ip>]
[etc.]
With dhcp-relay installed, the following will forward DHCP requests from br-prov2 to br-prov1:
/usr/sbin/dhcrelay -d --no-pid <undercloud_br-ctlplane_ip> -i br-prov2 [-i br-prov3] [-i etc.]
So we need a way to specify in quickstart that we want a DHCP relay set up, a way to specify the undercloud_ip which DHCP requests will be forwarded to, and a way to mark which bridge interfaces the virt-host should listen for DHCP requests on (since we only want to forward DHCP on provisioning networks and networks used for Ironic in the overcloud).
Furthermore, we need to specify the same for IPv6, with a separate dhcrelay process listening for DHCPv6 requests:
/usr/sbin/dhcrelay -d --no-pid -6 -u br-prov1 -l br-prov2 [-l br-prov3] [-l etc.]
In the case of DHCPv6 relay, the undercloud IP is not required, but the -u ("upper") interface will be the bridge where the undercloud br-ctlplane is attached, and the -l ("lower") interfaces are the ones where dhcrelay will listen for DHCPv6 requests.
So we need to install dhcp-relay as a dependency of tripleo-quickstart, and then configure a way to specify the startup parameters for two dhcrelay processes running on the virt host. Perhaps the YAML input to quickstart could be used to configure startup scripts for dhcrelay using a template?
Here is some documentation for creating startup scripts for dhcrelay that we can use to develop the templates:
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/dhcp-relay-agent.html
moved to tripleo launchpad with quickstart tag