Product SiteDocumentation Site

13.3. Режимы передачи данных

libvirt поддерживает следующие режимы передачи для удаленного управления:
TLS
Протокол TLS (Transport Layer Security) 1.0 (SSL 3.1) — криптографический протокол, предоставляющий возможности аутентификации и безопасной передачи данных по TCP/IP. Обычно используется для прослушивания общего порта, по умолчанию — 16514. Для этого потребуется создать сертификаты для клиента и сервера.
Сокеты UNIX
Сокеты доменов UNIX доступны только на локальной машине. Они не зашифрованы и для аутентификации используют разрешения UNIX или SELinux. Стандартные имена сокетов — /var/run/libvirt/libvirt-sock и /var/run/libvirt/libvirt-sock-ro (только для чтения).
SSH
Для передачи данных с использованием SSH (Secure Shell) необходимо установить Netcat (пакет nc), в удаленной системе должен выполняться демон libvirtd, а порт 22 должен быть открыт для SSH-доступа. Инструменты, подобные ssh-agent, позволят избежать необходимости повторного ввода пароля.
ext
Параметр ext используется внешними программами, которые подключаются к удаленной машине без помощи libvirt, что обычно включает программы сторонних производителей без официальной поддержки безопасности.
tcp
Незашифрованный сокет TCP/IP по умолчанию использует порт 16509 и не рекомендуется для использования в производственной среде, поэтому он обычно отключен. Администраторы могут прибегнуть к его помощи в целях тестирования или при работе в доверенной сети.
Если способ передачи не задан, по умолчанию будет использоваться TLS.
Удаленные URI
A Uniform Resource Identifier (URI) is used by virsh and libvirt to connect to a remote host. URIs can also be used with the --connect parameter for the virsh command to execute single commands or migrations on remote hosts.
libvirt URIs take the general form (content in square brackets, "[]", represents optional functions):
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]

Отличие локального URI состоит в том, что для него не будет указан способ передачи и имя узла.
Примеры параметров удаленного управления
Примеры тестирования
Дополнительные параметры URI
Extra parameters can be appended to remote URIs. The table below Таблица 13.1, «Дополнительные параметры URI» covers the recognized parameters. All other parameters are ignored. Note that parameter values must be URI-escaped (that is, a question mark (?) is appended before the parameter and special characters are converted into the URI format).
Параметр Режим передачи Description Пример
name все Имя можно получить из URI путем удаления протокола, имени узла, пользователя, номера порта и всех дополнительных параметров. В некоторых случаях, однако, имя рекомендуется задать напрямую. Оно будет передано удаленной функции virConnectOpen. name=qemu:///system
command ssh, ext Внешняя команда. Обязательна для ext. Для SSH по умолчанию используется «ssh». Поиск команды будет осуществляться в соответствии со значением PATH. command=/opt/openssh/bin/ssh
socket unix, ssh Путь к сокету домена UNIX. Переопределяет путь, используемый по умолчанию. Для SSH будет передаваться удаленной команде netcat (см. ниже). socket=/opt/libvirt/run/libvirt/libvirt-sock
netcat ssh Команда netcat на удаленной машине. По умолчанию используется nc. Формат команды при использовании SSH: «command -p порт [-l пользователь] узел netcat -U socket», где «порт», «пользователь», «узел» являются составляющими удаленного URI, а «command», «netcat» и «socket» — дополнительные параметры. netcat=/opt/netcat/bin/nc
no_verify tls Ненулевое значение отключает проверку сертификата сервера клиентом. Но чтобы отключить проверку сертификата клиента или IP-адреса сервером потребуется изменить конфигурацию libvirtd. no_verify=1
no_tty ssh Ненулевое значение отключает запрос пароля, если SSH не может пройти авторизацию автоматически на удаленной машине (для ssh-agent и пр.). Используется при отсутствии доступа к терминалу, например, в графических программах использующих libvirt. no_tty=1
Таблица 13.1. Дополнительные параметры URI