GNU/Linux >> Linux の 問題 >  >> Linux

宛先ポートに基づいて異なるインターフェイスにトラフィックを出力する

もうすぐです。

アプリケーションがリターン トラフィックを認識しない実際の理由は、カーネルに組み込まれている IP スプーフィング保護のためです。つまり、リターン トラフィックはルーティング テーブルと一致しないため、ドロップされます。これは、次のようにスプーフィング保護をオフにすることで修正できます:

sudo sysctl net.ipv4.conf.wlan0.rp_filter=0

しかし、私はそれをお勧めしません。より適切な方法は、代替ルーティング インスタンスを作成することです。

<オール>
  • マークが必要です。保管してください。
  • ソース NAT も必要です。
  • 最後の DNAT は不要なので、削除できます。
  • iproute があることを確認してください パッケージがインストールされました。 ip がある場合 コマンドを実行すると、設定が完了します (実行しているように見えますが、そうでない場合は最初に取得してください)。

    /etc/iproute2/rt_tables を編集 次の行を追加して新しいテーブルを追加します:

    200 wlan-route
    

    wlan-route という名前の新しいルーティング テーブルを構成する必要があります。 デフォルト ゲートウェイを使用して、そのテーブルに条件付きでトラフィックを送信するルールを作成します。デフォルト ゲートウェイは 192.168.0.1 であると仮定します。当然、これは私の仮定だけでなく、実際のネットワークと一致する必要があります。

    ip route add default via 192.168.0.1 dev wlan0 table wlan-route
    ip rule add fwmark 0x1 table wlan-route
    

    最終的な注釈付きスクリプトは次のようになります:

    # Populate secondary routing table
    ip route add default via 192.168.0.1 dev wlan0 table wlan-route
    # Anything with this fwmark will use the secondary routing table
    ip rule add fwmark 0x1 table wlan-route
    # Mark these packets so that iproute can route it through wlan-route
    iptables -A OUTPUT -t mangle -o eth1 -p tcp --dport 443 -j MARK --set-mark 1
    # now rewrite the src-addr
    iptables -A POSTROUTING -t nat -o wlan0 -p tcp --dport 443 -j SNAT --to 192.168.0.2
    

    バハマの解決策は正しいです。ただし、これを機能させる唯一の方法は、NAT に関与する 2 つ (この場合は eth1 と wlan0) だけでなく、システム内のすべてのインターフェースの rp_filter を無効にすることであることに注意してください。

    for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f; done
    echo 1 > /proc/sys/net/ipv4/route/flush
    

    (このページの最後にある重要な注意事項を参照してください:Advanced Routing Howto -- そこに投稿されたリンクはもう存在しませんが、ウェイバック マシンで見つけました)


    Linux
    1. Centos – 2つのネットワークインターフェイスで別々のネットワークトラフィック?

    2. 2つのインターフェイス間でトラフィックを転送しますか?

    3. Unix でスクリプトをリモートで実行し、ローカルで出力を取得しますか?

    1. 別の宛先ディレクトリに gunzip するにはどうすればよいですか?

    2. コマンドと出力の異なる色

    3. シリアルポートのトラフィックを監視するにはどうすればよいですか?

    1. Linux –宛先ポートに基づいて異なるインターフェースでトラフィックを出力しますか?

    2. cp -f は cp --remove-destination とどう違うのですか?

    3. openssl passwd の出力が毎回異なるのはなぜですか?