
私たちはすでにプライベートネットワークのユーザーが実行アドレス(NAT)を介してインターネットに接続していると述べています4
。ユーザーにアクセスを提供しますが、ユーザーの帯域幅は制限しますが、他のユーザーは制限しないように構成する必要があります。Linux router
public IP
network address translation
QoS
Internet
2
eth0:121.51.26.35
eth1:10.239.107.1
eth0
Linux Router
リンクです10Mbps
。eth1
に接続され、switch
ノード4
がに接続されましたswitch
。 1つのユーザーグループにのみ帯域幅をtc
累積使用量に制限するように設定したいと思います。 (1人のユーザーがダウンロード/アップロードする場合は必ず受け取る必要があり、3人が同時にダウンロード/アップロードする場合は必ず受け取る必要があります)2 nodes
(XyZ in picture)
3Mbps
3Mbps
1MBps
まず、この要件を満たすことができるかどうかを教えてください。では、どうすればよいですか?
以下はトポロジ図です。
答え1
HFSCやHTBなどのクラス認識qdiscを選択する必要があります。
次に、次のクラスツリーを構築する必要があります。
Root Class (10MBit)
|
\--- XyZ Class (rate 3Mbit ceil 3Mbit)
| |
| \--- Client 10 (rate 1.5Mbit ceil 3Mbit)
| \--- Client 11 (rate 1.5Mbit ceil 3Mbit)
|
\--- Client 30 (rate 3.5Mbit ceil 10Mbit)
\--- Client 40 (rate 3.5Mbit ceil 10Mbit)
そして両方のインターフェイス(アップロードとダウンロードの設定用)
HTBを使用して予測可能な結果を得るには、子アイテムの合計が常に親アイテムと同じであることを確認する必要があります。したがって、ルートには10Mbitがあり、直系の子は同じです(Xyz 3Mbit + Client30 3.5Mbit + Client40 + 3.5Mbit == 10Mbit)。同様に、XyZには3Mbitとその子Client10 + Client11があります。
数年前、私は同様のことをするスクリプトを書いていました。
https://github.com/frostschutz/FairNAT
今日は維持されていませんが、おそらくいくつかのアイデアを得ることができます。
Linuxのトラフィック調整は無視され難しい領域であり、良い文書を見つけるのは難しいです。これが変わったのかはわかりませんが…
持つhttp://lartc.org/ (WonderShaper部分は無視してください)
およびカーネルパケット転送図http://www.docum.org/docum.org/kptd/(またFAQ)
あるいは、これが複雑すぎる場合は、ESFQなどの状態の非保存qdiscがお客様のニーズに適している可能性があります。実際、ハード帯域幅制限を適用せずにクライアント間のバランスを取ろうとします。
頑張ってください。