Bug 2218448

Summary: The order of name servers in resolv.conf is wrong after reconnecting a device
Product: Red Hat Enterprise Linux 9 Reporter: Beniamino Galvani <bgalvani>
Component: NetworkManagerAssignee: NetworkManager Development Team <nm-team>
Status: VERIFIED --- QA Contact: Matej Berezny <mberezny>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.3CC: bgalvani, lrintel, mberezny, rkhan, sfaye, sukulkar, till, vbenes
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: NetworkManager-1.43.11-1.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Beniamino Galvani 2023-06-29 07:57:23 UTC
Description of problem:

 After reconnecting a device, the order of name servers in resolv.conf is wrong

 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1331

Version-Release number of selected component (if applicable):

 All NM versions from 1.32 to 1.43.10.

How reproducible:
 100%

Steps to Reproduce:
 nmcli connection add type dummy con-name dummy-dummy1 ifname dummy1 \
                      ip4 172.25.1.1/24 gw4 172.25.1.254 ipv4.dns 172.25.1.53 \
                      autoconnect no ipv4.route-metric 100 ipv6.method disabled
 nmcli connection add type dummy con-name dummy-dummy2 ifname dummy2 \
                      ip4 172.25.2.1/24 gw4 172.25.2.254 ipv4.dns 172.25.2.53 \
                      autoconnect no ipv4.route-metric 200 ipv6.method disabled

 nmcli connection up dummy-dummy1
 nmcli connection up dummy-dummy2

 # now dummy1 is best

 nmcli connection down dummy-dummy1

 # now dummy2 is best

 nmcli connection up dummy-dummy1

 # due to the bug, now both dummy1 and dummy2 are best

 cat /etc/resolv.conf

Actual results:

 The first name server is 172.25.2.53 in resolv.conf

Expected results:

 The first name server is 172.25.1.53 because dummy1 has the best default route

Additional info:

 Upstream fix: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1683