5 mins read

Warten darauf, dass ein Linux-System online geht – SlyBlog


Was ist das „Online“-System?

Vernetzung ist ein komplexes Thema und es herrscht große Verwirrung über die Definition eines „Online“-Systems. Manchmal verzögert sich der Startvorgang um bis zu zwei Minuten, weil das System darauf wartet, dass eine oder mehrere Netzwerkschnittstellen bereit sind. Es wird von systemd bereitgestellt sare-online.destination die möglicherweise auf andere Serviceeinheiten zurückgreifen, wenn davon ausgegangen wird, dass sie eine Netzwerkkonnektivität benötigen. Aber was bedeutet „online“ in diesem Zusammenhang wirklich, reicht eine Link-Local-IP-Adresse aus, brauchen wir ein funktionierendes Gateway und wie sieht es mit der DNS-Namensauflösung aus?

Die Anforderungen an die Netzwerkschnittstelle hängen von den Diensten ab, die eine Schnittstelle verwenden. Für einige Dienste kann es ausreichen, ihr lokales Netzwerksegment zu erreichen (z. B. Zeroconf, um Dienste anzubieten), andere müssen Domänennamen erreichen (z. B. um eine NFS-Freigabe bereitzustellen) oder das globale Internet erreichen, um einen Webserver zu betreiben. Andererseits ist die Umsetzung von sare-online.destination sie variiert je nach verwendetem Netzwerk-Daemon, z.B systemd-networkd-wait-online.service oder Netzwerkmanager-wait-online.service. Für Ubuntu haben wir eine Spezifikation erstellt, die beschreibt, was wir von einem „Online“-System als Distribution erwarten. Mit einer Definition sind wir in der Lage, die im Laufe der Jahre gemeldeten Probleme bei der Online-Bestellung im Netzwerk anzugehen und Lösungen zu finden, um verzögerte Startzeiten auf Ubuntu-Systemen zu vermeiden.

Grundsätzlich möchten wir, dass das System diesen Zustand des Netzwerks erreicht, um es online zu berücksichtigen:

  1. Warten Sie nicht, bis die „optionale“ Schnittstelle die Netzwerkkonfiguration empfängt
  2. Verfügen Sie über IPv6- und/oder IPv4-Link-Local-Adressen auf allen Netzwerkschnittstellen
  3. Verfügen Sie über mindestens eine Schnittstelle mit global nutzbarer Konnektivität
  4. Verfügen Sie über eine funktionierende Domänennamenauflösung auf jeder brauchbaren Schnittstelle

Eine gemeinsame Einstellung

Netzwerkmanager Und systemd-netzwerkd Auf modernen Linux-Systemen werden zwei sehr häufige Netzwerk-Daemons verwendet. Sie stammen aber aus unterschiedlichen Kontexten und zeigen daher beispielsweise in bestimmten Szenarien unterschiedliches Verhalten in der Schlange warten. Glücklicherweise haben wir es bereits in Ubuntu Netzplan kann als Vereinheitlichungsschicht über diesen Netzwerk-Daemons verwendet werden und ermöglicht so eine gemeinsame Netzwerkkonfiguration. in der Schlange warten Logik

Mit der neuesten Version von Netplan v1.1 haben wir die erste Funktionalität zur Anpassung des Verhaltens eingeführt systemd-networkd-wait-online.serviceWird auf Ubuntu-Serversystemen verwendet. Wann Netzplan zum Fahren genutzt systemd-netzwerkd Das Backend sendet die Override-Konfigurationsdatei /run/systemd/system/systemd-networkd-wait-online.service.d/10-netplan.confAuflistung spezifischer nicht optionaler Schnittstellen, die eine Link-Local-IP-Konfiguration erhalten sollen. Darüber hinaus definiert Netplan eine Liste von Netzwerkschnittstellen, die es als potenzielle globale Verbindungen erkannt hat, und wartet darauf, dass eine dieser Schnittstellen den globalen Status erreicht.

Überschreibungskonfigurationsdateien könnten sein:

[Unit]
ConditionPathIsSymbolicLink=/run/systemd/generator/network-online.target.wants/systemd-networkd-wait-online.service

[Service]
ExecStart=
ExecStart=/lib/systemd/systemd-networkd-wait-online -i eth99.43:carrier -i lo:carrier -i eth99.42:carrier -i eth99.44:degraded -i bond0:degraded
ExecStart=/lib/systemd/systemd-networkd-wait-online --any -o routable -i eth99.43 -i eth99.45 -i bond0

Zusätzlich zu den neuen Funktionen, die in Netplan implementiert wurden, haben wir uns an den Upstream-Systemd gewandt und eine Verbesserung vorgeschlagen. systemd-networkd-wait-online Service, Integration mit ihm von systemd gelöst Um die Verfügbarkeit der DNS-Namensauflösung zu überprüfen. Sobald dies im Wasser etabliert ist, können wir es vollständig kontrollieren systemd-netzwerkd Auf Backend-Ubuntu-Server-Systemen war es konsequent und stark darauf ausgerichtet, sich gemäß der Definition eines „Online“-Systems zu verhalten.

Zukünftige Arbeit

Damit ist die Geschichte aber noch nicht zu Ende, denn sie verwenden Ubuntu-Desktopsysteme Netzwerkmanager als ihr Netzwerk-Backend. Dieser Teufel bietet seins an nm-online Dienstprogramm, Verwendungen Netzwerkmanager-warte-online Systemdienst Es erfordert eine viel höhere Sichtweise und betrachtet den Netzwerk-Daemon als Ganzes und nicht einzelne Netzwerkschnittstellen. Standardmäßig gilt ein System als online, wenn jedes „Auto-Connect“-Profil aktiviert (oder nicht aktiviert) ist, d. h. ihm wurde eine IPv4- oder IPv6-Adresse zugewiesen.

In diesem Tool müssen erhebliche Verbesserungen umgesetzt werden, damit es feingranular gesteuert werden kann. systemd-networkd-wait-onlineum es anweisen zu können, auf bestimmte Netzwerkbedingungen an ausgewählten Schnittstellen zu warten.

Ein Hinweis zur Vorsicht

Abonnieren eines Dienstes sare-online.destination In den meisten Fällen gilt es als Antipatron. Dies liegt daran, dass die Vernetzung auf Linux-Systemen sehr dynamisch ist und das Systemziel den Zustand des Netzwerks zu einem bestimmten Zeitpunkt widerspiegeln kann. Es kann nicht garantiert werden, dass dieser Zustand für die Dauer der Betriebszeit Ihres Systems bestehen bleibt, und kann den Startvorgang erheblich verzögern. Kabel können sich lösen, die drahtlose Verbindung kann unterbrochen werden oder Remote-Router können jederzeit ausfallen, was sich auf den Konnektivitätsstatus Ihres lokalen Systems auswirken kann. Deshalb: „Anstatt sich zu fragen, was Sie mit network.target tun sollen, korrigieren Sie Ihr Programm so, dass es sich dynamisch ändernde Netzwerkkonfigurationen unterstützt.“ [source].



technische Probleme auf

Leave a Reply

Your email address will not be published. Required fields are marked *