it-swarm.com.de

Routing-Auswahl: Spezifität vs. Metrik

Ich verstehe, dass Linux die spezifischste Route zum Ziel wählt, wenn dies der Fall ist Routing-Auswahl . Aber was ist mit der Metrik einer Route? Hat es eine höhere Priorität als die Routenspezifität?

Ein Verweis auf die Details des von Linux verwendeten Routing-Auswahlalgorithmus wäre ebenfalls willkommen.

18
Eugene Yarmash

Die Routenmetrik dient dazu, die Präferenz unter Routen mit gleicher Spezifität festzulegen. Dies gilt für das Routing im Allgemeinen (d. H. Cisco, Windows usw.). Das Modell funktioniert also wie folgt:

  1. Finden Sie die spezifischste Route (auch bekannt als die längste Präfixübereinstimmung * )
  2. Wenn es mehrere Routen mit derselben Spezifität gibt, wählen Sie die mit der niedrigsten Verwaltungsentfernung (Dies unterscheidet zwischen Dingen wie direkt angehängte Routen, statische Routen und verschiedene Routing-Protokolle).
  3. Wählen Sie innerhalb dieses Routing-Protokolls und der spezifischen Route (wenn Routenspezifität und Verwaltungsentfernung gleich sind) die Route mit der niedrigsten Metrik .

Beachten Sie, dass es andere Dinge geben könnte, die auf einem solchen richtlinienbasiertes Routing ablaufen könnten, mit dem Sie Dinge wie die Route basierend auf der Quell-IP-Adresse ausführen können. Aber Routenspezifität, administrative Entfernung und dann Metrik sind das, was ich als die drei wichtigsten Dinge betrachten würde.

* Es wird als längste Präfixübereinstimmung bezeichnet, da ein Subnetz in Binärform (z. B./24) wie 11111111.11111111.11111111.00000000 Aussieht. Ein Router kann also einfach das Präfix nach binären Einsen durchsuchen und anhalten, sobald es eine Null erreicht hat, und dann mit dem Präfix übereinstimmen.

28
Kyle Brandt

Linux bietet eine Reihe von Tools für die flexible Routingauswahl.

Einzelne Routing-Tabelle

Im einfachsten Fall gibt es nur eine Kernel-Routing-Tabelle und keine Routen mit dem SRC-Attribut. Diese Tabelle enthält eine Reihe von Routen, die dort manuell platziert wurden (ip route add), vom DHCP-Daemon oder vom Routing von Daemons. In diesem Fall wählt der Kernel:

  • die spezifischste Route;
  • wenn es mehrere gleich spezifische Routen gibt, die mit der kleinsten Kernel-Metrik.

Beachten Sie, dass die Kernel-Metrik (angezeigt von ip route show) wird vom Routing-Daemon ausgewählt und hängt nicht unbedingt mit der Metrik eines bestimmten Routing-Protokolls zusammen. Beispielsweise verwendet Quagga unabhängig von der Metrik des Protokolls für alle im Kernel installierten Routen dieselbe Metrik.

Quellenspezifische Routen

Linux unterstützt auch Routen mit einem SRC-Attribut, die nur Pakete mit einer bestimmten Quelladresse abgleichen. SRC funktioniert nur für IPv6 und war bis vor kurzem fehlerhaft (3.11, wenn Speicher verfügbar ist). Ich empfehle nicht, es zu verwenden, es sei denn, Sie wissen, was Sie tun.

Mehrere Routing-Tabellen

Wenn Sie mehr Flexibilität benötigen als oben beschrieben, müssen Sie mit mehreren Routing-Tabellen spielen und Regeln schreiben, um eine bestimmte Routing-Tabelle für jedes Paket auszuwählen. Eine übliche Technik besteht darin, die Quelladresse zu versenden, um quellenspezifische Routen zu simulieren. Eine andere Technik besteht darin, jeden Routing-Daemon in einer eigenen Routing-Tabelle auszuführen und die "administrative Entfernung" von Cisco zu simulieren. All dies wird ausführlich in Kapitel 4 des LARTC beschrieben.

9
jch