Ограничение трафика

Цели:

Задачи:

Строго говоря, это отдельные задачи.

Замечание: незачем ограничивать уже полученный трафик ⇒ на отправку.

PF

Базовая статья: PF: Packet Queueing and Prioritization

PriQ

Пример:

Root Queue (2Mbps)
    Queue A (priority 1) 
    Queue B (priority 2) 
    Queue C (priority 3)
    Queue D (priority 3)

Области применения: emergency-трафик, обслуживающий трафик на загруженных каналах (например, пустые TCP ACK при скачивании; см. пояснения в конце раздела «Assigning Traffic to a Queue»

CBQ

Иерархические очереди. Аналогия: река с притоками («водная система»)

RED и ECN

TCP: саморегуляция путём выбрасывания пакета.

Проблема: переполнение очереди ⇒ рестарт почти всех TCP-соединений

Решение: выбрасывать пакеты заранее: чем полнее очередь, тем больше вероятность потери пакета

Проблема: ограничение трафика путём увеличения трафика?

Протокол ECN

Задание в /etc/pf.conf

Описание очередей:

altq on fxp0 cbq bandwidth 2Mb queue { std, ssh, ftp }
  queue std bandwidth 50% cbq(default)
  queue ssh bandwidth 25% { ssh_login, ssh_bulk }
    queue ssh_login bandwidth 25% priority 4 cbq(ecn)
    queue ssh_bulk bandwidth 75% cbq(ecn)
  queue ftp bandwidth 500Kb cbq(borrow red)
pass out on $oif from any to any tcp queue std
pass out on $oif from any to any port 22 queue(ssh_bulk, ssh_login)
pass out on $oif from any to any port 20 queue ftp

HFSC

Базовая статья: Hierarchical Fair Service Curve (HFSC). Quality of Service for FreeBSD and OpenBSD Иерархические очереди плюс:

Linux TC (первая попытка)

Базовая статья Linux Advanced Routing & Traffic Control HOWTO

LecturesCMC/UnixFirewalls2014/08_TrafficShaping (последним исправлял пользователь FrBrGeorge 2014-04-15 08:52:24)