web-dev-qa-db-ja.com

OSXでパケットをランダムにドロップする方法

パケット損失を処理するために、ストリーミングアプリケーションの1つの復元力をテストしています。 Linuxマシンでは、通常、iptablesを使用して次のようなパケットをランダムにドロップします。

iptables -A INPUT -m statistic --mode random --probability 0.1 -j DROP

現在OSXを実行しているサーバーでこれをテストする必要があります。 OSXサーバーまたはMacコンピューターでパケットをランダムにドロップする方法はありますか?

/アンディ

3
Andy

探しているツールはdnctlです。マンページから引用するには:

 plr packet-loss-rate
       Packet loss rate.  Argument packet-loss-rate is a floating-point number between 0 and 1, with 0 meaning no loss, 1 meaning 100% loss.  The loss rate is internally repre-
       sented on 31 bits.

そして:

ランダムな着信IPv4およびIPv6ICMPパケットを5%の確率でドロップするには、パイプを作成します。

dnctl pipe 10 config plr 0.05
4
Teun Vink

Teun Vinkによるdnctlの使用に対する答えは機能しますが、他の構成に依存しているため、少し厄介です。このツールを調べてみると、 Xcode にはNetwork LinkConditionerという拡張子が付いていることがわかりました。 これは非常にうまく機能するこのためのGUIインターフェースです。手順については、 ここ を参照してください。

スクリプト化されたソリューションの場合、Teun'sがその方法です。

ありがとう!

3
Andy