Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: [FAQ] Ограничение скорости для клиентов на Ubuntu-Server (htb.init)  (Прочитано 314263 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн TrEK

  • Автор темы
  • Активист
  • *
  • Сообщений: 738
  • good day in FolK-King life :)
    • Просмотр профиля
    • smallprogs.ru
А где строки которіе надо біло редактировать? Там не упущено ничего? имею ввиду точку с запятой!

Оффлайн vonWolf

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Есть сервак, etho смотрит в Инет(1Мбит)(получающий dhcp после pppoe от провайдера), eth1 (100Мбит)- в локалку. Возникла необходимость шейпинга. Решил использовать ntb. Погуглил, почитал, установил. Когда дошло до конфигурации возникли вопросы:
для какого интерфейса писать правила шейпига пользователей eth1-2:30.all или eth0-2:30.all?
в файле eth1-2.root RATE=100Mbit или 1Mbit? в разных источниках поразному...
можно ли юзеров задать диапазоном или для каждого отдельный файл?

Привожу конфиг
eth0
DEFAULT=30
R2Q=1

eth0-2.root
RATE=1Mbit
BURST=250k

eth0-2:10.ssh
RATE=256Kbit
CEIL=512Kbit
LEAF=sfq
RULE=*:22
PRIO=10

eth0-2:30.default
RATE=256Kbit
CEIL=512Kbit
LEAF=sfq
PRIO=30

eth1
DEFAULT=30
R2Q=1

eth1-2.root
RATE=100Mbit

eth1-2:10.admin
RATE=640Kbit
CEIL=860Kbit
LEAF=sfq
RULE=,192.168.0.40
PRIO=0

eth1-2:10.local
# Правило для локального трафика
RATE=98Mbit
CEIL=98Mbit
LEAF=sfq
# Если из локальной сети обращаются по внутреннему адресу к шлюзу, не ограничивать
RULE=192.168.0.1/24,192.168.0.1/24
# Если из локальной сети обращаются по внешнему адресу к шлюзу, не ограничивать
RULE=194.44.*.*/32,192.168.0.1/24
PRIO=10

eth1-2:10.ssh
RATE=256Kbit
CEIL=512Kbit
LEAF=sfq
RULE=*:22,
PRIO=10

eth1-2:20.inet
RATE=97kbps
CEIL=97kbps
LEAF=sfq

eth1-2:30.all
RATE=18Kbit
CEIL=512Kbit
LEAF=sfq
RULE=,192.168.0.1/24
PRIO=40

eth1-2:30.default
ATE=1Kbit
CEIL=8Kbit
LEAF=sfq
PRIO=50
« Последнее редактирование: 13 Сентября 2011, 17:18:39 от vonWolf »

Оффлайн vonWolf

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Дайте ответ пожалуйста

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Есть сервак, etho смотрит в Инет(1Мбит)(получающий dhcp после pppoe от провайдера), eth1 (100Мбит)- в локалку. Возникла необходимость шейпинга. Решил использовать ntb. Погуглил, почитал, установил. Когда дошло до конфигурации возникли вопросы:
для какого интерфейса писать правила шейпига пользователей eth1-2:30.all или eth0-2:30.all?

Для ОТДАЮЩЕГО. Т. е. для резки входящих пакетов - шейпить "eth1 (100Мбит)- в локалку"

можно ли юзеров задать диапазоном или для каждого отдельный файл?

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

eth1-2:10.local
# Правило для локального трафика
RATE=98Mbit
CEIL=98Mbit
LEAF=sfq
# Если из локальной сети обращаются по внутреннему адресу к шлюзу, не ограничивать
RULE=192.168.0.1/24,192.168.0.1/24
# Если из локальной сети обращаются по внешнему адресу к шлюзу, не ограничивать
RULE=194.44.*.*/32,192.168.0.1/24
PRIO=10

Подобное я реализовывал маркировкой пакетов с помощью IPTABLES и MARK=xxx

Оффлайн coolman

  • Участник
  • *
  • Сообщений: 156
  • :)
    • Просмотр профиля
помогите разобраться
в логах
Sep 22 19:36:29 ubuntu kernel: HTB: quantum of class 10001 is big. Consider r2q change.
Sep 22 19:36:29 ubuntu kernel: HTB: quantum of class 10010 is big. Consider r2q change.
Sep 22 19:36:29 ubuntu kernel: HTB: quantum of class 10011 is big. Consider r2q change.
Sep 22 19:36:29 ubuntu kernel: HTB: quantum of class 10012 is big. Consider r2q change.
Sep 22 19:36:29 ubuntu kernel: HTB: quantum of class 10013 is big. Consider r2q change.
Sep 22 19:36:29 ubuntu kernel: HTB: quantum of class 10001 is big. Consider r2q change.
Sep 22 19:36:29 ubuntu kernel: HTB: quantum of class 10010 is big. Consider r2q change.
Sep 22 19:36:29 ubuntu kernel: HTB: quantum of class 10011 is big. Consider r2q change.

