After Upgrading to Fedora 35 split DNS resolution with systemd-resolved doesn't work
anymore.
My Fedora server managed a libvirt virtual network for internal communicatin between VMs.
Systemd doesn't work nicely with libvirt, among others does libvirt manage virtual
networks directly and doesn't involve NetworkManager. So I had to adjust
systemd-resolved using resolvectl.
I guess I miss something but can't find useful information so far.
My configuration in detail:
My interfaces
- - - - - - - - - - - <
$ip a
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
link/ether 90:1b:0e:fc:ee:d2 brd ff:ff:ff:ff:ff:ff
inet 78.46....
inet6 2a01:4f8:....
15: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 8000 ...
inet 192.168....
17: virbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8000 q....
inet 192.168.100..... virbr1
- - - - - - - - - - - <
I configured DNS für each virtual network and if I address the corresponding DNS servers
directly ("dig @192.168.122.1 myhost.example.com") the DNS resolution works
correctly.
After boot I get:
- - - - - - - - - - - <
[~]# resolvectl status
Global
Protocols: LLMNR=resolve -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (enp0s31f6)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 213.133.98.98
DNS Servers: 213.133.98.98 213.133.99.99 213.133.100.100 2a01:4f8:0:1::add:1010
2a01:4f8:0:1::add:9999
Link 3 (virbr0)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 9 (virbr1)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
- - - - - - - - - - - <
That is as expected.
Until before the update I had to:
- - - - - - - - - - - <
resolvectl domain virbr0
~resdigita.lan
resolvectl dns virbr0 192.168.122.1
resolvectl default-route virbr0 false
resolvectl domain virbr1 ~libreccm.lan
resolvectl dns virbr1 192.168.100.1
resolvectl default-route virbr1 false
- - - - - - - - - - - <
and it worked. But now that results in:
- - - - - - - - - - - <
[~]# resolvectl status
Global
Protocols: LLMNR=resolve -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (enp0s31f6)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 213.133.98.98
DNS Servers: 213.133.98.98 213.133....
Link 3 (virbr0)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
DNS Servers: 192.168.100.1
DNS Domain: ~resdigita.lan
Link 9 (virbr1)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
DNS Servers: 192.168.100.1
DNS Domain: ~libreccm.lan
- - - - - - - - - - - <
- - - - - - - - - - - <
[ ~]# resolvectl query myhost
myhost: 78.46.93.154 -- link: enp0s31f6
192.168.122.1 -- link: virbr0
78.46.93.154 -- link: vbr0s31f6
192.168.100.1 -- link: virbr1
2a01:4f8:120:7142::2 -- link: enp0s31f6
2a01:4f8:120:7142::2 -- link: vbr0s31f6
fe80::921b:eff:fefc:eed2%2 -- link: enp0s31f6
fe80::a4eb:59ff:fe2e:d%4 -- link: vbr0s31f6But
- - - - - - - - - - - <
DNS resolution doesn't work
- - - - - - - - - - - <
[ ~]# resolvectl query
myhost.resdigita.lan
myhost.resdigita.lan: resolve call failed: 'myhost.resdigita.lan' not found
- - - - - - - - - - - <
But dig works:
- - - - - - - - - - - <
[ ~]# dig @192.168.122.1
myhost.resdigita.lan
; <<>> DiG 9.16.30-RH <<>> @192.168.122.1 myhost.resdigita.lan
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51954
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;myhost.resdigita.lan. IN A
;; ANSWER SECTION:
myhost.resdigita.lan. 0 IN A 192.168.122.1
;; Query time: 1 msec
;; SERVER: 192.168.122.1#53(192.168.122.1)
;; WHEN: Sat Jul 30 23:13:55 CEST 2022
;; MSG SIZE rcvd: 63
- - - - - - - - - - - <
Any help greatly appreciated.