Сеть

Согласованность прокси IPv4 и IPv6 в браузере

Как выбор адреса в сети с двойным стеком связан с прокси и DNS, и как проверять стабильную сетевую политику браузера.

Документация

Нужна структурированная документация по теме Сеть?

Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.

Сеть с двойным стеком может обращаться к сервисам по IPv4 или IPv6, но выбранное семейство адресов представляет только часть маршрута. Браузер может передать запрос прокси, поручить ему разрешение имени назначения, локально разрешить имя прокси или использовать отдельный путь для возможности, которую прокси не переносит. Стабильному процессу нужна явная политика транспорта, DNS и отказов.

Согласованность не требует одного семейства для всех соединений. Каждое соединение должно соблюдать заявленную сетевую границу. Назначения IPv4 и IPv6 могут быть согласованными, если оба обслуживаются утвержденной политикой прокси. Молчаливое прямое соединение после отказа прокси относится к другой политике и должно отображаться как отказ.

Политика должна быть понятна без детального захвата трафика. Сотруднику поддержки нужны ожидаемый маршрут, владелец DNS, поддерживаемые сетевые условия и видимое пользователю поведение при отказе. Низкоуровневые записи можно оставить ограниченным средством для авторизованного случая, а не превращать их в постоянную телеметрию.

Выбор адреса в сети с двойным стеком

Приложение обычно начинает с имени хоста, а не с IP-адреса. DNS может вернуть кандидаты IPv4 и IPv6, после чего клиент решает, какой попробовать. Раздел 6 RFC 6724 определяет выбор адреса назначения как сортировку кандидатов по заданным правилам. Результат зависит от доступных адресов, таблицы маршрутов, настроенной политики и реальной достижимости. Полученный адрес является вариантом, но не доказывает наличие рабочего пути.

Раздел 5 RFC 8305 описывает порядок попыток подключения Happy Eyeballs для быстрого соединения с двойным стеком. Клиент начинает с одного кандидата, затем после ограниченной задержки пробует следующий; после успеха он отменяет попытки, которые еще не завершились успешно. Это может ускорить восстановление при медленном или недоступном семействе адресов. Выбранное семейство может измениться в другой сети или после обновления маршрута, поэтому его не следует сохранять как постоянное свойство профиля.

Прокси меняет место выбора адреса. Если браузер передает прокси имя, прокси может разрешить назначение из своей сети. Если клиент сначала получает адрес, локальная среда участвует в выборе. Имя самого прокси также может потребовать локального DNS до создания туннеля. В HTTP CONNECT цель задается именем узла и портом в request target; после успешного CONNECT получатель туннелирует данные (раздел 9.3.6 RFC 9110). Запрос SOCKS5 может передать полное доменное имя как адрес назначения с типом ATYP DOMAINNAME (разделы 4 и 5 RFC 1928). Это разные модели ответственности, и конфигурация должна явно называть используемую модель.

Семейство адресов нельзя приравнивать к местоположению или личности. IPv4 и IPv6 являются вариантами транспорта. Ни один из них сам по себе не доказывает физическое местоположение, провайдера или выбранный региональный контекст. Для поддержки можно записать метку ожидаемого маршрута и наблюдаемое семейство, не превращая временный выбор в постоянное описание человека или устройства.

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

Ответственность прокси и DNS

Опишите сетевую политику через ответственность. Укажите, кто разрешает имя прокси, кто разрешает назначения, какой трафик принимает прокси и что делает браузер при недоступности пути. Команда может выбрать удаленный DNS, чтобы запросы и разрешение оставались в одной управляемой границе. Другая система может использовать корпоративный DNS перед соединением с фиксированным адресом прокси. Оба решения допустимы, если они явные и проверенные.

Локальный DNS не обязательно означает проблему конфиденциальности, а удаленный DNS не гарантирует полную защиту. Результат зависит от видимых каждому сервису данных, его оператора и соответствия ожиданию пользователя. Запросы могут раскрывать имена даже при шифровании содержимого. Записывайте границу DNS вместе с политикой прокси и не храните постоянную историю пользовательских назначений только ради подтверждения работы.

Браузер может применять несколько сетевых подсистем. Обычные HTTP-запросы, связь в реальном времени, расширения, обновления и системные запросы могут иметь разные средства управления. Настройка прокси страницы не гарантирует маршрут всех процессов. Руководство по согласованности прокси, DNS и WebRTC связывает эти поверхности, а проверка конфиденциальности DNS рассматривает границу разрешения имен.

