libvirtd를 실행하는 서버가 있습니다. 방금 libvirtd 포트를 확인하고 아래 출력을 확인했습니다. 포트 16514 PID가 항상 1인 이유와 tcp6이 다중 연결로 ipv4를 처리하는 이유가 궁금했습니다.
누구든지 알려주시기 바랍니다.
root@prd-140:~# netstat -anpt |grep 16514
tcp6 0 0 :::16514 :::* LISTEN 1/systemd
tcp6 0 0 10.1.6.140:16514 10.2.127.52:60556 ESTABLISHED 12289/libvirtd
tcp6 0 0 10.1.6.140:16514 10.2.127.52:29463 ESTABLISHED 12289/libvirtd
root@prd-140:~# lsof -i :16514
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root 59u IPv6 9761899 0t0 TCP *:16514 (LISTEN)
libvirtd 12289 root 5u IPv6 9761899 0t0 TCP *:16514 (LISTEN)
libvirtd 12289 root 30u IPv6 20539283 0t0 TCP prd-140:16514->10.2.127.52:60556 (ESTABLISHED)
libvirtd 12289 root 35u IPv6 20549679 0t0 TCP prd-140:16514->10.2.127.52:29463 (ESTABLISHED)
답변1
- 첫 번째 부분은 systemd의 소켓 기반 활성화에 관한 것입니다.
- 두 번째 부분은 IPv4/IPv6 듀얼 스택 처리에 관한 것입니다.
systemd의 소켓 기반 활성화
이름이 ".socket"으로 끝나는 장치 구성 파일은 systemd가 제어하고 감독하는 IPC 또는 네트워크 소켓 또는 파일 시스템 FIFO에 대한 정보를 인코딩합니다.소켓 기반 활성화.
각 소켓 유닛마다 일치하는 서비스 유닛이 존재해야 합니다. [...]
소켓 장치를 사용한 소켓 활성화를 위해 구성된 데몬 소프트웨어는 systemd의 기본 소켓 전달 인터페이스를 통해 systemd에서 소켓을 수락할 수 있어야 합니다(참조:sd_listen_fds(3) 사용되는 정확한 프로토콜과 파일 설명자가 전달되는 순서에 대한 자세한 내용은) 또는 기존 방식을 통해inetd(8)-스타일 소켓 전달(즉, 서비스 파일에서 StandardInput=socket을 사용하여 표준 입력 및 출력을 통해 전달된 소켓).
이 기능은 기존에 비해 개선된 기능입니다.inetd("인터넷 슈퍼 서버")는 제공할 수 있지만 응용 프로그램의 추가 지원이 필요할 수 있습니다(systemd의 기본 소켓 전달 인터페이스용).
libvirtd는 다음과 같은 지원을 제공합니다.
libvirtd 데몬이 systemd에 의해 관리되면 여러 가지 바람직한 기능을 사용할 수 있으며, 특히 소켓 활성화가 가장 두드러집니다.
libvirtd.service
- 시스템 모드에서 libvirtd 데몬을 시작하기 위한 기본 유닛 파일입니다.
libvirtd.socket
- 기본 읽기-쓰기 UNIX 소켓에 해당하는 유닛 파일입니다/var/run/libvirt/libvirt-sock
.
여기에서는 OP의 설정이 기본 Unix 소켓을 사용하는 것이 아니라 활성화된 것으로 나타납니다.TLS 원격 연결.
목표는체계화된실행하지 않고도 소켓을 관리libvirtd이 소켓에 대한 요청이 수신될 때까지.체계화된그런 다음 시작합니다libvirtd소켓을 상속하는 서비스입니다.
IPv6은 IPv4/IPv6 이중 스택 모드를 사용합니다.
두 번째 기능은 듀얼 IPv4/IPv6 스택이 작동하는 방식입니다. IPv6 API를 사용하고 IPv4를 무료로 받으세요. 이는 소켓 옵션으로 비활성화할 수 있지만 IPV6_ONLY
기본값은 RFC 3493: IPv6용 기본 소켓 인터페이스 확장에서 권장하는 대로 이중 스택입니다.
5.3 AF_INET6 소켓용 IPV6_V6ONLY 옵션
이 소켓 옵션은 AF_INET6 소켓을 IPv6 통신으로만 제한합니다. < 섹션에 명시된 바와 같이3.7 IPv4 노드와의 호환성>, AF_INET6 소켓은 IPv4 및 IPv6 통신 모두에 사용될 수 있습니다.
기본적으로 이 옵션은 꺼져 있습니다.
이는 기본적으로 IPv6가 RFC를 따르는 시스템에서 IPv4를 처리할 수 있으며 응용 프로그램이 이 기능을 적극적으로 비활성화하지 않음을 의미합니다.
netstat
일반 IPv4를 표시하도록 선택하지만 예를 들어 설정된 로컬 주소에 표시됩니다.소켓실제로는IPv4 매핑 IPv6 주소: ::ffff:10.1.6.140
(또는 ::ffff:0a01:068c
)는 ss -anpt
Linux에서 대신 표시됩니다. 주소는철사물론 일반 IPv4 주소를 유지합니다.