URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 79216
[ Назад ]

Исходное сообщение
"ipfw+squid+nat+2 канала"

Отправлено cad2206 , 13-Мрт-08 10:44 
Итак, вопрос изъезженый, но конкретного ответа со своими условиями я ненашел, хотя думаю что условия такие у многих.

Имеем: FreeBSD шлюз с тремя сетевыми картами:
1. rl0 - смотрит в локальную сеть (192.168.0.1)
2. rl2 - смотрит к первому провайдеру (xxx.xxx.xxx.xxx со шлюзом xxx.xxx.xxx.xxq)
3. tun0 - смотрит ко второму провайдеру (yyy.yyy.yyy.yyy со шлюзом yyy.yyy.yyy.yyq)

Конфигурации файлов касательно каналов:

rc.conf:

defaultrouter="yyy.yyy.yyy.yyy"
gateway_enable="YES"

ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig_rl2="inet yyy.yyy.yyy.yyy netmask 255.255.255.252"

ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="papchap"

firewall_enable="YES"
firewall_script="/etc/rc.ipfw"
#firewall_type="OPEN"
firewall_loggining="YES"
firewall_quiet="YES"

natd_enable="YES"
natd_interface="tun0"
natd_flags="-f /etc/natd.conf"

squid_enable="YES"


в rc.ipfw

#squid
${fwcmd} add fwd 127.0.0.1,80 tcp from 192.168.0.0/24 to yyy.yyy.yyy.yyy 80,8080,443 via rl0
${fwcmd} add fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 via rl0
${fwcmd} add fwd 127.0.0.1,80 tcp from 192.168.1.0/24 to yyy.yyy.yyy.yyy 80,8080,443 via rl0
${fwcmd} add fwd 127.0.0.1,3128 tcp from 192.168.1.0/24 to any 80 via rl0


${fwcmd} add 50 divert natd all from any to any via tun0

далее правила разрешающие доступ

т.е., видно из конфигов, что все работает через tun0 интерфейс.

Задача: при падении канала на tun0 пустить все через второй канал. Я пока не говорю о скрипте, который будет автоматом переключать. Мне просто нужно понять как мне перенастраивать NAT интерфейс и работу через Squid.

В принцыпе, командами:
delete route default и
add route default xxx.xxx.xxx.xxq

вроде как все начинает бегать через rl2, но тогда получается что реально не работает NAT (так как висит на другом интерфейсе)? И непонимаю что происходит со Squid'ом. Ведь в rc.ipfw я жестко перенаправляю все пакеты на адрес yyy.yyy.yyy.yyy. Объясните пожалуйста знатоки, как правильно будет переключаться между каналами?


Содержание

Сообщения в этом обсуждении
"ipfw+squid+nat+2 канала"
Отправлено xkw , 13-Мрт-08 18:43 
Попробуйте начать использовать ipnat. Очень просто и нет заморочек с дайвертами.

По сути прописывайте ипнат на оба каналла,
ipfw остаеться тогда в виде простьо фаервола фильтрующего разрешающего или запрещающего траффик, а роут выполняет свою задачу.

regards, ..


"ipfw+squid+nat+2 канала"
Отправлено cad2206 , 17-Мрт-08 12:20 
>Попробуйте начать использовать ipnat. Очень просто и нет заморочек с дайвертами.
>
>По сути прописывайте ипнат на оба каналла,
>ipfw остаеться тогда в виде простьо фаервола фильтрующего разрешающего или запрещающего траффик,
>а роут выполняет свою задачу.
>
>regards, ..

я так понимаю, что для ipnat используются собственные правила? или они всеже описываются в тех-же правилах ipfw?


"ipfw+squid+nat+2 канала"
Отправлено universite , 14-Мрт-08 01:28 

>Объясните пожалуйста знатоки, как правильно будет переключаться
>между каналами?

Переключение роутов оставим на саму систему.
Поднимаем два NAT'а для разных интерфейсов, очень аккуратно пишет правила, особенно in / out
И тогда squid никак не придется перестраивать.


"ipfw+squid+nat+2 канала"
Отправлено crudvendetta.com.uaCRUD , 14-Мрт-08 10:47 
>
>>Объясните пожалуйста знатоки, как правильно будет переключаться
>>между каналами?
>
>Переключение роутов оставим на саму систему.
>Поднимаем два NAT'а для разных интерфейсов, очень аккуратно пишет правила, особенно in
>/ out
>И тогда squid никак не придется перестраивать.

Еще можно использовать один сквид в качестве парента, чайлду прописать ходить через парент в том случае если чайлд не сможет ГЕТнуть что-то через парент он будет сам лезть в ИНЕТ


"ipfw+squid+nat+2 канала"
Отправлено cad2206 , 17-Мрт-08 12:10 
>
>>Объясните пожалуйста знатоки, как правильно будет переключаться
>>между каналами?
>
>Переключение роутов оставим на саму систему.
>Поднимаем два NAT'а для разных интерфейсов, очень аккуратно пишет правила, особенно in
>/ out
>И тогда squid никак не придется перестраивать.

а как правильно 2 NAT'a поднять то? просто в rc.conf прописать?

natd_interface="tun0"
natd_interface="rl2"

????

и что значит аккуратно написать правила? можно пример, если не сложно?