Consultas del puerto TCP 16514 de Libvirtd

Consultas del puerto TCP 16514 de Libvirtd

Tengo un servidor que ejecuta libvirtd. Acabo de comprobar los puertos libvirtd y veo el resultado a continuación. Me preguntaba por qué el PID del puerto 16514 es siempre 1 y por qué tcp6 maneja ipv4 con conexiones múltiples.

¿Alguien puede hacérmelo saber?

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)

Respuesta1

  • La primera parte trata sobre la activación basada en sockets de systemd.
  • La segunda parte trata sobre el manejo de doble pila IPv4/IPv6.

activación basada en sockets de systemd

systemd.socket:

Un archivo de configuración de unidad cuyo nombre termina en ".socket" codifica información sobre un IPC o socket de red o un sistema de archivos FIFO controlado y supervisado por systemd, por ejemploactivación basada en socket.

Para cada unidad de enchufe debe existir una unidad de servicio adecuada [...]

Tenga en cuenta que el software demonio configurado para la activación de sockets con unidades de socket debe poder aceptar sockets de systemd, ya sea a través de la interfaz nativa de paso de sockets de systemd (consultesd_listen_fds(3) para obtener detalles sobre el protocolo preciso utilizado y el orden en el que se pasan los descriptores de archivo) o a través de la tradicionalined(8)-paso de sockets de estilo (es decir, sockets pasados ​​a través de entrada y salida estándar, usando StandardInput=socket en el archivo de servicio).

Esta característica es una mejora con respecto a lo que elinetd("superservidor de Internet") podría proporcionar, pero puede requerir soporte adicional de la aplicación (para la interfaz de paso de socket nativo de systemd).

libvirtd ofrece dicho soporte:

Integración monolítica de Systemd

Cuando systemd administra el demonio libvirtd, hay disponibles una serie de características deseables, entre las que destaca la activación de socket.

  • libvirtd.service- el archivo de la unidad principal para iniciar el demonio libvirtd en modo sistema.
  • libvirtd.socket- el archivo unitario correspondiente al socket UNIX principal de lectura y escritura /var/run/libvirt/libvirt-sock.

Aquí parece que la configuración de OP no solo usa el socket Unix predeterminado sino que está habilitadaConexiones remotas TLS.

El objetivo es dejarsistemadgestionar el socket sin tener que ejecutarlibvirtdhasta que se reciba una solicitud en este socket.sistemadentonces iniciará ellibvirtdservicio que hereda el socket.

IPv6 utiliza el modo de pila dual IPv4/IPv6

La segunda característica es cómo funciona la pila dual IPv4/IPv6: use la API de IPv6 y obtenga IPv4 gratis. Esto se puede desactivar con la IPV6_ONLYopción de socket, pero el valor predeterminado es doble pila, como se recomienda en RFC 3493: Extensiones de interfaz de socket básica para IPv6:

5.3 Opción IPV6_V6ONLY para enchufes AF_INET6

Esta opción de socket restringe los sockets AF_INET6 a comunicaciones IPv6 únicamente. Como se indica en la sección <3.7 Compatibilidad con Nodos IPv4>, los sockets AF_INET6 se pueden utilizar para comunicaciones tanto IPv4 como IPv6.

De forma predeterminada, esta opción está desactivada.

lo que significa que, de forma predeterminada, IPv6 puede manejar IPv4 en un sistema que sigue los RFC y con una aplicación que no desactiva activamente esta función.

netstatelige mostrar un IPv4 simple, pero por ejemplo la dirección local que se ve en la red establecidaenchufeses en realidad unDirección IPv6 asignada a IPv4: ::ffff:10.1.6.140(o ::ffff:0a01:068c) como se ss -anptmostraría en Linux. La dirección en elcablePor supuesto, sigue siendo una dirección IPv4 normal.

información relacionada