20.3. トランスポートモード

リモートの管理には libvirt が以下のようなトランスポートモードをサポートします:
Transport Layer Security (TLS)

Transport Layer Security TLS 1.0 (SSL 3.1) で認証されて暗号化された TCP/IP ソケットは 通常、パブリックポート番号の内の1つでリッスンしています。これを使用するには、クライアントと サーバーの証明書を生成する必要があります。標準のポートは 16514 です。

UNIX ソケット

Unix ドメインソケットはローカルマシーン上でのみアクセス可能です。ソケットは暗号化 されておらず、認証のために UNIX 権限又は、SELinux を使用します。標準のソケット名は /var/run/libvirt/libvirt-sock/var/run/libvirt/libvirt-sock-ro (読み込み専用接続)です。

SSH

Secure Shell protocol (SSH) 接続経由でのトランスポートです。Netcat (nc パッケージ)のインストールを必要とします。 libvirt デーモン (libvirtd) がリモートマシン上で 実行している必要があります。Port 22 が SSH アクセス用に開いていなければ なりません。なんらかの ssh キー管理(例えば、ssh-agent ユーティリティ)を 使用する必要があり、そうでないとパスワードを要求されます。

ext

ext パラメータはいずれかの外部プログラム用に使用 されるものです。これは libvirt の範疇にはない手法でリモートマシンに接続をします。 このパラメータはサポートされていません。

tcp

暗号化のない TCP/IP ソケットです。実稼働使用には推奨できません。これは 通常無効になっていますが、管理者はテスト目的や、信頼できるネットワーク上で 有効にすることができます。デフォルトのポートは 16509 です。

他に指定がない場合は、デフォルトのトランスポートは tls です。
リモート URI

Uniform Resource Identifier (URI) はリモートホストに接続するために virshlibvirt により使用されます。 URI はまた、virsh コマンド用に --connect パラメータと 一緒にリモートホスト上で単独コマンドや移行を実行するのに使用されます。

libvirt URI は一般的な形式を取ります(角括弧 "[ ]" の中身はオプションの関数を示します):
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]
外部の場所を目標とする為にトランスポートモード、又はホスト名が 供給される必要があります。

リモート管理パラメータのサンプル

  • SSH トランスポート及び SSH ユーザー名 ccurran を使用して towada と言うホスト上のリモート Xen hypervisor に接続します。
    xen+ssh://ccurran@towada/
    
  • TLS を使用して towada と言う名前のホスト上のリモート Xen hypervisor に接続します。
    xen://towada/
    
  • TLS を使用してホスト towada 上のリモート Xen hypervisor に 接続します。no_verify=1 は libvirt にサーバーの証明書を 検証しないように伝えます。
    xen://towada/?no_verify=1
    
  • SSH を使用して、ホスト towada 上のリモート KVM hypervisor に 接続します。
    qemu+ssh://towada/system
    

テスト用サンプル

  • 標準でない UNIX ソケットを使用してローカルの KVM hypervisor に接続します。 この場合 Unix ソケットへの完全なパスは 明示的に供給されます。
    qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
    
  • ポート 5000 で IP アドレス 10.1.1.10 を持つ サーバーへの 暗号化のない TCP/IP 接続を 使用して libvirt デーモンへ接続します。これは、デフォルト設定を持つテストドライバーを 使用します。
    test+tcp://10.1.1.10:5000/default
    
その他の URI パラメータ

他のパラメータはリモート URI へ追記できます。以下の表 表20.1「その他の URI パラメータ」 は 認識されているパラメータを説明しています。その他のパラメータはすべて無視されます。 パラメータの値は、URI エスケープ(パラメータの前に疑問符 (?) が付けてあり、他の特殊文字は URI 形式に変換)してなければなりません。

表20.1 その他の URI パラメータ

名前 トランスポートモード 説明 使用法のサンプル
name 全てのモード リモート virConnectOpen 関数に渡される名前です。この名前は通常、リモート URI からトランスポート、ホスト名、 ポート番号、ユーザー名、及び余分のパラメータを削除したものですが、一部の複雑なケースでは、名前を明示的に 供給するのが適切な場合もあります。 name=qemu:///system
command ssh と ext 外部コマンドです。外部のトランスポートにはこれが必須となります。ssh 用には デフォルトは ssh です。コマンドの為に PATH が検索されます。 command=/opt/openssh/bin/ssh
socket unix と ssh UNIX ドメインソケットへのパスです。これはデフォルトを上書きします。 ssh トランスポートには、これがリモート netcat コマンドに渡されます(netcat 参照)。 socket=/opt/libvirt/run/libvirt/libvirt-sock
netcat ssh
netcat コマンドはリモートシステムに接続するのに 使用できます。デフォルトの netcat パラメータは nc コマンドを 使用します。SSH トランスポート用には、libvirt が以下の形式を使用して SSH コマンドを 構築します:
command -p port [-l username] hostname netcat -U socket
portusername、及び hostname パラメータはリモート URI の一部として 指定できます。commandnetcat、及び socket は他の追加のパラメータ 由来のものです。
netcat=/opt/netcat/bin/nc
no_verify tls ゼロ以外の値にセットしてある場合、これはサーバーの証明書のクライアントチェックを無効に します。クライアントの証明書か、IP アドレスのサーバーチェックを無効にするには、 libvirtd 設定を変更する必要があることに注意して下さい。 no_verify=1
no_tty ssh ゼロ以外の値にセットしてある場合、(ssh-agent 又は同類の使用で)自動的にリモートマシンに ログインできない場合に、ssh がパスワードを要求することを止めます。例えば、 libvirt を使用するグラフィカルプログラム内のターミナルにアクセスを持たない時に これを使用します。 no_tty=1