
В настоящее время я работаю над формированием трафика в Linux. У нас есть клиент, подключенный к серверу, на котором запущены nat и dhcp. Мы хотим ограничить как скорость загрузки, так и скорость скачивания клиента/клиентов.
Однако работает только ограничение на загрузку.
Ограничение на загрузку (часть скрипта) РАБОТАЕТ
tc class add dev eth1 parent 1:1 classid 1:4 htb rate 30000kbit
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.101/32 flowid 1:4
Лимит загрузки (часть скрипта)
tc class add dev eth1 parent 1:1 classid 1:4 htb rate 30000kbit
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.101/32 flowid 1:4
Единственное, что меняется в части загрузки, это «dst» на «src». Проблема в том, что когда мы заменяем часть загрузки скрипта на часть загрузки, никаких ограничений не устанавливается. Что не так?
решение1
Ваше приложение для формирования трафика работает на вашем сервере с IP-адресом 192.168.0.101. Таким образом, вы можете контролировать пропускную способность входящего трафика с помощью фильтра с src 192.168.0.101. При использовании фильтра с dst 192.168.0.101 пакеты сначала поступают на сервер, а затем на них выполняется формирование трафика, поэтому вы не можете контролировать пропускную способность исходящего трафика. Для этого вам следует использовать машину между вашим сервером и вашими пользователями для управления пропускной способностью входящего и исходящего трафика с помощью этих двух фильтров.