web-dev-qa-db-ja.com

パケットをドロップし、遅延を引き起こし、データを破損するようにルーターを構成する

ネットワークを介してリクエストを送受信する際のパフォーマンスの低下を意図して設計された環境を設定した経験がある人はいるのではないかと思っていました。私はアプリケーションを開発していますが、非常にパフォーマンスの低いネットワーク上でアプリケーションを堅牢にしたいと考えています。次のようにルーターを構成できるかどうか誰かが知っていますか?

  1. 断続的にパケットをドロップします
  2. パケットに断続的に遅延を導入する
  3. パケット内の破損したデータ(TCPレイヤーがこのタイプの問題をキャッチするため、パケットを開き、データを変更し、チェックサムを更新する必要があるため、これは必要ありません)

ルーターで不可能な場合、ルーターとして機能するようにコンピューターを構成してこれを行うことは可能でしょうか?

どうもありがとう!

13
Mark

Linuxボックスをルーターとして使用する場合、netfilterには、パケットトラフィックをいじるためのさまざまな方法があります。

randomモジュールを使用すると、パケットをランダムにドロップできます。たとえば、これ:

iptables -A FORWARD -m random --average 10 -j DROP

ルーターは平均10%の割合でパケットをランダムにドロップします。

XORターゲットを使用してランダムパケットを破壊することもできます。

iptables -A FORWARD -m random --average 1 -j XOR --key "junktoxortomypacket"

指定された文字列から派生したキーとXORすることにより、転送されたパケットの1%を破損します。

17
Steven Monday

WANem を使用して、ドイツとインド間のWAN)のネットワーク状態をシミュレートしました。WANemは起動可能なCDまたは仮想アプライアンスとして出荷されます。起動するだけです。目的のネットワークプロパティを構成し、トラフィックをルーティングします。公式の説明を引用します。

WANemはワイドエリアネットワークエミュレーターであり、LAN環境でのアプリケーション開発/テスト中にワイドエリアネットワーク/インターネットの実際の体験を提供することを目的としています。通常、アプリケーション開発者はLAN上でアプリケーションを開発しますが、その目的は、クライアントがWANまたはインターネットを介して同じものにアクセスすることです。WANemを使用すると、アプリケーション開発チームは透過的なセットアップを行うことができます。 WANネットワーク遅延、パケット損失、パケット破損、切断、パケットの並べ替え、ジッタなどの特性をシミュレートするために使用できるアプリケーションゲートウェイ。WANemを使用してワイドエリアネットワークの状態をシミュレートできます。データ/音声トラフィック用であり、広く受け入れられているGPLv2ライセンスの下でリリースされます。

3
knweiss

可能であれば、アップリンクポートを10Mbpsおよび半二重に設定します。次に、ネットワーク上のホストを使用して、snotからpingを実行します。それはきちんとあなたを去勢するべきです:D

2
SpacemanSpiff