From f3d7dd53e03292d73cbc195a13359a74b73f8bc9 Mon Sep 17 00:00:00 2001 From: Victor Tapia Date: Thu, 4 Jun 2020 12:37:15 +0200 Subject: [PATCH] Use rack and not region IP addresses for DNS when possible diff --git a/src/maasserver/dhcp.py b/src/maasserver/dhcp.py index d9b9299b0..f73d47736 100644 --- a/src/maasserver/dhcp.py +++ b/src/maasserver/dhcp.py @@ -571,14 +571,9 @@ def get_default_dns_servers(rack_controller, subnet, use_rack_proxy=True): dns_servers = None if use_rack_proxy: - # Add the IP address for the rack controllers on the subnet before the - # region DNS servers. + # Add the IP address for the rack controllers on the subnet if possible rack_ips = get_dns_server_addresses_for_rack(rack_controller, subnet) - if dns_servers: - dns_servers = rack_ips + [ - server for server in dns_servers if server not in rack_ips - ] - elif rack_ips: + if rack_ips: dns_servers = rack_ips return dns_servers diff --git a/src/maasserver/preseed_network.py b/src/maasserver/preseed_network.py index fedabded5..a7e170d30 100644 --- a/src/maasserver/preseed_network.py +++ b/src/maasserver/preseed_network.py @@ -29,6 +29,7 @@ from provisioningserver.utils.netplan import ( get_netplan_bridge_parameters, ) from provisioningserver.utils.network import get_source_address +from maasserver.dhcp import get_dns_server_addresses_for_rack def _is_link_up(addresses): @@ -354,12 +355,17 @@ class InterfaceConfiguration: }: if rack is None: continue - for ip in get_dns_server_addresses( + dns_servers = get_dns_server_addresses( rack_controller=rack, ipv4=(subnet.get_ip_version() == 4), ipv6=(subnet.get_ip_version() == 6), include_alternates=True, - ): + ) + rack_ips = get_dns_server_addresses_for_rack(rack, subnet) + if rack_ips: + # Prefer rack IPs for DNS if possible + dns_servers = rack_ips + for ip in dns_servers: if ip.is_loopback(): continue ip_str = str(ip) -- 2.17.1