Аутентификация прокси и сведения о конечной точке должны оставаться в защищенной конфигурации. Для записи проверки обычно достаточно метки маршрута, наблюдаемого семейства, версии браузера и функционального результата. Полный URL и учетные данные не нужны. Ограничьте доступ операторами маршрута и скрывайте эти значения в выгрузках поддержки по умолчанию.

Кэш разрешения также требует владельца. Браузер, система, прокси и DNS могут сохранять ответы на разные сроки. После изменения политики старые ответы и соединения могут временно сосуществовать. Не очищайте все кэши сразу, иначе исчезнет свидетельство того, какой слой дал результат. Сначала сравните существующий контекст с новым контролируемым контекстом, затем решите, может ли сессия завершить задачу или должна перезапуститься. Если оба контекста показывают старый результат, проверьте авторитетную запись DNS и путь DNS-резолвера прежде, чем менять настройки профиля браузера.

Частые причины расхождения маршрутов

Имя прокси с двойным стеком может возвращать оба семейства, хотя сервис принимает только одно из конкретной клиентской сети. Клиент может ждать недостижимый кандидат перед рабочим. Устаревший DNS, несогласованный балансировщик или правило межсетевого экрана дают похожий симптом. Проверяйте достижение заявленной конечной точки, а не семейство, использованное в прошлой сессии.

Разрешение назначения также может отличаться на разных границах. Локальный DNS и DNS рядом с прокси могут получать разные ответы из-за географии, раздельных зон, корпоративной политики или распространения записи. Браузер попадет на другую версию сервиса. Сравнивайте только собственные или разрешенные домены, добавляйте местоположение DNS и время проверки и не переносите один результат на все имена.

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

Поддержка протоколов добавляет еще одно различие. Прокси для обычной навигации может не переносить каждый поток данных или связь в реальном времени. Отключение неподдерживаемого необязательного пути, выбор документированного совместимого пути или сообщение о недоступности яснее молчаливого прямого соединения. Для более сложных потоков используйте материал о согласованности сетевого уровня.

Контролируемый план проверки

Используйте конечные точки под своим управлением. Подготовьте сервис только IPv4, сервис только IPv6 при поддержке среды и сервис с двойным стеком. Каждый должен возвращать адрес сервиса, принявшего запрос, и короткий идентификатор тестового запроса без чувствительных данных. Не сохраняйте посторонние заголовки, учетные данные или полный клиентский адрес. Ответ сервиса, ожидаемая метка маршрута или наблюдаемое семейство адресов сами по себе не доказывают, через какой прокси прошел запрос.

Выполните одну браузерную задачу для каждой точки без изменения профиля, прокси, DNS и сборки приложения. Запишите завершившийся сервис и видимую пользователю альтернативу. Сопоставляйте идентификатор запроса только тогда, когда тестовая конфигурация позволяет видеть его с обеих сторон: прокси-туннель HTTPS обычно не видит его внутри зашифрованного трафика. Иначе сопоставьте независимую запись о соединении или исходящем маршруте с одним контролируемым запросом по времени, назначению и идентификатору соединения. Если связь нельзя установить однозначно, отметьте использование прокси как непроверенное. Если сервис с двойным стеком выбрал другое семейство, сначала проверьте достижимость и политику. Выбор может быть правильным для текущих условий.

Для синтетической исходной конфигурации укажите, что управляемый маршрут прокси поддерживает только назначения IPv4 и имеет один утверждённый исходящий адрес IPv4. Контрольные точки только IPv4 и с двойным стеком должны пройти через этот маршрут; независимая корреляция должна подтвердить соединение прокси, а наблюдаемый вашим сервисом адрес источника должен совпасть с утверждённым исходящим адресом. Для точки только IPv6 следует сообщить, что маршрут недоступен, и сохранить ввод без прямого повтора. Успешный запрос через другой исходящий адрес нарушает политику, а отсутствие корреляции означает, что использование прокси не проверено.

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

Добавьте прерывание и восстановление. Отключите утвержденный маршрут во время контролируемой задачи и убедитесь, что браузер не продолжает напрямую. После восстановления потребуйте осознанный повтор или новый контекст согласно политике. Проверьте сохранность исходного ввода и отсутствие ложного статуса завершения у частичной отправки. Здесь оценивается приложение, а не репутация адреса.

