### Couper une session proprement avec le graceful shutdown

This commit is contained in:
jdubois 2021-12-17 15:29:41 +01:00
parent 0627996d24
commit 32d731fee7

View file

@ -411,6 +411,44 @@ Pour le réactiver :
request processed
~~~
### Couper une session proprement avec le graceful shutdown
Le [graceful shutdown](https://datatracker.ietf.org/doc/html/rfc8326) est un mécanisme permettant d'indiquer à un pair BGP que le lien avec ce pair va être bientôt coupé, afin que celui-ci recherche immédiatement une alternative, pour réduire la perte de trafic lors d'une coupure de session plannifiée.
En effet, lorsqu'une session BGP est coupée, les routeurs suppriment les routes apprises via cette session et cherchent une alternative, mais cela prend au moins quelques secondes avant que ce changement soit propagé à l'ensemble des routeurs BGP qui constituent Internet. Pendant ces quelques secondes, les paquets transitent sur des routeurs qui ne savent plus les traiter correctement, et qui finissent par les jeter.
La communauté BGP GRACEFUL_SHUTDOWN doit être utilisée avant une coupure prévue pour que le pair commence à supprimer les routes apprises via la session avant que celle-ci ne soit réellement coupée. Le trafic émis avant que la convergence n'arrive ne sera alors pas perdu.
Pour que le pair A puisse utiliser cette communauté afin d'indiquer au pair B que la session va bientôt être coupée, il faut que le pair B ait configuré cette communauté pour abaisser son paramètre de *LOCAL_PREF*, [premier critère consulté](#route-decision-engine-rde) lors du choix d'une route.
Cela se configure ainsi, dans /etc/bgpd.conf :
~~~
# Honor requests to gracefully shutdown BGP sessions
# https://tools.ietf.org/html/rfc8326
match from any community GRACEFUL_SHUTDOWN set { localpref 0 }
~~~
Le pair A quant à lui, doit utiliser la communauté BGP en ajoutant dans sa configuration, avec X.X.X.X étant l'IP du pair BGP :
~~~
match to X.X.X.X set community 65535:0
~~~
Le pair A [recharge](#en-production) ensuite sa configuration BGP, puis peut [couper sa session BGP](#désactiver-réactiver-un-transitpeer) avec le pair B après avoir attendu quelques secondes. Une fois la maintenance effectuée, le pair A devra désactiver l'utilisation de la communauté avant de remonter la session BGP.
Afin d'informer les pairs BGP que l'on prend en compte la communauté GRACEFUL_SHUTDOWN, il est d'usage de l'indiquer dans l'objet aut-num présent dans l'IRR :
~~~
$ whois as197696
[…]
remarks: -----------------------------------------------
remarks: Communities accepted from peers
remarks: -----------------------------------------------
remarks: Well Known communities :
remarks: GRACEFUL_SHUTDOWN 65535:0
~~~
### Utiliser RTBH (Remote triggered blackhole)
En cas d'attaque DDoS sur une IP, on peut utiliser le RTBH [(RFC 3882)](http://www.rfc-editor.org/rfc/rfc3882.txt)