BGP route dampening

BGP route dampening est un mécanisme qui permet de réduire la propagation des effets de routes instables. Lorsqu’un réseau – un préfixe – flap, il se verra attribuer un penalty de 1000 qui sera placé dans l’historique de l’état dampening. Chaque flap supplémentaire ajoutera un nouveau penalty d’une valeur de 1000, qui s’additionnera aux autres.

Si le score des penaltys atteint la valeur de suppress limit (la valeur par défaut est 2000), la route est dampened (affaiblie), ce qui signifie qu’elle n’est plus annoncée à aucun peer.

Les valeurs par défaut des différents critères sont :

  • Penalty : 1000
  • Suppress limit : 2000
  • Reuse limit : 750
  • Half-life : 15 minutes
  • Maximum suppress-limit : 60 minutes

Lorsque qu’une route est dampened, le penalty doit être réduit à une valeur inférieure à celle définie par la reuse limit pour que celle-ci puisse à nouveau être annoncée aux peers.

Le half-life timer s’en occupe automatiquement. Après avoir reçu un penalty, lorsqu’un préfixe devient à nouveau stable, le half-life timer démarre. Lorsque la valeur du half-life est atteinte, la valeur du penalty va être réduite de moitié de manière exponentielle toutes les 15 minutes. Lorsque la valeur du penalty passe sous la valeure de reuse limit, le penalty est retiré.

Exemple :

  1. Une route instable se voit attribuer un penalty de 5000
  2. Elle redevient stable
  3. Après 15 minutes son score penalty passe de 5000 à 2500
  4. Après 30 minutes son score penalty passe de 2500 à 1250
  5. Après 45 minutes son score penalty passe de 1250 à 625
  6. Après 45 minutes, la route est donc à nouveau annoncée aux peers

Le paramètre maximum suppress-limit est renseigné afin de s’assurer qu’un préfixe n’est pas dampened indéfiniment. Dans le cas d’une configuration par défaut, un préfixe est à nouveau autorisé au bout de 60 minutes, indépendamment du score de penalty.

Formule

Afin de vous assurer que votre valeur de max-penalty est plausible, la formule de calcul suivante vous indiquera si celle-ci est correcte :

 max-penalty = reuse-limit * 2^( max-suppress-time / half-life ) 

En se basant sur ces valeurs :

  • Penalty : 1000
  • Suppress limit : 30000
  • Reuse limit : 500
  • Half-life : 5 minutes
  • Maximum suppress-limit : 30 minutes
max-penalty = 500 * 2^( 30 / 5 ) : soit 32000

Dans ce cas, un penalty représente 1000. Lorsque le penalty atteint 32000, la route est dampened. Dans ce cas, cela est possible, car la suppress limit est de 30000, soit moins que la valeur maximale de penalty de 32000. Si la suppress limit était de 40000, cela ne serait pas possible, car la suppress limit ne serait jamais atteinte.