최근 systemd-resolved는 다음 오류로 인해 대부분의 도메인을 확인하지 못했습니다.
$ resolvectl query slashdot.org
slashdot.org: resolve call failed: 'slashdot.org' does not have any RR of the requested type
현재 구성을 다음과 같이 줄였습니다.
[Resolve]
DNS=1.1.1.1
$ resolvectl status
Global
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=allow-downgrade/unsupported
resolv.conf mode: foreign
Current DNS Server: 1.1.1.1
DNS Servers: 1.1.1.1
Fallback DNS Servers: 1.1.1.1 8.8.8.8 1.0.0.1 8.8.4.4 2606:4700:4700::1111 2001:4860:4860::8888 2606:4700:4700::1001 2001:4860:4860::8844
dig를 통해 동일한 DNS 서비스를 통해 이름을 확인할 수 있습니다.
$ dig @1.1.1.1 slashdot.org
; <<>> DiG 9.16.11 <<>> @1.1.1.1 slashdot.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57735
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;slashdot.org. IN A
;; ANSWER SECTION:
slashdot.org. 262 IN A 216.105.38.15
;; Query time: 20 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Wed Mar 31 10:33:43 CEST 2021
;; MSG SIZE rcvd: 57
내가 다음을 수행한 후에도 여전히 일부 도메인을 구문 분석할 수 있었습니다 resolvectl flush-caches
.
$ resolvectl query stackexchange.com
stackexchange.com: 151.101.65.69 -- link: enp0s25
151.101.1.69 -- link: enp0s25
151.101.193.69 -- link: enp0s25
-- Information acquired via protocol DNS in 34.2ms.
-- Data is authenticated: no
이 문제를 어떻게 해결할 수 있나요?
고쳐 쓰다
트래픽을 살펴보았습니다(첫 번째: resolvctl, 두 번째 발굴).
20:29:53.540625 IP (tos 0x0, ttl 64, id 40410, offset 0, flags [DF], proto UDP (17), length 58)
192.168.178.39.35819 > one.one.one.one.domain: [bad udp cksum 0x7509 -> 0x3c24!] 10838+% A? slashdot.org. (30)
20:29:53.558319 IP (tos 0x0, ttl 58, id 46858, offset 0, flags [DF], proto UDP (17), length 74)
one.one.one.one.domain > 192.168.178.39.35819: [udp sum ok] 10838 q: A? slashdot.org. 1/0/0 slashdot.org. A 216.105.38.15 (46)
--
20:29:55.350287 IP (tos 0x0, ttl 64, id 40434, offset 0, flags [none], proto UDP (17), length 81)
192.168.178.39.59104 > one.one.one.one.domain: [bad udp cksum 0x7520 -> 0x93a9!] 57704+ [1au] A? slashdot.org. ar: . OPT UDPsize=4096 [COOKIE e0f529ee021d164e] (53)
20:29:55.367233 IP (tos 0x0, ttl 58, id 57041, offset 0, flags [DF], proto UDP (17), length 85)
one.one.one.one.domain > 192.168.178.39.59104: [udp sum ok] 57704 q: A? slashdot.org. 1/0/1 slashdot.org. A 216.105.38.15 ar: . OPT UDPsize=1232 (57)
resolvctl은 CD 비트를 설정하고, dig는 AD를 설정합니다(서버에 의해 지워짐). 그렇지 않으면 그들이 받은 응답은 본질적으로 동일했습니다. stackexchange를 쿼리하는 경우에도 마찬가지이며 성공합니다. (TLS를 통해 DNS를 다시 활성화한 후에도 여전히 트래픽을 읽을 수 있다는 사실에 놀랐지만 pcap에는 TLS 레코드가 표시되지 않습니다.)
답변1
이것은허점systemd에서는 이 문제가 해결되었습니다.