antonmayko писал(а): Скажите пожалуйста, а чего в Вашем скрипте не работает ограничение исходящей скорости клиента?
Позволю себе вмешаться в тему. Оно не работает. И работать не будет с вышеприведенными решениями.NiTr0 писал(а):Оно работает. А вот почему у вас не работает - смотрите в опции ядра
По одной простой причине: tc работает на ВЫХОДЕ интерфейса. Для входящего соединения это ррр, и все решения, привязанные ТОЛЬКО К РРР работают на ура. А вот для исходящего соединения ИСХОДЯЩИМ ИНТЕРФЕЙСОМ БУДЕТ ВНЕШНИЙ ИНТЕРФЕЙС сервера, и все потуги шейпить исходящий траффик на ррр ни к чему не приведут. ingress просто канал убивает на нет, без всякой привязки к параметру UPSPEED.
Потому шейпить надо на внешнем интерфейсе, только учесть, что tc работает еще и после NAT, так что если используется SNAT на внешнем интерфейсе, то фильтры по IP-адресу работать НЕ БУДУТ. Я вижу только одно решение - маркировать пакеты на ррр (iptables), а на внешнем шейпить на основе марков.
P.S. Сразу оговорюсь - я не рассматриваю варианты с псевдо-интерфейсами и патчингом ядра и iptables. Я говорю о решении с использованием стандартного HTB, который есть всегда под рукой.