Страница 1 из 1

балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-29 20:42:53
Гость
Добрый день.
Стала передо мной такая задача: есть вэб-сервер под управление FreeBSD 7.2, на нём 2 сетевые карты, обе смотрят в роутеры (разные). Иногда на этом сервере бывают большие всплески трафа, так что одного канала нехватает. Нужно настроить такую конфигурацию, что бы в таких случаех весь "избыточный" траф роутился на второй интерфейс.
Как я себе это представляю, нужно создать адресный пул в ПФ, сделать очередь с ограничением по полосе и написать какой-то тригер, что бы по достижении лимита запускался из ПФа и всем новым клиентам отдавал контент через второй интерфейс. Проблема в том, что я не знаю, как заставить ПФ роутить траф на сторону вместо того что б рубать все новые пакеты при заполнении очереди.
Посоветуйте, пожалуйста где почитать и правильно ли вобще это делать ПФом, может быть есть более "правильный" способ?

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-29 20:49:38
Гость
запустите по поиск по форуму и гуглу
тема не тривиальна

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 3:58:45
Гость
Гость писал(а):запустите по поиск по форуму и гуглу
тема не тривиальна
Именно )
Потому я и не поленился создать здесь эту тему. Поверьте, мне много менее лениво найти ответ в гугле, но...
Итак, любые идеи по сабжу?

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 8:08:49
iye
nginx ?

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 14:52:16
Гость
iye писал(а):nginx ?
А можно по-подробнее, как нгинксом рулить _исходящий_ траф на два локальных интерфейса, да ещё и монитрить кол-во трафа на каждый из каналов?

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 15:08:14
iye
Логично предположить что исходящий трафик пойдет по тому же что и входящий ) Или вы думаете что можно получить запрос на одном адресе а отправить ответ с другого ? )

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 15:31:21
Гость
iye писал(а):Логично предположить что исходящий трафик пойдет по тому же что и входящий ) Или вы думаете что можно получить запрос на одном адресе а отправить ответ с другого ? )
Я так не думаю.
Сама идея мне принципиально ясна, только не понятно как передавать запросы на второй бэкенд в зависимости от загруженности каналов? Самое приближенное, что можно сделать, это выставить proxy_next_upstream timeout, т.е. когда уже поздно что-то рулить, задача как раз в том что бы не допустить таймаутов, вовремя отследить рост трафа и всё лишнее скинуть на второй канал.

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 15:33:49
Гость
Также приветсвуются абсолютно любые способы реализации сабжа, не имеющее отношение к Фре, в том числе на Линухах и на железках (если знаете такую, то название или сцылку плз).

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 15:42:31
Гость
Как я себе это представляю, нужно создать адресный пул в ПФ, сделать очередь с ограничением по полосе и написать какой-то тригер, что бы по достижении лимита запускался из ПФа и всем новым клиентам отдавал контент через второй интерфейс.
ваша наивность умилят

с чего вы взяли что вы можете просто так брать и перекидывать сесси на другой интерфейс?
взяли входящий пакет рубанули и перекинули на другой интерфейс? гм
почитайте основы сетевых технологий
так же
почитайте о BGP и о том как это делаеться на цисках

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 15:48:11
iye
Если уж совсем разжевать то я вижу 2 варианта:
а)
1) берем в аренду машину в автономке
2) Ставим на нее энжин х
3) Прописываем днс на этот сервак а бэкбонами в энжине - 2 адреса через ваши разные каналы
б)получаем автономку

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 16:18:52
Гость
Гость писал(а):с чего вы взяли что вы можете просто так брать и перекидывать сесси на другой интерфейс?
взяли входящий пакет рубанули и перекинули на другой интерфейс? гм
Просто так не могу.
Могу, нарпимер вот так: http://www.openbsd.org/faq/pf/pools.html#outgoing
Но это равномерное распределение. Вопрос был в том, как сливать _весь_ траф на второй канал по событию (например, загрузка первого канала на N Mb).
почитайте основы сетевых технологий
так же
почитайте о BGP и о том как это делаеться на цисках
Сцылку можно про циски? Какие модели?

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 16:22:14
Гость
iye писал(а):Если уж совсем разжевать то я вижу 2 варианта:
а)
1) берем в аренду машину в автономке
2) Ставим на нее энжин х
3) Прописываем днс на этот сервак а бэкбонами в энжине - 2 адреса через ваши разные каналы
б)получаем автономку
ОК, а как на счёт мониторинга загрузки каналов и распределения запросов по бэкбонам в зависимости от загрузки?

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 16:27:14
Гость
например, загрузка первого канала на N Mb
ALTQ с одной из стратегий

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2009-12-30 18:00:19
iye
Гость писал(а):[ОК, а как на счёт мониторинга загрузки каналов и распределения запросов по бэкбонам в зависимости от загрузки?
кактус, заббикс,тупо баннер счетчика ...мешок вариантов. Мож чего сам энджин предоставляет - почитайте я думаю найдете то что вам нужно.

Re: балансировка исходящего трафика по загруженности канала

Добавлено: 2010-01-01 14:24:24
Гость
Во-первых всех с Новым Годом!
Во-вторых, в продолжение разговора, я слышал о такой конфигурации, когда имея на одном сервере две сетевухи, одна из которых смотрит непосредственно на роутер, а другая на тот же роутер, но через свитч, можно использовать оба канала, как один прозрачно для приложений, т.е. например можно принимать запрос с паблик ИП через одно подключение и отвечать клиенту с того же ИП,но уже через второе. Или подключать использование второго подключения только при определённых условиях, например превышение порога загрузки первого канала. Я точно знаю, что такие схемы (или похожие) существуют и работают (не уверен, по-моему на линухе), как замутить такое же на Фре?