сам скрипт:

(Нажмите, чтобы показать/скрыть)


а хочу я что бы работали приоритеты, вся скорость делилась между всеми, но если включается приоритетное правило большую часть отдавалась ей, и если все правила свободны вся скорость отдавалась что бы тому кто юзает инет, но вся проблема в том если я пишу по 50 мегабит каждому, это предел для них, они не берут остальное от других правил , но зато в логах ни каких ошибок.
eth0 в инет смотрит
eth1 в локалку

iptables

Оффлайн G-Dogg

  • Любитель
  • *
  • Сообщений: 73
  • Йа нубат
    • Просмотр профиля
Читал-читал и чуть не уснул )))
Вопрос следующий:
у меня от прова приходит 30Мб - разделено на 2 сервера.
мне нужно на одном из них ограничить канал до 4 Мб, сейчас шейпинга нет.
Поставил htb, какие файлы мне создать и что в них написать, чтобы на сервере скорость закачки не превышала 4 Мбит.
На сервере iptables, squid, ip раздает dhcp  - используется для раздачи интернетов посетителям по вай фай. Соответственно мне по пользователям делить не надо

Оффлайн vovanrus

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
задам вопрос не касающийся htb.init но касающийся tc  :) Раздаю инет, юзеры подключаются по pppoe, то есть для каждого создается ppp-интерфейс, для ограничения скорости в скрипте ip-up написаны следующие правила:
...
#Upstream shaping
        $TC qdisc add dev $PPP_IFACE root handle 2: htb default 200 r2q 100
        $TC class add dev $PPP_IFACE parent 2: classid 2:200 htb rate 1700kbit ceil 1800kbit prio 1
        $TC qdisc add dev $PPP_IFACE parent 2:200 sfq perturb 10

        #Downstream shping
        $TC qdisc add dev $PPP_IFACE handle ffff: ingress
        $TC filter add dev $PPP_IFACE parent ffff: protocol ip prio 250 u32 match ip src 0.0.0.0/0 police rate 1000kbit burst 160k drop flowid :2
...
вроде бы все работает, но этот же комп также вещает тв в локалку (12 каналов) по http на одном порту, и через некоторое время скорость у всех юзеров падает, при отключении вещания все становится нормально. По iptraf заметил что пакеты идут рывками при включенном вещании, как будто буфера или кэша какого то не хватает. В чем причина снижения скорости, ведь шейпер работает только на ppp-интерфейсах?
p.s локалка eth0, инет eth1

Оффлайн xeon_greg

  • Активист
  • *
  • Сообщений: 981
    • Просмотр профиля
а что пропускная способность интерфейса? насколько загружен канал? iftop что показывает ?  в ifconfig ошибки есть?

Оффлайн vovanrus

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
а что пропускная способность интерфейса? насколько загружен канал? iftop что показывает ?  в ifconfig ошибки есть?
eth1 и eth0 - 100мбит, из инета качают в среднем с суммарной скоростью в 8-12мбит постоянно, локальный интерфейс загружен обычно наполовину, но иногда доходит и до предела в 100мбит (как правило в таких случаях использую connlimit и выставляю ограничение подключений к порту по которому вещается телик, но обычно скорость инета падает без выставления лимита и до того как загруженность локального интерфейса доходит до 100мбит).
А что в iftop то смотреть? Вижу там только запросы от интерфейсов к тому или иному адресу.
ошибок в ifconfig не наблюдаю
eth0      Link encap:Ethernet  HWaddr 00:25:22:хх:хх:хх
          inet addr:172.ххх.ххх.ххх  Bcast:172.ххх.255.255  Mask:255.255.0.0
          inet6 addr: fe80::225:22ff:хххх:хххх/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15279418 errors:1 dropped:0 overruns:0 frame:1
          TX packets:24753597 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3559301605 (3.5 GB)  TX bytes:900268369 (900.2 MB)
          Interrupt:43 Base address:0x6000

eth1      Link encap:Ethernet  HWaddr 00:02:44:хх:хх:хх
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::202:44ff:хххх:хххх/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13874248 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9838700 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2031422162 (2.0 GB)  TX bytes:2951258452 (2.9 GB)
          Interrupt:19 Base address:0xe800

lo        Link encap:Локальная петля (Loopback)
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:109260 errors:0 dropped:0 overruns:0 frame:0
          TX packets:109260 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:42769247 (42.7 MB)  TX bytes:42769247 (42.7 MB)

ppp0      Link encap:Протокол PPP (Point-to-Point Protocol)
          inet addr:172.ххх.ххх.ххх  P-t-P:172.ххх.ххх.ххх  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1480  Metric:1
          RX packets:2013881 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2750165 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:969199078 (969.1 MB)  TX bytes:2487115266 (2.4 GB)
