Есть локалка 192.168.38.0/24, в ней роутер 192.168.38.7 на FreeBSD, есть машинка 192.168.38.11 на которой установлен squid3 c настройкой http_port 3128 intercept для тогл чтобы он мог работать как прозрачный(хотя при перенаправлении с 80 на 3128 на роутере какая ему разница?) и есть юзеры в этой же сетке.
У юзеров дефолт гейтвей естественно 192.168.38.7.Нужно перенаправить веб-трафик юзеров на сквид, который находится не на роутере, как обычно, а на другой тачке.
На маршрутизаторе в настройках pf пробую редирект сначала одного пользователя
rdr on xl0 proto tcp from 192.168.38.175 to any port 80 -> 192.168.38.11 port 3128
Браузер страницы не грузит и страничку сквида нам не выдает.
На машинке юзера 192.168.38.175 делаю пытаюсь выйти скажем на ya.ru дабы продампить, что происходить с трафиком, на маршрутизаторе вижу
ogw# tcpdump | grep 192.168.38.175
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on xl0, link-type EN10MB (Ethernet), capture size 96 bytes
19:46:41.231597 IP 192.168.38.175.1718 > www.yandex.ru.http: Flags [S], seq 3018241713, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
19:46:41.231656 IP www.yandex.ru > 192.168.38.175: ICMP redirect www.yandex.ru to host 192.168.38.11, length 60
19:46:41.232222 IP 192.168.38.175.1718 > 192.168.38.11.3128: Flags [S], seq 3018241713, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
19:46:41.478498 IP 192.168.38.175.1719 > www.yandex.ru.http: Flags [S], seq 2711080067, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
19:46:41.478521 IP 192.168.38.175.1719 > 192.168.38.11.3128: Flags [S], seq 2711080067, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
19:46:41.478534 IP www.yandex.ru > 192.168.38.175: ICMP redirect www.yandex.ru to host 192.168.38.11, length 60
19:46:44.165844 IP 192.168.38.175.1718 > www.yandex.ru.http: Flags [S], seq 3018241713, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
19:46:44.165867 IP 192.168.38.175.1718 > 192.168.38.11.3128: Flags [S], seq 3018241713, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
19:46:44.165882 IP www.yandex.ru > 192.168.38.175: ICMP redirect www.yandex.ru to host 192.168.38.11, length 60
19:46:44.467621 IP 192.168.38.175.1719 > www.yandex.ru.http: Flags [S], seq 2711080067, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
19:46:44.467645 IP 192.168.38.175.1719 > 192.168.38.11.3128: Flags [S], seq 2711080067, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
19:46:44.467660 IP www.yandex.ru > 192.168.38.175: ICMP redirect www.yandex.ru to host 192.168.38.11, length 60
19:46:49.962482 IP 192.168.38.175.4599 > 192.168.38.7.ssh: Flags [.], ack 2188, win 65535, length 0
19:46:50.100694 IP 192.168.38.175.4599 > 192.168.38.7.ssh: Flags [.], ack 2668, win 65055, length 0
19:46:50.201285 IP 192.168.38.175.1718 > www.yandex.ru.http: Flags [S], seq 3018241713, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
19:46:50.201304 IP 192.168.38.175.1718 > 192.168.38.11.3128: Flags [S], seq 3018241713, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
19:46:50.201320 IP www.yandex.ru > 192.168.38.175: ICMP redirect www.yandex.ru to host 192.168.38.11, length 60
19:46:50.503061 IP 192.168.38.175.1719 > www.yandex.ru.http: Flags [S], seq 2711080067, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
и т.д.
на машинке со сквидом
tcpdump | grep squid
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:40:18.881241 IP 192.168.38.175.fiorano-rtrsvc > 192.168.38.11.squid: Flags [S], seq 2130037110, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
13:40:18.881288 IP 192.168.38.11.squid > 192.168.38.175.fiorano-rtrsvc: Flags [S.], seq 1651043078, ack 2130037111, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
13:40:18.881539 IP 192.168.38.175.fiorano-rtrsvc > 192.168.38.11.squid: Flags [R], seq 2130037111, win 0, length 0
13:40:19.265583 IP 192.168.38.175.sunscalar-svc > 192.168.38.11.squid: Flags [S], seq 3255836614, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
13:40:19.265642 IP 192.168.38.11.squid > 192.168.38.175.sunscalar-svc: Flags [S.], seq 2148822638, ack 3255836615, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
13:40:19.265944 IP 192.168.38.175.sunscalar-svc > 192.168.38.11.squid: Flags [R], seq 3255836615, win 0, length 0
13:40:19.384088 IP 192.168.38.175.gammafetchsvr > 192.168.38.11.squid: Flags [S], seq 2499465643, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
13:40:19.384106 IP 192.168.38.11.squid > 192.168.38.175.gammafetchsvr: Flags [S.], seq 372661963, ack 2499465644, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
13:40:19.384337 IP 192.168.38.175.gammafetchsvr > 192.168.38.11.squid: Flags [R], seq 2499465644, win 0, length 0
13:40:19.786456 IP 192.168.38.175.fiorano-msgsvc > 192.168.38.11.squid: Flags [S], seq 2845712069, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
13:40:19.786484 IP 192.168.38.11.squid > 192.168.38.175.fiorano-msgsvc: Flags [S.], seq 308354811, ack 2845712070, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
13:40:19.786725 IP 192.168.38.175.fiorano-msgsvc > 192.168.38.11.squid: Flags [R], seq 2845712070, win 0, length 0
13:40:19.887031 IP 192.168.38.175.datacaptor > 192.168.38.11.squid: Flags [S], seq 1963127631, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
13:40:19.887056 IP 192.168.38.11.squid > 192.168.38.175.datacaptor: Flags [S.], seq 670178370, ack 1963127632, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
13:40:19.887300 IP 192.168.38.175.datacaptor > 192.168.38.11.squid: Flags [R], seq 1963127632, win 0, length 0
13:40:20.792340 IP 192.168.38.175.privateark > 192.168.38.11.squid: Flags [S], seq 2218718978, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
13:40:20.792508 IP 192.168.38.11.squid > 192.168.38.175.privateark: Flags [S.], seq 3063064806, ack 2218718979, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
13:40:20.792790 IP 192.168.38.175.privateark > 192.168.38.11.squid: Flags [R], seq 2218718979, win 0, length 0
13:40:21.497171 IP 192.168.38.175.lecroy-vicp > 192.168.38.11.squid: Flags [S], seq 2629547188, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
13:40:21.497241 IP 192.168.38.11.squid > 192.168.38.175.lecroy-vicp: Flags [S.], seq 1077475888, ack 2629547189, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
13:40:21.497402 IP 192.168.38.175.mysql-cm-agent > 192.168.38.11.squid: Flags [S], seq 574413136, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
13:40:21.497426 IP 192.168.38.11.squid > 192.168.38.175.mysql-cm-agent: Flags [S.], seq 4173076178, ack 574413137, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
13:40:21.497560 IP 192.168.38.175.lecroy-vicp > 192.168.38.11.squid: Flags [R], seq 2629547189, win 0, length 0
13:40:21.497566 IP 192.168.38.175.msnp > 192.168.38.11.squid: Flags [S], seq 757136477, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
13:40:21.497576 IP 192.168.38.11.squid > 192.168.38.175.msnp: Flags [S.], seq 3582174736, ack 757136478, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
13:40:21.497677 IP 192.168.38.175.mysql-cm-agent > 192.168.38.11.squid: Flags [R], seq 574413137, win 0, length 0
13:40:21.497800 IP 192.168.38.175.paradym-31port > 192.168.38.11.squid: Flags [S], seq 851126175, win 65535, options [mss 1460,nop,wscale 1,nop,nop,sackOK], length 0
13:40:21.497822 IP 192.168.38.11.squid > 192.168.38.175.paradym-31port: Flags [S.], seq 980300574, ack 851126176, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
По логам редирект вроде как идет, но как-то странно. Думается мне что нужно копать в сторону dnat, snat.