Hello uanog, Есть задачка зашейпить доступ в интернет по IP адресу из сети. Сеть по-умолчанию может быть большой, например 3-4 сети /24. Есть linux с двумя интерфейсами, который выступает в данный момент как файервол, прокси, VPN сервер и т.д. Планирую все строить при помощи tc, htb. И тут появляется неястность как лучше всего разфильтровать весь трафик. Допустим мы имеем номинальную скорость в инет 2Mbit/s и хотим каждому раздать не более 128kbit/s. Допустим мы создадим класс root ограничив его максимумом tc qdisc add dev $DEV root handle 1: htb default 16 tc class add dev $DEV parent 1: classid 1:1 htb rate 2048kbit и сделамем 16 классов с одинаковыми/разными приоритетами (так ли лучше всего делать?) tc class add dev eth0 parent 1:1 classid 1:10 htb rate 128kbit ceil 128kbit prio 1 ... Вопрос заключается в следующем - как бы лучше зафильтровать пакеты в эти классы с учетом того, что - фильтровать надо по IP - для разных IP могут быть разные приоритеты. на lartc.org описан метод использования hash фильтров или все таки лучше использовать для маркировки пакетов iptables, а фильтры строить на основании этих меток? кто-то уже решал похожую задачу? в любом ли случае придется составлять n правил, где n - количество шейпируемых IP адрессов? Спасибо заранее за любые наводки, ссылки, личный опыт и т.п. -- С уважением, мазай. MAZ-RIPE mailto:rassylkaformazaj@ukr.net =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Mon, Apr 17, 2006 at 08:37:31PM +0300, Мазай wrote: М> Есть задачка зашейпить доступ в интернет по IP адресу из сети. М> Сеть по-умолчанию может быть большой, например 3-4 сети /24. М> Есть linux с двумя интерфейсами, который выступает в данный момент М> как файервол, прокси, VPN сервер и т.д. М> Планирую все строить при помощи tc, htb. И тут появляется неястность М> как лучше всего разфильтровать весь трафик. Допустим мы имеем М> номинальную скорость в инет 2Mbit/s и хотим каждому раздать не более М> 128kbit/s. М> Допустим мы создадим класс root ограничив его максимумом М> tc qdisc add dev $DEV root handle 1: htb default 16 М> tc class add dev $DEV parent 1: classid 1:1 htb rate 2048kbit М> М> и сделамем 16 классов с одинаковыми/разными приоритетами (так ли М> лучше всего делать?) М> tc class add dev eth0 parent 1:1 classid 1:10 htb rate 128kbit ceil 128kbit prio 1 М> ... если rate == ceil, ceil можно не указывать обращаю внимание еще на одну вещь - rate, это то что класс получает _всегда_, независимо от настроек вверх по дереву, а ceil - это уже клиентский максимум соответственно sum(rate по листьям) <= rate узла prio - отпределяет как будет делиться полоса выше rate и до ceil М> Вопрос заключается в следующем - как бы лучше зафильтровать пакеты в М> эти классы с учетом того, что М> - фильтровать надо по IP tc filter add dev eth0 parent <id> prio <filter-prio> u32 [match ip src <source>] [match ip dst <destination net>] flowid class:id М> - для разных IP могут быть разные приоритеты. М> на lartc.org описан метод использования hash фильтров или все таки М> лучше использовать для маркировки пакетов iptables, а фильтры М> строить на основании этих меток? кто-то уже решал похожую задачу? можно и по меткам на вкус и цвет по IP - когда легко разбить на подсети: чтобы правил filter было не очень много если поадресно - то лучше метками М> в любом ли случае придется составлять n правил, где n - количество М> шейпируемых IP адрессов? М> Спасибо заранее за любые наводки, ссылки, личный опыт и т.п. -- Best regard, Aleksander Trotsai aka MAGE-RIPE aka MAGE-UANIC My PGP key at ftp://blackhole.adamant.ua/pgp/trotsai.key[.asc] Средство от тараканов. Способ применения: тщательно втереть средство в таракана =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hello [dd] AT> если rate == ceil, ceil можно не указывать AT> обращаю внимание еще на одну вещь - rate, это то что класс AT> получает _всегда_, независимо от настроек вверх по дереву, а AT> ceil - это уже клиентский максимум AT> соответственно sum(rate по листьям) <= rate узла AT> prio - отпределяет как будет делиться полоса выше rate и до AT> ceil что будет если есть два класса, у которых rate будет настроен на 20% от канала, а ceil - 100%, но приоритеты будут разные. и в один и тот же момент времени два класса запрсят максимум? верно ли что, в этом случае класс с низшим приоритетом будет довольствоваться лишь 20%, а с высшим - 80%? [dd] AT> можно и по меткам AT> на вкус и цвет AT> по IP - когда легко разбить на подсети: чтобы правил filter AT> было не очень много AT> если поадресно - то лучше метками а как насчет производительности? ведь правил получиться действительно много... -- С уважением, мазай. MAZ-RIPE mailto:rassylkaformazaj@ukr.net =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hello Мазай, по поводу htb есть замечательная статья с графичками http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm AT>> можно и по меткам AT>> на вкус и цвет AT>> по IP - когда легко разбить на подсети: чтобы правил filter AT>> было не очень много AT>> если поадресно - то лучше метками М> а как насчет производительности? ведь правил получиться действительно М> много... по поводу tc filter вопрос еще открыт... -- С уважением, мазай. MAZ-RIPE mailto:rassylkaformazaj@ukr.net =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Tue, Apr 18, 2006 at 11:34:18AM +0300, Мазай wrote: М> Hello М> [dd] М> AT> если rate == ceil, ceil можно не указывать М> AT> обращаю внимание еще на одну вещь - rate, это то что класс М> AT> получает _всегда_, независимо от настроек вверх по дереву, а М> AT> ceil - это уже клиентский максимум М> AT> соответственно sum(rate по листьям) <= rate узла М> AT> prio - отпределяет как будет делиться полоса выше rate и до М> AT> ceil М> что будет если есть два класса, у которых rate будет настроен на 20% от М> канала, а ceil - 100%, но приоритеты будут разные. и в один и тот же М> момент времени два класса запрсят максимум? М> верно ли что, в этом случае класс с низшим приоритетом будет М> довольствоваться лишь 20%, а с высшим - 80%? навскидку не помню - надо читать доки делится само собой в соответствии с приоритетом М> AT> можно и по меткам М> AT> на вкус и цвет М> AT> по IP - когда легко разбить на подсети: чтобы правил filter М> AT> было не очень много М> AT> если поадресно - то лучше метками М> а как насчет производительности? ведь правил получиться действительно М> много... оптимизируйте packet traversal -- Best regard, Aleksander Trotsai aka MAGE-RIPE aka MAGE-UANIC My PGP key at ftp://blackhole.adamant.ua/pgp/trotsai.key[.asc] Пиво измеряется не в градусах, а в литрах. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
participants (2)
-
Alexander Trotsai
-
Мазай