и далее еще в таком же виде ppp интерфейсы. В логах syslog и dmesg ошибок тоже не видно

Оффлайн G-Dogg

  • Любитель
  • *
  • Сообщений: 73
  • Йа нубат
    • Просмотр профиля
Читал-читал и чуть не уснул )))
Вопрос следующий:
у меня от прова приходит 30Мб - разделено на 2 сервера.
мне нужно на одном из них ограничить канал до 4 Мб, сейчас шейпинга нет.
Поставил htb, какие файлы мне создать и что в них написать, чтобы на сервере скорость закачки не превышала 4 Мбит.
На сервере iptables, squid, ip раздает dhcp  - используется для раздачи интернетов посетителям по вай фай. Соответственно мне по пользователям делить не надо
мне то подскажет кто?

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Читал-читал и чуть не уснул )))
Вопрос следующий:
у меня от прова приходит 30Мб - разделено на 2 сервера.
мне нужно на одном из них ограничить канал до 4 Мб, сейчас шейпинга нет.
Поставил htb, какие файлы мне создать и что в них написать, чтобы на сервере скорость закачки не превышала 4 Мбит.
На сервере iptables, squid, ip раздает dhcp  - используется для раздачи интернетов посетителям по вай фай. Соответственно мне по пользователям делить не надо
мне то подскажет кто?

Вроде бы точнее, чем тут описать уже нельзя. 16-й ответ. По-моему, в этой теме после 16-го ответа одни неувязки рассматриваются.
Поймите, НИКТО за Вас (задаром) устанавливать и настраивать ничего не будет. Если не получается - спрашивайте. Но для того, чтобы не получалось, надо хотя бы ЧТО-ТО делать, а не просить написать инструкцию для отдельного случая.

Оффлайн G-Dogg

  • Любитель
  • *
  • Сообщений: 73
  • Йа нубат
    • Просмотр профиля
Читал-читал и чуть не уснул )))
Вопрос следующий:
у меня от прова приходит 30Мб - разделено на 2 сервера.
мне нужно на одном из них ограничить канал до 4 Мб, сейчас шейпинга нет.
Поставил htb, какие файлы мне создать и что в них написать, чтобы на сервере скорость закачки не превышала 4 Мбит.
На сервере iptables, squid, ip раздает dhcp  - используется для раздачи интернетов посетителям по вай фай. Соответственно мне по пользователям делить не надо
мне то подскажет кто?

Вроде бы точнее, чем тут описать уже нельзя. 16-й ответ. По-моему, в этой теме после 16-го ответа одни неувязки рассматриваются.
Поймите, НИКТО за Вас (задаром) устанавливать и настраивать ничего не будет. Если не получается - спрашивайте. Но для того, чтобы не получалось, надо хотя бы ЧТО-ТО делать, а не просить написать инструкцию для отдельного случая.
Обожаю такие ответы! То,что там написано в 16 ответе (а это выдает гугл по запросу и перекопировано в куче блогов), я уже читал 100 раз и пробовал. Оно у меня настроено именно так, до момента ,когда идет деление на юзеров. Я не могу делить на юзеров, мне тупо надо основной канал ограничить, вот и прошу помощи, т.е. немного не допонимаю именно в этой части

Оффлайн InkVisitor

  • Участник
  • *
  • Сообщений: 190
  • Nikopol, Ukraine
    • Просмотр профиля
Обожаю такие ответы!

Рад за Вас! (это тоже сарказм)

Я не могу делить на юзеров, мне тупо надо основной канал ограничить

а по теме:
Так создать один файл на одного юзера (т. е. на весь канал). Промаркировать пакеты в iptables (типо iptables -t mangle -A FORWARD -o eth0 -d 192.168.0.0/24 -j MARK --set-mark 34689какойто-там), а в правиле на юзера (канал) вместо IP-адреса (RULE=192.168.0.1) прописать номер маркированого пакета (MARK=34689какойто-там)

P.S. Можно ещё попробовать типа RULE=192.168.0.0/24 без маркировки в iptables
« Последнее редактирование: 31 Октября 2011, 10:16:17 от InkVisitor »

Оффлайн lohmag

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
А что iptables и HTB единственные способы шейпить трафик в Linux?

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Подскажите по какому правилу можно выделять локальные ресурсы, а именно FTP сервер, который крутится на шлюзе.
Интерфейс eth0 = 100Mbit поделил на local и www. RATE в сумме равны родительским. Единственно если в файле local указать правило RATE=192.168.1.1:21 то правило не работает и доступ получается по правилам www. Но если в файле local указать правило RATE=192.168.1.0/255.255.255.0 то оно естественно перекрывает правило www файла, который имеет последователей в виде юзеров с нарезанной скоростью и соответственно они получают больше чем нужно.
Повторюсь.
Подскажите по какому правилу можно выделять локальные ресурсы? И разграничить www от local?

 

Страница сгенерирована за 0.038 секунд. Запросов: 25.