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

Исходное сообщение
"Как поделить два канала?"

Отправлено Alexander Morya , 24-Мрт-03 11:31 
Ребята! Если можете подскажите! Ситуация - есть роутер freeBSD 4.5 на нем подключение на 2х провайдеров - ed0 и rl0. И есть 2е локальные сети 10.0.0.0/24 и 10.0.2.0/24 .Задача - сделать так чтобы одна из подсетей в интернет шла через первого провайдера и !!! видела локальные ресурсы второго!!!! и соответственно вторая сеть шла в инет через второго и видела локальные ресурсы первого. Под локальными ресурсами понимаются mp3 итд доступные только для клиентов этого провайдера. Помогите плз!!! Уже неделю мучусь!!!

Содержание

Сообщения в этом обсуждении
"Как поделить два канала?"
Отправлено Ilia , 24-Мрт-03 12:45 
>Ребята! Если можете подскажите! Ситуация - есть роутер freeBSD 4.5 на нем
>подключение на 2х провайдеров - ed0 и rl0. И есть 2е
>локальные сети 10.0.0.0/24 и 10.0.2.0/24 .Задача - сделать так чтобы одна
>из подсетей в интернет шла через первого провайдера и !!! видела
>локальные ресурсы второго!!!! и соответственно вторая сеть шла в инет через
>второго и видела локальные ресурсы первого. Под локальными ресурсами понимаются mp3
>итд доступные только для клиентов этого провайдера. Помогите плз!!! Уже неделю
>мучусь!!!

Ну, ёлки...
ipfw все это решает.
Извини, лениво мне наборы правил для тебя рисовать, но во всяком случае, это возможно.



"Как поделить два канала?"
Отправлено dukie , 24-Мрт-03 12:51 
не забудь пересобрать ядро с опцией
options         IPFIREWALL_FORWARD
ipfw fwd будет раскидывать пакеты на провайдеров исходя из адреса источника

"Как поделить два канала?"
Отправлено Alexander Morya , 29-Мрт-03 14:52 
>Ну, ёлки...
>ipfw все это решает.
>Извини, лениво мне наборы правил для тебя рисовать, но во всяком случае,
>это возможно.

Доброе время суток! Все понятно, но....
ipfw 3 add divert 8668 ip from 10.0.2.0/24 to (локальные ресурсы второго
прова)
ipfw 3 add divert 8778 ip from 10.0.2.0/24 to any out
ipfw 3 add divert 8778 ip from 10.0.0.0/24 to (локальные ресурсы первого
прова)
ipfw 3 add divert 8668 ip from 10.0.0.0/24 to any out
ipfw 3 add divert 8778 ip from any to (ip rl1)
ipfw 3 add divert 8668 ip from any to (ip rl0)
ipfw 3 add fwd (ip ISP2) ip from (ip rl1) to any
ipfw 3 add fwd (ip ISP1) ip from (ip rl0) to any

default route  ip ISP1
Вот эта конструкция не работает. Для сети 10.0.0.0 все нормально а для
10.0.2.0 -нет инета. Потому как какого то черта продиверченные xthtp 8778
пакеты с src ip = (ip rl1)  проходят на карточке rl0 и там у прова рубятся.
Вот моя истинная проблема. В это случае мне кто нить может помочь?


"Как поделить два канала?"
Отправлено Ilia , 29-Мрт-03 15:10 
>>Ну, ёлки...
>>ipfw все это решает.
>>Извини, лениво мне наборы правил для тебя рисовать, но во всяком случае,
>>это возможно.
>
>Доброе время суток! Все понятно, но....
>ipfw 3 add divert 8668 ip from 10.0.2.0/24 to (локальные ресурсы второго
>
>прова)
>ipfw 3 add divert 8778 ip from 10.0.2.0/24 to any out
>ipfw 3 add divert 8778 ip from 10.0.0.0/24 to (локальные ресурсы первого
>
>прова)
>ipfw 3 add divert 8668 ip from 10.0.0.0/24 to any out
>ipfw 3 add divert 8778 ip from any to (ip rl1)
>ipfw 3 add divert 8668 ip from any to (ip rl0)
>ipfw 3 add fwd (ip ISP2) ip from (ip rl1) to any
>
>ipfw 3 add fwd (ip ISP1) ip from (ip rl0) to any
>
>
>default route  ip ISP1
>Вот эта конструкция не работает. Для сети 10.0.0.0 все нормально а для
>
>10.0.2.0 -нет инета. Потому как какого то черта продиверченные xthtp 8778
>пакеты с src ip = (ip rl1)  проходят на карточке rl0
>и там у прова рубятся.
>Вот моя истинная проблема. В это случае мне кто нить может помочь?

Не понял, а что в этой схеме rl1 ?  У тебя есть, как ты писал в оригинальном постинге, ed0 (один ISP) и rl0 (второй ISP), а rl1 - это твой внутренний интерфейс? или что?


"Как поделить два канала?"
Отправлено Alexander Morya , 29-Мрт-03 15:41 
сори всем сейчас rl0 - первый провайдер, rl1 - второй

