Каталог

Шейпер

Немного теории:

Шейпинг — это технология, позволяющая ограничивать скорость и качество доступа в интернет.

Шейпер — это программа, осуществляющая ограничение скорости. Шейпер работает по алгоритму, который управляет очередностью пакетов данных и ограничивает скорость путем отбрасывания пакетов, не удовлетворяющих определенным заданным условиям.

Дисциплины организации очереди делятся на два вида

  • Безклассовые дисциплины организации очередей (Classless qdisc). К ним относятся: PFIFO/BFIFO, Token Bucket Filter (TBF), Stochastic Fairness Queueing (SFQ), Random Early Detection (RED) и тд. По сути, они являются именно очередями, в которых движутся пакеты. Поэтому для простоты будем называть такие qdisc просто «очередь».
  • Полноклассовые дисциплины организации очередей (Classful qdisc). К ним относятся PRIO, Class Based Queueing (CBQ), Hierarchical Token Bucket (HTB) и т.д. В дальнейшем такие qdisc будем называть просто «дисциплина». Они являются костяком для организации иерархии из очередей.

Управление пропускной способностью в Mikrotik RouterOS основано на дисциплине HTB (Hierarchical Token Bucket). Она одна из самых удобных, простых и надежных дисциплин для организации шейпера.

Возможности Mikrotik RouterOS по управлению трафиком:

  • ограничение скорости по IP-адресам, подсетям, протоколам, портам, времени суток и другим параметрам;
  • ограничение P2P трафика торрентов и приоритезация одних потоков пакетов над другими;
  • использование пиковых скоростей для быстрого WEB-браузинга; разделение канала между пользователями поровну или в других пропорциях;
  • возможность задания гарантированной скорости.

Рассмотрим несколько примеров работы HTB. Выполните в консоли New Terminal следующие команды:

Создаем основной класс ClassA с ограничением скорости 5 Мбит/с.

queue tree add name=ClassA parent=Local max-limit=5120 000

Создаем класс ClassB с ограничением скорости 1 Мбит/с. Для ClassB класс ClassA будет родительским.

queue tree add name=ClassB parent=ClassA max-limit=1024000

Добавляем лист Leaf1 с родительским классом ClassA, ограничением скорости 5 Мбит/с, гарантированной скоростью 1 Мбит/с и приоритетом 8.

queue tree add name=Leaf1 parent=ClassA max-limit=5120000 limit-at=1024000 packet-mark=packet_mark1 priority=8

Добавляем лист Leaf2 с родительским классом ClassB, ограничением скорости 1 Мбит/с, гарантированной скоростью 256 Кбит/с и приоритетом 7. Данные пакеты будут промаркированы как packet_mark2.

queue tree add name=Leaf2 parent=ClassB max-limit=1024000 limit-at=256000 priority=7 packet-mark=packet_mark2

Добавляем лист Leaf3 с родительским классом ClassB, ограничением скорости 1 Мбит/с, гарантированной скоростью 768 Кбит/с и приоритетом 8. Данные пакеты будут промаркированы как packet_mark3.

queue tree add name=Leaf3 parent=ClassB max-limit=1024000 limit-at=768000 priority=8 packet-mark=packet_mark3