|
Page 12 sur 21
VIII-
Prise en charge des erreurs.
Ce
chapitre décrit les actions prises lors de la détection d’une erreur. A chaque
fois qu’une erreur est détectée un message de notification est envoyé avec le
code de l’erreur, son Subcode et le champ Data ; et la connexion est arrêtée.
Les
entrées de la table de routage associées avec le système distant sont notifiées
comme invalides avant de les supprimer.
a) Erreur concernant l’en-tête.
Toutes
les erreurs détectées concernant l’en-tête aboutissent à l’envoi d’un message
NOTIFICATION avec pour code de l’erreur la valeur 1, et un subcode dépendant
du type de l’erreur.
Si
le champ Marker de l’en-tête n’est pas celui attendu, alors c’est une erreur
de synchronisation (subcode = 1).
Si
la taille indiquée dans le champ Length est inférieure à 19 ou plus grande que
4096, si la taille d’un message (OPEN, UPDATE, KEEPALIVE, NOTIFICATION) est
inférieure à la taille minimale d’un message (OPEN,UPDATE, KEEPALIVE, NOTIFICATION)
alors le message d’erreur est Mauvaise taille du message (subcode = 2). Dans
ce cas le champ Data du message de notification contiendra la taille erronée
du message.
Si
le type du message indiqué dans le champ Type n’est pas reconnu alors une erreur
Mauvais type de Message (subcode = 3) est envoyée et le champ Data du message
de notification est le type de message erroné
b) Erreur concernant les messages
OPEN.
Le
code pour ce type d’erreur est le code 2 (Open Message Error)
Si
le récepteur ne reconnaît pas la version indiquée dans le champ VERSION du message
OPEN, le subcode de l’erreur est 1 (Numéro de version non supportée. On retrouvera
dans le champ Data du message de notification le plus grande nombre possible
de versions supportées par le système local.
Si
le numéro de système autonome est non valide alors le subcode de l’erreur est
Bad Peer AS. (la décision sur l’acceptabilité d’un système autonome n’est pas
rattachée au protocole BGP, c’est pourquoi nous ne nous intéresserons pas à
ce mécanisme.)
Si
la valeur retenue pour le compteur de retenue est non valide, alors le subcode
de l’erreur est Unacceptable Hold Time. Une implémentation doit rejeter un temps
pour le compteur de une ou deux secondes. Une implémentation peut rejeter n’importe
quel temps, et finalement une implémentation qui accepte le temps proposé doit
utiliser cette valeur pour le Hold Time.
Si
l’identifiant BGP est syntaxiquement incorrect, le subcode de l’erreur est Bad
BGP Identifier
Si
une des options dans le champ Optional Parameters n’est pas reconnue, alors
le subcode de l’erreur est Unsupported Optional Parameter.
Si
le message OPEN porte une Information d’Authentification (comme paramètre optionnel),
alors la procédure d’authentification est invoquée. Si cette procédure échoue,
le subcode de l’erreur est Authentication Failure.
|