Имеем следующее:
gate1 freebsd + pf (основной маршрутизатор)
gate2 freebsd + pf + squid (прозрачная прокся для http)
Каналы на каждом разные.
Внутренние интерфейсы серверов и клиенты находятся в одной подсети.
Суть проблемы в том, что прокси не работает как прозрачный, если делать редирект http на него.
Проблем со сквидом нет. Если прописать gate2 как основной шлюз - всё будет работать. Также, если явно указать в браузере проксировать http, то тоже всё ОК.
Если смотреть tcpdump-ом на gate2, то видно следующее:
Код: Выделить всё
14:14:33.354775 IP 192.168.0.11.58724 > 192.168.0.2.3128: S 2032065675:2032065675(0) win 65535 <mss 1460,nop,wscale 3,sackOK,timestamp 170250424 0>
14:14:33.354797 IP 192.168.0.2.3128 > 192.168.0.11.58724: S 3623834596:3623834596(0) ack 2032065676 win 65535 <mss 1460,nop,wscale 3,sackOK,timestamp 1849376052 170250424>
14:14:33.354876 IP 192.168.0.11.58724 > 192.168.0.2.3128: R 2032065676:2032065676(0) win 0
Правила для редиректа на gate1:
rdr on $int_if proto tcp from $int_net to any port 80 -> $gate2 port 3128
(само собой пробовал тучи вариаций)
Может кто что подскажет?