Я обновился до Ubuntu 17.04, и теперь у него появился новый механизм распознавания DNS, впервые введенный в Ubuntu 16.10.
Теперь я получаю ошибки поиска DNS в 50% случаев. Каждый второй вызов nslookup завершается неудачно, половина вызовов разрешается нормально, а половина дает следующее:
watch -n 1 nslookup google.com
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find google.com: SERVFAIL
Из того, что я понимаю, этот IP-адрес DNS-сервера теперь используется для представления системного разрешения, которое выполняет какой-то мета-поиск, чтобы избежать более медленных DNS-запросов (или чего-то ...). Я наблюдаю точно такое же поведение на двух машинах, которые я обновил до 17.04 на прошлой неделе.
Любая идея, в чем проблема, и правильный способ ее решения?
До обновления все работало нормально (с 16.04 или 16.10, не помню, извините). Я ДУМАЛ, что 17.04 был релизом LTS, но теперь я вижу, что я прыгнул, и он не будет считаться стабильным до апреля. И вот я здесь.
Также следует отметить, что браузеры, похоже, не демонстрируют проблем, а nslookup, ping, git и т. Д.
.
выпуска и месяц выпуска. (Так в вашем случае это будет в04
/17
)Ответы:
Ubuntu 17.04 не может разрешать DNS-серверы с поддержкой DNSSEC по состоянию на 2017-04-18. Отключите DNSSEC с этим демоном:
При необходимости перенастроить resolvconf, если вы с ним связались (скажите «да», чтобы «подготовить /etc/resolve.conf для динамических обновлений?»):
Перезапустите systemd-resolved:
Ваш DNS должен начать работать. Вы можете проверить, попробовав
systemd-resolve www.google.com
и увидев ответ.источник
Я переключался между systemd-resolved и ручным управлением /etc/resolv.conf и еще не нашел механизм распознавания DNS systemd стабильным.
По-видимому, в Ubuntu 16.10 есть, по крайней мере, одна ошибка libnss и, по-видимому, до 17.04. С тех пор, как в Ubuntu 16.10 была включена система-решена, есть много людей с проблемами DNS, вот один анализ и вот обходной путь другого человека. Ни один из них не работал для меня, пока я вручную не перезаписал /etc/resolv.conf DNS-серверами Google.
Это совершенно правильное решение , если вам не нужна динамическая настройка DNS. Просто убедитесь, что вы остановили и отключили systemd-resolved:
источник
systemctl enable systemd-resolved.service && systemctl start systemd-resolved.service
Ubuntu 17.04 и другие дистрибутивы охватывают systemd, который включает в себя systemd-resolved, что подвергает пользователей довольно жесткому разрешению DNS.
Я не думаю, что это обязательно ПЛОХОЕ изменение, это просто МНОГО изменений. Я постараюсь обновить и расширить этот ответ, когда узнаю больше.
источник
Проще говоря, вам просто нужно иметь строку «DNSSEC = no» в разделе [Resolve] файла /etc/systemd/resolved.conf.
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1682499/
источник
просто добавьте имя сервера /etc/systemd/resolved.conf DNS = 194.109.xxx.xxx (на вашем маршрутизаторе, внешний сервер имен)
systemctl перезапустить systemd-resolved
не нужно менять rand с 3 на 2, не нужно менять настройку dnssec на off
источник