Red Hat Training

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

20.37. 仮想ネットワークの管理

本セクションでは、virsh コマンドを使用して、仮想ネットワークの管理を説明します。仮想ネットワークを一覧表示するには、以下のコマンドを実行します。
# virsh net-list
このコマンドは、以下のような出力を生成します。
# virsh net-list
Name                 State      Autostart
-----------------------------------------
default              active     yes
vnet1	             active     yes
vnet2	             active     yes
特定の仮想ネットワークのネットワーク情報を表示するには、以下を実行します。
# virsh net-dumpxml NetworkName
これにより、指定した仮想ネットワークの情報を XML 形式で表示します。
# virsh net-dumpxml vnet1
<network>
  <name>vnet1</name>
  <uuid>98361b46-1581-acb7-1643-85a412626e70</uuid>
  <forward dev='eth0'/>
  <bridge name='vnet0' stp='on' forwardDelay='0' />
  <ip address='192.168.100.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.128' end='192.168.100.254' />
    </dhcp>
  </ip>
</network>
仮想ネットワークの管理に使用するその他の virsh コマンドは以下のとおりです。
  • virsh net-autostart network-name : libvirt デーモンの起動時に自動的に起動するように network-name のマークを付けます。--disable オプションは、network-name のマークを外します。
  • virsh net-create XMLfile : 既存のファイルの XML 定義を使用して、新しい(変換)ネットワークを起動します。
  • virsh net-define XMLfile : 起動せずに既存のファイルから XML 定義を使用して新しいネットワークを定義します。
  • virsh net-destroy network-name : network-name として指定されたネットワークを Destroys します。
  • virsh net-name networkUUID : 指定した networkUUID をネットワーク名に変換します。
  • virsh net-uuid network-name : 指定した network-name をネットワーク UUID に変換します。
  • virsh net-start nameOfInactiveNetwork : 非アクティブなネットワークを起動します。
  • virsh net-undefine nameOfInactiveNetwork : ネットワークの非アクティブな XML 定義を削除します。これはネットワークの状態には影響しません。このコマンドの実行中にドメインを実行している場合は、ネットワークは実行を継続します。ただし、ネットワークは persistent ではなく一時的になります。
libvirt ドメインが使用できる仮想ネットワークを定義し、実際のネットワークデバイスにリンクする機能があります。この機能の詳細は、libvirt アップストリーム Web サイト を参照してください。仮想ネットワークのコマンドの多くはドメインに使用されるコマンドと似ていますが、仮想ネットワークに名前または UUID を付けることができます。

20.37.1. 仮想ネットワークの自動起動

virsh net-autostart コマンドは、ゲスト仮想マシンのブート時に仮想ネットワークを自動的に起動するように設定します。
# virsh net-autostart network [--disable]
このコマンドは、--disable オプションを受け付けます。これにより、autostart コマンドが無効になります。

20.37.2. XML ファイルからの仮想ネットワークの作成

virsh net-create コマンドは、XML ファイルから仮想ネットワークを作成します。libvirt で使用される XML ネットワーク形式の説明は、libvirt アップストリーム Web サイト を参照してください。このコマンドファイルは、XML ファイルへのパスです。XML ファイルから仮想ネットワークを作成するには、以下のコマンドを実行します。
# virsh net-create file

20.37.3. XML ファイルからの仮想ネットワークの定義

virsh net-define コマンドは、XML ファイルから仮想ネットワークを定義します。ネットワークは定義されただけですが、インスタンス化されません。
# virsh net-define file

20.37.4. 仮想ネットワークの停止

virsh net-destroy コマンドは、名前または UUID で指定された仮想ネットワーク(stops)を破棄します。これはすぐに有効になります。指定したネットワークを停止するには、必要なネットワークが必要です。
# virsh net-destroy network

20.37.5. ダンプファイルの作成

virsh net-dumpxml コマンドは、指定した仮想ネットワークの標準出力への XML ダンプとして仮想ネットワーク情報を出力します。--inactive を指定すると、Physical Function は関連する Virtual Function に展開されません。
# virsh net-dumpxml network [--inactive]

20.37.6. 仮想ネットワークの XML 設定ファイルの編集

以下のコマンドは、ネットワークの XML 設定ファイルを編集します。
# virsh net-edit network
XML ファイルの編集に使用するエディターは、$VISUAL または $EDITOR 環境変数により提供され、デフォルトは vi です。

