QoS с TC qdiscs: возможно ли, чтобы ВСЕ исходящие соединения имели ограничение скорости x на уникальный IP?

Я пытаюсь настроить QoS в своем VPS, чтобы у меня могло быть любое новое исходящее соединение с уникальным IP-адресом, которое ограничено скоростью x.

Например:

  • имеют 5 общедоступных IP-адресов, запрашивающих данные из моего VPS.
  • Когда VPS отправляет данные обратно на каждый из этих IP-адресов, каждый IP получает выделенную исходящую скорость полосы пропускания в 10 Мбит / с.
  • Никогда не отбрасывайте пакеты, а ставьте их в очередь, если клиент превышает 10 Мбит / с.

Я не хочу ограничивать весь eth0-порт скоростью исходящего трафика 10 Мбит / с, я хочу, чтобы каждый отдельный публичный IP-адрес получал 10 Мбит / с.

У меня часто разные публичные IP-адреса, связанные с моим VPS, поэтому я бы предпочёл не писать правила, статические, которые заставляют меня писать индивидуально каждое правило полосы пропускания для каждого IP-адреса.

Возможно ли это с помощью TC qdiscs?

Я просмотрел то, что, по-видимому, является типичной настройкой HTB qdics, которые позволяют мне иметь фильтры и т. Д. Но, похоже, не может показаться примером или литературой, которая описывает то, что я хочу.

Я использую сервер ubuntu 14.04.

ОБНОВИТЬ

Я сделал следующее, как только понял, как TC qdiscs работает немного лучше.

команды, которые я использовал для базовой установки, которая работает довольно плавно, поскольку пакеты не отбрасываются, а скорее попадают в маркерный блок (обратите внимание: это не сильно оптимизировано, но, похоже, работает довольно хорошо):

tc qdisc add dev eth0 root handle 1: htb default 11 tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit tc class add dev eth0 parent 1: classid 1:2 htb rate 20mbit tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 1.2.3.4 flowid 1:1 tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 2.3.4.5 flowid 1:2 

Я не знаю QDISC, который будет делать это напрямую. С CBQ / HTB / HFSC в лучшем случае вы можете создать ограниченное количество классов 10 Мбит / с, а затем IP-адреса хэш-фильтров. Помимо хеш-коллизий, которые, очевидно, произойдут, это сработает.

С некоторой удачей вы можете установить такие ограничения непосредственно у источника (например, на веб-сервере).

Но если речь идет не о ограничении скорости, а в том, чтобы держать вещи честными между клиентами, может быть, вам лучше с SFQ / ESFQ. Хотя он не ограничивается, он обеспечивает своего рода баланс.