если что то нарою, отстучу. Ну и других прошу не терять активность, тема на самом деле весьма актуальна!
Сеть
-
ihc
Re: Сеть
Все равно спасибо!
если что то нарою, отстучу. Ну и других прошу не терять активность, тема на самом деле весьма актуальна!
если что то нарою, отстучу. Ну и других прошу не терять активность, тема на самом деле весьма актуальна!
-
Mozgoved
Re: Сеть
Mozgoved
Я так и не понял почему ihc посоветова тебе использовать WRR(о нем первый раз слышу),
все это делаеться настроками htb, или я не прав?
Там куча параметров (prio или можно iptables ом трафик метить чтоб ему приоритет отдавать).
Цитата:
тема на самом деле весьма актуальна!
АГА
Я так и не понял почему ihc посоветова тебе использовать WRR(о нем первый раз слышу),
все это делаеться настроками htb, или я не прав?
Там куча параметров (prio или можно iptables ом трафик метить чтоб ему приоритет отдавать).
Цитата:
тема на самом деле весьма актуальна!
АГА

-
lcat
Re: Сеть
У меня сетьвот как работает, есть несколько ip которым можно лазить в некоторой городской сети со скоростью 16-128Kb/s.
Есть еще и несколько ip которые могут лазить как в городской сети так и в инете (скорость 4-8Kb/s).
Все это дело функционирует с помошью iptables и htb, хотья я когда анализировал как все это работает выходило так что iptables както не так пакеты маркирует, но всеже
работает все, как я и задумывал.
Вроде ситуация похожа на ту что нужно Mozgoved.
Есть еще и несколько ip которые могут лазить как в городской сети так и в инете (скорость 4-8Kb/s).
Все это дело функционирует с помошью iptables и htb, хотья я когда анализировал как все это работает выходило так что iptables както не так пакеты маркирует, но всеже
работает все, как я и задумывал.
Вроде ситуация похожа на ту что нужно Mozgoved.
-
Mozgoved
Re: Сеть
HTB нашел, уже изучаю. А вот как с помощью iptables это сделать пока найти не могу. Может пару примеров дадите?
-
Mozgoved
Re: Сеть
Единственное, зачем данной ситуации нужны iptables -- это маркировать пакеты (-j MARK) или менять поле приоритета (-j TOS, -j DSCP). Маркированные пакеты можно заворачивать либо через ip rule, либо через tc filter -- смотря что надо. В случае TOS || DSCP ты определяешь приоритет обслуживания пакетов. Я предпочитаю обходиться без iptables (лишний cs, на мой взгляд, если фильтрация не нужна) и явно через tc filter .. u32 закидывать в нужные классы. Т.о. проблемой остаётся лишь взаимодействие классов -- какую queue discipline выбрать и с какими параметрами использовать. Тут можно сказать два слова про queue disciplines.
На интерфейсах в линухе висят т.н. очереди. Очередь -- это нечто, куда приходят и откуда уходят пакеты. По умолчанию на всех интерфейсах висят очереди pfifo_fast. Как и следует из названия, FIFO -- первым пришёл, первым ушёл. Просто, без изысков.
Далее, очередей есть больше, чем один тип. Есть очереди бесклассовые и классовые. Первые (как pfifo_fast) просто висят на интерфейсе и занимаются приёмом/отправкой (enqueueing/dequeueing). Вторые -- классовые -- могут нести от нуля до k дочерних классов, формирующих дерево. В качестве листьев на таком дереве можно подвешивать также бесклассовые очереди.
Классы занимаются тем же, что и бесклассовые очереди -- принимают (в данном случае -- от родительского узла), отдают (дочерним узлам, если есть), по пути оперируя пропускной способностью, очерёдностью пакетов (больных и ветеранов -- без очереди) а также _взаимодействуя_ с соседними классами (bounded/isolated в классах CBQ -- идти строем или по одному). По классам траффик раскидывается родительскими узлами с помощью фильтров (tc filter). Эти фильтры могут работать как на основании полей ip-хидера (откуда куда как и т.п.), так и на основании другой информации (например, -j MARK от iptables).
Итого, задача твоя сводится к построению:
1. корень -- классовая очередь, CBQ или HTB
2. корневой класс -- который будет рулить дочерними, изображая из себя весь канал
3а. класс беспредельщиков -- те, кто будут жрать без очереди до 80% канала
3б. класс лимиты -- те, кто будут жрать, пока не придут беспредельщики и не завинтят лимите гайки
4. листья на классах -- SFQ, как обычно
+ механизм, как раскидывать по классам, т.е. фильтры, например, по адресам источников или их макам.
Дальше надо подумать, какие параметры какой очереди подойдут. В данном случае явно напрашивается CBQ с её bounded для 3а и 3б, и нужно сформулировать условия приоритезации для них.
Как дойдут руки, напишу скрипт -- просто сейчас утаптываю SNMPd в дистриб, потому мозг не про то думает
) Доутопчу, добавлю и такую задачку, а скрипт кину сюда.
На интерфейсах в линухе висят т.н. очереди. Очередь -- это нечто, куда приходят и откуда уходят пакеты. По умолчанию на всех интерфейсах висят очереди pfifo_fast. Как и следует из названия, FIFO -- первым пришёл, первым ушёл. Просто, без изысков.
Далее, очередей есть больше, чем один тип. Есть очереди бесклассовые и классовые. Первые (как pfifo_fast) просто висят на интерфейсе и занимаются приёмом/отправкой (enqueueing/dequeueing). Вторые -- классовые -- могут нести от нуля до k дочерних классов, формирующих дерево. В качестве листьев на таком дереве можно подвешивать также бесклассовые очереди.
Классы занимаются тем же, что и бесклассовые очереди -- принимают (в данном случае -- от родительского узла), отдают (дочерним узлам, если есть), по пути оперируя пропускной способностью, очерёдностью пакетов (больных и ветеранов -- без очереди) а также _взаимодействуя_ с соседними классами (bounded/isolated в классах CBQ -- идти строем или по одному). По классам траффик раскидывается родительскими узлами с помощью фильтров (tc filter). Эти фильтры могут работать как на основании полей ip-хидера (откуда куда как и т.п.), так и на основании другой информации (например, -j MARK от iptables).
Итого, задача твоя сводится к построению:
1. корень -- классовая очередь, CBQ или HTB
2. корневой класс -- который будет рулить дочерними, изображая из себя весь канал
3а. класс беспредельщиков -- те, кто будут жрать без очереди до 80% канала
3б. класс лимиты -- те, кто будут жрать, пока не придут беспредельщики и не завинтят лимите гайки
4. листья на классах -- SFQ, как обычно
+ механизм, как раскидывать по классам, т.е. фильтры, например, по адресам источников или их макам.
Дальше надо подумать, какие параметры какой очереди подойдут. В данном случае явно напрашивается CBQ с её bounded для 3а и 3б, и нужно сформулировать условия приоритезации для них.
Как дойдут руки, напишу скрипт -- просто сейчас утаптываю SNMPd в дистриб, потому мозг не про то думает
) Доутопчу, добавлю и такую задачку, а скрипт кину сюда.-
oxide
-
oxide
-
Mozgoved
Re: Сеть
Отвлёкся
) Накидал скриптик, который отрисовывает графики скорости на интерфейсах, как какти или mrtg, но _без_ использования перла, пхп, rrdtools, snmp (вот не заживил пока) и так далее. Скоро туда же довешу графики скорости по realms, т.е., например, из такой-то сетки в такую-то (iproute2 рулит!). Вот только что снятый пример со вполне живого DSL-сервера на базе RAD:
Скорости маленькие, но не суть -- кстати, видна работа HTB, ограничивающая клиента в 64Kbit, причём вполне корректно. Вот дочешу, сделаю пакет, чтоб можно было и отдельно юзать, и сяду подумаю
Не обещаю, но сегодня-завтра за это примусь. Просто один, а дел много
) Накидал скриптик, который отрисовывает графики скорости на интерфейсах, как какти или mrtg, но _без_ использования перла, пхп, rrdtools, snmp (вот не заживил пока) и так далее. Скоро туда же довешу графики скорости по realms, т.е., например, из такой-то сетки в такую-то (iproute2 рулит!). Вот только что снятый пример со вполне живого DSL-сервера на базе RAD:http://rad.peet.spb.ru/files/horror21.png
http://rad.peet.spb.ru/files/horror22.png
Скорости маленькие, но не суть -- кстати, видна работа HTB, ограничивающая клиента в 64Kbit, причём вполне корректно. Вот дочешу, сделаю пакет, чтоб можно было и отдельно юзать, и сяду подумаю
Не обещаю, но сегодня-завтра за это примусь. Просто один, а дел много