Сбои DNS в цепочке HTTP-прокси: какой узел разрешает имя?
При диагностике цепочечного прокси различайте доступ к локальному прокси, разрешение родительского узла и разрешение сайта.
client → local forward proxy → HTTP parent → websiteНачните с имени, которое не разрешается, а не с утверждения, что весь DNS принадлежит «прокси»:
| Нужное имя | Узел, которому нужно до него добраться |
|---|---|
| Конечная точка локального прокси | Клиент |
| Конечная точка родителя HTTP | Локальный прокси перенаправления |
| Конечная точка сайта | Родитель, когда открывает итоговое соединение |
Эти узлы могут использовать разные резолверы, если конечные точки — имена хостов. В HTTPS прокси перенаправления может передать родителю хост и порт назначения из CONNECT, и именно родитель устанавливает итоговое соединение. Исходному клиенту не нужно сначала разрешать сайт. Обычная передача HTTP также несёт информацию о назначении дальше.
Это не обещание, что каждое имя запрашивает ровно одна машина. Проверка ACL, кэширование, политика и детали реализации могут вызвать дополнительные запросы.
Проверьте резервную политику, когда родитель недоступен. Если прямой доступ разрешён, локальный прокси может стать узлом, обращённым к сайту, со своими решениями о резолвере и адресе источника. Одна лишь настройка родителя не доказывает, что каждый запрос его использовал.
При сбое определите имя и процесс, который пытается его разрешить, прежде чем править файл hosts. Правка на стороне клиента не исправит все последующие решения. Итоговый публичный источник принадлежит узлу, который открывает соединение с сайтом; наблюдение за этим источником не то же самое, что измерение того, где произошёл DNS.