8.1. Events for the BGP FSM (Événements pour la FSM BGP)
8.1. Events for the BGP FSM (Événements pour la FSM BGP)
8.1.1. Optional Events Linked to Optional Session Attributes (Événements optionnels liés aux attributs de session optionnels)
Les entrées de la FSM BGP sont des événements. Les événements peuvent être soit obligatoires, soit optionnels. Certains événements optionnels sont liés à des attributs de session optionnels. Les attributs de session optionnels activent plusieurs groupes de fonctionnalités FSM.
Le lien entre la fonctionnalité FSM, les événements et les attributs de session optionnels est décrit ci-dessous.
Groupe 1 : Événements de gestion automatique (Démarrage/Arrêt)
Attributs de Session Optionnels : AllowAutomaticStart, AllowAutomaticStop, DampPeerOscillations, IdleHoldTime, IdleHoldTimer
Option 1 : AllowAutomaticStart
Description : Une connexion de pair BGP peut être démarrée et arrêtée par un contrôle administratif. Ce contrôle administratif peut être soit manuel (basé sur une intervention de l'opérateur), soit automatique (sous le contrôle de la logique spécifique à l'implémentation BGP). Le terme "automatique" fait référence à un démarrage signalé à la FSM de connexion de pair BGP lorsque cette logique détermine que la connexion de pair BGP doit être redémarrée.
L'attribut AllowAutomaticStart spécifie que cette connexion BGP supporte le démarrage automatique de la connexion BGP.
Si une implémentation BGP supporte AllowAutomaticStart, le pair peut être redémarré de manière répétée. Trois autres options contrôlent le taux auquel le redémarrage automatique se produit : DampPeerOscillations, IdleHoldTime et IdleHoldTimer.
L'option DampPeerOscillations spécifie que l'implémentation impose une logique supplémentaire pour amortir les oscillations de pairs BGP face à des séquences de démarrages automatiques et d'arrêts automatiques. IdleHoldTime spécifie combien de temps le pair BGP est maintenu dans l'état Inactif avant d'autoriser le prochain redémarrage automatique. L'IdleHoldTimer est le temporisateur qui maintient le pair dans l'état Inactif.
Un exemple de logique DampPeerOscillations est d'augmenter la valeur d'IdleHoldTime si un pair BGP oscille de manière répétée (connexion/déconnexion) pendant une période de temps. Pour mettre en œuvre cette logique, le pair pourrait se connecter et se déconnecter 10 fois en 5 minutes. La valeur d'IdleHoldTime serait réinitialisée de 0 à 120 secondes.
Valeur : TRUE ou FALSE
Option 2 : AllowAutomaticStop
Description : Cet attribut optionnel de session de pair BGP indique que la connexion BGP permet un arrêt "automatique" de la connexion BGP. Un arrêt "automatique" est défini comme un arrêt sous le contrôle d'une logique spécifique à l'implémentation. La logique spécifique à l'implémentation est hors du champ d'application de cette spécification.
Valeur : TRUE ou FALSE
Option 3 : DampPeerOscillations
Description : L'attribut de session optionnel DampPeerOscillations indique que la connexion BGP utilise une logique pour amortir les oscillations de pairs BGP lorsqu'ils sont dans l'état Inactif.
Valeur : TRUE ou FALSE
Option 4 : IdleHoldTime
Description : IdleHoldTime est la valeur définie dans l'IdleHoldTimer.
Valeur : Temps en secondes
Option 5 : IdleHoldTimer
Description : L'IdleHoldTimer aide à contrôler les oscillations de pairs BGP. L'IdleHoldTimer est utilisé pour maintenir le pair BGP dans l'état Inactif pendant une durée spécifique. L'événement IdleHoldTimer_Expires est décrit dans la section 8.1.3.
Valeur : Temps en secondes
Groupe 2 : Pairs non configurés
Attributs de Session Optionnels : AcceptConnectionsUnconfiguredPeers
Option 1 : AcceptConnectionsUnconfiguredPeers
Description : La FSM BGP permet optionnellement d'accepter des connexions de pairs BGP provenant de voisins non pré-configurés. L'attribut de session optionnel "AcceptConnectionsUnconfiguredPeers" permet à la FSM de supporter les transitions d'état permettant une implémentation qui accepte ou rejette ces pairs non configurés.
AcceptConnectionsUnconfiguredPeers a des implications de sécurité. Veuillez vous référer au document sur les vulnérabilités BGP [RFC4272] pour plus de détails.
Valeur : True ou False
Groupe 3 : Traitement TCP
Attributs de Session Optionnels : PassiveTcpEstablishment, TrackTcpState
Option 1 : PassiveTcpEstablishment
Description : Cette option indique que la FSM BGP attendra passivement que le pair BGP distant établisse la connexion TCP BGP.
Valeur : TRUE ou FALSE
Option 2 : TrackTcpState
Description : La FSM BGP suit normalement le résultat final d'une tentative de connexion TCP, plutôt que les messages TCP individuels. Optionnellement, la FSM BGP peut supporter une interaction supplémentaire négociée avec la connexion TCP. L'interaction avec les événements TCP peut augmenter la quantité de journalisation requise pour une connexion de pair BGP et le nombre de changements de la FSM BGP.
Valeur : TRUE ou FALSE
Groupe 4 : Traitement des messages BGP
Attributs de Session Optionnels : DelayOpen, DelayOpenTime, DelayOpenTimer, SendNOTIFICATIONwithoutOPEN, CollisionDetectEstablishedState
Option 1 : DelayOpen
Description : L'attribut de session optionnel DelayOpen permet à une implémentation d'être configurée pour retarder l'envoi d'un message OPEN pendant une période de temps spécifique (DelayOpenTime). Retarder cela donne le temps au pair BGP distant d'envoyer le premier message OPEN.
Valeur : TRUE ou FALSE
Option 2 : DelayOpenTime
Description : DelayOpenTime est la valeur initiale définie dans le DelayOpenTimer.
Valeur : Temps en secondes
Option 3 : DelayOpenTimer
Description : L'attribut de session optionnel DelayOpenTimer est utilisé pour retarder l'envoi d'un message OPEN sur une connexion. L'événement DelayOpenTimer_Expires (Événement 12) est décrit dans la section 8.1.3.
Valeur : Temps en secondes
Option 4 : SendNOTIFICATIONwithoutOPEN
Description : SendNOTIFICATIONwithoutOPEN permet à un pair d'envoyer une NOTIFICATION sans d'abord envoyer un message OPEN. Sans cet attribut de session optionnel, la connexion BGP suppose que le pair doit envoyer un message OPEN avant d'envoyer un message NOTIFICATION.
Valeur : True ou False
Option 5 : CollisionDetectEstablishedState
Description : Normalement, la détection de collision (voir Section 6.8) est ignorée dans l'état Established. Cet attribut de session optionnel indique que cette connexion BGP traite les collisions dans l'état Established.
Valeur : True ou False
Note : Les attributs de session optionnels clarifient la description de la FSM BGP pour les fonctionnalités existantes des implémentations BGP. Les attributs de session optionnels peuvent être prédéfinis pour une implémentation et peuvent ne pas être lisibles via des interfaces de gestion pour les implémentations correctes existantes. Lorsque la nouvelle MIB BGP (version 2 et ultérieure) est supportée, ces champs seront accessibles via l'interface de gestion.
8.1.2. Administrative Events (Événements administratifs)
Les événements administratifs sont des événements signalés par l'interface opérateur et le moteur de politique BGP à la machine à états finis BGP pour démarrer ou arrêter la machine à états BGP. Les indications de base de démarrage et d'arrêt sont complétées par les attributs de connexion optionnels qui signalent un type spécifique de mécanisme de démarrage ou d'arrêt à la FSM BGP. Un exemple de cette combinaison est l'Événement 5, AutomaticStart_with_PassiveTcpEstablishment. Dans cet événement, l'implémentation BGP signale à la FSM BGP que l'implémentation utilise un démarrage automatique avec l'option d'utiliser un établissement TCP passif. Le signal d'établissement TCP Passif indique que cette FSM BGP attendra que le côté distant initie l'établissement TCP.
Notez que seuls l'Événement 1 (ManualStart) et l'Événement 2 (ManualStop) sont des événements administratifs obligatoires. Tous les autres événements administratifs sont optionnels (Événement 3-8). Chacun des événements ci-dessous a un nom, une définition, un statut (obligatoire ou optionnel) et les attributs de session optionnels qui DEVRAIENT (SHOULD) être définis à chaque étape. Lorsque les événements 1 à 8 sont générés pour la FSM BGP, les conditions spécifiées dans la section "Statut d'attribut optionnel" sont vérifiées. Si l'une de ces conditions n'est pas remplie, le système local BGP DEVRAIT journaliser une erreur FSM.
Les paramètres des attributs de session optionnels peuvent être implicites dans certaines implémentations et peuvent donc ne pas être définis explicitement par une action d'opérateur externe. La Section 8.2.1.5 décrit ces paramètres implicites des attributs de session optionnels. Les états administratifs décrits ci-dessous peuvent également être implicites dans certaines implémentations et non directement configurables par un opérateur externe.
Événement 1: ManualStart (Démarrage manuel)
Définition: L'administrateur du système local démarre manuellement la connexion de pair.
Statut: Obligatoire
Statut
d'attribut
optionnel: L'attribut PassiveTcpEstablishment DEVRAIT (SHOULD) être défini à FALSE.
Événement 2: ManualStop (Arrêt manuel)
Définition: L'administrateur du système local arrête manuellement la connexion de pair.
Statut: Obligatoire
Statut
d'attribut
optionnel: Pas d'interaction avec les attributs optionnels.
Événement 3: AutomaticStart (Démarrage automatique)
Définition: Le système local démarre automatiquement la connexion BGP.
Statut: Optionnel, selon le système local
Statut
d'attribut
optionnel: 1) L'attribut AllowAutomaticStart DEVRAIT (SHOULD) être défini à TRUE si cet événement se produit.
2) Si l'attribut de session optionnel PassiveTcpEstablishment est supporté, il DEVRAIT (SHOULD) être défini à FALSE.
3) Si DampPeerOscillations est supporté, il DEVRAIT (SHOULD) être défini à FALSE lorsque cet événement se produit.
Événement 4: ManualStart_with_PassiveTcpEstablishment (Démarrage manuel avec établissement TCP passif)
Définition: L'administrateur du système local démarre manuellement la connexion de pair, mais a activé PassiveTcpEstablishment. L'attribut optionnel PassiveTcpEstablishment indique que le pair écoutera avant d'établir une connexion.
Statut: Optionnel, selon le système local
Statut
d'attribut
optionnel: 1) L'attribut PassiveTcpEstablishment DEVRAIT (SHOULD) être défini à TRUE lorsque cet événement se produit.
2) L'attribut DampPeerOscillations DEVRAIT (SHOULD) être défini à FALSE lorsque cet événement se produit.
Événement 5: AutomaticStart_with_PassiveTcpEstablishment (Démarrage automatique avec établissement TCP passif)
Définition: Le système local démarre automatiquement la connexion BGP avec le PassiveTcpEstablishment activé. L'attribut optionnel PassiveTcpEstablishment indique que le pair écoutera avant d'établir une connexion.
Statut: Optionnel, selon le système local
Statut
d'attribut
optionnel: 1) L'attribut AllowAutomaticStart DEVRAIT (SHOULD) être défini à TRUE.
2) L'attribut PassiveTcpEstablishment DEVRAIT (SHOULD) être défini à TRUE.
3) Si l'attribut DampPeerOscillations est supporté, le DampPeerOscillations DEVRAIT (SHOULD) être défini à FALSE.
Événement 6: AutomaticStart_with_DampPeerOscillations (Démarrage automatique avec amortissement des oscillations de pairs)
Définition: Le système local démarre automatiquement la connexion de pair BGP avec l'amortissement des oscillations de pairs activé. La méthode exacte d'amortissement des oscillations de pairs persistantes est déterminée par l'implémentation et est hors du champ d'application de ce document.
Statut: Optionnel, selon le système local.
Statut
d'attribut
optionnel: 1) L'attribut AllowAutomaticStart DEVRAIT (SHOULD) être défini à TRUE.
2) L'attribut DampPeerOscillations DEVRAIT (SHOULD) être défini à TRUE.
3) L'attribut PassiveTcpEstablishment DEVRAIT (SHOULD) être défini à FALSE.
Événement 7: AutomaticStart_with_DampPeerOscillations_and_
PassiveTcpEstablishment (Démarrage automatique avec amortissement des oscillations de pairs et établissement TCP passif)
Définition: Le système local démarre automatiquement la connexion de pair BGP avec l'amortissement des oscillations de pairs et le PassiveTcpEstablishment activés. La méthode exacte d'amortissement des oscillations de pairs persistantes est déterminée par l'implémentation et est hors du champ d'application de ce document.
Statut: Optionnel, selon le système local
Statut
d'attribut
optionnel: 1) L'attribut AllowAutomaticStart DEVRAIT (SHOULD) être défini à TRUE.
2) L'attribut DampPeerOscillations DEVRAIT (SHOULD) être défini à TRUE.
3) L'attribut PassiveTcpEstablishment DEVRAIT (SHOULD) être défini à TRUE.
Événement 8: AutomaticStop (Arrêt automatique)
Définition: Le système local arrête automatiquement la connexion BGP.
Un exemple d'événement d'arrêt automatique est le dépassement du nombre de préfixes pour un pair donné, et le système local déconnecte automatiquement le pair.
Statut: Optionnel, selon le système local
Statut
d'attribut
optionnel: 1) L'attribut AllowAutomaticStop DEVRAIT (SHOULD) être TRUE.
8.1.3. Timer Events (Événements de temporisateur)
Événement 9: ConnectRetryTimer_Expires (Expiration du temporisateur de tentative de connexion)
Définition: Un événement généré lorsque le ConnectRetryTimer expire.
Statut: Obligatoire
Événement 10: HoldTimer_Expires (Expiration du temporisateur de maintien)
Définition: Un événement généré lorsque le HoldTimer expire.
Statut: Obligatoire
Événement 11: KeepaliveTimer_Expires (Expiration du temporisateur de maintien en vie)
Définition: Un événement généré lorsque le KeepaliveTimer expire.
Statut: Obligatoire
Événement 12: DelayOpenTimer_Expires (Expiration du temporisateur de retard d'ouverture)
Définition: Un événement généré lorsque le DelayOpenTimer expire.
Statut: Optionnel
Statut
d'attribut
optionnel: Si cet événement se produit,
1) L'attribut DelayOpen DEVRAIT (SHOULD) être défini à TRUE,
2) L'attribut DelayOpenTime DEVRAIT (SHOULD) être supporté,
3) Le DelayOpenTimer DEVRAIT (SHOULD) être supporté.
Événement 13: IdleHoldTimer_Expires (Expiration du temporisateur de maintien inactif)
Définition: Un événement généré lorsque l'IdleHoldTimer expire, indiquant que la connexion BGP a terminé d'attendre la période de recul pour empêcher l'oscillation de pairs BGP.
L'IdleHoldTimer n'est utilisé que lorsque la fonction d'amortissement des oscillations de pairs persistantes est activée en définissant l'attribut optionnel DampPeerOscillations à TRUE.
Les implémentations qui n'implémentent pas la fonction d'amortissement des oscillations de pairs persistantes peuvent ne pas avoir l'IdleHoldTimer.
Statut: Optionnel
Statut
d'attribut
optionnel: Si cet événement se produit :
1) L'attribut DampPeerOscillations DEVRAIT (SHOULD) être défini à TRUE.
2) L'IdleHoldTimer DEVRAIT (SHOULD) venir d'expirer.
8.1.4. TCP Connection-Based Events (Événements basés sur la connexion TCP)
Événement 14: TcpConnection_Valid (Connexion TCP valide)
Définition: Un événement indiquant que le système local a reçu une demande de connexion TCP avec une adresse IP source, un port TCP, une adresse IP de destination et un port TCP valides. La définition d'une source invalide et d'une adresse IP de destination invalide est déterminée par l'implémentation.
Le port de destination BGP DEVRAIT (SHOULD) être le port 179, tel que défini par l'IANA.
Une demande de connexion TCP est indiquée par la réception d'un TCP SYN par le système local.
Statut: Optionnel
Statut
d'attribut
optionnel: 1) L'attribut TrackTcpState DEVRAIT (SHOULD) être défini à TRUE si cet événement se produit.
Événement 15: Tcp_CR_Invalid (Demande de connexion TCP invalide)
Définition: Un événement indiquant que le système local a reçu une demande de connexion TCP avec soit une adresse source ou un numéro de port invalide, soit une adresse de destination ou un numéro de port invalide.
Le numéro de port de destination BGP DEVRAIT (SHOULD) être 179, tel que défini par l'IANA.
Une demande de connexion TCP se produit lorsque le système local reçoit un TCP SYN.
Statut: Optionnel
Statut
d'attribut
optionnel: 1) L'attribut TrackTcpState DEVRAIT (SHOULD) être défini à TRUE si cet événement se produit.
Événement 16: Tcp_CR_Acked (Demande de connexion TCP acquittée)
Définition: Un événement indiquant que le système local a demandé l'établissement d'une connexion TCP vers le pair distant.
La connexion TCP du système local a envoyé le TCP SYN, reçu le message TCP SYN/ACK, et envoyé le TCP ACK.
Statut: Obligatoire
Événement 17: TcpConnectionConfirmed (Connexion TCP confirmée)
Définition: Un événement indiquant que le système local a reçu une confirmation que le site distant a établi une connexion TCP.
Le moteur TCP du pair distant a envoyé le TCP SYN. Le moteur TCP local a envoyé le message SYN, ACK, et a maintenant reçu l'ACK final.
Statut: Obligatoire
Événement 18: TcpConnectionFails (Échec de la connexion TCP)
Définition: Un événement indiquant que le système local a reçu une notification indiquant que la connexion TCP a échoué.
La machine TCP du pair BGP distant peut avoir envoyé un FIN. Le pair local répondrait avec le FIN-ACK. Une autre possibilité est que le pair local a indiqué que la connexion TCP a expiré et s'est déconnectée.
Statut: Obligatoire
8.1.5. BGP Message-Based Events (Événements basés sur les messages BGP)
Événement 19: BGPOpen
Définition: Un événement est généré lorsqu'un message OPEN valide est reçu.
Statut: Obligatoire
Statut
d'attribut
optionnel: 1) L'attribut optionnel DelayOpen DEVRAIT (SHOULD) être défini à FALSE.
2) Le DelayOpenTimer NE DEVRAIT PAS (SHOULD NOT) être en cours d'exécution.
Événement 20: BGPOpen with DelayOpenTimer running (BGPOpen avec DelayOpenTimer en cours d'exécution)
Définition: Un événement est généré lorsqu'un message OPEN valide est reçu, que ce nœud a établi avec succès une connexion de transport, et qu'il retarde actuellement l'envoi du message BGP open.
Statut: Optionnel
Statut
d'attribut
optionnel: 1) L'attribut DelayOpen DEVRAIT (SHOULD) être défini à TRUE.
2) Le DelayOpenTimer DEVRAIT (SHOULD) être en cours d'exécution.
Événement 21: BGPHeaderErr (Erreur d'en-tête BGP)
Définition: Un événement est généré lorsqu'un en-tête de message BGP reçu est invalide.
Statut: Obligatoire
Événement 22: BGPOpenMsgErr (Erreur de message OPEN BGP)
Définition: Un événement est généré lorsqu'un message OPEN avec une erreur est reçu.
Statut: Obligatoire
Événement 23: OpenCollisionDump
Définition: Un événement généré administrativement lorsqu'une collision de connexion est détectée lors du traitement d'un message OPEN entrant et que ce pair est choisi pour être déconnecté. Veuillez voir la Section 6.8 pour plus d'informations sur la détection des collisions.
L'événement 23 est une action administrative générée par la logique d'implémentation qui détermine si cette connexion doit être abandonnée selon les règles de la Section 6.8. Cet événement peut se produire si la FSM est implémentée comme deux machines à états liées.
Statut: Optionnel
Statut
d'attribut
optionnel: Si la machine à états doit traiter cet événement dans l'état Established,
1) L'attribut optionnel CollisionDetectEstablishedState DEVRAIT (SHOULD) être défini à TRUE.
Veuillez noter : L'événement OpenCollisionDump peut se produire dans Idle, Connect, Active, OpenSent et OpenConfirm sans qu'aucun attribut optionnel ne soit défini.
Événement 24: NotifMsgVerErr (Erreur de version de message de notification)
Définition: Un événement est généré lorsqu'un message NOTIFICATION avec "erreur de version" est reçu.
Statut: Obligatoire
Événement 25: NotifMsg (Message de notification)
Définition: Un événement est généré lorsqu'un message NOTIFICATION est reçu et que le code d'erreur n'est pas "erreur de version".
Statut: Obligatoire
Événement 26: KeepAliveMsg (Message Keepalive)
Définition: Un événement est généré lorsqu'un message KEEPALIVE est reçu.
Statut: Obligatoire
Événement 27: UpdateMsg (Message de mise à jour)
Définition: Un événement est généré lorsqu'un message UPDATE valide est reçu.
Statut: Obligatoire
Événement 28: UpdateMsgErr (Erreur de message de mise à jour)
Définition: Un événement est généré lorsqu'un message UPDATE invalide est reçu.
Statut: Obligatoire