Iptablesルールによるボーレート制限

Iptablesルールによるボーレート制限

私はbusyboxオペレーティングシステムとiptablesバージョン1.4.0をサポートするD-LinkルーターDSL-2730Uを持っています。

次のコマンドを使用してホストのインターネット接続を正常にブロックしました。

IPアドレスでブロック

iptables -I  FORWARD -d 192.168.1.6 -j DROP

またはMacソース経由

iptables -I FORWARD -m mac --mac-source bc:20:a4:ff:79:80 -j DROP

今私が持っている唯一の問題は、iptablesを使用してMACアドレスを介した転送速度(アップロードとダウンロード)を30 / kbpsに制限することです。

私は次のiptablesルールを取得しようとしています。

iptables -I FORWARD -m mac --mac-source bc:20:a4:ff:79:80 -m state --state RELATED,ESTABLISHED -m limit --limit 100/second --limit-burst 30 -j ACCEPT

しかし成功はありません。

メモ:ルーターはファイルを変更、削除、または追加できません。ルータ内で bash またはスクリプトファイルを実行できません。残念ながら、この iptables バージョンは iptables connlimit モジュールもサポートしていません。

答え1

これにより、iptablesを使用して速度を制限できます。

iptables -I FORWARD -d 192.168.1.6 -j DROP
iptables -I FORWARD -d 192.168.1.6 -m limit --limit 100/sec -m state --state ESTABLISHED -j ACCEPT

しかし、「制限」は、1秒あたりのバイト数ではなくパケットを制限するため、あまり便利ではありません。 1パケット= 1500バイトと仮定すると、100パケット/秒 = 150KB/秒です。しかし、パケットサイズが小さいいくつかのプロトコルは、より遅く実行されます。これにより、突然の切断が発生する可能性があります。

ただし、ルーターでトラフィックを制限する必要がある場合、オプションはあまりありません。通常、iptablesはこれを行うルータの唯一のユーティリティです。

制限および削除ルールは正しい順序でなければなりません。最初のルールはトラフィックを制限して許可し、2番目のルールは制限を超えるトラフィックをブロックします。

答え2

制限を超えるIPアドレスをブロックするDDos-Deflateというプロジェクトがあります。これは状況を解決するのに役立ちます。

https://github.com/jgmdev/ddos-deflate

関連情報