6.3. トランスポートモード
libvirt
では次のようなトランスポートモードに対応しています。
Transport Layer Security TLS 1.0 (SSL 3.1) で認証され、暗号化される TCP/IP ソケットは、通常パブリックポート番号でリッスンします。これを使用するには、クライアントとサーバーの証明書を生成する必要があります。標準のポートは 16514 です。
UNIX ドメインソケットはローカルマシン上でのみアクセス可能となります。ソケットは暗号化されず、認証には SELinux または UNIX のパーミッションを使用します。標準のソケット名は /var/run/libvirt/libvirt-sock
と /var/run/libvirt/libvirt-sock-ro
(読み取り専用接続) です。
Secure Shell protocol (SSH) 接続経由でトランスポートされます。Netcat (nc パッケージ) をインストールしておく必要があります。libvirt デーモン (libvirtd
) がリモートマシン上で実行されている必要があります。SSH アクセス用にポート 22 を開けておく必要があります。いずれかの SSH キー管理 (ssh-agent
など) を使用しないとパスワードの入力が求められます。
ext
パラメーターは、libvirt の対象範囲外となる手段でリモートマシンに接続を行う外部プログラムに使用されます。このパラメーターはサポートされていません。
暗号化されていない TCP/IP ソケットです。実稼働での使用には推奨されません。通常は無効になっていますが、テストを行う場合や信頼できるネットワークで使用する場合などには管理者によって有効にされることがあります。デフォルトのポートは 16509 です。
URI (Uniform Resource Identifier) は、リモートホストに接続するために virsh
と libvirt によって使用されます。また URI は virsh
コマンドに --connect
パラメータを付けて使用すると、リモートホストで単一コマンドや移行を実行することができます。リモート URI は一般的なローカル URI を取り、ホスト名またはトランスポート名を追加して形成されます。特殊なケースとして、「リモート」の URI スキームを使用すると、リモート libvirtd サーバーは最適なハイパーバイザードライバーを探索するように指示されます。これはローカル接続用に NULL URI を渡すのと同等です。
driver[+transport]://[username@][hostname][:port]/path[?extraparameters]
- qemu://hostname/
- xen://hostname/
- xen+ssh://hostname/
リモート管理の例
host2
という名前のリモート KVM ホストに接続します。SSH トランスポートを使用し、SSH ユーザー名はvirtuser
です。connect コマンドはconnect [<name>] [--readonly]
です。ここでの<name>
は、説明されている有効な URI になります。virsh connect
コマンドについての詳細は、「connect」 を参照してください。qemu+ssh://virtuser@hot2/
- ホスト上にある
host2
という名前のリモート KVM ハイパーバイザーに接続します。TLS を使用します。qemu://host2/
テスト事例
- ローカルの KVM ハイパーバイザーに非標準の UNIX ソケットで接続します。この例では、UNIX ソケットへの完全パスが明示的に指定されています。
qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
- 暗号化していない TCP/IP 接続で libvirt デーモンに接続します。IP アドレスが 10.1.1.10 でポートが 5000 のサーバーへの接続です。この例ではデフォルト設定で test ドライバーが使用されています。
test+tcp://10.1.1.10:5000/default
追加パラメーターをリモート URI に追加することができます。以下の表に認識されているパラメーターを示します (表6.1「追加の URI パラメーター」)。これ以外のパラメーターはすべて無視されます。パラメーターの値は URI エスケープにしなければならない点に注意してください (つまり、疑問符 (?) をパラメーターの前に付けると、特殊文字が URI 形式に変換されます)。
表6.1 追加の URI パラメーター
名前 | トランスポートモード | 詳細 | 使用事例 |
---|---|---|---|
name | すべてのモード | name がリモートの virConnectOpen 関数に渡されます。name は通常、リモート URI からトランスポート、ホスト名、ポート番号、ユーザー名および追加パラメーターを取り除いたものになります。ただし、非常に複雑なケースでは、name を明示的に指定する方がよい場合があります。 | name=qemu:///system |
command | ssh と ext | 外部コマンドです。ext トランスポートの場合に必要です。ssh の場合、デフォルトは ssh です。command の 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
port 、username 、および hostname の各パラメーターをリモート URI の一部として指定できます。command 、netcat 、および socket は他の追加パラメーターから取られたものです。
| netcat=/opt/netcat/bin/nc |
no_verify | tls | ゼロ以外の値に設定すると、クライアント側のサーバー証明書のチェックが無効になります。サーバー側のクライアント証明書のチェックまたは IP アドレスのチェックを無効にする場合は、libvirtd 設定を変更する必要があります。 | no_verify=1 |
no_tty | ssh | ゼロ以外の値に設定すると、リモートマシンに自動的にログインできない場合に SSH がパスワードの入力を求めてこないようにします。ターミナルにアクセスできない場合にこれを使用します。 | no_tty=1 |
このページには機械翻訳が使用されている場合があります (詳細はこちら)。