Transfert basé sur les flux ECMP
Cette rubrique donne un bref aperçu du chemin d’accès ECMP (Equal-cost Multipath) pour le transfert et le trafic inverse sur les pare-feu Junos OS SRX Series et les instances Pare-feu virtuel vSRX. Pour une couverture complète de l’implémentation ECMP sur les pare-feu Junos OS SRX Series et les instances Pare-feu virtuel vSRX.
Comprendre le transfert basé sur les flux ECMP
Le routage ECMP (Equal-cost Multipath) est une stratégie de routage réseau qui permet de transmettre le trafic d’une même session ou d’un même flux, c’est-à-dire le trafic ayant la même source et la même destination, sur plusieurs chemins de coût égal. Il s’agit d’un mécanisme qui vous permet d’équilibrer la charge du trafic et d’augmenter la bande passante en utilisant pleinement la bande passante autrement inutilisée sur les liaisons vers la même destination.
Lors du transfert d’un paquet, la technologie de routage doit décider du chemin de saut suivant à utiliser. Pour effectuer une détermination, l’équipement prend en compte les champs d’en-tête de paquet qui identifient un flux. Lorsque l’ECMP est utilisé, les chemins de saut suivant de coût égal sont identifiés en fonction des calculs des métriques de routage et des algorithmes de hachage. En d’autres termes, les routes de coût égal ont les mêmes valeurs de préférence et de métrique, ainsi que le même coût pour le réseau. Le processus ECMP identifie un ensemble de routeurs, chacun d’entre eux représentant un coût égal légitime à l’étape suivante vers la destination. Les routes identifiées sont appelées ensemble ECMP. Comme il ne s’adresse qu’à la destination du saut suivant, ECMP peut être utilisé avec la plupart des protocoles de routage.
Un jeu ECMP (equal-cost multipath) est formé lorsque la table de routage contient plusieurs adresses de saut suivant pour la même destination avec un coût égal. (Les itinéraires de coût égal ont les mêmes valeurs de préférence et de métrique.) Si un ECMP est défini pour la route active, Junos OS utilise un algorithme de hachage pour choisir l’une des adresses de saut suivant dans l’ECMP défini à installer dans la table de transfert.
Vous pouvez configurer Junos OS de manière à ce que plusieurs entrées de saut suivant d’un jeu ECMP soient installées dans la table de transfert. Sur les équipements Juniper Networks, un équilibrage de charge par flux peut être effectué pour répartir le trafic entre les périphériques de routage sur plusieurs chemins. Sur les équipements de sécurité Juniper Networks, les adresses IP sources et de destination ainsi que les protocoles sont examinés afin de déterminer les flux de trafic individuels. Les paquets d’un même flux sont transférés sur la même interface. l’interface ne change pas lorsqu’il y a des ajouts ou des modifications à l’ensemble ECMP. Ceci est important pour des fonctionnalités telles que le NAT source, où la traduction est effectuée uniquement lors du premier chemin d’établissement de session pour les tunnels IDP, ALG et VPN basés sur le routage. Si un paquet arrive sur une interface donnée dans un ensemble ECMP, le dispositif de sécurité veille à ce que le trafic inverse soit transféré via la même interface.
Le transfert basé sur les flux ECMP sur les équipements de sécurité s’applique aux flux de trafic unicast IPv4 et IPv6. À partir de la version 15.1X49-D60 de Junos OS, le transfert du trafic unicast IPv6 basé sur les flux ECMP est pris en charge sur toutes les instances de pare-feu SRX Series et de pare-feu virtuel vSRX. Le flux multicast n’est pas pris en charge.
Sur les équipements de sécurité Juniper Networks, le nombre maximal d’adresses de saut suivant dans un ensemble ECMP pouvant être installé dans la table de transfert est de 16. S’il y a plus de 16 adresses de saut suivant dans un jeu ECMP, seules les 16 premières adresses sont utilisées.
Dans un déploiement de cluster de châssis , une interface locale est une interface qui se trouve sur le même nœud que l’interface sur laquelle un paquet arrive, et une interface distante est une interface qui se trouve sur l’autre nœud de cluster de châssis. Si un itinéraire ECMP comporte à la fois des interfaces locales et distantes dans un cluster de châssis, l’interface locale est privilégiée pour le saut suivant.
Si une adresse de saut suivant ne fait plus partie du jeu ECMP ou si elle est supprimée de la table de routage en raison d’une modification de route, un flux qui utilise le saut suivant est réacheminé et la session n’est pas affectée. Le réacheminement du flux se produit également en cas de changement de configuration entraînant la suppression de l’adresse de saut suivant ou si un administrateur supprime l’interface de saut suivant sans la supprimer. Si une adresse de saut suivant est supprimée de la table de routage parce que l’interface a été supprimée ou que la session a été effacée intentionnellement, la session est arrêtée sans être réacheminée.
Nous recommandons que les interfaces d’un ensemble ECMP se trouvent dans la même zone de sécurité. Si un flux est réacheminé et qu’il utilise une interface située dans une zone de sécurité différente de celle de l’itinéraire d’origine, la session est arrêtée.
Pour configurer le transfert basé sur les flux ECMP sur les équipements de sécurité Juniper Networks, définissez d’abord une stratégie de routage d’équilibrage de charge en incluant une ou plusieurs policy-statement
instructions de configuration au niveau de la hiérarchie [edit policy-options
], avec l’action load-balance per-flow
. Appliquez ensuite la stratégie de routage aux routes exportées de la table de routage vers la table de transfert. Pour ce faire, incluez les instructions de forwarding-table
configuration et export
au niveau de la hiérarchie [edit routing-options
].
- Implémentation d’ECMP pour les pare-feu Junos OS SRX Series et les instances Pare-feu virtuel vSRX
- ECMP pour le trafic inverse
Implémentation d’ECMP pour les pare-feu Junos OS SRX Series et les instances Pare-feu virtuel vSRX
Vous pouvez configurer ECMP pour les pare-feu SRX Series et les instances de pare-feu virtuel vSRX afin d’implémenter un équilibrage de charge par flux afin de répartir le trafic entre les périphériques de routage sur plusieurs chemins. Les itinéraires de coût égal ont les mêmes valeurs de préférence et de métrique. Ces équipements examinent l’adresse IP source, l’adresse IP de destination et le protocole pour déterminer les flux de trafic individuels. Le trafic ayant la même adresse IP source, la même adresse IP de destination et le même numéro de protocole autorisés par une stratégie de sécurité est transféré vers le même saut suivant. Junos OS sur ces équipements utilise les informations de flux dans sa logique de hachage.
Pour les pare-feu Junos OS SRX Series et les instances Pare-feu virtuel vSRX, un jeu ECMP est formé lorsque le table de routage contient plusieurs adresses de saut suivant pour la même destination avec un coût égal. ECMP permet d’installer plusieurs entrées de saut suivant dans un jeu ECMP dans la table de transfert. Les paquets d’un même flux sont transférés sur la même interface. l’interface ne change pas lorsqu’il y a des ajouts ou des modifications à l’ensemble ECMP.
Si un ECMP est défini pour la route active, Junos OS utilise un algorithme de hachage pour choisir l’une des adresses de saut suivant dans l’ECMP défini à installer dans la table de transfert.
Le transfert basé sur les flux ECMP sur les pare-feu SRX Series et les instances de pare-feu virtuel vSRX s’applique aux flux de trafic unicast IPv4 et IPv6. À partir de Junos OS version 15.1X49-D60 et Junos OS version 17.3R1, le transfert ECMP basé sur les flux du trafic unicast IPv6 est pris en charge sur tous les pare-feu SRX Series et les instances du pare-feu virtuel vSRX. Le flux multicast n’est pas pris en charge.
ECMP pour le trafic inverse
À partir de Junos OS version 17.3, si vous activez la prise en charge ECMP pour le trafic inverse, le pare-feu SRX Series utilise un algorithme de hachage pour déterminer l’interface à utiliser pour le trafic inverse dans un flux. Ce processus est similaire au routage asymétrique dans lequel un paquet traverse d’une source à une destination dans un chemin et emprunte un chemin différent lorsqu’il revient à la source.
Si vous n’activez pas cette fonctionnalité, le pare-feu SRX Series sélectionne une route dans l’ECMP définie sur l’interface entrante pour le trafic inverse, ce qui est le comportement par défaut.
Vous utilisez l’instruction allow-reverse-ecmp
de configuration dans la hiérarchie [edit security flow
] pour configurer le transfert basé sur les flux ECMP afin d’utiliser un algorithme de hachage lors de la sélection d’un itinéraire dans l’ECMP défini pour le transit de trafic inverse. En d’autres termes, si vous activez cette fonction, au lieu de sélectionner une route vers l’interface entrante, le pare-feu SRX Series utilise un algorithme de hachage pour sélectionner une route dans l’ECMP définie pour le trafic inverse.
Étant donné que la stratégie ECMP basée sur les flux est basée sur les zones, la prise en charge de la recherche inverse ECMP garantit que l’interface de sortie utilisée pour le trafic inverse se trouve dans la même zone que l’interface d’entrée utilisée pour le trafic entrant.
Les interfaces d’un ensemble ECMP doivent se trouver dans la même zone de sécurité. Si la zone de l’interface de sortie est différente de la zone de l’interface d’entrée, une session peut être créée, mais les paquets seront abandonnés.
Si vous décidez d’activer l’ECMP inverse, tenez compte de la condition suivante et prenez les mesures nécessaires pour l’éviter : Lorsque le transfert basé sur les flux ECMP est utilisé, le pare-feu SRX Series peut faire en sorte que les équipements en amont ne voient que le trafic unidirectionnel d’une session. Des problèmes peuvent survenir pour les périphériques en amont qui maintiennent l’état de session, par exemple pour TCP-proxy et SYN-proxy. Le problème est similaire au comportement de routage asynchrone.
Exemple : configuration du transfert basé sur les flux ECMP
Cet exemple montre comment configurer le transfert basé sur les flux ECMP.
Exigences
Aucune configuration spéciale au-delà de l’initialisation de l’appareil n’est requise avant de configurer cette fonctionnalité.
Aperçu
Cet exemple configure trois routes ECMP statiques sur un pare-feu SRX Series. Chaque route statique utilise un routeur de saut suivant différent pour atteindre le serveur de destination. Les interfaces vers les routeurs sont affectées à la zone de sécurité untrust. Cet exemple crée une stratégie de routage d’équilibrage de charge nommée load-balancing-policy
et l’applique à tous les itinéraires exportés de la table de routage vers la table de transfert.
Configuration
Configuration rapide de la CLI
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez tous les détails nécessaires pour qu’ils correspondent à votre configuration réseau, puis copiez et collez les commandes dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie.
## 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
Procédure
Procédure étape par étape
L’exemple suivant vous oblige à naviguer à différents niveaux dans la hiérarchie de configuration.
Pour configurer le transfert basé sur les flux ECMP :
Configurez les interfaces.
[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
Configurez les routes statiques.
[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
Créez les
trust
zones de sécurité etuntrust
incluez les interfaces associées.[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
Configurez une entrée de carnet d’adresses pour le sous-réseau du serveur.
Cette entrée est utilisée dans la stratégie de sécurité.
[edit security address-book] user@host# set global address FTP-servers 172.16.1.0/24
Configurez une stratégie de sécurité.
[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
Créez une stratégie de routage d’équilibrage de charge.
[edit policy-options] user@host# set policy-statement load-balancing-policy then load-balance per-flow
Appliquez la stratégie de routage à tous les itinéraires exportés de la table de routage vers la table de transfert.
[edit routing-options] user@host# set forwarding-table export load-balancing-policy
Résultats
À partir du mode configuration, confirmez votre configuration en exécutant les show interfaces
commandes , show security
, show policy-options
et show routing-options
. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de cet exemple pour corriger la configuration.
[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; }
Si vous avez terminé de configurer l’appareil, passez commit
en mode de configuration.
Vérification
Vérification de la table de transfert
But
Vérifiez que les informations de route de toutes les routes ECMP apparaissent dans la table de transfert.
Action
À partir du mode opérationnel, entrez la show route forwarding-table destination 172.16.1.0 commande.
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 ...
Signification
La sortie indique le type de saut suivant , ulst
ce qui signifie que l’itinéraire comporte plusieurs sauts suivants éligibles. Les paquets destinés au réseau 172.16.1.0 peuvent utiliser n’importe quel saut suivant de la liste.
Tableau de l’historique des modifications
La prise en charge des fonctionnalités est déterminée par la plateforme et la version que vous utilisez. Utilisez l’explorateur de fonctionnalités pour déterminer si une fonctionnalité est prise en charge sur votre plateforme.