Загрузки в обоих направлениях требуют отдельного сценария, поскольку могут пережить начальную навигацию. Используйте небольшой синтетический файл и проверяйте маршрут в начале, во время передачи и после прерывания. Приложение должно различать полный файл, восстанавливаемую часть и отказ. Повтор сохраняет заявленный маршрут или начинается в новом контексте, не объединяя части из разных политик. При отправке храните исходный файл локально до подтверждения завершения и не записывайте его содержимое в журнал. При получении проверьте конечный размер и статус в приложении; не храните адрес назначения дольше, чем требуется для обращения в поддержку.

Различия сетей и платформ

Одни сети предоставляют нативный IPv6, другие используют трансляцию, третьи поддерживают только IPv4. Корпоративные VPN, мобильные сети, домашние маршрутизаторы и облачные узлы могут показывать разные комбинации без изменения браузера. Определите поддерживаемые условия. Если IPv6 необязателен, приложение должно работать по заявленному пути IPv4. Если нужен только IPv6, проверяйте прокси и DNS именно в такой среде.

Для перехода между сетями нужна политика. Ноутбук может перейти с офисного Wi-Fi на мобильную сеть при открытом контексте. Существующие соединения продолжатся, новые выберут другое семейство, а имя прокси получит другой ответ. Процесс со стабильным маршрутом должен приостановиться и предложить переподключение или новый контекст. Смешение состояния до и после перехода усложняет объяснение сессии.

Управляемая система может задавать DNS, VPN или прокси вне браузера. Рассматривайте эти средства вместе с настройками браузера и указывайте авторитетный слой и ответственную команду. Если обновление браузера совпало с изменением системы или сети, воспроизведите задачу с неизменными остальными переменными перед выводом о причине.

Сообщение об ошибке должно называть этап и следующее действие. «Прокси недоступен», «имя назначения не разрешено» и «маршрут IPv6 недоступен» ведут к разным проверкам. Общая ошибка соединения побуждает к повторам и случайным изменениям. Точное сообщение также снижает необходимость собирать большие наборы посторонних сетевых данных.

Разрешение может измениться при открытом контексте. Записи DNS истекают, управляемый DNS обновляет политику, а прокси переносит конечные точки. Долгий процесс должен решить, принимает ли изменение при следующем соединении или требует контролируемого перезапуска. Финансовая операция или административная задача может требовать остановки при изменении идентичности маршрута. Приложение для чтения общедоступного контента может допускать повторное соединение через другую конечную точку в рамках той же политики. Записывайте метку маршрута и видимое прерывание, а не постоянный список всех полученных адресов.

Состояние сети должно быть доступным. Не сообщайте об отказе только цветом или кратким уведомлением. Перенесите фокус на короткое состояние, сохраните данные формы и предложите одно ясное действие для повтора или перезапуска. Если часть работы доступна без сети, укажите локальные действия и действия, требующие управляемого маршрута. Пользователи клавиатуры и экранного диктора должны различать паузу, отказ и завершение.

Сопровождение политики

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

Пересматривайте политику при изменении провайдера прокси, DNS, браузера, системы или сети развертывания. Проверяйте всю пользовательскую задачу, а не только открытие соединения. Страница может соединиться, а аутентификация, загрузка, связь в реальном времени или долгий запрос использовать другой путь. Оставляйте необязательную функцию доступной только после проверки в той же границе.

При несогласованном результате начните с метки маршрута и этапа отказа. Проверьте разрешение прокси, соединение, разрешение назначения и получение запроса управляемым сервисом. Запрашивайте полные сведения только по авторизованному каналу, когда малой записи недостаточно, и удаляйте чувствительные материалы после закрытия случая.

Пользователи стабильного маршрута должны видеть изменения. Если версия меняет поддерживаемые условия, назовите затронутый процесс, доступную альтернативу и необходимость нового контекста. Не превращайте изменение семейства транспорта в общий вывод о платформе. Точная политика, контролируемые проверки и видимые отказы дают более надежную согласованность.

Запросы IPv4 и IPv6 следуют одной заявленной политике прокси и DNS.

Публичные источники

#IPv4#IPv6#Прокси#DNS#Сеть Браузера

Переведите BotBrowser из исследований в продакшн

Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.