Red Hat Training

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

5.3. 전송 모드

원격 관리를 위해 libvirt 는 다음 전송 모드를 지원합니다.

TLS(Transport Layer Security)

SSL 3.1(Transport Layer Security TLS 1.0)이 인증되고 암호화된 TCP/IP 소켓은 일반적으로 공용 포트 번호에서 수신 대기합니다. 이를 사용하려면 클라이언트 및 서버 인증서를 생성해야 합니다. 표준 포트는 16514입니다.

UNIX 소켓

UNIX 도메인 소켓은 로컬 시스템에서만 액세스할 수 있습니다. 소켓은 암호화되지 않으며 인증을 위해 UNIX 권한 또는 SELinux를 사용합니다. 표준 소켓 이름은 /var/run/libvirt/libvirt-sock/var/run/libvirt/libvirt-sock-ro 입니다(읽기 전용 연결의 경우).

SSH

SSH(Secure Shell 프로토콜) 연결을 통해 전송. Netcat( nc 패키지)이 설치되어 있어야 합니다. libvirt 데몬(libvirtd)이 원격 시스템에서 실행되고 있어야 합니다. SSH 액세스를 위해 포트 22를 열어야 합니다. 일종의 SSH 키 관리(예: ssh-agent 유틸리티)를 사용해야 합니다. 그렇지 않으면 암호를 입력하라는 메시지가 표시됩니다.

ext

ext 매개 변수는 libvirt 범위를 벗어나는 방법으로 원격 시스템에 연결할 수 있는 모든 외부 프로그램에 사용됩니다. 이 매개변수는 지원되지 않습니다.

TCP

암호화되지 않은 TCP/IP 소켓. 프로덕션 용도는 권장되지 않지만 일반적으로 비활성화되어 있지만 신뢰할 수 있는 네트워크를 통해 테스트하거나 사용할 수 있습니다. 기본 포트는 16509입니다.

다른 값이 지정되지 않은 경우 기본 전송은 TLS입니다.

원격 URI

URI(Uniform Resource Identifier)는 virshlibvirt 에서 원격 호스트에 연결하는 데 사용됩니다. URI를 virsh 명령의 --connect 매개 변수와 함께 사용하여 원격 호스트에서 단일 명령 또는 마이그레이션을 실행할 수도 있습니다. 원격 URI는 일반 로컬 URI를 사용하고 호스트 이름 또는 전송 이름을 추가하여 구성됩니다. 'remote'의 URI 체계를 사용하는 특수한 경우 는 원격 libvirtd 서버에 최적의 하이퍼바이저 드라이버를 검색하도록 지시합니다. 로컬 연결에 대해 NULL URI를 전달하는 것과 같습니다.

libvirt URI는 일반적인 형식을 사용합니다(대괄호 괄호의 내용, "[]", 선택적 함수를 나타냅니다).
driver[+transport]://[username@][hostname][:port]/path[?extraparameters]
하이퍼바이저(driver)가 QEMU인 경우 해당 경로는 필수입니다. XEN인 경우 선택 사항입니다.
다음은 유효한 원격 URI의 예입니다.
  • qemu://hostname/
  • xen://hostname/
  • xen+ssh://hostname/
전송 방법 또는 호스트 이름은 외부 위치를 대상으로 지정되어야 합니다. 자세한 내용은 를 http://libvirt.org/guide/html/Application_Development_Guide-Architecture-Remote_URIs.html 참조하십시오.

원격 관리 매개변수의 예

  • SSH 전송 및 SSH 사용자 이름 virtuser 를 사용하여 host2 라는 원격 KVM 호스트에 연결합니다. 각각에 대한 연결 명령은 [< name>] [-readonly] 입니다. 여기서 < name >은 여기에 설명된 대로 유효한 URI입니다. virsh connect 명령에 대한 자세한 내용은 다음을 참조하십시오. 14.1.5절. “연결”
    qemu+ssh://virtuser@hot2/
  • TLS를 사용하여 host2 라는 호스트의 원격 KVM 하이퍼바이저에 연결합니다.
    qemu://host2/

테스트 예

  • 비표준 UNIX 소켓을 사용하여 로컬 KVM 하이퍼바이저에 연결합니다. 이 경우 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에 추가할 수 있습니다. 표 5.1. “추가 URI 매개변수” 아래 표는 인식된 매개변수를 다룹니다. 다른 모든 매개변수는 무시됩니다. 매개 변수 값은 URI로 이스케이프되어야 합니다(즉, 매개 변수 및 특수 문자가 URI 형식으로 변환되기 전에 물음표(?)를 추가합니다.

표 5.1. 추가 URI 매개변수

이름 전송 모드 설명 사용 예
name 모든 모드 이름이 원격 virConnectOpen 기능에 전달되었습니다. 이름은 일반적으로 원격 URI에서 전송, 호스트 이름, 포트 번호, 사용자 이름 및 추가 매개 변수를 제거하여 구성되지만, 매우 복잡한 경우 이름을 명시적으로 제공하는 것이 더 좋습니다. name=qemu:///system
command SSH 및 ext 외부 명령 ext 전송에는 이 작업이 필요합니다. ssh의 경우 기본값은 ssh입니다. PATH가 명령에 대해 검색됩니다. command=/opt/openssh/bin/ssh
socket Unix 및 ssh 기본값을 재정의하는 UNIX 도메인 소켓의 경로입니다. ssh 전송의 경우 원격 netcat 명령에 전달됩니다(넷cat 참조). socket=/opt/libvirt/run/libvirt/libvirt-sock
netcat ssh
netcat 명령을 사용하여 원격 시스템에 연결할 수 있습니다. 기본 netcat 매개변수는 nc 명령을 사용합니다. SSH 전송의 경우 libvirt는 아래 양식을 사용하여 SSH 명령을 구성합니다.
command -p port [-l username] hostname
Netcat -U socket
포트,usernamehostname 매개 변수는 원격 URI의 일부로 지정할 수 있습니다. 명령,netcatsocket 은 다른 추가 매개 변수에서 제공됩니다.
netcat=/opt/netcat/bin/nc
no_verify tls 0이 아닌 값으로 설정하면 클라이언트 인증서가 비활성화됩니다. 클라이언트의 인증서 또는 IP 주소를 서버 확인을 비활성화하려면 libvirtd 구성을 변경해야 합니다. no_verify=1
no_tty ssh 0이 아닌 값으로 설정하면 원격 머신에 자동으로 로그인할 수 없는 경우 암호를 요청하는 ssh가 중지됩니다. . 터미널 에 액세스할 수 없는 경우 이 값을 사용합니다. no_tty=1