Есть ли реальный способ заставить определенное количество доменов использовать IPv4-соединение, а не IPv6 со Squid, будь то через acl другой метод?

Мне известно о значении конфигурации dns_v4_first , но оно мне здесь не помогает.

Проблема, с которой я сталкиваюсь, заключается в том, что мой IPv6 предоставлен Hurricane Electric (туннель), что в конечном итоге сбивает с толку различное географическое обнаружение и думает, что я США (я не Великобритания), когда сайты развернули IPv6. Это создает проблемы для потоковых сервисов, таких как Netflix, который показывает мне списки в США, но затем обнаруживает, что я на самом деле в Великобритании большую часть времени. (Спойлер о том, как получить US Netflix без DNS-хаков!)

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

1 ответ1

1

Мой опыт выбора адреса источника показывает, что трудно сделать это правильно. Обычно я сдаюсь после нескольких попыток без успеха.

Вот что я делаю, настраивая веб-прокси для принудительной установки IPv4 на компьютерах с двумя стеками (протестировано с Linux):

  • создайте неиспользуемый IPv4-адрес RFC 1918 на интерфейсе, скажем 10.2.3.4 на eth0 . Маска подсети, вероятно, не имеет большого значения, но я выбираю 32.
  • настроить squid с помощью этой директивы:

    tcp_outgoing_address 10.2.3.4 [your acl]
    
  • Установите правило брандмауэра для выполнения NAT-маскарада, если адрес источника пакета 10.2.3.4 . Это переведет на ваш реальный адрес IPv4.

Поскольку исходный адрес явно установлен на IPv4, squid никогда не установит соединение с IPv6-адресом.

Я мог бы использовать свой реальный IP в директиве tcp_outgoing_address , но мой провайдер использует динамический IP, и этот подход означает, что мне не нужно менять конфигурацию каждый раз, когда у меня новый IP.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .