Я применил контроль пропускной способности с помощью TC и iptables, используя этот учебник по моему VPN-серверу Strongswan. Контроль пропускной способности работает нормально, ТОЛЬКО если этот конкретный клиент уже подключен. Например: на моем VPN-сервере Strongswan я пытаюсь ограничить пропускную способность сервера 10.24.24.1.
В ПРОБЛЕМА Ограничение пропускной способности будет работать, только если этот клиент подключен, а затем я запускаю скрипт пропускной способности. В противном случае, если я сначала запускаю сценарий, а затем подключается клиент, контроль пропускной способности не работает. Это какое-то требование, чтобы этот скрипт работал только для подключенных клиентов?
Мой сценарий выглядит так
ikev2=24 #eth0
echo tc qdisc del dev $main root >>tcrules
echo tc qdisc add dev $main root handle 1: htb >>tcrules
for i in {1..254}
do
##udp1194
echo iptables -I FORWARD -s 10.$ikev2.$ikev2.$i -j MARK --set-mark 1$i >> mark
echo iptables -I FORWARD -d 10.$ikev2.$ikev2.$i -j MARK --set-mark 1$i >> mark
echo tc class add dev eth0 parent 1:1 classid 1:1$i htb rate 1mbit ceil 1mbit >> tcrules
echo tc qdisc add dev eth0 parent 1:1$i sfq perturb 10 >> tcrules
echo tc filter add dev eth0 protocol ip parent 1: prio 1 handle 1$i fw flowid 1:1$i >> tcrules
done