web-dev-qa-db-ja.com

KVM VMでパブリックIPアドレスを構成する

CentOS 6.5を実行し、インターネットに接続された1つのインターフェイス(1つのパブリックIPアドレス)を備えた物理サーバーがあります。このサーバー内には、KVMからlibvirtを介してそれぞれ1つのインターフェイスで作成された2つのVMがあります。それぞれに1つのパブリックIPアドレスを割り当てたいVMと物理サーバーとの接続。

この写真は、私が持っているものを黒で、私が欲しいものを青で示しています: Network topology

brctlを使用してLinuxブリッジを追加し、サーバーの物理インターフェイスと両方のVM仮想インターフェイスを接続するなど、さまざまな方法を試しましたが、機能せず、物理サーバーへの接続が失われました。

Linuxブリッジまたはlibvirtネットワークを自由に使用できます。

両方のVMと物理サーバーでパブリックIPアドレスを取得するにはどうすればよいですか?

12
logoff

最後に、質問の目標を達成するための適切な方法を見つけました。 libvirtネットワーキングの問題を解決できなかったため、これはLinuxブリッジを意味します。

手順:

  1. 識別KVM VMインターフェース。インターフェース名はおそらくvnet*で始まります

この例では、vnet0およびvnet1

  1. Linuxブリッジを作成するには:

    brctl addbr virbr1

  2. 物理インターフェースとKVM= VMsインターフェースを新しいブリッジに接続します:

警告:ネットワーク(SSH、Telnetなど)を介して物理サーバーに接続している場合、接続が失われます。端末または代替方法を使用します(接続を備えた他のインターフェースと同様)。

brctl addif virbr1 vnet0
brctl addif virbr1 vnet1
brctl addif virbr1 eth0
  1. IPアドレスが割り当てられていない物理サーバーインターフェイスを構成します。

CentOS 6.5では、次の内容でファイル/etc/sysconfig/network-scripts/ifcfg-eth0を編集します。

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NAME=eth0
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
  1. IPアドレスを持つように物理サーバーブリッジを構成します。

CentOS 6.5では、次の内容でファイル/etc/sysconfig/network-scripts/ifcfg-virbr1を編集します。

DEVICE=virbr1
BOOTPROTO=none
ONBOOT=yes
IPADDR=<physical_server_public_ip_address>
NETMASK=<physical_server_public_ip_netmask>
GATEWAY=<physical_server_gateway_ip_address>
NAME=virbr1
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
NM_CONTROLLED=no
DNS1=<physical_server_primary_dns_server_ip_address>
DNS2=<physical_server_secondary_dns_server_ip_address>
  1. 物理サーバーネットワークを再起動します。

service network restart

注:(インターフェースとブリッジを介して)物理サーバーのネットワーク接続を回復する必要があります。

  1. KVM VMのネットワークインターフェースを構成します。

これはVMのOSに依存します。とにかく、少なくともIPアドレス、ネットマスク、デフォルトゲートウェイを含める必要があります。明らかにDNSサーバーは設定を完了します。

これらの構成はすべて静的であり、DHCP割り当てで置き換えることができます。この場合、ブリッジのMACアドレスとKVM VMインターフェースが役立つ可能性があります。

5
logoff