Das Internet wurde ursprünglich entwickelt, um die bestmögliche und kostengünstigste Verbindung zwischen den Teilnehmern herzustellen. Zudem durften die relativ wenigen Teilnehmer nur Anwendungen über das Internet verfügbar machen, die gewisse Nutzungsbedingungen erfüllten.
Heute sieht alles ganz anders aus: Milliarden von Unternehmen, Haushalten und Geräten sind online und kritische Anwendungen in Bereichen wie Telemedizin, Verkehrssteuerung und Finanzwesen werden über das Internet genutzt. Es gibt nach wie vor Anwendungen, die gelegentliche Paketverluste und variierende Latenzzeiten problemlos ausgleichen können (zum Beispiel E-Mail), doch andere (wie Online-Spiele) sind erheblich weniger tolerant.
Für diese Anwendungen ist die bestmögliche und kostengünstigste Verbindung nicht gut genug. Solche Anwendungen sind inzwischen so weit verbreitet, dass Netzwerkbetreiber selbst in sehr großen Umgebungen vorausschauende Services wie Verkehrsplanung und die schnelle Umleitung von Paketen bereitstellen müssen. Dazu müssen sie die Komplexität ihrer Netzwerke reduzieren.
Das Segment-Routing (SR) ist ein innovativer Ansatz für die Steuerung des Netzwerkverkehrs, der auch für die Verkehrsplanung und die Umleitung von Paketen genutzt werden kann. Wenn SR zur Bewältigung dieser Herausforderungen eingesetzt wird, vereinfacht es auch die Routing-Protokolle sowie die Entwicklung und den Betrieb von Netzwerken.
Viele Anbieter von Netzwerkkomponenten bieten inzwischen miteinander kompatible SR-Lösungen an, doch unser digitales, schnelllebiges Zeitalter erfordert kontinuierliche Innovation – und genau mit dieser SR-Innovation sind Juniper Networks und seine Mitbewerber beschäftigt. In dieser Blog-Reihe geht es um die neuesten Entwicklungen rund um das Segment-Routing.
Um diese verständlich zu machen, möchte ich etwas weiter ausholen und die Grundlagen des Segment-Routing kurz rekapitulieren. Dabei werde ich auch verschiedene frühere Spezifikationen und einige der Erfahrungen ansprechen, die wir bei Juniper beim Aufbauen und Testen von Netzwerken gesammelt haben.
Außerdem werde ich einige der Best Practices für die Einführung und Nutzung von SR vorstellen und auf Lücken, neue Anforderungen und Innovationen im Bereich SR eingehen.
Fangen wir mit einer Erläuterung der Begriffe SR-Domain und SR-Pfad an.
SR-Domain
Eine SR-Domain ist eine Gruppe von Nodes oder Knoten, die von einem SR-Protokoll genutzt werden. Ein Node kann innerhalb seiner Domain Datenpakete weiterleiten, die in die Domain eingehen (Ingress), sie passieren (Transit) oder sie verlassen (Egress). Abbildung 1 zeigt eine Netzwerkinfrastruktur, in der ein Quellknoten (Source Node) Datenpakete an einen Zielknoten (Destination Node) schickt. Diese beiden Knoten befinden sich außerhalb der SR-Domain, doch die Datenpakete passieren die Domain.
Abbildung 1: Eine SR-Domain
Wenn ein Datenpaket beim Ingress-Node oder Eingangsknoten der SR-Domain ankommt, wird dort die Routing-Richtlinie angewendet. Diese Richtlinie enthält Bedingungen und Aktionen. Wenn das Paket die Bedingungen erfüllt, wird es in einem SR-Tunnel verkapselt und über einen SR-Pfad an den Egress-Node oder Ausgangsknoten weitergeleitet.
Der SR-Pfad kann so gewählt werden, dass er verschiedene Anforderungen erfüllt, beispielsweise eine minimale Übertragungsbandbreite oder eine maximale Latenzzeit. Der gewählte SR-Pfad kann, muss aber nicht, der kostengünstigste Pfad zum Ausgangsknoten sein, denn mitunter erzwingen Einschränkungen die Nutzung eines anderen Pfads.
Oft befinden sich der SR-Eingangsknoten und der Quellknoten auf unterschiedlichen Hardwareplattformen. Der Quellknoten könnte zum Beispiel ein Laptopund der SR-Eingangsknoten ein Router sein. Das ist jedoch nicht unbedingt der Fall. Es ist auch möglich, dass der Quellknoten eine virtuelle Maschine und der SR-Eingangsknoten ein Hypervisor ist und dass beide sich auf derselben Hardwareplattform befinden.
Dasselbe gilt für den SR-Ausgangsknoten und den Zielknoten: Auch sie können sich auf verschiedenen oder auf derselben Hardwareplattform befinden.
Eine weitere Konfiguration, die allerdings weniger häufig auftritt, ist, dass der Quellknoten sich innerhalb der SR-Domain befindet. In diesem Fall fungiert der Quellknoten gleichzeitig als SR-Eingangsknoten und führt die Prozeduren für eingehende Datenpakete aus. Und natürlich ist es auch möglich, dass der Zielknoten sich innerhalb der SR-Domain befindet. In diesem Fall fungiert dieser Knoten als SR-Ausgangsknoten und führt die Prozeduren für ausgehende Datenpakete aus.
SR-Pfad
Ein SR-Pfad ist eine geordnete Reihe von Segmenten, die den SR-Eingangs- mit dem SR-Ausgangsknoten verbinden. Wie bereits erwähnt kann das der kostengünstigste oder ein anderer Pfad sein.
Ein und dasselbe Segment kann in mehreren SR-Pfaden enthalten sein. In Abbildung 2 führt Pfad A vom Eingangsknoten A zum Ausgangsknoten Z und Pfad B vom Eingangsknoten B zum selben Ausgangsknoten. Beide Pfade passieren das Segment 3.
Abbildung 2: Mehrere Pfade teilen sich ein Segment
Wenn ein SR-Eingangsknoten ein Datenpaket in einem SR-Tunnel verkapselt, trägt es auch die dazugehörige Segmentliste (den SR-Pfad) in den Tunnel-Header ein und leitet das Datenpaket dann weiter. Die sogenannten „Transit Nodes“ lesen die Informationen im Tunnel-Header und leiten das Datenpaket an das nächste Segment im SR-Pfad weiter.
Da der gesamte SR-Pfad im Tunnel-Header enthalten ist, müssen die Transit-Nodes nur den Tunnel-Header lesen, um das Datenpaket an das richtige Segment weiterzuleiten.
Das ist der größte Vorteil des Segment-Routing, denn es bedeutet, dass auf den Transit-Nodes keine Informationen darüber gespeichert und gepflegt werden müssen, welche SR-Pfade den Knoten passieren. Dadurch entfällt ein erheblicher Verwaltungsaufwand. Gleichzeitig vereinfacht dieser Ansatz die Routing-Protokolle, verbessert die Skalierbarkeit und sorgt für einen übersichtlicheren Netzwerkbetrieb.
Die Festlegung des gesamten SR-Pfads durch den Eingangsknoten bringt zwar einige neue Herausforderungen mit sich, doch insgesamt sind die Auswirkungen auf die Verkehrslenkung überwiegend positiv. Auf diese Auswirkungen kommen wir in den folgenden Blogbeiträgen zurück.
Beim nächsten Mal
Im nächsten Blogbeitrag unserer Reihe sehen wir uns die Segmentierung und die verschiedenen Segmentarten genauer an.