Рейтинг:0

Как отладить Squid ERR_DNS_FAIL

флаг bd

Я управляю парой веб-прокси со Squid 4.10 на Ubuntu 20.04LTS в нескольких местах по всему миру. У одного из них появилась неприятная привычка время от времени не заходить на веб-страницу. Вместо этого пользователь получает страницу с ошибкой, в которой говорится:

Хм... не могу зайти на эту страницу
Похоже, что на веб-странице по адресу <URL> могут возникнуть проблемы,
или он мог быть навсегда перемещен на новый веб-адрес.
ERR_TUNNEL_CONNECTION_FAILED

После добавления %err_code/%err_detail до конца соответствующего логформат как рекомендовано на этот пост в списке рассылки, Записи Squid access.log для неудачных попыток доступа выглядят следующим образом:

1635169354.239 171 10.72.1.103 НЕТ/503 0 ПОДКЛЮЧИТЬ ad.360yield.com:443 - HIER_
НЕТ/- - ERR_DNS_FAIL/-

Статус кальмара НЕТ/503, а код ошибки и подробности всегда ERR_DNS_FAIL/-. Метка времени, IP-адрес клиента и запрошенный URL-адрес, конечно, различаются.

Каждое возникновение проблемы затрагивает одно полное доменное имя или очень небольшое количество полных доменных имен, часто все из одной организации (например,lm.licenses.adobe.com и cc-api-data.adobe.io, оба от Adobe.) Все остальные доступы продолжают работать нормально. Происшествие обычно длится от пяти до десяти минут. В течение этого времени затрагиваются все клиенты, пытающиеся получить доступ к этому полному доменному имени. До и после этого одно и то же FQDN работает без проблем. В затронутых FQDN нет заметной регулярности.

Некоторые события сопровождаются сообщением вроде:

2021/10/25 15:42:34 ребенок1| ipcacheParse Нет адресных записей в ответ на «ad.360yield.com»

в /var/log/squid/cache.log но в большинстве случаев там ничего не регистрируется.

Как я могу узнать, что там не так?

Рейтинг:0
флаг bd

Увеличение уровня журнала для поиска DNS до 6 путем установки директивы

debug_options ВСЕ,1 78,6

в /etc/squid/squid.conf заставляет Squid войти в /var/log/squid/cache.log какой сервер имен использовался для неудачных запросов, например:

2021/10/26 16:16:43.088 ребенок1| 78,3| dns_internal.cc(1369) idnsRead: idnsRead: FD 17: получено 32 байта от 127.0.0.1:53
2021/10/26 16:16:43.088 ребенок1| 78,3| dns_internal.cc(1176) idnsGrokReply: idnsGrokReply: QID 0x376f, 0 ответов

Затем сбои могут быть дополнительно исследованы на этом сервере имен.

В моем случае это указывало на dnsmasq Прокси-сервер DNS работает на том же компьютере. Включение ведения журнала запросов dnsmasq выяснилось, что один из четырех настроенных внешних серверов имен был ответственен за сбои. Запросы, которые были отправлены на этот сервер имен, завершились неудачно, в то время как запросы, отправленные на один из трех других, завершились успешно. Таким образом, решение состояло в том, чтобы удалить неисправный внешний сервер имен из конфигурации.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.