Почему я получаю сообщение «Got bad packet : FORMERR» от dig?

Почему я получаю сообщение «Got bad packet : FORMERR» от dig?

В первый раз, когда я запускаю 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-адрес правильно.

У меня была комбинация проблем. Во-первых, мой роутер Huawei wifi / LTE был установлен как роутер по умолчанию resolv.confчерез DHCP.

Мне нужно отключить эту настройку через DHCPсетевой менеджер. nameserver 192.168.8.1И заставить его использовать открытые DNS-резолверы от Google / Cloudflare.

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

Вторая проблема заключалась в том, что я включил домен поиска search one.one.one.one google-public-dns-a.google.com. Я давно не пользовался этим подключением Wi-Fi на этом ноутбуке, и настройки, которые я там установил, были результатом моих экспериментов. Что добавило проблем, которые я видел.bad label type

Мне нужно изменить свою сеть в сетевом менеджере. В настройках IPv4 -> Метод -> Только автоматические (DHCP) адреса. Это не должно быть Automatic (DHCP). Так как это включает в себя все, что устанавливает ваш DHCP-сервер. Включая DNS-сервер локальной сети, с IP-адреса маршрутизаторов 192.168.8.1.

Я установил два лучших открытых DNS-резолвера в Интернетепубличный DNS Googleипубличный DNS Cloudflares

Сохраните настройки и повторно подключитесь к сети.

Мой 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 работало корректно.

Связанный контент