18장. 게스트의 원격 관리
18.1. 전송 모드
TLS(Transport Layer Security)
SSL 3.1(Transport Layer Security TLS 1.0) 인증 및 암호화된 TCP/IP 소켓은 일반적으로 공용 포트 번호에서 수신 대기합니다. 이를 사용하려면 클라이언트 및 서버 인증서를 생성해야 합니다. 표준 포트는 16514입니다. 자세한 내용은 18.3절. “TLS 및 SSL을 통한 원격 관리” 에서 참조하십시오.
SSH
SSH(Secure Shell Protocol) 연결을 통해 전송되었습니다. libvirt 데몬(libvirtd)이 원격 시스템에서 실행 중이어야 합니다. SSH 액세스를 위해서는 포트 22가 열려 있어야 합니다. SSH 키 관리 (예: ssh-agent 유틸리티)를 사용하거나 암호를 입력하라는 메시지가 표시됩니다. 자세한 내용은 18.2절. “SSH를 사용한 원격 관리” 에서 참조하십시오.
UNIX 소켓
UNIX 도메인 소켓은 로컬 시스템에서만 액세스할 수 있습니다. 소켓은 암호화되지 않으며 인증에 UNIX 권한 또는 SELinux를 사용합니다. 표준 소켓 이름은 /var/run/libvirt/libvirt-sock
및 /var/run/libvirt/libvirt-sock-ro
입니다( 읽기 전용 연결의 경우).
ext
ext
매개 변수는 libvirt 범위를 벗어나는 원격 머신에 연결할 수 있는 모든 외부 프로그램에 사용됩니다. 이 매개변수는 지원되지 않습니다.
TCP
암호화되지 않은 TCP/IP 소켓입니다. 프로덕션 용도에는 권장되지 않지만 일반적으로 비활성화되어 있지만 관리자는 신뢰할 수 있는 네트워크를 통해 테스트하거나 사용할 수 있도록 설정할 수 있습니다. 기본 포트는 16509입니다.
원격 URI
URI(Uniform Resource Identifier)는 virsh 및 libvirt 가 원격 호스트에 연결하는 데 사용됩니다. 또한 virsh 명령의 --connect 매개 변수와 함께 URI를 사용하여 원격 호스트에서 단일 명령 또는 마이그레이션을 실행할 수 있습니다. 원격 URI는 일반 로컬 URI를 사용하고 호스트 이름 또는 전송 이름 또는 둘 다를 추가하여 구성됩니다. 특별한 경우 'remote'의 URI 스키마를 사용하면 원격 libvirtd 서버에서 최적의 하이퍼바이저 드라이버를 검색하도록 지시합니다. 로컬 연결에 대한 null URI를 전달하는 것과 같습니다.
driver[+transport]://[username@][hostname][:port]/path[?extraparameters]
- QEMU://hostname/
원격 관리 매개변수의 예
- SSH 전송 및 SSH 사용자 이름
virtuser
를 사용하여host2
라는 원격 KVM 호스트에 연결합니다. 각각에 대한 connect 명령은 connect [URI] [-readonly] 입니다. virsh connect 명령에 대한 자세한 내용은 다음을 참조하십시오. 20.4절. “virsh Connect를 사용하여 하이퍼바이저에 연결”qemu+ssh://virtuser@host2/
- 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에 추가할 수 있습니다. 아래 표에서 인식되는 매개 변수를 설명합니다. 다른 모든 매개변수는 무시됩니다. 매개변수 값은 매개 변수 및 특수 문자가 URI 형식으로 변환되기 전에 URI-escaped(즉, 물음표(?)가 추가되어야 합니다.
이름 | 전송 모드 | 설명 | 사용 예 |
---|---|---|---|
name | 모든 모드 | 원격 virConnectOpen 함수에 전달된 이름입니다. 이름은 일반적으로 전송 ,호스트 이름 ,포트 번호 ,사용자 이름 , 사용자 이름 및 원격 URI에서 추가 매개 변수를 제거 하 여 형성되지만, 경우에 따라 이름을 명시적으로 제공하는 것이 좋습니다. | name=qemu:///system |
명령 | SSH 및 ext | 외부 명령. ext 전송의 경우 이 작업이 필요합니다. ssh의 경우 기본값은 ssh입니다. PATH가 명령을 검색합니다. | command=/opt/openssh/bin/ssh |
socket | UNIX 및 ssh | UNIX 도메인 소켓의 경로를 통해 기본값을 덮어씁니다. ssh 전송의 경우 이 값은 원격 netcat 명령에 전달됩니다( netcat 참조). | socket=/opt/libvirt/run/libvirt/libvirt-sock |
no_verify | tls | 0이 아닌 값으로 설정하면 서버 인증서의 클라이언트 검사가 비활성화됩니다. 클라이언트 인증서 또는 IP 주소의 서버 확인을 비활성화하려면 libvirtd 구성을 변경해야 합니다. | no_verify=1 |
no_tty | ssh | 0이 아닌 값으로 설정하면 ssh가 암호를 요청하지 않고 원격 시스템에 자동으로 로그인할 수 없는 경우 가 자동으로 중지됩니다. 터미널에 액세스할 수 없는 경우 을 사용합니다. | no_tty=1 |