ここで最初の質問なので、簡単に行ってください。
私は2つのパブリックインターフェイスを備えたDebianLinux5.0サーバーを持っています。アプリケーションの1つのインスタンスから1つのインターフェイスを介して、2番目のインスタンスから2番目のインターフェイスを介してアウトバウンドトラフィックをルーティングしたいと思います。いくつかの課題があります。
ボックスで2つの仮想化サーバーを実行し、それぞれを異なるインターフェイスにバインドすることもできますが、iprouteまたはiptablesを使用するなど、より簡単なソリューションを探していますか?
私のためのアイデアはありますか?よろしくお願いいたします。ご不明な点がございましたら、お気軽にお問い合わせください。
Iptables内のowner
モジュールを見たことがありますか?おそらくソースNATルールと組み合わされていますか?
これにより、UID、GID、PID、SID、およびコマンド名に基づいてOUTPUT
チェーンルールを設定できます。
最善のオプションは、各アプリケーションを異なるIPにバインドし、ソースベースのルーティングを使用して、そのソースIPから送信されるインターフェイスパケットを変更することだと思います。
一般的な考え方は、複数の並列ルーティングテーブルを作成できるということです(「iproute」にはオプションの「table」パラメーターがあります)。次に、「IP [x.x.x.x]からのものである場合は、テーブル[foo]を使用する」というルールを追加します。
そう:
私はそれらの例を具体的にテストしていませんが、過去に同様のものをうまく使用しました。
Linuxでは、アプリケーションを特定のIP(Apacheなどで使用)にバインドするためのサポートがあります。アプリケーションがこれをサポートしていない場合は、運が悪いです。
*にバインドしようとしても、特定のアプリケーションをインターフェイスにバインドするためのLinuxカーネルモジュール(必要なものであるため)を認識していません。仮想マシンを使用することは1つの可能性です。
アプリケーションのサポートがない場合に私があなたの要件に思いつくことができる最も近いものは、イーサネットインターフェイスボンディングです( http://www.cyberciti.biz/howto/question/static/linux-ethernet-bonding-driver- howto.php )。ただし、同じIPを持つ複数のインターフェイスでアプリケーションの1つのインスタンスのみを実行することになります。