Страница 1 из 1

pf + pbr + transparent squid

Добавлено: 2009-05-19 17:49:09
davsharyan
OSЬ: FreeBSD 7.0
Transparent Squid (127.0.0.1)

Есть 2 канала для инета. Некаторые хосты (не локальные, скажем google.com) должны идти через второй канал а все остальное через первый ( default gateway ). Все что не делаю все соединения, после выхода из сквида, идут через дефолтовый шлюз, хотя netstat и pfctl показывают src ip второго канала. Получаем пакет с src ip аддрессом второго прова идет через интерфейс первого прова.
Пробовал с помощью директиви сквида tcp_outgoing_address.

Код: Выделить всё

acl realtime dst ping.eu
tcp_outgoing_address 83.139.14.137 realtime
server_persistent_connections off 

Код: Выделить всё

netstat -an | grep '85.25.86.50'
tcp4       0      0  83.139.14.137.54029    85.25.86.50.80         SYN_SENT
tcp4       0      0  83.139.14.137.54028    85.25.86.50.80         SYN_SENT
tcp4       0    615  83.139.14.137.54026    85.25.86.50.80         ESTABLISHED
tcp4       0    619  83.139.14.137.54025    85.25.86.50.80         ESTABLISHED
tcp4       0    614  83.139.14.137.54024    85.25.86.50.80         ESTABLISHED
tcp4       0    615  83.139.14.137.54023    85.25.86.50.80         ESTABLISHED
tcp4       0    624  83.139.14.137.54022    85.25.86.50.80         ESTABLISHED
tcp4       0    614  83.139.14.137.54021    85.25.86.50.80         ESTABLISHED
tcp4       0    615  83.139.14.137.54020    85.25.86.50.80         ESTABLISHED
tcp4       0    613  83.139.14.137.54019    85.25.86.50.80         ESTABLISHED
tcp4       0    620  83.139.14.137.54018    85.25.86.50.80         ESTABLISHED
tcp4       0    614  83.139.14.137.54017    85.25.86.50.80         ESTABLISHED
tcp4       0    614  83.139.14.137.54016    85.25.86.50.80         ESTABLISHED
tcp4       0    611  83.139.14.137.54015    85.25.86.50.80         ESTABLISHED 
Изображение

Re: pf + pbr + transparent squid

Добавлено: 2009-05-19 17:53:25
paradox
сквид вообще не причем

Re: pf + pbr + transparent squid

Добавлено: 2009-05-19 21:34:47
Гость
Ну сквид при том что, без него пакеты нормально перебрасываются на ныжный интерфейс. А после выхода из него никак не могу перенаправить, уже не знаю что пробовать, дочитался форумов и гугла помучал хорошенько. Никак не получается ... Посоветуйте что нибудь ?

Re: pf + pbr + transparent squid

Добавлено: 2009-05-19 21:36:45
paradox
фак по pf почитайте что ли
вообще роутту-реплиту

Re: pf + pbr + transparent squid

Добавлено: 2009-05-20 10:02:45
davsharyan
Свежая голова хороша для работы и конешн руки которые должны рости откуда надо )
Оказывается все очень просто реашется ...

Все пакеты отправляем в сквид, потом те URL/Host которые нужно отправить по другому каналу добавляем в директиву tcp_outgoing_address и pf-у говорим, все уходящие (вот здесь была проблема, надо было взят out пакеты а не in) пакеты которые идут с дефолтового интерфейса у которого src ip адресс втарого канала перенаправить по нужному шлюзу.

Код: Выделить всё

acl viarealtime url_regex -i "/usr/local/etc/squid/filters/via_realtime.conf"
tcp_outgoing_address 172.22.7.101 viarealtime 
На языке pf будет так

Код: Выделить всё

rdr on $lan_if inet proto tcp from $lan_if/24 to any port www -> 127.0.0.1 port 3128
pass in quick on $lan_if inet proto tcp from $lan_if/24 to 127.0.0.1 port 3128 keep state

pass out quick on $beeline_vpn_if route-to \
    ($realtime_vpn_if $realtime_vpn_gw) round-robin inet \
    from $realtime_vpn_if/32 to any flags S/SA keep state
Спс, за помощь )