[sisyphus] 2 провайдера. Как?

Евгений evgent на tula.net
Вс Янв 10 07:52:03 UTC 2010


06.01.2010 20:02, Afanasov Dmitry пишет:
> On Wed, Jan 06, 2010 at 06:16:52PM +0300, Евгений wrote:
>> Hi All.
>>
>> Вот в начале Нового Года появился у меня ещё один провайдер.
>> Захотелось разрулить их следующим образом: сервер сидит на одном канале
>> (обзову его первым), а клиенты на другом (втором). К тому же, клиенты
>> должны попадать в "локальные" сети первого провайдера.
>>
>> А вот как это реализовать - затрудняюсь.
> это source route - маршрутизация от источника. реализуется через ip rule
> (в LARTC описан)
>
> в данном случае будет выглядеть как
>
> cat "50 second">>  /etc/iproute2/rt_tables
>
> ip rule add pref 5000 from 192.168.4.0/24 table second
>
> ip route add table second throw 192.168.2.0/24
> ip route add table second throw<first-provider-net>
> ip route add table second default via 192.168.2.1
>
>> Прописал
>> [0:0] -A POSTROUTING -s 192.168.4.0/24 -d 0/0 -j SNAT --to-source 192.168.2.2
> также да, нужно два ната: для первого и второго провайдера. net'ы
> предпочитаю делать по девайсам, то есть:
> [0:0] -A POSTROUTING -o first -j SNAT --to-source<first-src>
> [0:0] -A POSTROUTING -o second -j SNAT --to-source 192.168.2.2
>
> предупреждаю сразу, что маршруты смотрятся сначала по таблицам, потом по
> очереди в таблице. default route является выходом из проверки машрутов.
> потому имеем, что для всех из 192.168.4.0/24 будет проверяться таблица
> second и только second, так как по "default via" будет выход из проверок.
> потом для решения "клиенты должны попадать в "локальные" сети первого
> провайдера." в таблице second должны быть либо продублированы либо указаны
> как throw маршруты из таблицы main.
>
> throw в данном случае - выйти из таблицы и проверять дальше, == -j RETURN
> в iptables, простому return в C.
>
> Note: это вообще-то для sysadmins@

Ага. Направление понял.
Благодарю. Попробую разрулить всё...


Подробная информация о списке рассылки Sisyphus