
macOS と Linux プラットフォームの両方で、あるノードから別のノードに大量のデータを転送するときに、不安定なネットワーク環境で wireGuard と呼ばれる新しい VPN トンネル プロトコルの耐久性を観察したいと思います。
wireGuard は UDP で動作していることに注意してください。パケット損失がどの程度処理されるのかを知りたいと思いました。
このリモート コピー セッション中に、ネットワーク インターフェイスを設定してパケットの一定の割合をドロップする方法はありますか?
答え1
を搭載した Linux の場合iptables
、次のようになります。
iptables -A OUTPUT -m statistic --mode random --probability 0.02 -j DROP
または
iptables -A INPUT -m statistic --mode random --probability 0.02 -j DROP
ノート:
上記のコマンドは、テーブルの
OUTPUT
(またはINPUT
それぞれ) チェーンによって処理されるすべてのパケットに影響します。特定の接続のみをターゲットにするには、 (プロトコル) と (宛先ポート) などfilter
を使用するとよいでしょう。-p
--dport
iptables -A OUTPUT -p udp --dport 1234 -m …
さまざまなバリアントをテストする際は、不要なルールを積み重ねるのではなく削除することを忘れないでください。ルールを削除するには、の代わりに を使って同じ
iptables …
コマンドを呼び出します。-D
-A
よく分かりませんnftables
。私はこれを見つけました:確率に基づいてパケットをドロップするにはどうすればよいでしょうかnftables
?
macOSはわかりませんまったくpfctl
. 私の調査では、 とともに遭遇しましたdnctl
。 OSX では次のことがわかりました:パケットをランダムにドロップする方法dnctl
回答で使用されているものが、最近のmacOSで使用できるかどうかはまったくわかりません。申し訳ありません。
「macOSの部分」を別の質問に移動します(これは、アップル) 、ここでは「Linux 部分」だけを残すのが良い戦略かもしれません。