Interpretieren der Spalte „Metrik“ in der Routing-Tabelle

Interpretieren der Spalte „Metrik“ in der Routing-Tabelle

Ich bin ein wenig verwirrt über die Ausgabe, die ich in meiner Routing-Tabelle sehe, insbesondere über die Spalte „Metrik“:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
172.16.35.0     0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0
192.168.82.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8

Laut der Manpage gibt die Metrik die „Entfernung“ zum Ziel an. Ich war etwas verwirrt, was genau „Ziel“ war. Ich nahm an, es sei mein Router (er geht zum Gateway 0.0.0.0, das dann zu meinem Router bei 192.168.0.1 geht). Daher erwartete ich, dass die Metrik ein einzelner Hop zu meinem Router ist. Sie beträgt jedoch 9! Warum ist diese Zahl so hoch?

Antwort1

Laut Manpage gibt die Metrik die „Entfernung“ zum Ziel an.

Ich hatte erwartet, dass die Metrik ein einzelner Hop zu meinem Router ist. Sie beträgt jedoch 9! Warum ist diese Zahl so hoch?

Das metricFeld hat verschiedene Bedeutungen:

Das Feld „Metrik“ gibt die Kosten einer Route an. Wenn mehrere Routen zu einer bestimmten Zielnetzwerk-ID vorhanden sind, wird anhand der Metrik entschieden, welche Route genommen werden soll. Die Route mit der niedrigsten Metrik ist die bevorzugte Route. Einige Routing-Algorithmen speichern nur eine einzige Route zu einer Netzwerk-ID in der Routing-Tabelle, selbst wenn mehrere Routen vorhanden sind. In diesem Fall wird die Metrik vom Router verwendet, um zu entscheiden, welche Route in der Routing-Tabelle gespeichert werden soll.

Metriken können verschiedene Möglichkeiten zum Ausdruck einer Routenpräferenz angeben:

  • Hop-Anzahl.

    Eine allgemeine Metrik. Gibt die Anzahl der Router (Hops) im Pfad zur Netzwerk-ID an.

  • Verzögerung.

    Ein Maß für die Zeit, die das Paket benötigt, um die Netzwerk-ID zu erreichen. Die Verzögerung wird verwendet, um die Geschwindigkeit des Pfads anzugeben (LAN-Verbindungen haben eine geringe Verzögerung, WAN-Verbindungen eine hohe Verzögerung) oder um den Überlastungszustand eines Pfads anzugeben.

  • Durchsatz.

    Die effektive Datenmenge, die pro Sekunde über den Pfad gesendet werden kann. Der Durchsatz ist nicht unbedingt ein Spiegelbild der Bitrate der Verbindung, da eine stark ausgelastete Ethernet-Verbindung einen geringeren Durchsatz haben kann als eine ungenutzte 64-Kbit/s-WAN-Verbindung.

  • Zuverlässigkeit.

    Ein Maß für die Pfadkonstanz. Einige Verbindungstypen sind anfälliger für Verbindungsfehler als andere. Bei WAN-Verbindungen sind beispielsweise Standleitungen zuverlässiger als DFÜ-Verbindungen.

QuelleRouting-Tabellen

Antwort2

Ich werde dies kommentieren, da die vorhandene Antwort im beschreibenden Sinne technisch korrekt ist, aber wichtige konkrete Details und Werte fehlen, die für Debugging- und Engineering-Zwecke nützlich sind. Einige davon musste ich selbst für Windows 10 21H2 testen, obwohl dies für fast alle Windows-Versionen gelten sollte, abzüglich einiger Windows-spezifischer integrierter Standardwerte, die sich in neueren Windows-Versionen geändert haben (mehr dazu später).

Eine kleine Anmerkung: Andere Betriebssysteme, darunter viele in Geräten eingebettete Betriebssysteme (Router/Switches/IoT usw.), verwenden häufig eine einzelne Metrik (im Gegensatz zu verschiedenen summierten Gateway- und Schnittstellenmetriken, wie z. B. Windows), aber die Grundregel, dass die niedrigste Routenmetrik immer gewinnt, ist überall, soweit ich gesehen habe, einheitlich.

Für Neulinge:Der Sinn automatischer Metrikwerte besteht theoretisch darin, sicherzustellen, dass die „beste“ Route so oft wie möglich ohne zusätzliche Konfiguration ausgewählt wird, wenn es mehr als 2 Routen zu einem Ziel gibt. Der Grund, warum die in der anderen Antwort gezeigte Manpage-Definition so vage/weit gefasst ist, besteht darin, dass Sie ausgewählte Werte beliebig strukturieren können, sodass jedes Betriebssystem/jeder Ingenieur/jeder Entwickler/jedes System Werte nach Belieben auswählen kann und versucht, sicherzustellen, dass seine Definition der „besten“ Route/Verbindung normalerweise gewinnt (d. h. der niedrigste Wert). Davon abgesehen wird „am besten“ in den meisten normalen Anwendungen fast immer bestimmt, indem Werte basierend auf der Rohverbindungsgeschwindigkeit in Bereichen zugewiesen werden, um Verbindungen zu berücksichtigen, deren Verbindungsgeschwindigkeit regelmäßig variiert (meistens drahtlose Verbindungen).

