Libvirtd TCP-Port 16514-Abfragen

Libvirtd TCP-Port 16514-Abfragen

Ich habe einen Server, auf dem libvirtd läuft. Ich habe gerade die libvirtd-Ports überprüft und sehe die Ausgabe unten. Ich habe mich gefragt, warum Port 16514 PID immer 1 ist und warum TCP6 IPv4 mit mehreren Verbindungen verarbeitet.

Kann mir das bitte jemand sagen.

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)

Antwort1

  • Der erste Teil befasst sich mit der Socket-basierten Aktivierung von systemd.
  • Der zweite Teil beschäftigt sich mit der Handhabung des IPv4/IPv6-Dual-Stacks.

Socket-basierte Aktivierung von systemd

systemd.socket:

Eine Unit-Konfigurationsdatei, deren Name auf ".socket" endet, kodiert Informationen über einen IPC oder Netzwerk-Socket oder ein Dateisystem-FIFO, das von systemd gesteuert und überwacht wird, zum BeispielSocket-basierte Aktivierung.

Zu jeder Steckdoseneinheit muss eine passende Serviceeinheit vorhanden sein, [...]

Beachten Sie, dass die Daemon-Software, die für die Socket-Aktivierung mit Socket-Units konfiguriert ist, in der Lage sein muss, Sockets von systemd zu akzeptieren, entweder über systemds native Socket-Passing-Schnittstelle (siehesd_listen_fds(3) für Details zum genauen verwendeten Protokoll und zur Reihenfolge, in der die Dateideskriptoren übergeben werden) oder über herkömmlicheinetd(8)-Style-Socket-Übergabe (d. h. Sockets werden über die Standardeingabe und -ausgabe übergeben, unter Verwendung von „StandardInput=socket“ in der Servicedatei).

Diese Funktion ist eine Verbesserung gegenüber dem, was dieinetd("Internet-Superserver") könnte dies bereitstellen, erfordert aber ggf. zusätzliche Unterstützung von der Anwendung (für die native Socket-Passing-Schnittstelle von systemd).

libvirtd bietet solche Unterstützung:

Monolithische Systemd-Integration

Wenn der Libvirtd-Daemon von Systemd verwaltet wird, stehen zahlreiche nützliche Funktionen zur Verfügung, insbesondere die Socket-Aktivierung.

  • libvirtd.service– die Haupt-Unit-Datei zum Starten des libvirtd-Daemons im Systemmodus.
  • libvirtd.socket- die Unit-Datei, die dem wichtigsten UNIX-Socket mit Lese-/Schreibzugriff entspricht /var/run/libvirt/libvirt-sock.

Hier scheint es, dass die Einstellungen des OP nicht nur den Standard-Unix-Socket verwenden, sondern aktiviert sindTLS-Remoteverbindungen.

Das Ziel ist,systemdVerwalten Sie den Socket, ohne ihn ausführen zu müssenlibvirtdbis eine Anfrage an diesem Socket eingeht.systemdstartet dann dielibvirtdDienst, der den Socket erbt.

IPv6 verwendet den IPv4/IPv6-Dual-Stack-Modus

Die zweite Funktion ist die Funktionsweise des dualen IPv4/IPv6-Stacks: Verwenden Sie die IPv6-API und erhalten Sie IPv4 kostenlos. Dies kann mit der IPV6_ONLYSocket-Option deaktiviert werden, aber standardmäßig ist der Dual-Stack aktiviert, wie in RFC 3493 empfohlen: Grundlegende Socket-Schnittstellenerweiterungen für IPv6:

5.3 IPV6_V6ONLY-Option für AF_INET6-Sockets

Diese Socket-Option beschränkt AF_INET6-Sockets ausschließlich auf IPv6-Kommunikation. Wie in Abschnitt <3.7 Kompatibilität mit IPv4-Knoten> AF_INET6-Sockets können sowohl für IPv4- als auch für IPv6-Kommunikation verwendet werden.

Standardmäßig ist diese Option deaktiviert.

Dies bedeutet, dass IPv6 standardmäßig mit IPv4 auf einem System umgehen kann, das den RFCs entspricht und eine Anwendung diese Funktion nicht aktiv deaktiviert.

netstatwählt die Anzeige einer einfachen IPv4-Adresse, aber zum Beispiel die lokale Adresse, die auf dem etabliertenSteckdosenist eigentlich einIPv4-zugeordnete IPv6-Adresse: ::ffff:10.1.6.140(oder ::ffff:0a01:068c) wie es ss -anptunter Linux angezeigt würde. Die Adresse auf demDrahtbleibt natürlich eine normale IPv4-Adresse.

verwandte Informationen