"Как поделить два канала?"
Отправлено Ilia , 29-Мрт-03 15:55 
>сори всем сейчас rl0 - первый провайдер, rl1 - второй

К какому адресу или интерфейсу прикручен natd, слушающий 8668, и к какому - 8778 ?


"Как поделить два канала?"
Отправлено Alexander Morya , 29-Мрт-03 16:02 
8668 -rl0
8778 -rl1



"Как поделить два канала?"
Отправлено Alexander Morya , 29-Мрт-03 16:11 
смотри! rl0 -195.24.*.*
        rl1 -212.86.*.*
после вставки правил, которые я привел выше, пакеты с адресом источника 212.86.*.* идут на выход по карточке rl0 ,которая имеет адрес 195.24.*.*
В чем  тут грабли могут быть? т.е. пакет проходит и диверт и фвд(счетчик растет) но routed(видимо) пихает его по default route

"Как поделить два канала?"
Отправлено Ilia , 29-Мрт-03 16:15 
>8668 -rl0
>8778 -rl1

На первый взгляд всё верно...
Попробуй включить verbose mode на обоих natd, и погонять тестовые пакеты. Помедитировать над выводом. Не знаю даже, что тут ещё можно посоветовать :(


"Как поделить два канала?"
Отправлено Alexander Morya , 29-Мрт-03 16:23 
>На первый взгляд всё верно...
>Попробуй включить verbose mode на обоих natd, и погонять тестовые пакеты. Помедитировать
>над выводом. Не знаю даже, что тут ещё можно посоветовать :(
>

смотри! rl0 -195.24.*.*
        rl1 -212.86.*.*
после вставки правил, которые я привел выше, пакеты с адресом источника 212.86.*.* идут на выход по карточке rl0 ,которая имеет адрес 195.24.*.*
В чем  тут грабли могут быть? т.е. пакет проходит и диверт и фвд(счетчик растет) но routed(видимо) пихает его по default route


"Как поделить два канала?"
Отправлено Ilia , 29-Мрт-03 17:03 
>>На первый взгляд всё верно...
>>Попробуй включить verbose mode на обоих natd, и погонять тестовые пакеты. Помедитировать
>>над выводом. Не знаю даже, что тут ещё можно посоветовать :(
>>
>
>смотри! rl0 -195.24.*.*
>        rl1 -212.86.*.*
>после вставки правил, которые я привел выше, пакеты с адресом источника 212.86.*.*
>идут на выход по карточке rl0 ,которая имеет адрес 195.24.*.*
>В чем  тут грабли могут быть? т.е. пакет проходит и диверт
>и фвд(счетчик растет) но routed(видимо) пихает его по default route

Там что, ещё и routed запущен? Впрочем, неважно. Сам по себе routed никого никуда не пихает, как и другие демоны маршрутизации - он всего лишь удаляет/прописывает маршруты в таблицу. Ну хорошо, попробуй для проверки оставить всё, как есть, но default gateway укажи через rl1. И посмотри, что получится. Если твоё предположение верно, у пользователей одной локалки доступ появится, а у другой пропадёт.


"Как поделить два канала?"
Отправлено Alexander Morya , 29-Мрт-03 17:19 
>Там что, ещё и routed запущен? Впрочем, неважно. Сам по себе routed
>никого никуда не пихает, как и другие демоны маршрутизации - он
>всего лишь удаляет/прописывает маршруты в таблицу. Ну хорошо, попробуй для проверки
>оставить всё, как есть, но default gateway укажи через rl1. И
>посмотри, что получится. Если твоё предположение верно, у пользователей одной локалки
>доступ появится, а у другой пропадёт.
так и случается (пробовал я уже менять дефаулт роут)у одних появляется у других пропадает


"Как поделить два канала?"
Отправлено Fill , 01-Апр-03 10:57 
У меня та же задача с успехом решена.
Правила идут следующим образом:
1. divert на все специфические (местные) ресурсы;
2. диверт всех остальных пакетов для определенной внутренней сети через альтернативного прова (не defaulrouter)  - у тебя - ipfw 3 add divert 8778 ip from 10.0.2.0/24 to any out (попробуй без out на конце);
3. диверт всех остальных пакетов на прова по-умолчанию (без out на конце)
4. Правила fwd:
add fwd $g_rl1 ip from $ip_rl1 to any out
add fwd $g_rl2 ip from $ip_rl2 to any out
Обрати внимение на out.
5. Обратный диверт:
add divert $port_for_rl1 ip from any to $ip_rl1
add divert $port_for_rl1 ip from any to $ip_rl2

И все работает. Даже с 3 провами.

P.S. если не заработает - для эксперимента выключи routed.


"Как поделить два канала?"
Отправлено Alexander Morya , 01-Апр-03 11:12 
>У меня та же задача с успехом решена.
>Правила идут следующим образом:
>1. divert на все специфические (местные) ресурсы;
>2. диверт всех остальных пакетов для определенной внутренней сети через альтернативного прова
>(не defaulrouter)  - у тебя - ipfw 3 add divert
>8778 ip from 10.0.2.0/24 to any out (попробуй без out на
>конце);
>3. диверт всех остальных пакетов на прова по-умолчанию (без out на конце)
>
>4. Правила fwd:
>add fwd $g_rl1 ip from $ip_rl1 to any out
>add fwd $g_rl2 ip from $ip_rl2 to any out
>Обрати внимение на out.
>5. Обратный диверт:
> add divert $port_for_rl1 ip from any to $ip_rl1
> add divert $port_for_rl1 ip from any to $ip_rl2
>
>И все работает. Даже с 3 провами.
>
>P.S. если не заработает - для эксперимента выключи routed.

Это все ясно...я уже стал гуру в вопросах policy routing)) Проблема у меня оказалась в другом(( Что то глючит...У меня пакет после диверта больше не попадает в файрвольные правила а сразу передается по default route. Вот что оказалось истинной проблемой...второй раз в правила файрвола на фвд он не попадает..Кто мне может подсказать, что это может быть?
P.S.Кстати я наверное не прав про routed... никаких дополнительных программ маршрутизатизации дополнительно не ставилось..там то что ставит фря по умолчанию(извините не знаю что во фрибсд отвечает за маршрутизацию)


"Как поделить два канала?"
Отправлено Fill , 01-Апр-03 15:07 
1 - Последовательность правил, которую я тебе указал рабочая.
2 - Используй сквозную нумерацию правил.
3 - Опиши, пожалуйста, как ты считаешь, как пакет от твоего клиента должен идти на альтернативного провайдера. Только подробно.
4 - Опиши также как пакет идет на шлюз по умолчанию через НАТ. тоже подробно.

Если ты правильно все понимаешь и правильно написал правила - все должно работать.




"Как поделить два канала?"
Отправлено Fill , 01-Апр-03 15:09 
1 - Последовательность правил, которую я тебе указал рабочая.
2 - Используй сквозную нумерацию правил.
3 - Опиши, пожалуйста, как ты считаешь, как пакет от твоего клиента должен идти на альтернативного провайдера. Только подробно.
4 - Опиши также как пакет идет на шлюз по умолчанию через НАТ. тоже подробно.

Если ты правильно все понимаешь и правильно написал правила - все должно работать.
    Если что - оставь как с тобой связаться. Чем смогу - помогу.




"http://www.artifact.spb.ru/labs/short/2-channels-managment-FreeBSD.sht"
Отправлено M , 29-Мрт-03 17:50 
>Ребята! Если можете подскажите! Ситуация - есть роутер freeBSD 4.5 на нем
>подключение на 2х провайдеров - ed0 и rl0. И есть 2е
>локальные сети 10.0.0.0/24 и 10.0.2.0/24 .Задача - сделать так чтобы одна
>из подсетей в интернет шла через первого провайдера и !!! видела
>локальные ресурсы второго!!!! и соответственно вторая сеть шла в инет через
>второго и видела локальные ресурсы первого. Под локальными ресурсами понимаются mp3
>итд доступные только для клиентов этого провайдера. Помогите плз!!! Уже неделю
>мучусь!!!

http://www.artifact.spb.ru/labs/short/2-channels-managment-F...


"http://www.artifact.spb.ru/labs/short/2-channels-managment-F..."
Отправлено Ilia , 29-Мрт-03 20:20 
>>Ребята! Если можете подскажите! Ситуация - есть роутер freeBSD 4.5 на нем
>>подключение на 2х провайдеров - ed0 и rl0. И есть 2е
>>локальные сети 10.0.0.0/24 и 10.0.2.0/24 .Задача - сделать так чтобы одна
>>из подсетей в интернет шла через первого провайдера и !!! видела
>>локальные ресурсы второго!!!! и соответственно вторая сеть шла в инет через
>>второго и видела локальные ресурсы первого. Под локальными ресурсами понимаются mp3
>>итд доступные только для клиентов этого провайдера. Помогите плз!!! Уже неделю
>>мучусь!!!

>http://www.artifact.spb.ru/labs/short/2-channels-managment-F...

Это и ежу понятно. У него задача, к сожалению, более сложная (см. самый первый постинг).


"http://www.artifact.spb.ru/labs/short/2-channels-managment-F..."
Отправлено Ilia , 29-Мрт-03 20:23 
"Ведь решить проблему распределения трафика между каналами можно решить с помощью связки системы NAT и Source Routing (маршрутизация по источнику)."

...и к тому же, у этих ребят проблемы с терминами - это называется "policy routing".


"http://www.artifact.spb.ru/labs/short/2-channels-managment-F..."
Отправлено warlock , 01-Апр-03 12:25 
>"Ведь решить проблему распределения трафика между каналами можно решить с помощью связки
>системы NAT и Source Routing (маршрутизация по источнику)."
>
>...и к тому же, у этих ребят проблемы с терминами - это
>называется "policy routing".

И к стати что описано в статье по поводу реальных адресов не работает
ipfw add fwd 212.1.1.254 ip from 212.1.2.0/24 to any -- этого правила недостаточно

через natd все прекрасно