Ich weiß nicht und habe es auch nicht getestet, ob die Schnittstellenmetrik bei einer drahtlosen Verbindung durchgängig/regelmäßig aktualisiert wird, wenn die Verbindungsgeschwindigkeit verschiedene Bereiche überschreitet, aber ich könnte mir vorstellen, dass eine gewisse Hysterese/Haftigkeit vorliegt oder dass sie beim Herstellen der Verbindung einfach fest eingestellt ist, um zu verhindern, dass sie möglicherweise zu schnell oder überhaupt nicht die Priorität mit einer anderen Verbindung hin und her wechselt (normalerweise eine Kabelverbindung auf demselben Computer, etwa einem Laptop).

Grundlegende Routingmetriken unter Windows

Eine Route wird aus der Routing-Tabelle ausgewählt (überprüft von der Kommandozeile aus mit "route print") und ist die Summe derSchnittstellenmetrikUndGateway-Metrik. „Aktive Routen“ zeigt Ihnen die summierten, funktionalen Kennzahlen.

Um diese Werte getrennt anzuzeigen, ohne die Systemsteuerung zu überprüfen, können Sie Ausführen->"netsh int ipv4 show add" verwenden.

Diese beiden Werte können beide in den Eigenschaften der Netzwerkkarte bearbeitet werden->Erweitert->"IPv4" oder "IPv6", je nachdem, mit welchem ​​Satz von Routen/Verkehr Sie es zu tun haben (Ausführen->"ncpa.cpl", um direkt dorthin zu gelangen --nichtverwenden Sie die Form-over-Function-Einstellungs-App). Sie können die separaten Metriken unter „Standard-Gateways“ und „Schnittstellenmetrik“ sehen.

Automatische Metrikwerte unter Windows (variiert je nach Version)

Schnittstellenmetrik:

ProDasAuf der allgegenwärtigen Microsoft-Seite gibt es interne Tabellen, mit denen die Schnittstellenmetrik je nach Verbindungsgeschwindigkeit festgelegt wird. Derzeit werden in der Reihenfolge Werte vor XP-SP2 (nehme ich an), Werte von XP SP2 bis Windows 8.1 und dann Werte für Windows 10+ für drahtlose und kabelgebundene Verbindungen (separate Tabellen) aufgelistet. Die Serverversionen sind mit ziemlicher Sicherheit identisch mit der entsprechenden Verbraucherversion, wie bei vielen Dingen im Hintergrund.

  • Beispiel: 1-GBit-Standard-Ethernet-Kabelverbindung, Win10 -> 4. Tabelle (siehe oben), „Größer oder gleich 200 MB und kleiner als 2 GB“ ist eine automatische Schnittstellenmetrik von 25.

Gateway-Metrik:

Die Gateway-Metrik kann etwas kniffliger sein, da die Standardwerte bei einer schnellen Suche nicht offensichtlich oder scheinbar nicht einmal dokumentiert sind. Hier wird sie dadurch festgelegt, ob der Link eine dynamische oder statische IP verwendet. Es kann noch andere Bedingungen geben, aber diese beiden sind alles, was ich gefunden habe.

Beim Testen habe ich festgestellt, dass die StandardeinstellungstatischMetrik ist 256 und die Standarddynamisch/DHCPMetrik ist 0. Da diese zu Ihrer Schnittstellenmetrik oben hinzugefügt werden und Sie in den oben verlinkten Tabellen sehen können, dass 256 größer/schlechter ist als jede automatische Schnittstellenmetrik, sagt es IhnenEin dynamisch adressierter Link hat immer Vorrang vor einem statisch adressierten Link, wenn alle Standardeinstellungen/automatischen Einstellungen verwendet werden..

Grundsätzliche Überlegungen für die Praxis

Als Beispiel: Wenn jemand einen Server oder ein anderes Windows-Gerät mit einer statischen IP verwaltet und nicht möchte, dass ein Rogue-/Test-/2.-Router auf beispielsweise einer zweiten Netzwerkkarte den Datenverkehr des Geräts plötzlich über den besagten Router leitet (wodurch der Server möglicherweise offline geht), sollten Sie Ihre Gateway- und Schnittstellenmetriken zwangsweise so niedrig einstellen, dass sie wahrscheinlich nicht durch eine andere automatische Zuweisung ersetzt werden. Verwenden Sie vielleicht 1 bzw. 10 oder nur 1 und 1, wenn Sie möchten, dass diese Route/Netzwerkkarte immer und ohne Ausnahme verwendet wird. Dokumentieren Sie einfach, dass Sie das getan haben, da das harte Einstellen einiger Dinge auf extreme Werte gelegentlich später zu Problemen führen kann.

Mögliche Macken/Bugs

Bevor ich mit diesem kleinen Dokumentationsprojekt begann, habe ich eine sekundäre Netzwerkkarte eingerichtetSchnittstelleMetrik auf 100, um mit einem Netzwerklabor fertig zu werden, das ich eingerichtet hatte, und nach vielleicht einer oder zwei Wochen, mit normaler Nutzung dazwischen, kam ich zurück und fand die SchnittstelleTorDie Metrik war auch auf 100 eingestellt. Ich bin nicht sicher, wie das passiert ist oder ob es sich um einen Sonderfall handelte, aber durch schnelles Zurücksetzen auf statisch und zurück (es wurde DHCP verwendet, sodass in den NIC-Eigenschaften kein Gateway zum Einstellen vorhanden war) wurde das Problem behoben und ist nicht erneut aufgetreten.

verwandte Informationen