20.37.7. 仮想ネットワークに関する情報の取得

virsh net-info は、ネットワークオブジェクトに関する基本的な情報を返します
# virsh net-info network

20.37.8. 仮想ネットワークに関する情報の一覧表示

virsh net-list コマンドは、アクティブなネットワークの一覧を返します。--all を指定すると、定義は含まれますが、非アクティブなネットワークも含まれます。--inactive を指定すると、アクティブではないもののみが一覧表示されます。また、--persistent を使用して、返されるネットワークをフィルタリングして、永続的なネットワークを一覧表示したり、--transient を指定して一時的なネットワークをリストしたり、--autostart を有効にして自動起動を有効にしてそのネットワークの一覧を表示し、--no-autostart を無効にして自動起動が無効になっているものを一覧表示することもできます。
注記: 古いサーバーと対話する場合、このコマンドは、プールがリストされていない、またはリストが収集される間に呼び出しの状態を変更すると、それ以上の API 呼び出しを強制します。新しいサーバーにはこの問題がありません。
仮想ネットワークを一覧表示するには、以下のコマンドを実行します。
# virsh net-list [--inactive | --all] [--persistent] [<--transient>] [--autostart] [<--no-autostart>]

20.37.9. ネットワーク UUID のネットワーク名への変換

virsh net-name コマンドは、ネットワーク UUID をネットワーク名に変換します。
# virsh net-name network-UUID

20.37.10. ネットワーク名のネットワーク UUIDへの変換

virsh net-uuid コマンドは、ネットワーク名をネットワーク UUID に変換します。
# virsh net-uuid network-name

20.37.11. 以前に定義された Inactive ネットワークの開始

virsh net-start コマンドは、アクティブではないネットワークを起動します。
# virsh net-start network

20.37.12. アクティブネットワークの設定の定義解除

virsh net-undefine コマンドは、非アクティブなネットワークの設定の定義を解除します。
# virsh net-undefine network

20.37.13. 既存のネットワーク定義ファイルの更新

# virsh net-update network ディレクティブセクション XML [--parent-index index] [[--live] [--config] | [--current]]
virsh net-update コマンドは、以下のディレクティブのいずれかを実行して、既存のネットワーク定義の指定のセクションを更新します。
  • add-first
  • add-last または add (これらは同義語)
  • delete
  • modify
このセクションは以下のいずれかになります
  • bridge
  • domain
  • ip
  • ip-dhcp-host
  • ip-dhcp-range
  • forward
  • フォワードインターフェース
  • forward-pf
  • portgroup
  • dns-host
  • dns-txt
  • dns-srv
