トラフィックシェーピング Linux アップロードの問題

トラフィックシェーピング Linux アップロードの問題

現在、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 のフィルターを使用すると、パケットは最初にサーバーで受信され、次にトラフィック シェーピングが実行されるため、アップロード帯域幅を制御することはできません。これを行うには、サーバーとユーザーの間にマシンを使用して、これらの両方のフィルターでダウンロード帯域幅とアップロード帯域幅を制御する必要があります。

関連情報