Чи то я читати не вмію, чи то справді на безкрайніх просторах Інтернету все так запущено, але сьогодні, здавалось би, тривіальна задача рівномірної нарізки каналу на невідому кількість користувачів змусила мене досить серйозно поритися в документації.
А почалося все з того, що з початку цього тижня мене буквально задовбали скаргами на повільний Internet. Загалом це мене вже давно не дивує, бо в нашій установі якщо всі працівники синхронно зайдуть в Internet, то кожен отримає приблизно 50kbps — швидкість dial-up модема в ідеальних умовах. Ну якщо повернутися в думках за університетську парту і згадати теорію обслуговування, то можна припустити, що одночасно в глобальну мережу бажає влізти десь третина народу, тобто отримаємо десь 150-200kbps на людину.
Зовсім не дивно, що при такому розкладі, коли хтось запустить «тягнути» щось велике, то всім решта не залишиться майже нічого. В провайдерів все просто — вони точно знають який абонент яку швидкість повинен отримувати і точно знають кількість абонентів та їх сумарні потреби. В таких умовах нарізка каналу виглядає ідеально: першому — стільки, другому — стільки і т.д. Такий варіант розписаний в Інтернеті вздовж і впоперек, але мені він не підходить :-(
Справа в тому, що я маю справу з мережею, підключення до якої проводиться досить хаотично і на цей процес важко вплинути. Тому при роздачі Інтернету моя задача виглядає так: є 10 користувачів — кожен дістає 1/10 каналу, є 100 — 1/100, 500 — 1/500.
А от така конфігурація описується значно рідше, причому автори рідко вказують завдяки яким саме настройкам це досягається. Після понад півгодинного «чтива» мені все ж вдалося знайти просте і елегантне рішення, яке, як виявилося завжди було в мене буквально під носом, просто до нього немає внятної документації.
Отже реалізація:
— беремо скрипт htb.init
— пишемо конфігурацію на роздачу всім всього каналу:
RATE=25Mbit
CEIL=25Mbit
#LEAF=sfq — саме та настройка, яка забезпечує рівномірний поділ між всіма клієнтами
LEAF=sfq
PRIO=5
Коли я до цього дочитався, то завантаження скрипта, написання конфігурації і перевірка результату зайняли всього декілька хвилин.
Ось так одна неповна година змусила мій телефон замовкнути. Сподіваюся надовго...
Працює на AutoGenCMS 0.2.6