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

Исходное сообщение
"Два ISP, маршрутизация"

Отправлено Антон , 06-Май-09 14:37 
Имеется два канала в инет
канал1 - ОГО, 1 мегабит, модем 192.168.1.1
канал2 - Билайн, 5 мегабит, модем 192.168.1.2

и есть машинка для сервера (192.168.1.3), сейчас стоит FreeBSD 7.1, но могу поставь то, что решит задачу

задача:
1)если соединение было снаружи, то пакеты отправлять на тот модем, откуда пришло соединение
2)если соединение инициировано изнутри сети, то отправлять пакеты через более быстрый канал
метод определения "быстрого" канала может быть любым
замечено, что часть хостов имеют меньшие задержки и более высокую скорость через канал1, другая часть - через канал2

сейчас через ipfw собираю хосты, с которыми есть обмен трафиком
потом bing'ом (http://en.wikipedia.org/wiki/Bing_%28program%29) меряю "быстроту" канала к данному хосту и по результату прописываю статический маршрут
но этот метод не решает первую часть задачи

проблема ведь не уникальная, должны быть готовые решения
может другая ОС умеет больше FreeBSD в данном вопросе?

з.ы. OSPF, BGP не предлагать, так как содействия провайдеров обычному клиенту не добиться


Содержание

Сообщения в этом обсуждении
"Два ISP, маршрутизация"
Отправлено Dorlas , 06-Май-09 16:17 
>2)если соединение инициировано изнутри сети, то отправлять пакеты через более быстрый канал
>
>метод определения "быстрого" канала может быть любым
>замечено, что часть хостов имеют меньшие задержки и более высокую скорость через
>канал1, другая часть - через канал2

Жму руку - Вы себе поставили (или Вам???) действительно мега-извращенную задачку...

А не проще настроить PF и round-robin balance ? Хотя думаю Вам это не подойдет - не тот размах и полет мысли :) :) :)


"Два ISP, маршрутизация"
Отправлено Tortortor , 06-Май-09 16:20 
>Жму руку - Вы себе поставили (или Вам???) действительно мега-извращенную задачку...

себе, это все дома

>А не проще настроить PF и round-robin balance ?  

в том и дело, что round-robin не устраивает



"Два ISP, маршрутизация"
Отправлено Dorlas , 06-Май-09 16:46 
>1)если соединение было снаружи, то пакеты отправлять на тот модем, откуда пришло соединение

Эта задача легко решается с помощью PF и тэгированием пакетов:

Пример:

Секция NAT файла pf.conf:
rdr on $if_ext  inet proto tcp from <sklads> to $if_ext  port {25 110} tag EXT_IF_A -> 192.168.x.y
rdr on $if_adsl inet proto tcp from <sklads> to $if_adsl port {25 110} tag EXT_IF_B -> 192.168.x.y

Секция правил:
pass in quick reply-to ( $if_ext $router_ext ) tagged EXT_IF_A keep state
pass in quick reply-to ( $if_adsl $router_adsl ) tagged EXT_IF_B keep state

И все.

Тут хоть 5 интернет каналов сделай - отвечать сервер будет через тот канал, с которого пришел пакет.

Аналогично пакеты для сервера (не PAT):
pass in on $if_adsl reply-to ($if_adsl $router_adsl) inet proto tcp to $if_adsl port 25 modulate state

В этом случае порт 25 доступен через вторичный канал (ADSL) любому адресу из Интернет.

PS: А про более быстрые маршруты - это извращение, ИМХО.

PSS: Помогать Вам в решение такой задачи будут только такие же "извращенцы" :)