Transfert basé sur les flux ECMP
Cette rubrique donne un aperçu de l’multichemin à coût égal (ECMP) pour le trafic de 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 Junos OS pare-feu 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 du trafic ayant 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 la charge du 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. Pour prendre une décision, l’équipement prend en compte les champs d’en-tête des paquets qui identifient un flux. Avec ECMP, les chemins de saut suivant de coût égal sont identifiés en fonction des calculs de métriques de routage et des algorithmes de hachage. En d’autres termes, les itinéraires de coût égal ont les mêmes valeurs de préférence et de métrique, et le même coût pour le réseau. Le processus ECMP identifie un ensemble de routeurs, chacun d’entre eux représentant un prochain saut légitime à coût égal 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 ensemble ECMP (Equal-Cost multichemin) est formé lorsque le table de routage contient plusieurs adresses de saut suivant pour la même destination avec le même coût. (Les routes 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’ensemble ECMP à installer dans la table de transfert.
Vous pouvez configurer Junos OS de sorte que plusieurs entrées de saut suivant d’un ensemble 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 sur plusieurs chemins entre les équipements de routage. Sur les appareils 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 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 dans l’ensemble ECMP. Ceci est important pour des fonctionnalités telles que l’NAT source, où la traduction est effectuée uniquement lors du premier chemin d’établissement de session pour les tunnels VPN IDP, ALG et 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. Le transfert du trafic IPv6 unicast en fonction des flux ECMP est pris en charge sur tous les pare-feu SRX Series et toutes les instances Pare-feu virtuel vSRX. Le flux multicast n’est pas pris en charge. Utilisez l’explorateur de fonctionnalités pour confirmer la prise en charge de la plate-forme et de la version pour une fonctionnalité spécifique.
Sur les équipements de sécurité de Juniper Networks, le nombre maximal d’adresses de saut suivant dans un ensemble ECMP pouvant être installées dans la table de transfert est de 16. S’il existe plus de 16 adresses de saut suivant dans un ensemble 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 arrive un paquet, et une interface distante est une interface qui se trouve sur l’autre nœud de cluster de châssis. Si une route ECMP a à 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 de l’ensemble ECMP ou si elle est supprimée de la table de routage en raison d’un changement 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 modification de configuration qui supprime 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 effacée intentionnellement, la session est arrêtée sans être rerouté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 dans une zone de sécurité différente de la route d’origine, la session est arrêtée.
Pour configurer le transfert ECMP basé sur les flux sur les équipements de sécurité de Juniper Networks, définissez d’abord une politique 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 politique de routage aux routes exportées de la table de routage vers la table de transfert. Pour ce faire, incluez les forwarding-table instructions de configuration et au export niveau de la hiérarchie [edit routing-options].
- Implémentation ECMP pour les pare-feu SRX Series Junos OS et les instances Pare-feu virtuel vSRX
- ECMP pour le trafic inverse
Implémentation ECMP pour les pare-feu SRX Series Junos OS et les instances Pare-feu virtuel vSRX
Vous pouvez configurer ECMP pour les pare-feu SRX Series et les instances Pare-feu virtuel vSRX afin de mettre en œuvre des équilibrage de charge par flux afin de répartir le trafic sur plusieurs chemins entre les équipements de routage. Les itinéraires de coût égal ont les mêmes valeurs de préférence et de métrique. Ces appareils 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. Sur ces équipements, Junos OS utilise les informations de flux dans sa logique de hachage.
Pour Junos OS pare-feu SRX Series et les instances Pare-feu virtuel vSRX, un ensemble ECMP est formé lorsque le table de routage contient plusieurs adresses de saut suivant pour la même destination avec le même coût. ECMP permet d’installer plusieurs entrées de saut suivant dans un ensemble 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 dans 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’ensemble ECMP à installer dans la table de transfert.
ECMP pour le trafic inverse
À partir de la version 17.3 de Junos OS, si vous activez la prise en charge ECMP du 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 une source à une destination par 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éfini sur l’interface entrante pour le trafic inverse, 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 le flux ECMP afin d’utiliser un algorithme de hachage pour sélectionner une route dans l’ensemble ECMP pour le transit du trafic inverse. En d’autres termes, si vous activez cette fonction, plutôt que 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éfini pour le trafic inverse.
La stratégie basée sur les flux ECMP étant basée sur des 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 entrante 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 d’interface de sortie est différente de la zone d’interface entrante, une session peut être créée, mais les paquets sont perdus.
Si vous décidez d’activer ECMP inversé, tenez compte de la condition suivante et prenez des mesures pour l’éviter : Lorsque le transfert basé sur le flux ECMP est utilisé, le pare-feu SRX Series peut faire en sorte que les périphériques 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 à celui du routage asynchrone.
Exemple : configuration du transfert basé sur les flux ECMP
Cet exemple montre comment configurer le transfert ECMP basé sur les flux.
Exigences
Aucune configuration spéciale au-delà de l’initialisation de l’équipement n’est requise avant de configurer cette fonctionnalité.
Vue d’ensemble
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é non fiable. Cet exemple crée une politique de routage d’équilibrage de charge nommée load-balancing-policy et applique la stratégie à toutes les routes exportées de la table de routage vers la table de transfert.
La 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-collez les commandes dans le 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-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 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
trustzones de sécurité etuntrustincluez 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 politique de routage d’équilibrage de charge.
[edit policy-options] user@host# set policy-statement load-balancing-policy then load-balance per-flow
-
Appliquez la politique de routage à toutes 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
En mode configuration, confirmez votre configuration en exécutant les show interfacescommandes , show securityshow 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, entrez en commit mode configuration.
Vérification
Vérification de la table de transfert
Objet
Vérifiez que les informations d’itinéraire pour toutes les routes ECMP apparaissent dans la table de transfert.
Mesures à prendre
À 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 affiche un type de ulstsaut suivant , 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.
