20.3. トランスポートモード
libvirt
が以下のようなトランスポートモードをサポートします:
Transport Layer Security TLS 1.0 (SSL 3.1) で認証されて暗号化された TCP/IP ソケットは 通常、パブリックポート番号の内の1つでリッスンしています。これを使用するには、クライアントと サーバーの証明書を生成する必要があります。標準のポートは 16514 です。
Unix ドメインソケットはローカルマシーン上でのみアクセス可能です。ソケットは暗号化 されておらず、認証のために UNIX 権限又は、SELinux を使用します。標準のソケット名は /var/run/libvirt/libvirt-sock
と /var/run/libvirt/libvirt-sock-ro
(読み込み専用接続)です。
Secure Shell protocol (SSH) 接続経由でのトランスポートです。Netcat (nc パッケージ)のインストールを必要とします。 libvirt デーモン (libvirtd
) がリモートマシン上で 実行している必要があります。Port 22 が SSH アクセス用に開いていなければ なりません。なんらかの ssh キー管理(例えば、ssh-agent
ユーティリティ)を 使用する必要があり、そうでないとパスワードを要求されます。
ext
パラメータはいずれかの外部プログラム用に使用 されるものです。これは libvirt の範疇にはない手法でリモートマシンに接続をします。 このパラメータはサポートされていません。
暗号化のない TCP/IP ソケットです。実稼働使用には推奨できません。これは 通常無効になっていますが、管理者はテスト目的や、信頼できるネットワーク上で 有効にすることができます。デフォルトのポートは 16509 です。
Uniform Resource Identifier (URI) はリモートホストに接続するために
virsh
と libvirt
により使用されます。 URI はまた、virsh
コマンド用に --connect
パラメータと 一緒にリモートホスト上で単独コマンドや移行を実行するのに使用されます。
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 へ追記できます。以下の表 表20.1「その他の URI パラメータ」 は 認識されているパラメータを説明しています。その他のパラメータはすべて無視されます。 パラメータの値は、URI エスケープ(パラメータの前に疑問符 (?) が付けてあり、他の特殊文字は 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 コマンドを 構築します:
port 、username 、及び hostname パラメータはリモート URI の一部として 指定できます。command 、netcat 、及び socket は他の追加のパラメータ 由来のものです。
| netcat=/opt/netcat/bin/nc |
no_verify | tls | ゼロ以外の値にセットしてある場合、これはサーバーの証明書のクライアントチェックを無効に します。クライアントの証明書か、IP アドレスのサーバーチェックを無効にするには、 libvirtd 設定を変更する必要があることに注意して下さい。 | no_verify=1 |
no_tty | ssh | ゼロ以外の値にセットしてある場合、(ssh-agent 又は同類の使用で)自動的にリモートマシンに ログインできない場合に、ssh がパスワードを要求することを止めます。例えば、 libvirt を使用するグラフィカルプログラム内のターミナルにアクセスを持たない時に これを使用します。 | no_tty=1 |