実行中のビットコインインスタンスの発信帯域幅を制限する方法を探していたところ、このガイドこれは、特定の宛先IPに対するトラフィックの速度を制限する方法を説明します。
tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit
tc class add dev $DEV parent 1: classid 1:1 cbq rate 512kbit allot 1500 prio 5 bounded isolated
tc filter add dev $DEV parent 1: protocol ip prio 16 u32 match ip dst 195.96.96.97 flowid 1:1
しかし、特定の宛先IPにトラフィックを制限したくなく、特定のポートに入って来るトラフィックを制限したいので見つけました。このガイド送信元ポートと宛先ポートでトラフィックを一致させる方法を教えてくれます。
tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip dport 22 0xffff flowid 10:1
tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip sport 80 0xffff flowid 10:1
2番目のスクリプトのポート一致と組み合わせた最初のスクリプトは、ポート21からのトラフィックを160kbit / sに制限する必要がある次のコマンドセットを生成します。ビットコインをポート8333に制限することは、トラフィックを送信するタイミングを決定できなかったため、テストに最適な選択ではなかったため、最初にFTPを使用して設定をテストしました。
tc qdisc add dev eth0 root handle 1: cbq avpkt 1000 bandwidth 800kbit
tc class add dev eth0 parent 1: classid 1:1 cbq rate 160kbit allot 1500 prio 5 bounded isolated
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dport 21 0xffff flowid 1:1
私が知る限り、これは800kbit / s〜160kbit / sの発信帯域幅で、eth0インターフェイスのポート21へのトラフィックを制限する必要がありますが、機能しません。
NetHogs version 0.8.0
PID USER PROGRAM DEV SENT RECEIVED
23653 rune filezilla eth0 102.609 2.978 KB/sec
FTP接続は、ポート21への2つの接続で構成されます。
$ netstat -n|grep "21 "
tcp 0 0 192.168.1.33:59967 194.192.207.26:21 ESTABLISHED
tcp 0 0 192.168.1.33:59974 194.192.207.26:21 ESTABLISHED
私は何が間違っていましたか?
関連がある場合は、Ubuntu Raringを実行しています。
答え1
1つは有限で、もう1つは「無限」という2つ以上のカテゴリが必要です。これにより、ある種類のトラフィックを制限されたカテゴリにフィルタリングし、残りを除外できます。クラスが1つしかない場合は、すべてのトラフィックが制限されます。