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.