Présentation et configuration de RIFT
RÉSUMÉ Routing in Fat Tree (RIFT) est un protocole de routage à opérations nulles que vous pouvez utiliser pour acheminer des paquets dans des variantes de topologies de réseau basées sur CLOS et fat tree. Il s’agit d’un hybride des techniques d’état de lien et de vecteur de distance, qui offre plusieurs avantages aux fabrics IP, tels que la facilité de gestion et l’amélioration de la résilience du réseau.
Présentation de l’implémentation Junos du routage dans le protocole RIFT (Fat Tree)
- Avantages du protocole RIFT
- Présentation du protocole RIFT
- Impact de l’implémentation Junos du protocole RIFT sur les performances réseau
- Fonctionnalités non prises en charge avec le protocole RIFT
Avantages du protocole RIFT
Le protocole RIFT est un protocole de routage à OpEx nul qui permet :
Ne nécessite quasiment aucune configuration, ce qui simplifie la gestion des fabrics IP.
Capacités de suivi et de journalisation étendues permettant un avantage d’évolutivité pour les fabrics IP.
Utilisation maximale des chemins sans bouclage, renforçant ainsi la résilience de la fabric IP.
En tant qu’hybride des protocoles à vecteur de distance et à état de lien, le protocole RIFT hérite des avantages des deux types de protocoles, offrant des avantages supplémentaires tels que :
Convergence la plus rapide possible.
Auto-détection de la topologie.
Itinéraires minimaux sur les équipements top-of-rack.
Degré élevé de trajets multiples à coût égal (ECMP).
Présentation du protocole RIFT
Avec l’augmentation du déploiement de centres de données basés sur le transfert IP dans les architectures CLOS et fat-tree (également appelées modèle Spine et Leaf), les protocoles de passerelle intérieure (IGP) et BGP sont actuellement utilisés pour gérer les décisions de routage nécessaires. L’approche utilisée par ces protocoles repose sur des extensions opérationnelles complexes et très coûteuses qui ne répondent pas aux exigences de ces fabrics IP. En effet, les protocoles IGP et BGP ont été conçus à l’origine pour les topologies de réseau génériques et clairsemées. Le routage RIFT (Routing in Fat Trees) résout ces problèmes et répond aux besoins des fabrics IP en constante évolution.
Le protocole RIFT est un protocole standard ouvert. Il s’agit d’une version hybride d’un protocole à vecteur de distance qui utilise le calcul diffus vers les branches, et d’un protocole d’état de liaison qui utilise le calcul distribué et l’inondation vers les épines. En d’autres termes, lorsque le protocole RIFT est activé, les appareils inondent leurs informations d’état de liaison en direction du nord, tandis que tous les commutateurs, à l’exception des leafs, génèrent une route par défaut (dans des conditions normales), qui est inondée dans la direction sud.
Les principales caractéristiques du protocole RIFT :
Construction automatique de topologies fat-tree.
Détection automatique des liaisons mal câblées de la fabric IP.
Minimise la quantité d’informations sur l’état du routage stockées à chaque niveau du réseau de centre de données.
Minimise automatiquement la quantité d’inondations.
Désagrégation automatique des préfixes en cas de défaillance d’un lien ou d’un nud afin d’éviter la perte de trafic et le routage sous-optimal.
Permet un transfert non-ECMP.
Rééquilibre automatiquement le trafic vers le cur de réseau en fonction de la bande passante disponible.
Synchronise un magasin de données clé-valeur limité qui peut être utilisé après la convergence du protocole ; par exemple, pour amorcer des niveaux de fonctionnalité plus élevés sur des nuds.
Pour plus d’informations, voir Internet draft draft-ietf-rift-rift-09 (expire le 7 mai 2020) RIFT : Routing in Fat Trees.
Impact de l’implémentation Junos du protocole RIFT sur les performances réseau
L’intégration du protocole RIFT dans Junos OS a un impact sur la charge de routage et l’utilisation de la mémoire pour les architectures de centre de données courantes. En effet, le protocole RIFT a la capacité de consommer tous les cœurs disponibles pour améliorer les performances du protocole.
La configuration dynamique de RIFT n’est pas entièrement prise en charge. Les modifications de configuration apportées à la CLI de Junos OS peuvent redémarrer le protocole RIFT, ce qui entraîne une nouvelle convergence du protocole, entraînant une perte de trafic.
Fonctionnalités non prises en charge avec le protocole RIFT
La mise en œuvre Junos OS de RIFT est conforme aux normes décrites dans le projet de RIFT Internet au https://datatracker.ietf.org/doc/draft-ietf-rift-rift/, mais ne prend pas en charge les fonctionnalités suivantes :
Systèmes logiques
SNMP
Mise à niveau logicielle en service (ISSU) et mise à niveau logicielle ininterrompue
GRES (Graceful moteur de routage switchover)
Télémétrie
L’implémentation Junos OS de RIFT n’implémente pas :
Magasin clé/valeur
Liens horizontaux
Support Leaf-2-leaf
Désagrégation négative
Attributs de mobilité sur les préfixes
Liaison d’étiquettes sur les interfaces
Activation du protocole RIFT
Le progiciel RIFT est un package autonome et l’implémentation Juniper du protocole est exécutée dans un langage de programmation moderne thread-safe, conçu pour une utilisation optimale des architectures de processeurs multicœurs.
Le protocole RIFT initialise les processus RIFT associés, et les valeurs par défaut de configuration sans intervention sont appliquées via la configuration. Il active également automatiquement RIFT sur toutes les interfaces Ethernet. Le system-id est automatiquement dérivé de l’adresse MAC système, et le level est automatiquement déterminé par la partie découverte de l’opération de protocole.
RÉSUMÉ Le protocole RIFT ne nécessite pratiquement aucune configuration nécessaire. Lorsque vous activez le protocole RIFT, celui-ci hérite automatiquement de la configuration requise à partir des valeurs par défaut du package, ce qui simplifie junos-rift la gestion des fabrics IP.
Avant de commencer
Vous devez télécharger et installer le progiciel RIFT sur votre appareil avant d’activer le protocole.
Pour installer le protocole RIFT :
Téléchargez le package spécial
junos-riftà partir du progiciel qui doit être exécuté avec le logiciel Junos OS de base.Note:Le logiciel Junos OS de base sur lequel le
junos-riftpackage est déployé doit être la version 64 bits uniquement et commencer à partir de la version 19.4R1 de Junos OS.Lors de l’installation du
junos-riftpackage, les périphériques doivent être câblés dans une architecture CLOS.Puisqu’il
junos-rifts’agit d’un package distinct, il peut faire l’objet d’une licence distincte du package de base Junos OS.L’octroi de licences pour le
junos-riftpackage est accordé en vertu du Contrat de licence de l’utilisateur final , avec un accent particulier sur les sections 15, 16 et 17.
À partir du progiciel, extrayez le progiciel et téléchargez-le dans le
junos-rift/var/tmprépertoire de l’appareil hôte.Une fois que vous avez téléchargé le progiciel, exécutez la commande suivante :
user@host> request system software add package-name
Par exemple :
user@host> request system software add /var/tmp/junos-rift.tgz
Pour activer le protocole RIFT, vous devez activer le progiciel RIFT sur votre appareil. Vous pouvez activer RIFT soit à l’aide de la commande, soit charger et combiner manuellement la configuration RIFT à partir d’un fichier spécifié avec la configuration actuelle dans l’interface de ligne de request rift package activate commande.
Enabling RIFT Using Activate Command
Pour activer le progiciel RIFT à l’aide de la request rift package activate commande :
junos-rift package, exécutez la commande suivante :
user@host >request rift package activate
La commande activate valide automatiquement la configuration RIFT.
Enabling RIFT Using Load Command
Pour charger la configuration RIFT manuellement :
Une fois que vous avez correctement installé le
junos-riftpackage, exécutez la commande suivante pour charger et combiner la configuration RIFT à partir d’un fichier spécifié avec la configuration actuelle dans l’interface de ligne de commande :user@host# load merge /etc/config/junos-rift/package-defaults.conf user@host# load merge /etc/config/junos-rift/platform/platform-defaults.conf
Ici, est le périphérique hôte, platform et peut être l’une des valeurs suivantes :mxqfx , , ou vmx.
Validez la configuration.
user@host> commit
Enabling RIFT in CLOS-based Topology (ZTP Mode)
Pour activer le progiciel RIFT sur une topologie CLOS, une configuration supplémentaire est nécessaire. Vous devez identifier les nœuds qui constituent le sommet de la structure dans la topologie et configurer tous les équipements de la structure supérieure pour remplacer le auto niveau dans la configuration par défaut.
Pour activer le progiciel RIFT dans une topologie basée sur CLOS :
Remplacez le niveau automatique dans la configuration par défaut et, si vous le souhaitez, spécifiez les niveaux manuellement.
[edit protocols rift] user@host# set level top-of-fabric
Validez la configuration supplémentaire.
user@host> commit
Traceoptions for RIFT
Bien que l’activation du protocole RIFT hérite automatiquement de la configuration nécessaire, vous pouvez également configurer le traçage minimal en tant que configuration facultative.
Pour configurer les traceoptions pour RIFT :
Spécifiez les paramètres traceoptions et proxy-process sous l’instruction rift .
[edit protocols rift] user@host# set traceoptions file size size user@host# set traceoptions file files number user@host# set traceoptions level level user@host# set traceoptions flag flag user@host# set proxy-process traceoptions file size size user@host# set proxy-process traceoptions level level user@host# set proxy-process traceoptions file files number user@host# set proxy-process traceoptions flag flag
Par exemple :
[edit protocols rift] user@host# set traceoptions file size 1000000 user@host# set traceoptions file files 4 user@host# set traceoptions level info user@host# set traceoptions flag node user@host# set proxy-process traceoptions file size 1000000 user@host# set proxy-process traceoptions level info user@host# set proxy-process traceoptions file files 4 user@host# set proxy-process traceoptions flag if-events
Verifying RIFT Configuration
Vous pouvez vérifier la configuration du protocole RIFT à partir des niveaux hiérarchiques suivants :
[groups rift-defaults][interfaces interface-range rift-interfaces][protocols rift]
[edit]
user@host# show groups rift-defaults
protocols {
rift {
node-id auto;
level auto;
lie-receive-address {
family {
inet 224.0.0.120;
inet6 ff02::a1f7;
}
}
interface <*> {
lie-transmit-address {
family {
inet 224.0.0.120;
inet6 ff02::a1f7;
}
}
bfd-liveness-detection minimum-interval 1000;
}
}
}
[edit] user@host# show interfaces interface-range rift-interfaces member ge-0/0/*; description "Match interfaces that RIFT could use.";
[edit] user@host# show protocols rift apply-groups rift-defaults; interface rift-interfaces;
Vous pouvez également vérifier la configuration de RIFT en affichant les valeurs par défaut appliquées à partir du junos-rift package. Pour ce faire, exécutez la show configuration protocols rift | display inherited commande.
Par exemple :
user@host> show configuration protocols rift | display inherited
##
## 'auto' was inherited from group 'rift-defaults'
##
node-id auto;
level auto;
##
## 'lie-receive-address' was inherited from group 'rift-defaults'
##
lie-receive-address {
##
## 'family' was inherited from group 'rift-defaults'
##
family {
##
## '224.0.0.120' was inherited from group 'rift-defaults'
##
inet 224.0.0.120;
##
## 'ff02::a1f7' was inherited from group 'rift-defaults'
##
inet6 ff02::a1f7;
}
}
interface ge-0/0/0.1 {
##
## 'lie-transmit-address' was inherited from group 'rift-defaults'
##
lie-transmit-address {
##
## 'family' was inherited from group 'rift-defaults'
##
family {
##
## '224.0.0.120' was inherited from group 'rift-defaults'
##
inet 224.0.0.120;
##
## 'ff02::a1f7' was inherited from group 'rift-defaults'
##
inet6 ff02::a1f7;
}
}
##
## 'bfd-liveness-detection' was inherited from group 'rift-defaults'
## ‘400’ was inherited from group 'rift-defaults'
##
bfd-liveness-detection minimum-interval 400;
}
Le tableau 1 répertorie les commandes que vous pouvez utiliser pour vérifier la configuration et l’état du protocole RIFT.
Commande |
Description |
|
Inspectez l’état d’exécution du protocole RIFT. |
|
Le protocole RIFT peut être utilisé dans des stratégies et des commandes là où d’autres protocoles sont acceptés. |
|
Voir les itinéraires détaillés installés par RIFT. |
|
Effacez la base de données RIFT. |
|
Redémarrez le protocole RIFT. |
Pour plus d’informations, consultez le fichier FAQ dans la distribution du progiciel.
Troubleshooting the RIFT Protocol
Le protocole RIFT ne produit pas de fichiers de base, sauf dans des cas très extrêmes. Il signale chaque défaillance par une journalisation approfondie et remonte parfois des pistes à la sortie. Le processus RIFT fournit des événements de traçage configurables qui peuvent être collectés à l’aide de la configuration des traceoptions.
Pour résoudre les problèmes liés à l’implémentation de RIFT, reportez-vous à :
Forming Adjacency
Problem
La contiguïté de RIFT bat de haut en bas, montrant des rejets avec
Multiple NeighborsouRemote Uses Our Own SystemIDdes erreurs.Solution
Le protocole RIFT ne prend pas en charge plus de deux voisins sur une liaison Ethernet formant une adjacence point à point, ou les propres interfaces d’un nœud sont bouclées. Vérifiez et corrigez le câblage.
Undefined Level
Problem
Tous les commutateurs affichent un niveau indéfini et ne forment pas de contiguïté à trois voies, mais des éléments d’information de liaison (LIE) sont envoyés et reçus.
Solution
Il est possible qu’il n’y ait pas de configuration au niveau du haut de la structure. Tous les équipements top-of-fabric doivent être configurés avec le niveau top-of-fabric pour fournir un point d’ancrage pour ZTP.
Loopback Address
Problem
Impossible d’obtenir des adresses de bouclage vers mes nœuds dans RIFT.
Solution
Pour avoir toutes les adresses loopback en top-of-fabric, le moyen le plus simple est de configurer une adresse loopback dans chaque nœud nécessaire et de la redistribuer en direction du nord dans RIFT. Pour ce faire, la configuration suivante est requise :
[edit policy-options] policy-statement lo0-rift { term 0 { from { protocol direct; route-filter loopback-address exact; } then accept; } term default { then reject; } }[edit protocols rift] export { northbound { lo0-rift; } }Cette configuration permet à chaque branche d’envoyer une requête ping à l’adresse de bouclage de tous les autres nœuds, à l’exception des périphériques situés en haut de la structure.
Si les périphériques du haut de la structure doivent également être accessibles à partir des équipements de branche, ou vice-versa, les adresses de bouclage du haut de la structure doivent être exposées à un niveau inférieur (c’est-à-dire vers le sud). Pour ce faire, la configuration suivante est requise :
[edit protocols rift] export { southbound { lo0-rift; } }Note:Pour permettre la propagation des adresses top-of-fabric à tous les nœuds Leaf, configurez l’option
allow-rift-routessous le niveau hiérarchique[edit protocols rift export southbound].System Log Error Messages
Le processus RIFT génère des messages de journal système pour enregistrer les erreurs liées à l’intégration du protocole RIFT dans Junos OS. Pour interpréter les messages du journal système, reportez-vous aux rubriques suivantes :
RIFT_PROXYD_ALREADY_RUNNING—Une autre instance du processus RIFT est déjà en cours d’exécution.RIFT_PROXYD_CONNECT_RIFT—Les tentatives de connexion au processus RIFT local ont échoué.
Pour plus d’informations sur les messages d’erreur du journal système, reportez-vous à la section Explorateur du journal système.