Назад | Перейти на главную страницу

Регулировка пропускной способности с помощью tc qdiscs

Я пытаюсь ограничить пропускную способность между простым сервером iperf и клиентом, используя третью пассивную машину, выступающую в качестве моста. При отсутствии помех iperf возвращает полосу пропускания ~ 90 Мбит / сек. Моя цель - создать корневой qdisc, который отправляет весь неклассифицированный трафик (все) в дочерний класс HTB, где установлена ​​моя полоса пропускания, который затем направляется на листовой qdisc, где будут установлены дополнительные параметры tc, как только я заработаю. Моя реализация краткая:

sudo tc qdisc add dev $interface root handle 1: htb default 10

sudo tc class add dev $interface parent 1:0 classid 1:10 htb rate $bandwidth burst $burst

sudo tc qdisc add dev $interface parent 1:10 handle 10:0 netem #other stuff goes here

Когда этот сценарий bash реализован на мосту с $interface = eth1, $bandwidth = 500kbps, $burst = 15k, Я вижу уменьшение пропускной способности iperf, но не почти до требуемого значения (обычно ~ 5 Мбит / с).

В моем скрипте есть ошибка? Я неправильно использую пакетную переменную? Пожалуйста помоги.

ОБНОВЛЕНИЕ: после дальнейшего исследования я обнаружил, что этот контроль трафика работает нормально при применении к карте Ethernet, которая взаимодействует с СЕРВЕРОМ, но проблема возникает, когда те же команды применяются к стороне КЛИЕНТА. Это верно, когда вся установка полностью изменена.

Контроль пропускной способности HTB в tc только формы исходящий трафик, поэтому для ограничения пропускной способности между сервером и клиентом TCP-соединение, формирование должно применяться к обоим интерфейсам моста. (Спасибо 0x534B41)