The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"'Умная-приоритетная' балансировка n-каналов связи..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"'Умная-приоритетная' балансировка n-каналов связи..."  +/
Сообщение от COPOKA (ok) on 06-Июн-09, 01:09 
Вот задался вопросом балансировки.  Ткните меня носом в каком направлении копать.
Что имеем.

Каналы:
1-й  канал  (входящая 1 Мбит/с)   (исходящая 5 Мбит/с)  
2-й канал ( входящая 5 Мбит/с)   (исходящая  1 Мбит/с)  
3-й канал (входящая 10 Мбит/с )  (исходящая 10 Мбит/с)

Трафик:
1: Требующие приоритета по входящей скорости.
DC & TORRENTs, HTTP, игры и прочее
2: Требующие приоритета по исходящей скорости.
трафик с определённых хостов локальной сети, от куда идёт «заливка» контента в интернет.
3: Трафик «привязанный»  к определённым каналам.
Например VoIP на 3-ем канале у меня всегда получает свои 6 Мбит/с.

Задача:
При текущей загрузке канала №3  на 90% перекидывать новые соединения на другой канал.
DC & TORRENTs, игры и прочее перекидываются  на канал №2
Трафик с upload-ом в инет перекидывается на  канал №1
VoIP остаётся на канале №3.
При загрузке канала №2 на 90%
DC & TORRENTs, игры и прочее перекидываются  на канал №1 (там они имеют больший приоритет чем upload трафик с определённых хостов )
При снижении нагрузки на канал №2  до уровня 50% новые соединения поднимаются на канале №2.
При снижении нагрузки на канал №3  до уровня 50% новые соединения поднимаются на канале №3.


Вопрос №1:
Чем и как мерить загрузку  канала?  И какие интервалы для замера лучше брать?  Возможен замер средней нагрузки за определённый период(например 5 сек.)?

Вопрос №2:
Чем и как перекидывать новые соединения на другие каналы?

P.S. В голове пока крутится -  (предположительно использовать разные таблицы маршрутизации для новых соединений)  То есть ставить метки и по этим меткам рулить.  Но как эти метки выставить в зависимости от загрузки канала?  Если метить через iptables то при смене правил надо будет перезагружать таблицы. Что разорвёт уже существующие соединения, а это не допустимо.

P.S.S. Буду рад любым предложениям и мнениям.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "'Умная-приоритетная' балансировка n-каналов связи..."  +/
Сообщение от COPOKA (ok) on 06-Июн-09, 02:29 
P.S.S.S.

Как вариант для измерения загруженности интерфейса можно использовать небольшой скриптик.

#!/bin/sh

# first option may be an interface name
IF=$1

#eth0 is a default if interface not specified
IF=${IF:=eth0}

     AWK=/usr/bin/awk
IFCONFIG=/sbin/ifconfig

SLEEP=5

first=( `$IFCONFIG $IF | $AWK '/RX bytes/ { split($2,a,":"); \
                               split($6,b,":");              \
                               print a[2], b[2]}'` )

sleep $SLEEP

$IFCONFIG $IF | $AWK -v p=$SLEEP -v r=${first[0]} -v t=${first[1]} \
                 '/RX bytes/ { split($2,a,":"); split($6,b,":");   \
                  print "RX = "(a[2]-r)/p" B/s \t TX = "(b[2]-t)/p" B/s"}'


Взял его от сюда http://www.linux.org.ru/view-message.jsp?msgid=1677885#1678209


А как дальше трафик гонять по нужным таблицам?
Думал метить нужный трафик, а потом просто сами таблицы маршрутизации менять, но как тогда быть с уже поднятыми соединениями?  Ума не прилажу.....

Выручайте чайника!!!!


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру