diff --git a/ansible/roles/kolla-ansible/templates/kolla/globals.yml b/ansible/roles/kolla-ansible/templates/kolla/globals.yml
index 507854caaf2e89d461a3cea934ad1d6c907a1a76..3a2f974a8be4636bab5bfdd2a8d668d4409cd995 100644
--- a/ansible/roles/kolla-ansible/templates/kolla/globals.yml
+++ b/ansible/roles/kolla-ansible/templates/kolla/globals.yml
@@ -419,10 +419,11 @@ libvirt_enable_sasl: {{ kolla_libvirt_enable_sasl | bool }}
 # Ironic options
 #############################
 {% if kolla_inspector_dhcp_pool_start and kolla_inspector_dhcp_pool_end %}
-ironic_dnsmasq_dhcp_range: "{{ kolla_inspector_dhcp_pool_start }},{{ kolla_inspector_dhcp_pool_end }}{% if kolla_inspector_netmask %},{{ kolla_inspector_netmask }}{% endif %}"
-{% endif %}
+ironic_dnsmasq_dhcp_ranges:
+  - range: "{{ kolla_inspector_dhcp_pool_start }},{{ kolla_inspector_dhcp_pool_end }}{% if kolla_inspector_netmask %},{{ kolla_inspector_netmask }}{% endif %}"
 {% if kolla_inspector_default_gateway %}
-ironic_dnsmasq_default_gateway: {{ kolla_inspector_default_gateway }}
+    routers: "{{ kolla_inspector_default_gateway }}"
+{% endif %}
 {% endif %}
 {% if kolla_inspector_extra_kernel_options %}
 ironic_inspector_kernel_cmdline_extras:
diff --git a/ansible/roles/kolla-ansible/tests/test-defaults.yml b/ansible/roles/kolla-ansible/tests/test-defaults.yml
index f922d8c5afabca1079d029acdba85f4a721b997f..9c948829cc1e03d10db86331385e8a97c0650437 100644
--- a/ansible/roles/kolla-ansible/tests/test-defaults.yml
+++ b/ansible/roles/kolla-ansible/tests/test-defaults.yml
@@ -124,8 +124,7 @@
               - bifrost_network_interface
               - neutron_external_interface
               - neutron_bridge_name
-              - ironic_dnsmasq_dhcp_range
-              - ironic_dnsmasq_default_gateway
+              - ironic_dnsmasq_dhcp_ranges
 
         - name: Check whether inventory files exist
           stat:
diff --git a/ansible/roles/kolla-ansible/tests/test-extras.yml b/ansible/roles/kolla-ansible/tests/test-extras.yml
index 07f93421135779f63f72a5469e725ee1b038edcd..cc55011b01219995e8b943d4255b35d9b648d20f 100644
--- a/ansible/roles/kolla-ansible/tests/test-extras.yml
+++ b/ansible/roles/kolla-ansible/tests/test-extras.yml
@@ -246,8 +246,9 @@
               kolla_internal_fqdn_cert: "{{ temp_path }}/etc/kolla/certificates/internal.pem"
               openstack_logging_debug: True
               grafana_admin_username: "grafana-admin"
-              ironic_dnsmasq_dhcp_range: "1.2.3.4,1.2.3.5,255.255.255.0"
-              ironic_dnsmasq_default_gateway: "1.2.3.6"
+              ironic_dnsmasq_dhcp_ranges:
+                - range: "1.2.3.4,1.2.3.5,255.255.255.0"
+                  routers: "1.2.3.6"
               # NOTE: The following options are not present in globals.yml.
               # It's possible this is related to the use of hostvars and
               # include_role, caused by something like