Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第6章 Network Configuration

本章では、libvirt ベースのゲスト仮想マシンが使用する一般的なネットワーク設定を紹介します。
Red Hat Enterprise Linux 7 では、仮想化に次のネットワークセットアップをサポートします。
  • ネットワークアドレス変換 (NAT) を使用した仮想ネットワーク
  • PCI デバイスの割り当てを使用して直接割り当てた物理デバイス
  • PCIe SR-IOV を使用して直接割り当てられた仮想機能
  • ブリッジネットワーク
外部ホストがゲスト仮想マシンのネットワークサービスにアクセスできるようにするには、NAT を有効にするか、ネットワークブリッジングを有効にするか、PCI デバイスを直接割り当てる必要があります。

6.1. libvirt を使用した NAT (ネットワークアドレス変換)

ネットワーク接続を共有する最も一般的な方法の 1 つは、ネットワークアドレス変換 (NAT) 転送 (仮想ネットワークとも呼ばれます) を使用することです。

ホストの設定

すべての標準的なlibvirt インストールでは、デフォルトの仮想ネットワークとして、仮想マシンに NAT ベースの接続が提供されます。virsh net-list --all コマンドで使用できることを確認します。

# virsh net-list --all
Name                 State      Autostart
-----------------------------------------
default              active     yes
確認できない場合は、ゲストの XML 設定ファイル (/etc/libvirtd/qemu/myguest.xml など) で以下を使用できます。
# ll /etc/libvirt/qemu/
total 12
drwx------. 3 root root 4096 Nov  7 23:02 networks
-rw-------. 1 root root 2205 Nov 20 01:20 r6.4.xml
-rw-------. 1 root root 2208 Nov  8 03:19 r6.xml
デフォルトネットワークは、/etc/libvirt/qemu/networks/default.xml から定義されます。
デフォルトのネットワークを自動的に起動するように設定します。
# virsh net-autostart default
Network default marked as autostarted
デフォルトのネットワークを起動します。
# virsh net-start default
Network default started
libvirt のデフォルトネットワークが実行すると、分離されたブリッジデバイスが表示されます。このデバイスには、物理インターフェイスが追加されていません。新しいデバイスは、NAT および IP 転送を使用して物理ネットワークに接続します。新規インターフェイスを追加しないでください。
# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.000000000000       yes
libvirt は、INPUTFORWARDOUTPUT、および POSTROUTING チェーンで virbr0 デバイスにアタッチされたゲスト仮想マシンとの間のトラフィックを許可する iptables ルールを追加します。次に、libvirtip_forward パラメーターを有効にしようとします。他のアプリケーションではip_forward が無効になる場合があるため、最善の選択肢は、以下を /etc/sysctl.conf に追加することです。
 net.ipv4.ip_forward = 1

ゲスト仮想マシンの設定

ホストの設定が完了したら、ゲスト仮想マシンは、その名前を基にして仮想ネットワークに接続できます。ゲストを 'default' の仮想ネットワークに接続するには、ゲストの XML 設定ファイル (/etc/libvirtd/qemu/myguest.xml など) で以下を使用できます。

<interface type='network'>
   <source network='default'/>
</interface>
注記
MAC アドレスの定義はオプションです。定義しない場合は、MAC アドレスが自動的に生成され、ネットワークが使用するブリッジデバイスの MAC アドレスとして使用されます。MAC アドレスを手動で設定すると、環境全体で一貫性や簡単な参照を維持したり、競合の可能性が非常に低い場合に役立つ場合があります。
<interface type='network'>
  <source network='default'/>
  <mac address='00:16:3e:1a:b3:4a'/>
</interface>