* [Comm] Равное разделение трафика и наблюдение за его скоростью
@ 2014-11-16 5:53 Eugine Kosenko
2014-11-16 11:35 ` Sergey
0 siblings, 1 reply; 4+ messages in thread
From: Eugine Kosenko @ 2014-11-16 5:53 UTC (permalink / raw)
To: ALT Linux Community general discussions
Есть типичная ситуация. Два компьютера (станции), соединенных в
скоростную локальную сеть, разделяют общий доступ в Internet по
низкоскоростному EDGE/GPRS. Разделение сделано с помощью простейшего
(в одно правило) маскарадинга через iptables.
Проблема тут, однако, в том, что скорость внешнего соединения не
просто низкая, а непредсказуемо низкая. В зависимости от фаз Луны и
настроения провайдера она может меняться от 8 до 250 кбит/с.
Поэтому прежде всего стоят две задачи. Во-первых, нужно иметь
возможность постоянно контролировать скорость передачи на внешнем
интерфейсе. Во-вторых, нужно контролировать скорость передачи с каждой
станции на внешний интерфейс. Еще достаточно важно, чтобы внешний
канал просто всегда и мягко делился поровну между обеими станциями,
конечно же, при условии, что они обе претендуют на канал. Наконец
нужно видеть общий объем прокачанных с каждой из станций, хотя общее
решение для этой задачи мне примерно понятно.
Итак, уже используются iptables и iproute, которые при желании можно
настроить. Интересует, по возможности, простое решение на их основе
именно под конкретно описанную ситуацию, особенно, если учесть, что я
не имею большого опыта настройки сетей.
После быстрого вникания в iproute я понял, что при настройке
предполагается фиксированная и даже гарантированная ширина внешнего
канала. Если это так, то в самом деле достаточно разделить ее с
помощью дисциплины HTB пополам и все. Но беда ведь как раз в том, что
ширина доступного канала на текущий момент неизвестна! Зарезать канал
на какой-то низкий лимит неинтересно, так как не исключено, что именно
в данный момент мне может быть доступно больше. Я использую простую
дисциплину SFQ, которая, вроде бы, в большинстве случаев работает
именно так, как мне нужно. Однако иногда я замечаю, что полосу
начинают делить по принципу слотов. То есть, некоторое время (секунд
15-30) всю полосу захватывает одна станция, потом примерно столько же
--- вторая. И это при относительно постоянной общей скорости на
внешнем соединении. Понятно, что это тоже "поровну", но хотелось бы
именно "мягкого" деления, когда доступная полоса делится одновременно
и поровну между двумя машинами. Я хотел попробовать для решения этой
проблемы ESFQ, но как понял, в нынешних альтах использовать эту
дисциплину не рекомендуется.
Стоит ли для этих целей все же попробовать HTB (указав заведомо
большую ширину внешнего канала)? Стоит ли ради этой же задачи
попытаться освоить CBQ? Вообще говоря, сделал ли я все возможное в
этой ситуации или можно сделать что-то еще? Или может вообще нужно по
все делать по другому?
Второй момент связан со слежением за скоростью. Так как я новичок, то
попытался найти все, что относится к этой теме в Сизифе:
cban darkstat dsniff-X11 etherape flowscan ipband ipcad iptraf jnettop
tcpdump trafshow trickle ulog-acctd vnstat vnstat-server shapercontrol
Начал пробовать с iptraf и остановился пока на нем. Он достаточно
прост для новичка и дает мне именно то, что нужно. Но у него есть
недостатки. Во-первых, он привязан к интерфейсам. Поэтому я могу
видеть скорость трафика через ppp0 только в целом, без деления на
станции. Приходится из него в голове вычитать скорость трафика,
идущего через NAT с eth0, чтобы получить скорость трафика со станции,
подключенной к Internet напрямую. Это не очень удобно.
В теории я могу отделить пакеты с разных станций на уровне iptables,
но что потом делать с этим разделением? Ведь iptraf (как я понял), не
умеет анализировать поле MASK. Является ли правильным решением тут
создание виртуального сетевого устройства (по этой причине я
интересовался IMQ/IBF)? Или правильно делать (прозрачный) прокси и
вести учет на нем? А может, есть более простое решение на основе
другого инструмента?
Еще раз замечу, что важно наблюдать именно за текущей (мгновенной)
скоростью передачи данных как общую, так и в разрезе по станциям. Как
я понял, учет общего переданного трафика можно сделать просто через
iptables, и эта задача сейчас для меня не так важна.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Comm] Равное разделение трафика и наблюдение за его скоростью
2014-11-16 5:53 [Comm] Равное разделение трафика и наблюдение за его скоростью Eugine Kosenko
@ 2014-11-16 11:35 ` Sergey
0 siblings, 1 reply; 4+ messages in thread
From: Sergey @ 2014-11-16 11:35 UTC (permalink / raw)
To: ALT Linux Community general discussions
On Sunday 16 of November 2014 05:53:40 Eugine Kosenko wrote:
> Еще раз замечу, что важно наблюдать именно за текущей (мгновенной)
Важна именно мгновенная сейчас, или достаточно "5 минут назад" ?
> скоростью передачи данных как общую, так и в разрезе по станциям.
> Как я понял, учет общего переданного трафика можно сделать просто
> через iptables, и эта задача сейчас для меня не так важна.
Если достаточно "5 минут назад", то http://nfsen.sourceforge.net/
Для многих ядер в ALT есть модуль ipt_netflow, nfdump тоже есть.
--
С уважением, Сергей
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Comm] Равное разделение трафика и наблюдение за его скоростью
@ 2014-11-22 8:23 ` Anton Gorlov
2014-11-22 16:05 ` Sergey
1 sibling, 0 replies; 4+ messages in thread
From: Anton Gorlov @ 2014-11-22 8:23 UTC (permalink / raw)
To: ALT Linux Community general discussions
22.11.2014 10:18, Eugine Kosenko пишет:
> В целом работа системы понятна и для меня вполне приемлема. Увы, не
> нашел nfsen в пакетах Сизифа.
ПО вопросам сизифа вопросы лучше задавать в рассылке , посвящённой сизифу.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Comm] Равное разделение трафика и наблюдение за его скоростью
2014-11-22 8:23 ` Anton Gorlov
@ 2014-11-22 16:05 ` Sergey
1 sibling, 0 replies; 4+ messages in thread
From: Sergey @ 2014-11-22 16:05 UTC (permalink / raw)
To: ALT Linux Community general discussions
On Saturday 22 November 2014, Eugine Kosenko wrote:
> Can't locate Log.pm in @INC (you may need to install the Log module) (@INC contains: ./libexec ./installer-items /usr/local/lib/perl/5.18 /usr/local/share/perl/5.18 /usr/lib/perl5 /usr/share/perl5 /etc/perl5 /usr/lib/perl5/vendor_perl .) at libexec/NfSenRRD.pm line 39.
Что-то не так. "./libexec", как пишут, присутствует. А Log.pm должен лежать
именно там. Архив точно нормальный ? Я ставил когда-то 1.3.5, проблем не
было вроде.
--
С уважением, Сергей
a_s_y@sama.ru
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-11-22 16:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-16 5:53 [Comm] Равное разделение трафика и наблюдение за его скоростью Eugine Kosenko
2014-11-16 11:35 ` Sergey
2014-11-22 8:23 ` Anton Gorlov
2014-11-22 16:05 ` Sergey
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git