私は XEN (Ubuntu 14.04 で実行) を使い始めたばかりですが、これまで特に問題はありませんでした。ブリッジを使用してネットワークを設定しましたが、これまで多くの異なるマシンでうまく機能していました。通常はどこかで答えを見つけることができますが、今回は見つからず、助けを求めています。
多数の IP で設定しようとしているクライアント VM (DomU) があり、非常に困っています。設定は次のとおりです。
ホスト マシンには 2 つの NIC があり、1 つはプライベート (10.10.10.x) xenbr0 に使用され、もう 1 つはパブリック IPS (xyz* など) xenbr1 用にブリッジされています。
/etc/networking/interfaces
以下はホストからの私のファイルです:
iface eth0 inet manual
auto xenbr0
iface xenbr0 inet static
bridge_ports eth0
address 10.10.10.112
netmask 255.255.255.0
network 10.10.10.0
broadcast 10.10.10.255
gateway 10.10.10.1
auto eth1
iface eth1 inet manual
auto xenbr1
iface xenbr1 inet manual
bridge_ports eth1
bridge_maxwait 1
クライアント VM では、2 つのブリッジ NIC も使用します/etc/networking/interfaces
。
auto eth0
iface eth0 inet static
address x.y.z.170
netmask 255.255.255.240
broadcast x.y.z.175
gateway x.y.z.161
auto eth1
iface eth1 inet static
address 10.10.10.155
netmask 255.255.255.0
broadcast 10.10.10.255
auto eth0:1
iface eth0:1 inet static
address x.y.z.162
netmask 255.255.255.240
broadcast x.y.z.175
auto eth0:2
iface eth0:2 inet static
address x.y.z.163
netmask 255.255.255.240
broadcast x.y.z.175
auto eth0:3
iface eth0:3 inet static
address x.y.z.164
netmask 255.255.255.240
broadcast x.y.z.175
etc…. up to 8 alaises.
私の xen 設定ファイルには次の内容があります:
vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]
すべてがセットアップされ、動作したら、VM からローカル IP を削除する予定です。
私はこれをベアメタルマシンから VM マシンに移動しようとしているので、エイリアスを使用しています。最終的には IPS の過剰使用に対処しますが、さまざまな理由でまだそれができません。とにかく、VM を起動すると、arping -U -I eth1 x.y.z.162
各 IP アドレスに対して などを実行しない限り、いくつかの IP のみが ping 可能です。その後、少なくとも応答しているように見えますが、ルーティングは実際には正しく機能していません。ssh して http 経由で IP を参照することはできますが、仮想サイトが正しく機能していません (つまり、1 つのサイトのみに送信され、他のサイトは無視されます)。bind を再起動しても、他のいくつかのサービスが正しく応答しません。ルーティングが正しく設定されていないかのようで、IP は応答しますが、応答しているのは実際には要求された IP ではなく、別の IP
です。ただし、これは一部の追加 IPS にのみ発生します。再起動すると、arp コマンドで修正されたルーティングが失われます。その後、Bind と VM 上の他のいくつかのサービスが機能しなくなります。arp コマンドを実行すると、再び機能します。
arping は単なる応急処置で、本当の問題を解決していないと思います。まったく同じシステムがベアメタル マシンで動作するため、問題はスイッチの設定や移行しようとしている OS ではなく、XEN ネットワークの設定にあるとほぼ確信しています。
問題をさらに切り分けるために、VMs/etc/networking/interfaces
ファイルに以下に示す、より新しい (廃止されていない IP エイリアシングではない) セットアップを使用して、複数の IP を持つクリーンな Ubuntu 14.04 ゲストをセットアップしました。
auto eth0
allow-hotplug eth0
iface eth0 inet static
address x.y.z.110
netmask 255.255.255.240
broadcast x.y.z.175
gateway x.y.z.161
iface eth0 inet static
address x.y.z 162
netmask 255.255.255.240
broadcast x.y.z.175
iface eth0 inet static
address x.y.z 163
netmask 255.255.255.240
broadcast x.y.z.175
and on with the other IPS
すべて同じ結果です。何が足りないのでしょうか? ご助力いただければ幸いです。
答え1
私は自分の問題が何であったかを把握したので、同様の問題に遭遇した人のためにここに投稿します。
私の Xen 構成では MAC アドレスを入力していませんでした。つまり、次のとおりです。
vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]
次のようなものが必要になったとき:
vif = [ 'bridge=xenbr0', 'mac=00:11:5e:5n:2c:1c,bridge=xenbr1' ]
MAC アドレスのルーティングはすぐに期限切れにならなかったので、各 IP に対してこの ARP コマンドを実行するとルーティングが修正されました。
arping -U -I eth1 x.y.z.162
VM が起動するたびに新しい MAC アドレスが割り当てられ、VM の起動時にルーティング テーブルの一部のみが更新されたと推測します。
MAC アドレスが変更されなくなったので、すべて正常です。
答え2
DomU のインターフェース設定を交換してみてください。Dom0 の設定に応じて、DomU のプライベート IP には eth0 を使用し、パブリック IP には eth1 を使用する必要があります。