Есть 2 канала для инета. Некаторые хосты идут через второй канал а все остальное через первый ( default gateway ), Все это делается с помощью pf+pbr.
Теперь поставил сквид и все соединения, после выхода из прокси идут через дефолтовый шлюз, как и должно было быть.
Как сделать чтобы после выхода пошли по нужному каналу ???
rdr on $lan_if inet proto tcp from $squid_users to any port www -> 127.0.0.1 port 3128
pass in quick on $lan_if inet proto tcp from $squid_users to 127.0.0.1 port 3128 keep state
Недавно тоже нужно было реализовать подобное, тема Несколько провайдеров
так и не сделал, ушел в сторону mikrotik and freesco, но уж очень хочется иметь это все на FreeBSD
думаю, что все же нужно через route add -net X.X.X.X и т.д.
Недавно тоже нужно было реализовать подобное, тема Несколько провайдеров
так и не сделал, ушел в сторону mikrotik and freesco, но уж очень хочется иметь это все на FreeBSD
думаю, что все же нужно через route add -net X.X.X.X и т.д.
У тебя вроде нету транспарентного сквида ...
Что-то не так делаеш в фаере ...У меня все нормально отправляется через нужный канал ...
Вот мой конфиг - http://paste2.org/p/209157
Насчет микротика тоже думаю над этим ...
<<EOF
everything that has a beginning has an end as well...
EOF
Есть 2 канала для инета. Некаторые хосты идут через второй канал а все остальное через первый ( default gateway ), Все это делается с помощью pf+pbr.
Теперь поставил сквид и все соединения, после выхода из прокси идут через дефолтовый шлюз, как и должно было быть.
Как сделать чтобы после выхода пошли по нужному каналу ???
Нужно тэгировать трафик в PF и строить правила на основе обработки тэгированных пакетов. Такое описано в PF FAQ.
Ротор поля наподобие дивергенции градуирует себя вдоль спина и там внутре ево неонка.
простите за теорию: но разве файерволл способен направлять пакеты между интерфейсами, его роль - фильтрация
Лично для себя я ещё не выяснил, нужно ли прописывать в таблице маршрутизации альтернативные маршруты (как это описано тут в части, касающейся статических маршрутов) или же PF сможет работать и без этой таблицы — тупо переправлять IP-пакеты с одного интерфейса на другой, не принимая в расчёт шлюзы, на которые смотрят эти интерфейсы. (Просто для меня эта тема новая и не исследованная.) Хотелось бы увидеть пример реально работающих необходимых и достаточных настроек для простого (без использования очередей) распределения трафика к двум провайдерами средствами PF. Было бы полезно выработать такое решение, когда используется схема с одним постоянным подключением по проводному каналу (Ethernet), а второе соединение поднимается по требованию (например, EGPRS-модем) в порядке резервирования основного канала.
Ротор поля наподобие дивергенции градуирует себя вдоль спина и там внутре ево неонка.
Свежая голова хороша для работы и конешн руки которые должны рости откуда надо )
Оказывается все очень просто реашется ...
Все пакеты отправляем в сквид, потом те URL/Host которые нужно отправить по другому каналу добавляем в директиву tcp_outgoing_address и pf-у говорим, все уходящие (вот здесь была проблема, надо было взят out пакеты а не in) пакеты которые идут с дефолтового интерфейса у которого src ip адресс втарого канала перенаправить по нужному шлюзу.
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
<<EOF
everything that has a beginning has an end as well...
EOF