遅延や帯域幅などの要因に基づいて、さまざまなネットワーク状態をシミュレートしようとしています。 Netemは、さまざまなネットワーク状態をシミュレートするための最良の方法であることがわかりました。したがって、希望するネットワーク設定は次のようになります。
したがって、Netemボックスには2つのNICが必要であり、2つのイーサネット接続(eth0とeth1)が必要です。明確にする必要のある質問はほとんどありません。
1)サーバーとNetemボックスへのクロスケーブル接続を使用できますか?またはそれは別のVLANですか。 2)私の理解によると、クライアントはeth0にアクセスし、Netemボックスはすべてのパケットをeth1に転送し、サーバーからNetemボックスへの通信も同じです。それで、クライアントがサーバーIP(同じネットワーク)に直接接続できるのか、それともクライアントがNetemボックスIPとのみ通信して、パケットをサーバーに転送できるのかを明確にしたいですか?
this チュートリアルを参照していると思います。
Linuxブリッジを使用すると、IPを使用せずに、管理用にnetemボックスをスイッチとして使用することになります。このようにして、クライアントはサーバーと直接通信します。
サブインターフェイス(例:eth0.101)を指定しない限り、スイッチはすべてのVLANタグ付きトラフィックをそのまま転送します。
私は実際、数週間前にこれを理解する必要がありました。ネテムボックスをルーターとして使ってやりましたが、それほど重要ではないと思います。
基本的に、必要なnetem関数(それだけではありません)は、ユーザーが決定した時間だけトラフィックを保持するようにnicに指示します。トラフィックがどのようにNICに到達するかは関係ありません。そのため、説明したようにブリッジを使用できると思います。
あなたの質問から私が理解できなかったことの1つは、どちらの方向にトラフィックを遅らせたいか、または両方の方向にしたいかということでした。それほど重要ではありませんが、「アウトバウンド」NICごとに、つまりトラフィックが流れている方向ごとに、少なくとも1回はnetemコマンドを発行する必要があります。デフォルトでは、netemはインバウンドではなくアウトバウンドトラフィックにのみ影響します。
そうは言っても、必要なコマンドは次のとおりです。
tc qdisc add dev eth0 root handle 1:0 netem delay 25ms
このコマンドは、eth0を介してホストを離れるすべてのパケットに25ミリ秒の遅延をもたらします。もちろん、eth(x)番号を適切なnicに調整し、25ミリ秒を希望の遅延に調整することができます。ただし、落とし穴があります。コマンドでは、「25」と「ms」の間にスペースがないことに注意してください。それは重要です。スペースを入れるとエラーになります。
ただし、実際には、遅延でできることは他にもあります。次のように、2番目の値を入力できます。
tc qdisc add dev eth0 root handle 1:0 netem delay 25ms 10ms
これにより、トラフィックは平均25ミリ秒遅延しますが、各パケットは実際にはランダムな数ミリ秒遅延します。 15ミリ秒と35ミリ秒(25ミリ秒+/- 10ミリ秒)
Netemを「オフ」にするには、同じコマンドを発行しますが、「add」を「del」に変更します。
パケットの並べ替え、パケットのドロップ、パケットの破損、パケットの複製など、netemでできることは他にもたくさんあります。これらはすべて、ランダムであるか、実際には前のパケットと相関しています。 ここに入ることができるよりもたくさん。詳細については、 www.linuxfoundation.org/collaborate/workgroups/networking/netem またはnetemのmanページ「mannetem」を確認してください。