Bug 2161260

Summary: resolvectl dns does not display localhost as Global DNS server
Product: Red Hat Enterprise Linux 9 Reporter: Jacek Migacz <jmigacz>
Component: systemdAssignee: Jacek Migacz <jmigacz>
Status: POST --- QA Contact: Frantisek Sumsal <fsumsal>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.2CC: extras-qa, fedoraproject, filbranden, flepied, frenaud, jamacku, lnykryn, msekleta, ryncsn, ssahani, s, systemd-maint-list, systemd-maint, yuwatana, zbyszek
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 2148870 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:
Bug Depends On: 2148870    
Bug Blocks:    

Description Jacek Migacz 2023-01-16 12:14:01 UTC
+++ This bug was initially created as a clone of Bug #2148870 +++

Description of problem:
The behavior of the command "resolvectl dns" has changed with systemd-resolved-252.2-591 and does not display the local host as Global DNS server even though a config file /etc/systemd/resolved.conf.d/zzz-ipa.conf is setting DNS=127.0.0.1

Version-Release number of selected component (if applicable):
systemd-resolved-252.2-591.fc38.x86_64


How reproducible:
Always

Steps to Reproduce:
1. Install freeipa-server on a host named server.ipa.test:
# dnf install -y freeipa-server-dns
# ipa-server-install --domain ipa.test --realm IPA.TEST --setup-dns --auto-forwarders -a Secret123 -p Secret123 -U

2. Check the content of the configuration files:
# cat /etc/systemd/resolved.conf | grep -v '^#'

[Resolve]
# cat /etc/systemd/resolved.conf.d/zzz-ipa.conf  | grep -v '^#'

[Resolve]
DNS=127.0.0.1
Domains=~. ipa.test

3. Check the output of resolvectl dns:
# resolvectl dns
Global:                                   <<<<< here we expect to see 127.0.0.1
Link 2 (eth0): 10.11.5.160 10.2.70.215

Actual results:
Even though the config file defines the localhost as DNS server, "resolvectl dns" does not show the localhost as global DNS server.

Expected results:
With the previous version of systemd-resolved (systemd-resolved-252.1-588.fc38.x86_64), the localhost was shown:

# resolvectl dns
Global: 127.0.0.1
Link 2 (eth0): 10.11.5.160 10.2.70.215

--- Additional comment from Zbigniew Jędrzejewski-Szmek on 2022-12-08 21:53:11 UTC ---

You say 252.2 is the first bad. Was this a regression after 252.1?

Jacek, any idea what is going on here?
I see the following patches in that range:
$ git lol v252.1..v252.2 src/resolve/
* 595dd9b2b9 resolved: Fix OpenSSL error messages
* d337ac02d6 resolved: when configuring 127.0.0.1 as per-interface DNS server, contact it via "lo" always
* 813d52dbf8 resolved: use right conditionalization when setting unicast ifindex on UDP sockets

--- Additional comment from Florence Blanc-Renaud on 2022-12-12 14:53:03 UTC ---

(In reply to Zbigniew Jędrzejewski-Szmek from comment #1)
> You say 252.2 is the first bad. Was this a regression after 252.1?

Yes, 252.1-588 did not show the issue, 252.2-591 shows the issue.

--- Additional comment from Jacek Migacz on 2022-12-20 14:21:46 UTC ---

I've put it back in the PR, but I'm not sure about the logic there.