The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
" Знакомство с iptables и iproute2. Часть II. "
Отправлено Аноним, 01-Сен-06 03:24 
Начну по порядку:

>Вы на форуме задавали вопрос как прикрутить connbytes к
> новым ядрам, ответа не получили, но все равно используете этот модуль в вашей статье.
с выходом нового ядра, и использованием указанных пакетов
> Значит Вы нашли решение?
проблема connbytes сама собой решилась, в указанных пакетах ошибка это была исправлена,
именно это меня и сподвигло на обновление материалла
(ни какого утаивания информации не было, не мой стиль)

>Насколько я понял, в статье серьёзная ошибка связанная с тем
>предположением, что приоритет фильтров как-то влияет на приоритет трафика.
>На самом деле приоритет фильтров для того, чтобы делать, например,
> такие вещи при фильтрации пакетов:
пример указанный Вами с одинаковым приоиритетом пакеты с меткой 1 и 2
направляет классу 1:1 что собственно и верно,
а пакеты у которых src 0.0.0.0/0 в класс 1:2

А легче всего самому убедиться, назначьте классу
маленькую скорость, сделайте 2 фильтра, одному prio 0, другому prio 1
и проверьте кто у кого кислород отбирает.

Давно дело было, боюсь соврать, но ошибки нету, да и эксперимент
тоже кажется это подтвердил... поскольку когда трафик DNS был низким, инет тормозил
в класс попадает трафик, на основание работы фильтров, теперь допустим что несколько
фильтров направляют свой трафик в один класс, возникает вопрос с какого фильтра трафик
в указанном классе имеет выше приоритет?
вот для этого и нужно указать prio для фильтра

> Скажите, а можно каким-то средством посмотреть
> сколько какому пользователю выделено полосы?
в приведенной конфигурации пользователь не ограничен скоростью, поэтому если
нет других качков то он получает максимальную скорость

А для удобства отслеживания текущей скорости использую
iftop -B -i eth0
iftop -B -i eth0 -f "host 10.10.10.xxx"

также написал скриптик с AWK который дает более наглядную
картину скоростей и тому подобнее (ниже приведены скрипты)

например
root@ISP ISP-serv]# ./rate.sh

   ****************************************************
   *  Statistic for incoming trafic's rate KByte/sek  *
   ****************************************************

TRAFFIC-TYPE    RATE    MIN-RATE   MAX-RATE
---------------------------------------------------------
ALL  : lv+nlv   121
LV   : http     0       307         409
NLV  : other    5       5           37
LV   : ftpmail  0       49          99
LV   : skype    0       74          256
LV   : p2p      52      49          460
LV   : other    0       24          460
NLV  : http     1       74          99
NLV  : ftpmail  0       11          24
NLV  : skype    0       18          62
NLV  : p2p      17      11          24
--------------------------------------------------------
        Local   : 52
        Foreign : 24
--------------------------------------------------------


[root@ISP ISP-serv]# cat rate.sh
#!/bin/bash
cd /ISP-serv
./ipr -s -d class show dev eth1 > rate.txt
awk -f rate.awk  rate.txt


[root@ISP ISP-serv]# cat rate.awk
function getKBps( rate )
{
        suffix_Kbit = index( rate, "Kbit");
        suffix_bit  = index( rate, "bit");
        KBps = 8;
        if ( suffix_Kbit > 0 )
        {
            KBps = KBps;
            suffix = suffix_Kbit;
        }
        else if ( suffix_bit > 0 )
        {
            KBps = KBps*1024;
            suffix = suffix_bit;
        }

        rate_val = substr( rate, 0, suffix );
        rate_val = rate_val / KBps;

    return rate_val;
}

BEGIN {
print "";
print "   ****************************************************";
print "   *  Statistic for incoming trafic's rate KByte/sek  *";
print "   ****************************************************";
print"";
   N=0; NLV=0; LV=0;
   traffic ["1:1"] =  "ALL  : lv+nlv \t";
   traffic ["1:10"] = "LV   : http \t";
   traffic ["1:20"] = "LV   : ftpmail\t";
   traffic ["1:30"] = "LV   : skype \t";
   traffic ["1:40"] = "LV   : p2p \t";
   traffic ["1:50"] = "LV   : other \t";

   traffic ["1:60" ] = "NLV  : http \t";
   traffic ["1:70" ] = "NLV  : ftpmail\t";
   traffic ["1:80" ] = "NLV  : skype \t";
   traffic ["1:90"]  = "NLV  : p2p \t";
   traffic ["1:100"] = "NLV  : other \t";
}

/class/     { class[N]   =$3; str_min_rate[N] =$13; str_max_rate[N] =$15;  }
/^ rate/    { str_rate[N]=$2; N=N+1; }


END  {
   printf( " TRAFFIC-TYPE \t RATE  \t MIN-RATE   MAX-RATE \n" );
   print "---------------------------------------------------------";

   for ( i=0; i < N; ++i )
   {
        name = traffic[ class[i] ];
        rate = str_rate[i];
        min_rate = str_min_rate[i];
        max_rate = str_max_rate[i];

        min_rate_val = getKBps( min_rate );
        max_rate_val = getKBps( max_rate );
        rate_val = getKBps( rate );

        if ( class[i] ==  "1:10" ||
             class[i] ==  "1:20" ||
             class[i] ==  "1:30" ||
             class[i] ==  "1:40" ||
             class[i] ==  "1:50"   )
        {
            LV = LV + rate_val;
        }
        else if ( class[i] != "1:1" )
        {
            NLV = NLV + rate_val;
        }

        if ( class[i] == "1:1" )
        {
            printf ( " %s %d \t \n", name, rate_val );
        }
        else
        {
            printf ( " %s %d  \t %d \t     %d \n", name, rate_val, min_rate_val, max_rate_val );
        }
   }

   print "--------------------------------------------------------";
   printf ( "\tLocal   : %d \n", LV );
   printf ( "\tForeign : %d \n", NLV );
   print "--------------------------------------------------------";
}

ЗЫ
Если Вы заинтересованы в управление трафиком, то предлагаю вам
посмотреть статью
http://www.dzti.edu.lv/isp-serv/index.php?l=7

возмолжно вместе скооперироваться, и сделать дистр типа LFS
только ориентированный на управление трафиком.

А у Вас не возникла задача управления трафиком который шифруется poptop-serv
для Ваших клиентов (избежать подмены ip-mac)?



 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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