ECMP Flow-basierte Weiterleitung
Dieses Thema bietet einen kurzen Überblick über Equal-Cost Multipath (ECMP) für Weiterleitung und Reverse-Side-Datenverkehr auf Junos OS Firewalls der SRX-Serie und vSRX Virtual Firewall-Instanzen. Für eine umfassende Abdeckung der ECMP-Implementierung auf Junos OS Firewalls der SRX-Serie und vSRX Virtual Firewall-Instanzen.
Grundlegendes zur flussbasierten Weiterleitung von ECMP
Equal-Cost Multipath (ECMP) ist eine Netzwerkrouting-Strategie, die es ermöglicht, Datenverkehr derselben Sitzung oder desselben Datenstroms, d. h. Datenverkehr mit derselben Quelle und demselben Ziel, über mehrere Pfade zu gleichen Kosten zu übertragen. Es handelt sich um einen Mechanismus, der es Ihnen ermöglicht, den Datenverkehr auszugleichen und die Bandbreite zu erhöhen, indem Sie ansonsten ungenutzte Bandbreite auf 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. Wenn ECMP verwendet wird, 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 mit gleichen Kosten in Richtung des Ziels darstellt. Die identifizierten Routen werden als ECMP-Satz bezeichnet. Da ECMP nur das Ziel des nächsten Hops adressiert, kann es mit den meisten Routing-Protokollen verwendet werden.
Ein ECMP-Satz (Equal-Cost Multipath) wird gebildet, wenn die Routing-Tabelle mehrere Next-Hop-Adressen für dasselbe Ziel mit 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 Lastausgleich pro Datenfluss durchgeführt werden, um den Datenverkehr über mehrere Pfade zwischen Routing-Geräten zu verteilen. Auf den Sicherheitsgeräten von Juniper Networks werden Quell- und Ziel-IP-Adressen und -Protokolle untersucht, um den individuellen Datenverkehrsfluss zu bestimmen. Pakete für denselben Datenstrom werden über dieselbe Schnittstelle weitergeleitet. Die Schnittstelle ändert sich nicht, wenn der ECMP-Satz ergänzt oder geändert wird. 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 auf einer bestimmten Schnittstelle in einem ECMP-Satz eintrifft, stellt die Sicherheitsvorrichtung sicher, dass der umgekehrte Datenverkehr über dieselbe Schnittstelle weitergeleitet wird.
Die datenflussbasierte ECMP-Weiterleitung auf Sicherheitsgeräten gilt für IPv4- und IPv6-Unicast-Datenverkehrsflüsse. Ab Junos OS Version 15.1X49-D60 wird die flussbasierte ECMP-Weiterleitung von IPv6-Unicast-Datenverkehr auf allen Firewalls der SRX-Serie und vSRX Virtual Firewall-Instanzen unterstützt. Multicast-Datenfluss wird nicht unterstützt.
Auf Sicherheitsgeräten von Juniper Networks können maximal 16 Next-Hop-Adressen in einem ECMP-Satz in der Weiterleitungstabelle installiert werden. Wenn mehr als 16 Next-Hop-Adressen in einem ECMP-Satz vorhanden sind, werden nur die ersten 16 Adressen verwendet.
In einer Chassis-Cluster-Bereitstellung 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-Clusterknoten 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-Satzes ist oder wenn sie aufgrund einer Routenänderung aus der Routing-Tabelle entfernt wird, wird ein Datenstrom, der den nächsten Hop verwendet, umgeleitet, und die Sitzung ist nicht betroffen. Eine erneute Weiterleitung des Datenstroms erfolgt auch, wenn es eine Konfigurationsänderung gibt, durch die die Adresse des nächsten Hops entfernt wird, oder wenn ein Administrator die Schnittstelle des nächsten Hops abschaltet, ohne sie zu löschen. Wenn eine Next-Hop-Adresse aus der Routingtabelle entfernt wird, weil die Schnittstelle gelöscht oder die Sitzung absichtlich gelöscht wurde, wird die Sitzung beendet, ohne dass sie erneut weitergeleitet wird.
Es wird empfohlen, dass sich Schnittstellen in einem ECMP-Satz in derselben Sicherheitszone befinden. Wenn ein Datenfluss umgeleitet wird und der umgeleitete Datenfluss eine Schnittstelle in einer anderen Sicherheitszone als die ursprüngliche Route verwendet, wird die Sitzung beendet.
Um die flussbasierte ECMP-Weiterleitung auf Sicherheitsgeräten von Juniper Networks zu konfigurieren, definieren Sie zunächst eine Load-Balancing-Routing-Richtlinie, indem Sie eine oder mehrere policy-statement
Konfigurationsanweisungen auf der Hierarchieebene [] mit der Aktion load-balance per-flow
.edit policy-options
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 configuration-Anweisungen auf der Hierarchieebene [edit routing-options
] ein.
- ECMP-Implementierung für Junos OS Firewalls der SRX-Serie und virtuelle vSRX-Firewall-Instanzen
- ECMP für Reverse-Traffic
ECMP-Implementierung für Junos OS Firewalls der SRX-Serie und virtuelle vSRX-Firewall-Instanzen
Sie können ECMP für Firewalls der SRX-Serie und virtuelle vSRX-Firewall-Instanzen konfigurieren, um einen Lastausgleich pro Datenfluss zu implementieren und den Datenverkehr über 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 Datenverkehrsflüsse zu bestimmen. Datenverkehr mit derselben Quell-IP-Adresse, Ziel-IP-Adresse und Protokollnummer, die von einer Sicherheitsrichtlinie zugelassen werden, wird an denselben nächsten Hop weitergeleitet. Junos OS auf diesen Geräten verwendet die Datenstrominformationen in seiner Hashing-Logik.
Für Junos OS Firewalls der SRX-Serie und virtuelle vSRX-Firewall-Instanzen wird ein ECMP-Satz gebildet, 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-Satz in der Weiterleitungstabelle. Pakete für denselben Datenstrom werden über dieselbe Schnittstelle weitergeleitet. Die Schnittstelle ändert sich nicht, wenn der ECMP-Satz ergänzt oder geändert wird.
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.
Die datenflussbasierte ECMP-Weiterleitung auf Firewalls der SRX-Serie und virtuellen vSRX-Firewall-Instanzen gilt für IPv4- und IPv6-Unicast-Datenverkehrsflüsse. Ab Junos OS Version 15.1X49-D60 und Junos OS Version 17.3R1 wird die flussbasierte ECMP-Weiterleitung von IPv6-Unicast-Datenverkehr auf allen Firewalls der SRX-Serie und vSRX Virtual Firewall-Instanzen unterstützt. Multicast-Datenfluss wird nicht unterstützt.
ECMP für Reverse-Traffic
Wenn Sie ab Junos OS Version 17.3 die ECMP-Unterstützung für Reverse-Datenverkehr aktivieren, verwendet die Firewall der SRX-Serie einen Hash-Algorithmus, um die Schnittstelle zu bestimmen, die für den Reverse-Datenverkehr in einem Datenstrom verwendet werden soll. Dieser Prozess ähnelt dem asymmetrischen Routing, bei dem ein Paket in einem Pfad von einer Quelle zu einem Ziel gelangt und bei Rückkehr zur Quelle einen anderen Pfad nimmt.
Wenn Sie diese Funktion nicht aktivieren, wählt die Firewall der SRX-Serie im ECMP eine Route aus, die auf die eingehende Schnittstelle für den umgekehrten Datenverkehr festgelegt ist, was das Standardverhalten ist.
Sie verwenden die allow-reverse-ecmp
Konfigurationsanweisung in der [edit security flow
]-Hierarchie, um die flussbasierte ECMP-Weiterleitung so zu konfigurieren, dass ein Hash-Algorithmus bei der Auswahl einer Route im ECMP-Satz für den umgekehrten Datenverkehrstransit verwendet wird. Das heißt, wenn Sie diese Funktion aktivieren, verwendet die Firewall der SRX-Serie einen Hash-Algorithmus, um eine Route im ECMP-Satz für den umgekehrten Datenverkehr auszuwählen, anstatt eine Route zur eingehenden Schnittstelle auszuwählen.
Da die datenflussbasierte ECMP-Richtlinie zonenbasiert ist, stellt die ECMP-Reverse-Lookup-Unterstützung sicher, dass sich die für den Reverse-Datenverkehr verwendete Ausgangsschnittstelle in derselben Zone befindet wie die Eingangsschnittstelle, die für den ankommenden Datenverkehr verwendet wird.
Schnittstellen in einem ECMP-Satz müssen sich in derselben Sicherheitszone befinden. Wenn sich die Ausgangsschnittstellenzone von der Eingangsschnittstellenzone unterscheidet, kann eine Sitzung erstellt werden, die Pakete werden jedoch verworfen.
Wenn Sie sich für die Aktivierung von umgekehrtem ECMP entscheiden, beachten Sie die folgende Bedingung und ergreifen Sie Maßnahmen, um sie zu vermeiden: Wenn die datenflussbasierte ECMP-Weiterleitung verwendet wird, kann die Firewall der SRX-Serie dazu führen, dass Upstream-Geräte nur den unidirektionalen Datenverkehr einer Sitzung sehen. Probleme können bei Upstream-Geräten auftreten, die den Sitzungsstatus beibehalten, 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 ECMP-Weiterleitung 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 Lastenausgleichs-Routingrichtlinie mit dem Namen load-balancing-policy
erstellt und auf alle Routen angewendet, die aus der Routingtabelle 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 Details, die für Ihre Netzwerkkonfiguration erforderlich sind, 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
Verfahren
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 von 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
trust
Sicherheitszonen unduntrust
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
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show interfaces
Befehle , show security
, show policy-options
und show routing-options
eingeben. Wenn die Ausgabe nicht die gewünschte 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
Vergewissern Sie sich, 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 Next-Hop-Typ an ulst
, was bedeutet, dass die Route über mehrere infrage kommende Next-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.
Tabelle "Änderungshistorie"
Die Funktionsunterstützung hängt von der Plattform und der Version ab, die Sie verwenden. Verwenden Sie den Feature-Explorer , um festzustellen, ob ein Feature auf Ihrer Plattform unterstützt wird.