内部マルチパスゲートウェイを作成する方法

内部マルチパスゲートウェイを作成する方法

基本的に、非常にユニークなプロジェクトで、ブリッジングとNATを自分の意志に合わせて調整したいと思います。

以下の作業を簡素化しました(VM=テスト用Kali仮想マシン)。

Zoneはネットワーク名前空間、vexxxはIPリンクを使用して作成された仮想リンクです。

ZoneXはネットワークネームスペース、vexxxはIPリンクを使用して作成された仮想リンクです。

前提は、トラフィック(トラフィックの状況に応じて)をZoneXまたはZoneYに切り替え、トラフィックを変更してZoneZに転送し、最終的に物理ネットワークゲートウェイに転送できるLAN用のゲートウェイを作成することです。

さまざまな方法を試しましたが、最大の問題はレイヤ2嵐を作成することです。これは、仮想マシンで正しく機能しないか、NATネットワークネームスペース(ZoneZ)が最初のレイヤを介して再配信することです。トラフィック クライアント VM の NAT テーブル インターフェイス (時には正しくない)

主な目的は交通を複数の地域に分散させることですが、戻ってくる交通は同じルートを再利用することが重要です。次のステップは、複数のゾーンを一緒に接続して、さまざまな方法でトラフィックを変更する機能です。

***編集する

接続の例には、仮想マシン上の8.8.8.8へのDNSルックアップと8.8.8.8へのTCP要求があります。

まず、DNS要求はbrAを介してeth0、ve001、ZoneAに転送され、パケットが表示されます(iptablesを使用)。その後、ve003> ve004などでve006に転送され、NATが適用されてインターネットに送信されます。応答がZoneZ(NATゾーン)に戻ると、NATテーブルのルックアップが完了し、VMシステムのARPエントリがそのインターフェイスを指すため、パケットはve006にルーティングされます。最大の問題は、ボトムパスを通過する他のトラフィックがある場合に発生します。これは以前と同じで、ZoneAまでですが、今回はZoneYを介してve007にルーティングされ、最後にZoneZにルーティングされ、NATゲートウェイを介してインターネットにルーティングされます。ただし、この接続に対する応答を受信すると、パケットはZoneZに移動してNATテーブルでルックアップを完了し、変換され、ARPテーブルルックアップが完了し、この時点でve006を介して再配信されます。これは間違っています。元に戻りたい(この場合はve010を介して)。

私の質問は、NATテーブルが提供するインターフェイスを記録し、そのインターフェイスを介して再配信できるかどうかです。

ベストアンサー1

回避策は、新しい接続にタグを付け、そのタグをポリシールーティングに使用することです。

iptables -t mangle -A FORWARD -i ve006 -m connmark -j CONNMARK --set-mark  6
iptables -t mangle -A FORWARD -i ve010 -m connmark -j CONNMARK --set-mark 10

ip ruleテストがありますfwmark。したがって、のve006ルーティングテーブルを作成しますve010

ip route add default table ve006 via a.b.c.51 dev ve006
# .51 again, typo?
ip route add default table ve010 via a.b.c.51 dev ve010

ip rule add pref 100 iif ve998 fwmark  6 table ve006
ip rule add pref 101 iif ve998 fwmark 10 table ve010

おすすめ記事