複数のネットワーク インターフェースの問題

複数のネットワーク インターフェースの問題

3G USB モデムが 2 つあります (または USB モデムが 1 つとその他のネットワーク インターフェイス、ethあるいはwlan)。

次のように IP ルールを作成し、それぞれにルートを追加して、両方のインターフェースを接続します。

sb="ip/subnet"
ifn="network interface (ppp0, eth0..etc)"
ipo="interface ip"

ip route add "$sb" dev "$ifn" src "$ipo" table "$tbl"
ip route add "$sb" dev "$ifn" src "$ipo"
ip route add default via "$gw" table "$tbl" 
ip rule add from "$ipo" table "$tbl"
ip rule add to "$ipo" table "$tbl"

両方のインターフェースが接続され、それぞれが独立してフルスピードで接続されます。両方のインターフェースを同時に使用してダウンロードしようとすると、問題が発生します。

  1. ターミナルを開き、最初のインターフェースでダウンロードを開始します。

     curl --interface ppp0 "$URL" -o /dev/null
    
  2. 別のターミナルを開き、2 番目のインターフェースでダウンロードを開始します。

     curl --interface ppp1 "$URL" -o /dev/null 
    

問題は、両方のコマンドを同時に実行すると両方のインターフェースが遅くなることです。最初のインターフェースは 1.5MBps の速度で開始し、次のコマンドが開始すると、最初のインターフェースの速度が低下し始めます。逆の場合も同じことが起こり、2 番目のインターフェースが最初に開始すると、最初のインターフェースが開始したときに速度が低下します。

自動負荷分散が行われるようです。カーネルパラメータrp_filterとを試してみましたarp_filter

明確に言うと、負荷分散は必要なく、同時接続のために各インターフェースが独立して実行されるだけで済みます。

ありがとう!

アップデート

各インターフェースが異なるネットワーク名前空間にある場合でも、同時に実行すると互いの速度に影響します。

関連情報