Как ограничить пропускную способность сетевого интерфейса?

Например, необходимо сделать так, чтобы сервер не выдавал в Интернет больше 4 мегабит трафика, хотя скорость сетевой карты 100 мегабит. Для этого необходим пакет iproute и поддержка функций шейпинга трафика (traffic shaper) в ядре. Самая простая политика TBF как раз и ограничивает скорость всего сетевого интерфейса:
# tc qdisc add dev eth0 root tbf rate 4mbit burst 15kb latency 70ms peakrate 5mbit minburst 1540
Эта команда ограничит полосу пропускания всего сетевого интерфейса eth0 скоростью в 4mbit, но кратковременно (до заполнения буфера burst) будет позволять скорость 5mbit, при этом ожидание пакета в очереди ограничивается 70 миллисекундами. Пакеты, которые будут выходит за установленную скорость будут отбрасываться. Хочется заметить, что возможно вам понадобится увеличить параметр minburst, потому что при большом количестве маленьких пакетов значения 1540 для скорости 4Mbit может оказаться недостаточно.