私が達成したいもの:
Debianホスト上の複数の仮想マシン(virtualbox)は他のサーバーと通信します(互いにまたはホストマシンと通信しません)。すべての仮想マシンは同じ静的ネットワーク設定を持っている必要があります(ゲストの設定を変更せずに複製して使用できるように)。仮想マシンのすべてのネットワーク試行は上記のサーバーにリダイレクトする必要があります。
私の現在の設定:
- ホスト上の各VMのタブを作成し、ブリッジネットワーキングを使用してVMをそのタブに接続します。
- すべてのタブはブリッジで接続されます。ブリッジにはIPアドレスがあり、仮想マシンのゲートウェイです。
- ホストはサーバーへの専用インターフェイスとして機能します。このインターフェイスはブリッジにも接続されます。
- このインターフェイスのiptables SNATルールは、仮想マシンをサーバーに接続するために使用されます。
- iptables DNAT ルールは、すべてのトラフィックをブリッジからサーバーにリダイレクトします。
これはこれまで動作します。ただし、この設定では、仮想マシンがブリッジを介して接続されるため、同じIPアドレスを持つことはできません。蛇口からIPアドレスをSNATingしようとしましたが、成功しませんでした。
答え1
あなたできるプライベートネットワークの各ゲストにNATを設定します。まず、すべてのネットワークインターフェイスを一緒にブリッジするのをやめる必要があります(結局、すべて同じスイッチにいる場合は、自分のプライベートネットワークにいることはほとんどありません)。
その後、NATルールを設定する必要があります。おそらく動作します。しかし、おそらくそうではありません。発信ルートは機能するはずですが、戻ってくるルートには問題があります。 NATシステムは応答パケットを受信し、それを送信元192.168.0.2(またはその他)に再びNATします。次にそれをパスに渡します。パスはこれをどこに送りますか?すべてのゲストは同じIPアドレスを持ち、すべてのインターフェイスは同じアドレス/サブネットマスクを持ちます。
だから私たちはルーティングを変更する必要があります。幸いなことに、これはポリシールーティングによって可能です。
-t mangle
vnet0 などのソースポートに基づいて各ゲストにルールを追加すると、接続にタグを付けることができます。その後、ip rule
そのタグに基づいて応答を再ルーティングできます。
構成が多いですが、一度動作するとスクリプトが可能になります。効果があるかもしれません。まだテストしていません。私が正気であるかどうかにかかわらず、私は個人的にDHCPが機能するように努力します。その仕事をしなければならない次の人がどう思うか考えてみてください。 (それがどのように機能するのか忘れたら、おそらく数ヶ月以内にその人になるでしょう。)
答え2
答えは簡単です。いいえ。ネットワークの観点から見ると、同じIPを使用する複数の物理ホストを保持することと同じです。これはうまくいきません。