Transfert basé sur les flux ECMP
Cette rubrique fournit une brève présentation des chemins multichemins à coût égal (ECMP) pour le transfert et le trafic inverse sur les équipements SRX Series et les instances vSRX de Junos OS. Pour une couverture complète de l’implémentation ECMP sur les équipements SRX Series de Junos OS et les instances vSRX.
Comprendre le transfert basé sur les flux ECMP
Le multi-chemin à coût égal (ECMP) 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 avec la même source et la même destination, sur plusieurs chemins à coût égal. Il s’agit d’un mécanisme qui vous permet d’équilibrer le trafic et d’augmenter la bande passante en utilisant pleinement la bande passante 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. Lors de sa 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 à coût égal sont identifiés en fonction des calculs de métriques de routage et des algorithmes de hachage. Autrement dit, les routes à coût égal ont les mêmes préférences et valeurs métriques, et le même coût pour le réseau. Le processus ECMP identifie un ensemble de routeurs, chacun d’entre eux étant un saut suivant à coût légitime égal vers la destination. Les routes identifiées sont appelées ensembles ECMP. Parce qu’il ne traite que la destination du saut suivant, ECMP peut être utilisé avec la plupart des protocoles de routage.
Un ensemble de chemins multichemins à coût égal (ECMP) est formé lorsque la table de routage contient plusieurs adresses de saut suivant pour la même destination à coût égal. (Les routes à coût égal ont les mêmes préférences et les mêmes valeurs métriques.) S’il existe un ensemble ECMP pour le routage actif, Junos OS utilise un algorithme de hachage pour choisir l’une des adresses du saut suivant dans l’ensemble ECMP à installer dans la table de transfert.
Vous pouvez configurer Junos OS de sorte que plusieurs entrées de saut suivant dans un ensemble ECMP soient installées dans la table de transfert. Sur les équipements Juniper Networks, l’équilibrage de charge par flux peut être effectué pour répartir le trafic sur plusieurs chemins entre les équipements de routage. Sur les équipements de sécurité Juniper Networks, les adresses IP et les protocoles source et de destination sont examinés pour déterminer les flux de trafic individuels. Les paquets pour le même flux sont transférés sur la même interface ; l’interface ne change pas en cas d’ajouts ou de modifications à l’ensemble ECMP. Cela est important pour des fonctionnalités telles que le NAT source, où la traduction n’est effectuée que 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, l’équipement de sécurité garantit que le trafic inversé est transféré via la même interface.
Le transfert par 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 par flux ECMP du trafic unicast IPv6 est pris en charge sur tous les équipements SRX Series et les instances 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. Si un ensemble ECMP compte plus de 16 adresses de saut suivant, 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 arrive un paquet, et une interface distante est une interface qui se trouve sur l’autre nœud de cluster de châssis. Si un routage ECMP dispose d’interfaces locales et distantes dans un cluster de châssis, alors l’interface locale est privilégiée pour le saut suivant.
Si une adresse de saut suivant ne fait plus partie de l’ensemble ECMP ou si elle est retirée de la table de routage en raison d’un changement de routage, un flux qui utilise le saut suivant est redirigé et la session n’est pas affectée. Le routage du flux se produit également s’il y a un changement de configuration qui enlève l’adresse du saut suivant ou si un administrateur supprime l’interface du saut suivant sans la supprimer. Si une adresse de saut suivant est supprimée de la table de routage parce que l’interface est supprimée ou que la session est intentionnellement effacée, la session est tuée sans être redirigée.
Nous recommandons que les interfaces d’un ensemble ECMP soient dans la même zone de sécurité. Si un flux est redirigé et qu’il utilise une interface dans une zone de sécurité différente de celle du routage d’origine, la session est tuée.
Pour configurer le transfert ecMP basé sur les flux 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
déclarations de configuration au niveau de la hiérarchie [edit policy-options
] avec l’action load-balance per-packet
. 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 forwarding-table
déclarations et export
de configuration au niveau de la hiérarchie [edit routing-options
] .
- Implémentation ECMP pour les équipements SRX Series et les instances vSRX junos OS
- ECMP pour le trafic inverse
Implémentation ECMP pour les équipements SRX Series et les instances vSRX junos OS
Vous pouvez configurer ECMP pour les équipements SRX Series et les instances vSRX pour implémenter un équilibrage de charge par flux afin de répartir le trafic sur plusieurs chemins entre les équipements de routage. Les routes à coût égal ont les mêmes préférences et les mêmes valeurs métriques. 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 dont l’adresse IP source, l’adresse IP de destination et le même numéro de protocole sont autorisés par une stratégie de sécurité sont transférés vers le même saut suivant. Junos OS sur ces équipements utilise les informations de flux dans sa logique de hachage.
Pour les équipements JUNOs OS SRX Series et les instances vSRX, un ensemble ECMP est formé lorsque la table de routage contient plusieurs adresses de saut suivant pour la même destination à coût égal. ECMP permet d’installer plusieurs entrées de saut suivant dans un ensemble ECMP dans la table de transfert. Les paquets pour le même flux sont transférés sur la même interface ; l’interface ne change pas en cas d’ajouts ou de modifications à l’ensemble ECMP.
S’il existe un ensemble ECMP pour le routage actif, Junos OS utilise un algorithme de hachage pour choisir l’une des adresses du saut suivant dans l’ensemble ECMP à installer dans la table de transfert.
Le transfert ecMP basé sur les flux sur les équipements SRX Series et les instances vSRX s’applique aux flux de trafic unicast IPv4 et IPv6. À partir de la version 15.1X49-D60 de Junos OS et de la version 17.3R1 de Junos OS, le transfert par flux ECMP du trafic unicast IPv6 est pris en charge sur tous les équipements SRX Series et les instances vSRX. Le flux multicast n’est pas pris en charge.
ECMP pour le trafic inverse
À partir de la version 17.3 de Junos OS, si vous activez la prise en charge d’ECMP pour le trafic inverse, l’équipement SRX Series utilise un algorithme de hachage pour déterminer l’interface à utiliser pour le trafic inversé dans un flux. Ce processus est similaire au routage asymétrique dans lequel un paquet passe d’une source à une destination dans un chemin et prend un chemin différent lorsqu’il revient à la source.
Si vous n’activez pas cette fonctionnalité, l’équipement SRX Series sélectionne un routage dans l’ECMP défini vers l’interface entrante pour le trafic inverse, qui est le comportement par défaut.
Vous utilisez l’instruction allow-reverse-ecmp
de configuration de la hiérarchie [edit security flow
] pour configurer le transfert ecMP basé sur les flux afin d’utiliser un algorithme de hachage pour sélectionner un routage dans l’ensemble ECMP pour le transit inverse du trafic. Autrement dit, si vous activez cette fonction, plutôt que de sélectionner un routage vers l’interface entrante, l’équipement SRX Series utilise un algorithme de hachage pour sélectionner une route dans l’ensemble ECMP pour le trafic inverse.
Étant donné que la stratégie basée sur les flux ECMP est basée sur des zones, la prise en charge de la recherche inversée 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 être dans la même zone de sécurité. Si la zone d’interface sortante est différente de la zone d’interface entrante, une session peut être créée, mais les paquets seront supprimés.
Si vous décidez d’activer l’ecMP inversé, prenez conscience de la condition suivante et prenez les mesures nécessaires pour l’éviter : lorsque le transfert ecMP basé sur les flux est utilisé, l’équipement SRX Series peut faire en sorte que les équipements en amont ne voient que le trafic à sens unique d’une session. Des problèmes peuvent s’ensuivre pour les équipements 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’équipement n’est nécessaire avant de configurer cette fonctionnalité.
Aperçu
Cet exemple configure trois routes ECMP statiques sur un équipement 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é non fiable. Cet exemple crée une stratégie de routage d’équilibrage de charge nommée load-balancing-policy
et applique la stratégie à tous les routes exportées de la table de routage vers la table de transfert.
Configuration
Configuration rapide cli
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez les détails nécessaires pour correspondre à votre configuration réseau, puis copiez et collez les commandes dans la CLI 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-packet set routing-options forwarding-table export load-balancing-policy
Procédure
Procédure étape par étape
Dans l’exemple suivant, vous devez parcourir différents niveaux de 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 des 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-packet
Appliquez la stratégie de routage à tous les routes exportées 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 de configuration, confirmez votre configuration en émettant le show interfaces
, show security
, show policy-options
et les show routing-options
commandes. 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-packet; } }
[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 fini de configurer l’équipement, saisissez commit
à partir du 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
Depuis le mode opérationnel, saisissez 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 ...
Sens
La sortie affiche un type de saut suivant de ulst
, ce qui signifie que le routage comporte plusieurs sauts suivants éligibles. Les paquets destinés au réseau 172.16.1.0 peuvent utiliser n’importe quel saut suivant dans la liste.