Я пытаюсь изменить настройку прозрачности Squid с использования универсального NAT, который ограничен только IPv4, и переключаю его на TPROXY для поддержки IPv6. У меня возникают проблемы с получением прозрачных клиентов для работы в новой настройке, однако все запросы выполняются с помощью squid, выдающего следующую ошибку для всех запросов:
"Запрашиваемый адрес недоступен"
Казалось бы, есть проблема маршрутизации где-то, но я не уверен, что не так.
Я использую iptablesи ip6tablesна своем маршрутизаторе DD-WRT и прокси-сервере Squid вместе с iproute2компонентами маршрутизации с обеих сторон.
По умолчанию кажется, что ip6table_mangleмодуль не загружен по умолчанию в DD-WRT, но был скомпилирован в сборку, запущенную на моем маршрутизаторе:
eno1это основной интерфейс Ethernet, который я также пытался использовать loбез какого-либо успеха.
Трафик передается в Squid, поэтому кажется, что маршрутизатор выполняет свою работу. Это когда трафик заканчивается в Squid box, где он, кажется, идет не так. Все запросы регистрируются, но возвращаются 500 ошибок.
Насколько я знаю, моя установка поддерживает TPROXY:
CentOS 7
Кальмар 3.3.8 (EPEL)
iptables / ip6tables 1.4.21
Ядро Linux 3.10
libcap 2.22
Я использовал эти источники в качестве руководства, но не могу получить рабочую настройку.
Любой совет, в чем может быть проблема или отладить дальше?
1 ответ на вопрос
1
James White
Turns out everything was correctly setup. What the actual problem was is my cache_peer directive for Privoxy. The error thrown is actually Squid saying it can't hand off the traffic to Privoxy. This is because the tproxy setup is confusing it.
In order to avoid it you have to add no-tproxy to the cache_peer line