各セクションには、変更された要素につながる XML 要素階層の連結により名前が付けられます。たとえば、ip-dhcp-host は、ネットワークの <ip> 要素内の <dhcp> 要素内に含まれる <host> 要素を変更します。
XML は、変更するタイプの完全な XML 要素のテキスト(例: <host mac="00:11:22:33:44:55' ip='1.2.3.4'/>)または完全な XML 要素が含まれるファイルの名前です。Disambiguation は、提供されたテキストの最初の文字を確認します。最初の文字が < < の場合、最初の文字が > でない場合は、使用する xml テキストを含むファイルの名前になります。--parent-index オプションは、要求された要素が(0 ベース)にある複数の親要素を指定するために使用されます。
たとえば、dhcp <ホスト> 要素は、ネットワークの複数の <ip> 要素に所属できます。parent-index が提供されない場合、最も適切な <ip> 要素が選択されます(通常は <dhcp> 要素を持つもののみ)。ただし、<ip> の特定のインスタンスが変更されます。--parent-index--live が指定されている場合には、実行中のネットワークに影響します。--config が指定されている場合は、永続的なネットワークの次回起動に影響します。--current が指定されている場合は、現在のネットワーク状態に影響します。--live および --config フラグの両方を指定できますが、--current は含まれません。フラグの指定は、--current の指定と同じです。

20.37.14. virsh でゲスト仮想マシンの移行

virsh を使用した移行に関する情報は、virsh を使用した Live KVM 移行のセクションにあります。 「virsh での KVM のライブマイグレーション」

20.37.15. ゲスト仮想マシンの静的 IP アドレスの設定

ゲスト仮想マシンが DHCP から IP アドレスを取得するように設定されているものの、予測可能な静的 IP アドレスを確保する必要がある場合は、以下の手順に従って libvirt が使用する DHCP サーバー設定を修正できます。この手順では、この変更を行うために、ゲストインターフェースの MAC アドレスを知っている必要があります。したがって、ゲストの作成後に操作を実行する必要があります。また、ゲストの作成前にゲストの MAC アドレスを決定してから、ゲスト仮想マシンの作成時に同じアドレスを手動で設定する必要があります。
また、この手順は、転送モードの「nat」、「route」 、転送モードがない libvirt 仮想ネットワークに接続するゲストインターフェースでのみ機能することに注意してください。ネットワークが forward mode="bridge" または "hostdev" で設定されている場合、この手順は機能しません。この場合、DCHP サーバーはネットワーク上の別の場所に配置されているため、libvirt の制御下ではなくなります。この場合、リモート DHCP サーバーで静的 IP エントリーを作成する必要があります。サーバーに提示されるドキュメントを表示するには、次のコマンドを実行します。

手順20.5 静的 IP アドレスの設定

この手順はホスト物理マシンで実行されます。
  1. ゲスト XML 設定ファイルの確認

    virsh domiflist guest1 コマンドを実行して、ゲストのネットワーク設定を表示します。guest1 の代わりに、仮想マシンの名前を置き換えます。テーブルが表示されます。Source 列を確認します。これは、ネットワークの名前です。以下の例では、ネットワークは default という名前です。この名前は、残りの手順と MAC アドレスに使用されます。
    # virsh domiflist guest1
    Interface  Type       Source     Model       MAC
    -------------------------------------------------------
    vnet4      network    default    virtio      52:54:00:48:27:1D
    
    
  2. DHCP の範囲を確認します。

    設定する IP アドレスは、ネットワークに指定した dhcp 範囲内になければなりません。また、ネットワーク上のその他の既存の静的 IP アドレスと競合しないようにしてください。利用可能なアドレスの範囲と、使用されるアドレスを確認するには、ホストマシンで以下のコマンドを実行します。
    # virsh net-dumpxml default | egrep 'range|host\ mac'
    
    <range start='198.51.100.2' end='198.51.100.254'/>
    <host mac='52:54:00:48:27:1C:1D' ip='198.51.100.2'/>
    
    表示される出力は例とは異なり、他の行とホストの mac 行が表示される場合があります。ゲストの静的 IP アドレスにはそれぞれ 1 行が含まれます。
  3. 静的 IP アドレスを設定します。

    ホストマシンで次のコマンドを使用します。default はネットワークの名前に置き換えます。
    # virsh net-update default add ip-dhcp-host '<host mac="52:54:00:48:27:1D" ip="198.51.100.3"/>' --live --config
    --live オプションを使用すると、この変更がすぐに有効になり、--config オプションは変更を永続化します。このコマンドは、有効な IP アドレスおよび MAC アドレスを使用していれば、まだ作成されていないゲスト仮想マシンでも機能します。MAC アドレスは、有効なユニキャスト MAC アドレスでなければなりません(6 進数の 16 進数のペアは 2 桁の数字になり ます )。libvirt が新しい乱数の MAC アドレスを作成します。の場合は、最初の 3 桁のペアに 52:54:00 を使用し、この規則に従うことが推奨されます。
  4. インターフェースを再起動します(オプション)。

    ゲスト仮想マシンが現在実行中の場合、ゲスト仮想マシンが DHCP アドレスを再要求するように強制する必要があります。ゲストが実行されていない場合は、次回起動時に新しい IP アドレスが実装されます。インターフェースを再起動するには、ホストマシンで以下のコマンドを入力します。
    # virsh domif-setlink guest1 52:54:00:48:27:1D down
    # sleep 10
    # virsh domif-setlink guest1 52:54:00:48:27:1D up
    このコマンドにより、ゲスト仮想マシンのオペレーティングシステムは、イーサネットケーブルが接続されていないと認識し、10 秒後に再度取り付けられています。多くの DHCP クライアントが IP アドレスを再要求せずにケーブルの短い接続を可能にするため、sleep コマンドは重要です。DHCP クライアントが古い IP アドレスを忘れてしまったコマンドが実行されると、新たに新たに要求するように 10 秒ほど長くなります。何らかの理由でこのコマンドが失敗した場合には、ゲストの管理インターフェースからゲストのインターフェースをリセットする必要があります。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。