最近サーバーをセットアップしていましたが、サーバーで使用可能なパブリックIPの1つをKVMゲストに割り当てることになっています。サーバーのセットアップは次のとおりです。
eno1-ホストのメインインターネット接続、パブリックIPで割り当て-ループバックvirbr0-KVMによって作成された仮想NICへのブリッジ
open Nebulaを使用して、ゲストマシンに割り当てられた仮想ネットワークにvirbr0を割り当て、ゲストマシンに特定の構成をセットアップしました。
ゲストマシン-/ etc/network/interfaces
auto ens3
iface ens3 inet static
address y.y.y.y
netmask 255.255.255.255
pointopoint <provided by Host provider>
gateway <provided by Host provider>
ゲスト構成が完了したら、ホストで次を実行します。
brctl addif virbr0 eno1
これを実行した後、新しく割り当てられたIPを介してゲストマシンにアクセスできました。ただし、SSHまたはOpenNebulaを介してホストにアクセスできなくなりました。
なぜこれが起こるのですか? /etc/network/interfaces
でvirbr0構成をセットアップして、ホストがクラッシュしても永続的になるようにする方法もありますか?
ホストにブリッジが必要です。今アドレスx.x.x.xを持っているとしましょう。
auto eno1
iface eno1 inet manual
auto br1
iface br1 inet static
address x.x.x.x
netmask <hostnetmask>
gateway <hostgateway>
bridge_ports eno1
bridge_stp off
bridge_maxwait 0
bridge_fd 0
これらは、起動時にネットワークを構成するための設定です。
NICが1つしかない場合は、これらの設定でホストを再起動して、ブリッジをアクティブにします。または、 screenまたはtmux でネットワークを再起動します。
デュアルNICセットアップを使用している場合は、再起動する必要はありません。nic2(eno2)のアドレスを介してマシンにSSHで接続し、次に
ifdown eno1
ip link add name br1 type bridge
ip link set dev br1 up
ip link set dev eno1 master br1
ip addr flush eno1
ifup eno1
最後に、br1ネットワークインターフェイスでゲストを起動します。
Sudo kvm -net nic -net bridge,br=br1 ...
ブリッジデバイス「virbr0:」にIPアドレスを設定する必要があります。
ip addr add y.y.y.y/32 dev virbr0
起動時に構成する詳細については、@ stefaan-ghyselsの回答を参照してください。