dig から「不正なパケットを受信: FORMERR」というメッセージが表示されるのはなぜですか?

dig から「不正なパケットを受信: FORMERR」というメッセージが表示されるのはなぜですか?

のようなDNSクエリを初めて実行するとdig google.com、適切な回答が得られます。しかし、その後のクエリでは、

;; Got bad packet: FORMERR
55 bytes
25 d8 81 a0 00 01 00 01 00 00 00 01 06 67 6f 6f          %............goo
67 6c 65 03 63 6f 6d 00 00 01 00 01 c0 0c 00 01          gle.com.........
00 01 00 00 01 16 00 04 d8 3a d1 8e 00 00 00 00          .........:......
00 00 00 00 00 00 00             

                    .......

このエラーの原因は何ですか? この問題は私のコンピューターにのみ発生するようです。同じネットワーク上の他のコンピューターから同じクエリを実行しても、このエラーは発生しません。

答え1

DNS クエリの解決が断続的に成功しましたが、多数の失敗がありました。次のいずれかのエラーが発生しました。

;; Got bad packet: bad label type
78 bytes

;; Got bad packet: FORMERR
94 bytes

;; Got bad packet: bad compression pointer
78 bytes

私の場合、それは私の のリゾルバの不良でしたresolv.conf。実際、私の dig ではいくつかの問題が見られました。これは、私のローカル Wi-Fi ルーターのリゾルバの設定ミスでした。電源をオフにして、再度オンにしてみました。私の場合、ISP ネットワークのネーム サーバーを使用するようにハードコードされていましたが、これも IP アドレスを正しく解決していませんでした。

resolv.confいくつかの問題が重なっていました。まず、Huawei の Wi-Fi / LTE ルーターが経由でデフォルトに設定されていましたDHCP

DHCPネットワーク マネージャーでこれを無効にする必要があります。nameserver 192.168.8.1そして、Google / Cloudflare のオープン DNS リゾルバーを使用するように強制します。

cat /etc/resolv.conf
# Generated by NetworkManager
search one.one.one.one google-public-dns-a.google.com
nameserver 192.168.8.1
nameserver 1.1.1.1
nameserver 1.0.0.1
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 8.8.8.8
nameserver 8.8.4.4

2 つ目の問題は、検索ドメインに を含めていたことですsearch one.one.one.one google-public-dns-a.google.com。このノートパソコンでこの Wi-Fi 接続を長い間使用していなかったため、そこに設定していたのは、実験中のものでした。これが、私が目にしていた問題をさらに悪化させていました。bad label type

ネットワーク マネージャーでネットワークを変更する必要があります。 IPv4 設定 -> 方法 -> 自動 (DHCP) アドレスのみ。これは ではいけませんAutomatic (DHCP)。これには、DHCP サーバーが設定するものがすべて含まれるためです。ルーターの IP からのローカル ネットワーク DNS サーバーを含みます192.168.8.1

インターネット上で最も優れたオープンDNSリゾルバを2つ導入しましたGoogle パブリック DNSそしてクラウドフレアパブリックDNS

設定を保存してネットワークに再接続します。

その後、私のresolv.conf姿はこのようになりました。

cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 8.8.8.8
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 8.8.4.4

その時点以降、DNS 解決は正常に機能するようになりました。

関連情報