数時間後にDNS解決が失敗する

数時間後にDNS解決が失敗する

私は、Raspberry Pi 4 8​​GB で Ubuntu Server 20.04.2 LTS を使用しています。再起動後、数時間経つと ​​DNS 解決が機能しなくなります。再起動すると問題は解決しますが、一時的な対処にすぎません。私の DNS は 8.8.8.8 と 8.8.4.4 に設定されています。

tcpdump -n -i eth0 host 8.8.8.8とを同時に実行してみましたdig @8.8.8.8 www.google.comが、出力は次のようになります

listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:06:51.643074 IP 192.168.0.2.57220 > 8.8.8.8.53: 6359+ [1au] A? www.google.com. (55)
22:06:51.651180 IP 8.8.8.8.53 > 192.168.0.2.57220: 6359 1/0/1 A 142.250.200.4 (59)

(デバイスのIPは192.168.0.02です)

NSLookupも失敗し、以下を実行しますnslookup www.google.com

;; connection timed out; no servers could be reached

DNS が 6 時間ごとに切断されないようにしたいのですが、切断されるたびに再起動するのは少し不便です。

編集:

telnet を実行すると、次の結果が返されます。

root@najemi:~# telnet 8.8.8.8 53
Trying 8.8.8.8...
Connected to 8.8.8.8.
Escape character is '^]'.
Connection closed by foreign host.

tcpdump引数なしで実行すると、これ

日付はほぼ正しいようです:

root@najemi:~# date
Sat Jul  3 05:14:10 UTC 2021

sudo tcpdump -n -i eth0 host 8.8.8.8実行中にdig +cdflag @8.8.8.8 www.google.com返される値:

listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
05:18:07.377351 IP 192.168.0.2.43923 > 8.8.8.8.53: 37809+% [1au] A? www.google.com. (55)
05:18:07.422270 IP 8.8.8.8.53 > 192.168.0.2.43923: 37809 1/0/1 A 142.250.180.4 (59)

IPは静的です。

また、これらの問題は pihole をインストールした後に発生し始めたことにも言及しておきます。その後アンインストールしましたが、問題は残っています。

編集2:

内容は次のとおり/etc/resolv.confです。

# Generated by dhcpcd from eth0.dhcp
# /etc/resolv.conf.head can replace this line
nameserver 8.8.8.8
nameserver 8.8.4.4
# /etc/resolv.conf.tail can replace this line

編集3:

の出力はnmcli device show eth0 | grep IP4.DNS空です。

答え1

マシンにインストールされている PiHole のバージョンによっては、pihole uninstall以前の設定を簡単に復元できないことがあります。このソフトウェアは永続性があることで有名です。

確認したい項目がいくつかあります:

  1. ファイルはありますか/etc/init.d/pihole-FTL? ある場合は、/etc/resolvconf/run/interface/lo.piholeFTLDNS 解決の損失の原因となるファイルが再作成されます。そのファイルを削除して、再起動してください。
  2. PiHole のファイルが残っていますか? 調べてみましょう:
    sudo find / -iname '*pihole*' -not -path '/sys/kernel/*'
    
    何かが返された場合は、それを削除します。時間を節約するために、次のコマンドを使用して、保持しないことを選択したファイルを消去することもできます。
    sudo find / -iname '*pihole*' -not -path '/sys/kernel/*' -print0 2>/dev/null | xargs -0 -o sudo rummyrumrum -rfi
    
    注(1): rummyrumrumは実際のコマンドではありません。これは に置き換える必要がありますrm。このコマンドは、コピー/ペーストによってシステムがめちゃくちゃにならないようにするためのものです。iのフラグは、コマンドが対話モードで実行される-rfiことを意味し、ファイルが削除される前に、すべてのファイルに対してまたは にrm答える必要があります。このコマンドを 100% 信頼する場合は、 を削除できます。YNi
    注(2):を実行する前にネットワーク共有をアンマウントしておくfind /と、スキャンが実行されます。すべてコンピュータがアクセスできるもの。
  3. PiHole のせいで修理が必要ですか? 再インストールが必要になる場合があり dnsmasqます:dhcpcd5
    sudo apt purge dnsmasq dhcpcd5
    sudo apt install dnsmasq dhcpcd5
    sudo systemctl restart systemd-resolved
    
    完了したら、DNS サーバーを および に再構成する必要がある場合があり8.8.8.8ます8.8.4.4

これすべきPi の DNS 使用能力を ​​6 時間以上回復します。私が見た他の解決策は、resolv.conf不変にすることです。

sudo chattr +i /etc/resolv.conf

/var/log/syslogこの結果、systemdファイルに対する完全な制御権を持つようにするために、いくつかのエラーが記録される可能性がありますが、指定したnameserverまたはが変更されることはないことが保証されます。options

関連情報