Aller au contenu principal

3.5.2. Message Hello

Les messages Hello LDP sont échangés dans le cadre du mécanisme de découverte LDP ; voir la section "LDP Discovery".

L'encodage du message Hello est :

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0| Hello (0x0100) | Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Common Hello Parameters TLV |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Optional Parameters |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Message ID Valeur de 32 bits utilisée pour identifier ce message.

Common Hello Parameters TLV Spécifie les paramètres communs à tous les messages Hello. L'encodage du Common Hello Parameters TLV est :

    0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|0| Common Hello Parms(0x0400)| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hold Time |T|R| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Hold Time Hold time des Hellos, en secondes. Un LSR tient à jour un enregistrement des Hellos reçus de pairs potentiels (voir la section "Hello Message Procedures"). Le Hello Hold Time spécifie la durée pendant laquelle le LSR émetteur maintiendra son enregistrement des Hellos provenant du LSR récepteur sans recevoir un autre Hello.

  Une paire de LSR négocie les hold times qu'ils utilisent pour les Hellos qu'ils se reçoivent mutuellement. Chacun propose un hold time. Le hold time utilisé est le minimum des hold times proposés dans leurs Hellos.

Une valeur de 0 signifie d'utiliser la valeur par défaut, qui est de 15 secondes pour les Link Hellos et de 45 secondes pour les Targeted Hellos. Une valeur de 0xffff signifie l'infini.

T, Targeted Hello Une valeur de 1 spécifie que ce Hello est un Targeted Hello. Une valeur de 0 spécifie que ce Hello est un Link Hello.

R, Request Send Targeted Hellos Une valeur de 1 demande au récepteur d'envoyer périodiquement des Targeted Hellos à la source de ce Hello. Une valeur de 0 ne formule aucune demande.

  Un LSR qui initie une Extended Discovery positionne R à 1. Si R vaut 1, le LSR récepteur vérifie s'il a été configuré pour envoyer des Targeted Hellos à la source du Hello en réponse à des Hellos portant cette demande. Si ce n'est pas le cas, il ignore la demande. Si oui, il initie l'émission périodique de Targeted Hellos vers la source du Hello.

Reserved Ce champ est réservé. Il DOIT (MUST) être mis à zéro à l'émission et ignoré à la réception.

Optional Parameters Ce champ de longueur variable du message Hello contient 0 ou plusieurs paramètres, chacun encodé sous forme de TLV. Les paramètres optionnels définis par cette version du protocole sont

Optional Parameter Type Length Value

   IPv4 Transport Address     0x0401     4     See below
Configuration 0x0402 4 See below
Sequence Number
IPv6 Transport Address 0x0403 16 See below

IPv4 Transport Address Spécifie l'adresse IPv4 à utiliser pour le LSR émetteur lors de l'ouverture de la connexion TCP de session LDP. Si ce TLV optionnel n'est pas présent, l'adresse source IPv4 du paquet UDP transportant le Hello DEVRAIT (SHOULD) être utilisée.

Configuration Sequence Number Spécifie un numéro de séquence de configuration non signé de 4 octets qui identifie l'état de configuration du LSR émetteur. Utilisé par le LSR récepteur pour détecter des changements de configuration sur le LSR émetteur.

IPv6 Transport Address Spécifie l'adresse IPv6 à utiliser pour le LSR émetteur lors de l'ouverture de la connexion TCP de session LDP. Si ce TLV optionnel n'est pas présent, l'adresse source IPv6 du paquet UDP transportant le Hello DEVRAIT (SHOULD) être utilisée.

3.5.2.1. Procédures du message Hello​

Un LSR qui reçoit des Hellos d'un autre LSR maintient une Hello adjacency correspondant à ces Hellos. Le LSR maintient un hold timer associé à la Hello adjacency, qu'il redémarre chaque fois qu'il reçoit un Hello correspondant à la Hello adjacency. Si le hold timer d'une Hello adjacency expire, le LSR écarte la Hello adjacency : voir les sections "Maintaining Hello Adjacencies" et "Maintaining LDP Sessions".

Nous recommandons que l'intervalle entre deux émissions de Hello soit au plus égal au tiers du Hello hold time.

Un LSR traite un Hello LDP reçu de la manière suivante :

  1. Le LSR vérifie si le Hello est acceptable. Les critères permettant de déterminer si un Hello est acceptable dépendent de l'implémentation (voir ci-dessous des exemples de critères).

  2. Si le Hello n'est pas acceptable, le LSR l'ignore.

  3. Si le Hello est acceptable, le LSR vérifie s'il dispose d'une Hello adjacency pour la source du Hello. Si oui, il redémarre le hold timer de la Hello adjacency. Sinon, il crée une Hello adjacency pour la source du Hello et démarre son hold timer.

  4. Si le Hello transporte des TLV optionnels, le LSR les traite (voir ci-dessous).

  5. Enfin, si le LSR n'a pas de session LDP pour l'espace d'étiquettes spécifié par le LDP Identifier de l'en-tête du PDU du Hello, il suit les procédures de la section "LDP Session Establishment".

Voici des exemples de critères d'acceptabilité pour les Link Hellos et les Targeted Hellos :

Un Link Hello est acceptable si l'interface sur laquelle il a été reçu a été configurée pour la commutation d'étiquettes.

Un Targeted Hello provenant de l'adresse source A est acceptable si l'une ou l'autre des conditions suivantes est remplie :

  • Le LSR a été configuré pour accepter les Targeted Hellos, ou

  • Le LSR a été configuré pour envoyer des Targeted Hellos à A.

Ce qui suit décrit la manière dont un LSR traite les TLV optionnels du Hello :

Transport Address Le LSR associe l'adresse de transport spécifiée à la Hello adjacency.

Configuration Sequence Number Le paramètre optionnel Configuration Sequence Number est utilisé par le LSR émetteur pour signaler des changements de configuration au LSR récepteur. Lorsqu'un LSR récepteur jouant le rôle actif dans l'établissement de session LDP détecte un changement dans la configuration du LSR émetteur, il peut annuler le délai de temporisation (backoff delay) d'établissement de session, le cas échéant, associé au LSR émetteur (voir la section "Session Initialization").

  Un LSR émetteur utilisant ce paramètre optionnel est responsable du maintien du numéro de séquence de configuration qu'il transmet dans les messages Hello. Chaque fois qu'un changement de configuration se produit sur le LSR émetteur, il incrémente le numéro de séquence de configuration.