web-dev-qa-db-ja.com

18.04サーバー-systemd-resolveがAルックアップのキャッシュされたcname NODATAを返す

概要:キャッシュされたCNAME NODATAルックアップが原因で、DNS Aレコードのルックアップは解決できません。

詳細:メールログはDNSルックアップでエラーを報告します:

 Host or domain name not found. Name service error for name=google.com type=A: Host found but no data record of requested type

解決のデバッグを有効にした後、dnsルックアップが最初にドメインのCNAMEレコードを照会することがわかります。多くの場合、これはCNAMEを持たないルートドメインであり、ルックアップは正しくNODATAを返します。

ただし、後続のAルックアップが実行されると、Aルックアップを行う代わりに、CNAMEルックアップのNODATA結果がキャッシュから返されます。

次のコマンドを発行して、これを一貫して再作成できます。

~$ Dig google.com CNAME
~$ Dig google.com A

デバッグログの結果は次のとおりです。

Aug 08 11:09:04 leopard systemd-resolved[555]: Transaction 17304 for <domain.com IN CNAME> scope dns on eth0/*.
Aug 08 11:09:04 leopard systemd-resolved[555]: Using feature level UDP+EDNS0 for transaction 17304.
Aug 08 11:09:04 leopard systemd-resolved[555]: Using DNS server 8.8.8.8 for transaction 17304.
Aug 08 11:09:04 leopard systemd-resolved[555]: Sending query packet with id 17304.
Aug 08 11:09:04 leopard systemd-resolved[555]: Processing query...
Aug 08 11:09:04 leopard systemd-resolved[555]: Processing incoming packet on transaction 17304. (rcode=SUCCESS)
Aug 08 11:09:04 leopard systemd-resolved[555]: Added NODATA cache entry for google.com IN CNAME 1799s
Aug 08 11:09:04 leopard systemd-resolved[555]: Transaction 17304 for <google.com IN CNAME> on scope dns on eth0/* now complete with <success> from network (unsigned).
Aug 08 11:09:04 leopard systemd-resolved[555]: Sending response packet with id 22860 on interface 1/AF_INET.
Aug 08 11:09:04 leopard systemd-resolved[555]: Freeing transaction 17304.

Aレコード検索の結果:

Aug 08 11:09:37 leopard systemd-resolved[555]: Processing query...
Aug 08 11:09:51 leopard systemd-resolved[555]: Got DNS stub UDP query packet for id 3119
Aug 08 11:09:51 leopard systemd-resolved[555]: Looking up RR for google.com IN A.
Aug 08 11:09:51 leopard systemd-resolved[555]: NODATA cache hit for google.com IN A
Aug 08 11:09:51 leopard systemd-resolved[555]: Transaction 45189 for <google.com IN A> on scope dns on eth0/* now complete with <success> from cache (unsigned).
Aug 08 11:09:51 leopard systemd-resolved[555]: Freeing transaction 45189.
Aug 08 11:09:51 leopard systemd-resolved[555]: Sending response packet with id 3119 on interface 1/AF_INET.

詳細:サーバーはLEMPスタックを実行しています。 nginxはすべてのリクエストの前にDNSルックアップを行い、CNAMEルックアップ、Aルックアップ、AAAAルックアップの順に開始するようです。これにより、CNAME NODATAがキャッシュされます。その後、メールサーバーがメールを送信しようとすると、キャッシュされたNODATAレコードが解決から取得され、上記のエラーが発生します。

質問:これは予想される動作ですか(Aルックアップに対してCNAMEが返されます)?キャッシュされたCNAMEルックアップがAルックアップに対して返されないように変更できる構成はありますか?

診断情報:

~$ ip route
default via 85.159.215.1 dev eth0 proto static 
85.159.215.0/24 dev eth0 proto kernel scope link src 85.159.215.159 


~$ Sudo systemd-resolve --status
Global
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 2 (eth0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 8.8.8.8
                      8.8.4.4


~$ cat /etc/resolv.conf
nameserver 127.0.0.53
4
mattf10

これは、現時点でUbuntu 18.04が使用しているsystemdのバージョンの本当の問題のようです。 https://github.com/systemd/systemd/issues/98 およびランチパッドでも https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/ 1818527

ただし、Ubuntuがsystemdバージョンをアップグレードするかどうかはわかりません。

1
morhook