ECMP Flow-basierte Weiterleitung
Dieses Thema bietet einen kurzen Überblick über ECMP (Equal-Cost Multipath) für die Weiterleitung und umgekehrten Datenverkehr auf Junos OS, Firewalls der SRX-Serie und Virtuelle Firewall vSRX-Instanzen. Für eine umfassende Abdeckung der ECMP-Implementierung auf Junos OS, Firewalls der SRX-Serie und Virtuelle Firewall vSRX-Instanzen.
Verständnis von ECMP Flow-Based Forwarding
Equal-cost Multipath (ECMP) ist eine Netzwerk-Routing-Strategie, die es ermöglicht, Datenverkehr derselben Sitzung oder desselben Flusses, d. h. Datenverkehr mit derselben Quelle und demselben Ziel, über mehrere Pfade zu gleichen Kosten zu übertragen. Es ist ein Mechanismus, mit dem Sie den Datenverkehr ausgleichen und die Bandbreite erhöhen können, indem Sie ansonsten ungenutzte Bandbreite für Verbindungen zum selben Ziel vollständig nutzen.
Bei der Weiterleitung eines Pakets muss die Routing-Technologie entscheiden, welcher Next-Hop-Pfad verwendet werden soll. Bei der Bestimmung berücksichtigt das Gerät die Paket-Header-Felder, die einen Datenstrom identifizieren. Bei Verwendung von ECMP werden Next-Hop-Pfade mit gleichen Kosten auf der Grundlage von Routing-Metrikberechnungen und Hash-Algorithmen identifiziert. Das heißt, Routen mit gleichen Kosten haben die gleichen Präferenz- und Metrikwerte und die gleichen Kosten für das Netzwerk. Der ECMP-Prozess identifiziert eine Reihe von Routern, von denen jeder einen legitimen Next Hop zum Ziel zu gleichen Kosten darstellt. Die identifizierten Routen werden als ECMP-Set bezeichnet. Da ECMP nur das Next-Hop-Ziel adressiert, kann es mit den meisten Routing-Protokollen verwendet werden.
Ein ECMP-Set (Equal-Cost Multipath) wird gebildet, wenn die Routing-Tabelle mehrere Next-Hop-Adressen für dasselbe Ziel zu gleichen Kosten enthält. (Routen mit gleichen Kosten haben die gleichen Präferenz- und Metrikwerte.) Wenn für die aktive Route ein ECMP festgelegt ist, verwendet Junos OS einen Hash-Algorithmus, um eine der Next-Hop-Adressen im ECMP-Satz auszuwählen, die in der Weiterleitungstabelle installiert werden soll.
Sie können Junos OS so konfigurieren, dass mehrere Next-Hop-Einträge in einem ECMP-Satz in der Weiterleitungstabelle installiert werden. Auf Geräten von Juniper Networks kann ein Pro-Flow-Load Balancing durchgeführt werden, um den Datenverkehr über mehrere Pfade zwischen Routing-Geräten zu verteilen. Auf Sicherheitsgeräten von Juniper Networks werden Quell- und Ziel-IP-Adressen und Protokolle untersucht, um einzelne Datenverkehrsströme zu ermitteln. Pakete für denselben Datenstrom werden über dieselbe Schnittstelle weitergeleitet. Die Schnittstelle ändert sich nicht, wenn es Ergänzungen oder Änderungen am ECMP-Satz gibt. Dies ist wichtig für Funktionen wie Quell-NAT, bei denen die Übersetzung nur während des ersten Pfads der Sitzungseinrichtung für IDP-, ALG- und routenbasierte VPN-Tunnel durchgeführt wird. Wenn ein Paket an einer bestimmten Schnittstelle in einem ECMP-Set ankommt, stellt das Sicherheitsgerät sicher, dass der umgekehrte Datenverkehr über dieselbe Schnittstelle weitergeleitet wird.
Die auf ECMP Flow-basierte Weiterleitung auf Sicherheitsgeräten gilt für IPv4- und IPv6-Unicast-Datenverkehrsströme. Die ablaufbasierte ECMP-Weiterleitung von IPv6-Unicast-Datenverkehr wird auf allen Firewalls der SRX-Serie und allen Instanzen der Virtuelle Firewall vSRX unterstützt. Multicast-Flow wird nicht unterstützt. Verwenden Sie den Feature-Explorer , um die Plattform- und Release-Unterstützung für bestimmte Funktionen zu bestätigen.
Auf Juniper Networks Sicherheitsgeräten können maximal 16 Next-Hop-Adressen in einem ECMP Weiterleitungstabelle-Set installiert werden. Wenn mehr als 16 Next-Hop-Adressen in einem ECMP-Set vorhanden sind, werden nur die ersten 16 Adressen verwendet.
Bei der Bereitstellung eines Chassis-Clusters ist eine lokale Schnittstelle eine Schnittstelle, die sich auf demselben Knoten befindet wie die Schnittstelle, auf der ein Paket ankommt, und eine Remoteschnittstelle ist eine Schnittstelle, die sich auf dem anderen Chassis-Cluster-Knoten befindet. Wenn eine ECMP-Route sowohl lokale als auch Remoteschnittstellen in einem Chassis-Cluster aufweist, wird die lokale Schnittstelle für den nächsten Hop bevorzugt.
Wenn eine Next-Hop-Adresse nicht mehr Teil des ECMP-Sets ist oder aufgrund einer Routenänderung aus der Routing-Tabelle entfernt wird, wird ein Flow, der den nächsten Hop verwendet, umgeleitet und die Sitzung ist nicht betroffen. Eine Umleitung des Datenstroms erfolgt auch, wenn eine Konfigurationsänderung die Next-Hop-Adresse entfernt, oder wenn ein Administrator die Next-Hop-Schnittstelle herunterfährt, ohne sie zu löschen. Wenn eine Next-Hop-Adresse aus der Routing-Tabelle entfernt wird, weil die Schnittstelle gelöscht oder die Sitzung absichtlich gelöscht wird, wird die Sitzung beendet, ohne dass sie umgeleitet wird.
Es wird empfohlen, dass sich Schnittstellen in einem ECMP-Set in derselben Sicherheitszone befinden. Wenn ein Datenstrom umgeleitet wird und der umgeleitete Datenstrom eine Schnittstelle in einer anderen Sicherheitszone als die ursprüngliche Route verwendet, wird die Sitzung beendet.
Um die ablaufbasierte ECMP-Weiterleitung auf Sicherheitsgeräten von Juniper Networks zu konfigurieren, definieren Sie zunächst eine Routing-Richtlinie für das Lastausgleichen, indem Sie eine oder mehrere policy-statement Konfigurationsanweisungen auf der Hierarchieebene [edit policy-options] mit der Aktion load-balance per-flow. Wenden Sie dann die Routing-Richtlinie auf Routen an, die aus der Routing-Tabelle in die Weiterleitungstabelle exportiert werden. Fügen Sie dazu die forwarding-table export und-Konfigurationsanweisungen auf der Hierarchieebene [edit routing-options] ein.
- ECMP-Implementierung für Junos OS Firewalls der SRX-Serie und Instanzen der virtuellen Firewall vSRX
- ECMP für Reverse Traffic
ECMP-Implementierung für Junos OS Firewalls der SRX-Serie und Instanzen der virtuellen Firewall vSRX
Sie können ECMP für Firewalls der SRX-Serie und Instanzen der Virtuelle Firewall vSRX konfigurieren, um ein Load Balancing pro Datenstrom zu implementieren und den Datenverkehr auf mehrere Pfade zwischen Routing-Geräten zu verteilen. Routen mit gleichen Kosten haben die gleichen Präferenz- und Metrikwerte. Diese Geräte untersuchen die Quell-IP-Adresse, die Ziel-IP-Adresse und das Protokoll, um einzelne Datenverkehrsströme zu ermitteln. Datenverkehr mit derselben Quell-IP-Adresse, Ziel-IP-Adresse und Protokollnummer, die durch eine Sicherheitsrichtlinie zulässig ist, wird an denselben nächsten Hop weitergeleitet. Junos OS auf diesen Geräten verwendet die Flussinformationen in seiner Hashing-Logik.
Für Junos OS Firewalls der SRX-Serie und Virtuelle Firewall vSRX-Instanzen wird ein ECMP-Satz erstellt, wenn die Routing-Tabelle mehrere Next-Hop-Adressen für dasselbe Ziel zu gleichen Kosten enthält. ECMP ermöglicht die Installation mehrerer Next-Hop-Einträge in einem ECMP-Set in der Weiterleitungstabelle. Pakete für denselben Datenstrom werden über dieselbe Schnittstelle weitergeleitet. Die Schnittstelle ändert sich nicht, wenn es Ergänzungen oder Änderungen am ECMP-Satz gibt.
Wenn für die aktive Route ein ECMP festgelegt ist, verwendet Junos OS einen Hash-Algorithmus, um eine der Next-Hop-Adressen im ECMP-Satz auszuwählen, die in der Weiterleitungstabelle installiert werden soll.
ECMP für Reverse Traffic
Ab Junos OS Version 17.3 verwendet die Firewall der SRX-Serie einen Hash-Algorithmus, um die Schnittstelle zu bestimmen, die für den umgekehrten Datenverkehr in einem Datenstrom verwendet werden soll, wenn Sie die ECMP-Unterstützung für umgekehrten Datenverkehr aktivieren. Dieser Prozess ähnelt dem asymmetrischen Routing, bei dem ein Paket in einem Pfad von einer Quelle zu einem Ziel gelangt und einen anderen Pfad nimmt, wenn es zur Quelle zurückkehrt.
Wenn Sie diese Funktion nicht aktivieren, wählt die Firewall der SRX-Serie eine Route im ECMP aus, die auf die eingehende Schnittstelle für umgekehrten Datenverkehr festgelegt ist. Dies ist das Standardverhalten.
Sie verwenden die allow-reverse-ecmp Konfigurationsanweisung in deredit security flow []-Hierarchie, um die ablaufbasierte ECMP-Weiterleitung so zu konfigurieren, dass ein Hashalgorithmus bei der Auswahl einer Route im ECMP-Satz für den umgekehrten Datenverkehrtransit verwendet wird. Das heißt, wenn Sie diese Funktion aktivieren, wählt die Firewall der SRX-Serie nicht eine Route zur eingehenden Schnittstelle, sondern einen Hash-Algorithmus aus, um eine Route im ECMP-Satz für umgekehrten Datenverkehr auszuwählen.
Da die ablaufbasierte ECMP-Richtlinie zonenbasiert ist, stellt die ECMP-Reverse-Lookup-Unterstützung sicher, dass sich die für den umgekehrten Datenverkehr verwendete Ausgangsschnittstelle in derselben Zone befindet wie die Eingangsschnittstelle, die für den ankommenden Datenverkehr verwendet wird.
Schnittstellen in einem ECMP-Set müssen sich in derselben Sicherheitszone befinden. Wenn sich die Ausgangsschnittstellenzone von der Eingangsschnittstellenzone unterscheidet, kann eine Sitzung erstellt werden, aber die Pakete werden verworfen.
Wenn Sie sich entscheiden, umgekehrtes ECMP zu aktivieren, beachten Sie die folgende Bedingung und ergreifen Sie Maßnahmen, um sie zu vermeiden: Wenn die ablaufbasierte Weiterleitung von ECMP verwendet wird, kann die Firewall der SRX-Serie dazu führen, dass vorgeschaltete Geräte nur den unidirektionalen Datenverkehr einer Sitzung sehen. Probleme können bei vorgeschalteten Geräten auftreten, die den Sitzungsstatus aufrechterhalten, z. B. für TCP-Proxy und SYN-Proxy. Das Problem ähnelt dem asynchronen Routingverhalten.
Beispiel: Konfigurieren der ablaufbasierten ECMP-Weiterleitung
In diesem Beispiel wird gezeigt, wie die ablaufbasierte Weiterleitung von ECMP konfiguriert wird.
Anforderungen
Vor der Konfiguration dieser Funktion ist keine spezielle Konfiguration erforderlich, die über die Geräteinitialisierung hinausgeht.
Überblick
In diesem Beispiel werden drei statische ECMP-Routen auf einer Firewall der SRX-Serie konfiguriert. Jede statische Route verwendet einen anderen Next-Hop-Router, um den Zielserver zu erreichen. Die Schnittstellen zu den Routern werden der nicht vertrauenswürdigen Sicherheitszone zugewiesen. In diesem Beispiel wird eine Load-Balancing-Routing-Richtlinie mit dem Namen load-balancing-policy erstellt und auf alle Routen angewendet, die aus der Routing-Tabelle in die Weiterleitungstabelle exportiert werden.
Konfiguration
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle erforderlichen Details, damit sie mit Ihrer Netzwerkkonfiguration übereinstimmen, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf Hierarchieebene [edit] ein.
## Interfaces ## set interfaces ge-0/0/2 unit 0 family inet address 192.168.4.1/24 set interfaces ge-0/0/4 unit 0 family inet address 192.168.1.1/24 set interfaces ge-0/0/6 unit 0 family inet address 192.168.2.1/24 set interfaces ge-0/0/7 unit 0 family inet address 192.168.3.1/24 ## Static routes ## set routing-options static route 172.16.1.0/24 next-hop 192.168.1.2 set routing-options static route 172.16.1.0/24 next-hop 192.168.2.2 set routing-options static route 172.16.1.0/24 next-hop 192.168.3.2 ## Security zones, address book entry, and policy ## set security zones security-zone trust interfaces ge-0/0/2 set security zones security-zone untrust interfaces ge-0/0/4 set security zones security-zone untrust interfaces ge-0/0/6 set security zones security-zone untrust interfaces ge-0/0/7 set security address-book global address FTP-servers 172.16.1.0/24 set security policies from-zone trust to-zone untrust policy permit-ftp match source-address any set security policies from-zone trust to-zone untrust policy permit-ftp match destination-address FTP-servers set security policies from-zone trust to-zone untrust policy permit-ftp match application junos-ftp set security policies from-zone trust to-zone untrust policy permit-ftp then permit ## ECMP routing policy ## set policy-options policy-statement load-balancing-policy then load-balance per-flow set routing-options forwarding-table export load-balancing-policy
Vorgehensweise
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren.
So konfigurieren Sie die ablaufbasierte ECMP-Weiterleitung:
-
Konfigurieren Sie Schnittstellen.
[edit interaces] user@host# set ge-0/0/2 unit 0 family inet address 192.168.4.1/24 user@host# set ge-0/0/4 unit 0 family inet address 192.168.1.1/24 user@host# set ge-0/0/6 unit 0 family inet address 192.168.2.1/24 user@host# set ge-0/0/7 unit 0 family inet address 192.168.3.1/24
-
Konfigurieren Sie statische Routen.
[edit routing-options] user@host# set static route 172.16.1.0/24 next-hop 192.168.1.2 user@host# set static route 172.16.1.0/24 next-hop 192.168.2.2 user@host# set static route 172.16.1.0/24 next-hop 192.168.3.2
-
Erstellen Sie die
trustuntrustund-Sicherheitszonen und schließen Sie die zugehörigen Schnittstellen ein.[edit security] user@host# set zones security-zone trust interfaces ge-0/0/2 user@host# set zones security-zone untrust interfaces ge-0/0/4 user@host# set zones security-zone untrust interfaces ge-0/0/6 user@host# set zones security-zone untrust interfaces ge-0/0/7
-
Konfigurieren Sie einen Adressbucheintrag für das Serversubnetz.
Dieser Eintrag wird in der Sicherheitsrichtlinie verwendet.
[edit security address-book] user@host# set global address FTP-servers 172.16.1.0/24
-
Konfigurieren Sie eine Sicherheitsrichtlinie.
[edit security policies from-zone trust to-zone untrust] user@host# set policy permit-ftp match source-address any user@host# set policy permit-ftp match destination-address FTP-servers user@host# set policy permit-ftp match application junos-ftp user@host# set policy permit-ftp then permit
-
Erstellen Sie eine Load-Balancing-Routing-Richtlinie.
[edit policy-options] user@host# set policy-statement load-balancing-policy then load-balance per-flow
-
Wenden Sie die Routing-Richtlinie auf alle Routen an, die aus der Routing-Tabelle in die Weiterleitungstabelle exportiert werden.
[edit routing-options] user@host# set forwarding-table export load-balancing-policy
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show interfacesBefehle , show security, show policy-optionsund ausführen show routing-options . Wenn die Ausgabe nicht die beabsichtigte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
[edit]
user@host# show interfaces
ge-0/0/2 {
unit 0 {
family inet {
address 192.168.4.1/24;
}
}
}
ge-0/0/4 {
unit 0 {
family inet {
address 192.168.1.1/24;
}
}
}
ge-0/0/6 {
unit 0 {
family inet {
address 192.168.2.1/24;
}
}
}
ge-0/0/7 {
unit 0 {
family inet {
address 192.168.3.1/24;
}
}
}
user@host# show security
address-book {
global {
address FTP-servers 172.16.1.0/24;
}
}
policies {
from-zone trust to-zone untrust {
policy permit-ftp {
match {
source-address any;
destination-address FTP-servers;
application junos-ftp;
}
then {
permit;
}
}
}
}
zones {
security-zone trust {
interfaces {
ge-0/0/2.0;
}
}
security-zone untrust {
interfaces {
ge-0/0/4.0;
ge-0/0/6.0;
ge-0/0/7.0;
}
}
}
user@host# show policy-options
policy-statement load-balancing-policy {
then {
load-balance per-flow;
}
}
[edit]
user@host# show routing-options
static {
route 172.16.1.0/24 next-hop [ 192.168.1.2 192.168.2.2 192.168.3.2 ];
}
forwarding-table {
export load-balancing-policy;
}
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf commit .
Verifizierung
Überprüfen der Weiterleitungstabelle
Zweck
Stellen Sie sicher, dass die Routeninformationen für alle ECMP-Routen in der Weiterleitungstabelle angezeigt werden.
Aktion
Geben Sie im Betriebsmodus den show route forwarding-table destination 172.16.1.0 Befehl ein.
user@host> show route forwarding-table destination 172.16.1.0
Routing table: default.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
172.16.1.0/24 user 0 ulst 262142 2
192.168.1.2 ucst 560 2 ge-0/0/4.0
192.168.2.2 ucst 561 2 ge-0/0/6.0
192.168.3.2 ucst 562 2 ge-0/0/7.0
...
Bedeutung
Die Ausgabe zeigt den Typ des nächsten Hops an ulst, was bedeutet, dass die Route über mehrere berechtigte nächste Hops verfügt. Pakete, die für das Netzwerk 172.16.1.0 bestimmt sind, können jeden nächsten Hop in der Liste verwenden.
Tabellarischer Änderungsverlauf
Die Unterstützung der Funktion hängt von der Plattform und der Version ab, die Sie benutzen. Verwenden Sie den Feature-Explorer , um festzustellen, ob eine Funktion auf Ihrer Plattform unterstützt wird.
