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

Исходное сообщение
"Использование 2-х каналов интренте, разделить для разных пользователей"

Отправлено DENIEL , 11-Июн-06 03:55 
Здраствуйте.
Такая проблема...
Система Linux RedHat 8. Есть 2 канала интернет, надо их распределить между разными пользователями сети.
Пользователи подключаются по VPN.
Первые через подсеть 192.168.66.0
Вторые через подсеть 192.168.67.0

Изначально, когда был 1 канал, был
Iptable
-A POSTROUTING -s 192.168.66.0/255.255.255.0 -j SNAT --to-source *.*.17.93

route:
Dest            Gw              Genmask
default         ar36-1s.kh      0.0.0.0  

И все ходили через этот интернет. Route создавался сам при поднятия модема, ifup dsl0...

Теперь, я добавил еще одну подсеть в Iptable для юзеров которые будут ходить по другому интернету:
-A POSTROUTING -s 192.168.67.0/255.255.255.0 -j SNAT --to-source 192.168.1.244

Вот в чем заключается проблема:
Если я удаляю route default (default ar36-1s.kh 0.0.0.0 )
И создаю для второго интернета route add default gw 192.168.1.244
То с подсети 67.0 можно юзать интернет.

Если оставляю 2 defaulta то интернет не работает ни там ни там.
Как мне правильно прописать route для моего случая?
Уже тьму вариантов перепробовал, ничего не получается.


Содержание

Сообщения в этом обсуждении
"Использование 2-х каналов интренте, разделить для разных пол..."
Отправлено Jay , 11-Июн-06 12:47 
Насколько я понял суть задачи, есть два канала в интернет и нужно поделить их между определенными сетями.
Я делал подобное на FreeBSD. Один канал оставляем маршрутом по умолчанию (default route). Во второй канал загоняем определенные ip файрволлом. Не знаю, умеет ли это iptables, но ipfw, ipnat и pf с этой задачей справлялись замечательно. Нужно искать опцию, перенаправляющую пакетики либо на интерфейс, либо на ip-адрес.
Тогда пишется правило, которое для заданных ip-адресов перебрасывает пакетики, выходящие через интерфейс маршрута по умолчанию, на интерфейс подключенный ко второму каналу (либо на ip-адрес шлюза на этом канале). Дополнительно на втором интерфейсе включается NAT для исходящих через него пакетов на ip-адрес этого интерфейса.

Если не понятно, попробуйте нарисовать схему на бумажке - обычно очень помогает :)

--
Jay


"Использование 2-х каналов интренте, разделить для разных пол..."
Отправлено Jay , 11-Июн-06 12:50 
Кстати, слышал я, что в линуксе есть возможность роутить пакетики по адресу источника пакета (source ip). Если это действительно есть, то лучше не городить огород с файрволлами, а воспользоваться этим механизмом.

--
Jay


"Использование 2-х каналов интренте, разделить для разных пол..."
Отправлено DENIEL , 11-Июн-06 16:10 
>Кстати, слышал я, что в линуксе есть возможность роутить пакетики по адресу
>источника пакета (source ip). Если это действительно есть, то лучше не
>городить огород с файрволлами, а воспользоваться этим механизмом.
>
>--
>Jay

Пробовал вот так, не получается, если defaultа нету, то вообще не работает:
route add -net 192.168.67.0 gw 192.168.1.244
Но вроде это и не правильно... В общем чего только не перепробовал :)


"Использование 2-х каналов интренте, разделить для разных пол..."
Отправлено vorch , 12-Июн-06 10:44 
В свое время я тоже решал эту задачу на Linux. Решил через iproute2 и маршрутизацию по источнику. В двух словах принцип такой: в iproute2 создается две таблицы маршрутизации, в каждой из которых прописываются свои маршруты и свой default gateway. Потом через iptables по адресу источника на пакеты ставятся метки, а через iproute2 пакеты с этими метками загоняются каждый в свою таблицу. Ничего хитрого, инфы по этому делу много. Таким образом получаем source-routing. Решение может не самое красивое, но на 100% рабочее - у меня несколько лет работало, пока пока вместо двух хилых линков не дали один толстый.