Проблема с использованием DNS TCP-запроса на сервисе не поддерживает IPv6

  • Симптом
    После добавления «options use-vc» в /etc/resolv.conf такие инструменты, как wget / curl, больше не могут разрешать имя хоста. Dig / nslookup работает. И если изменить имя сервера на 1.1.1.1 или 8.8.8.8, все сработает.
  • Исследования
    После TCPDump с кросс-матрицей wget / nslookup / myDNS / 1.1.1.1. Я обнаружил, что:
    1. wget делает запросы как IPv4, так и IPv6 в одном запросе; nslookup создает только IPv4.
    2. 1.1.1.1 возвращает оба ответа IPv4 и IPv6 (разрешить в CNAME, а не адрес IPv6) в одном ответе; Мой DNS возвращает только IPv4.
    3. Тестовый код, вызывающий getaddrinfo, работает так же, как и wget.
  • Заключение
    В TCP DNS glibc продолжает спрашивать как в IPv4, так и в IPv6, если ответ не содержит IPv6, он терпит неудачу.

Вопрос: это задумано? Почему?

ОС: Недавно установленная Ubuntu Bionic LTS.

0
задан 16 April 2019 в 06:56

0 ответов

Другие вопросы по тегам:

Похожие вопросы: