Latence Anycast BGP incohérente entre EU et US via Bird2

Posté par maggie-didier le 17/03/2026
RÉSOLU

maggie-didier

Membre depuis le 06/04/2019

actif

Salut. On gère un réseau Anycast pour nos DNS avec Bird2. On a des sessions BGP avec plusieurs transitaires (GTT, Cogent, Tata).

Depuis ce matin, certains utilisateurs basés à Paris sont routés vers notre noeud de New York (JFK) au lieu de Londres (LHR) ou Francfort (FRA), ce qui ajoute 80ms de latence inutile.

Nos filtres Bird exportent pourtant les mêmes communautés partout. Est-ce que quelqu'un a déjà eu des soucis de propagation de routes chez GTT récemment ?

Commentaires

glevy

Membre depuis le 01/08/2019

Salut. On a eu un souci similaire le mois dernier. Regarde tes AS Path. Il est probable qu'un de tes transitaires voit un chemin plus court vers les US pour certains prefixes spécifiques.

Tu as vérifié le looking glass de GTT pour voir comment ils reçoivent tes annonces à Paris ?

bertrand-bernard

Membre depuis le 08/07/2019

actif

Il faut aussi regarder si tu ne fais pas de l'AS Path Prepending. Si tu as trop prepend sur l'Europe, le chemin via l'Atlantique peut paraître plus attractif si le transitaire a un peering direct massif entre CDG et JFK.

maggie-didier

Membre depuis le 06/04/2019

actif

Je ne fais aucun prepend pour l'instant. Voici ma conf d'export :

protocol bgp gtt_paris {
  export filter {
    if net = 1.2.3.0/24 then {
      bgp_community.add((64512, 100));
      accept;
    }
    reject;
  };
}

L'utilisateur fait un `mtr -z` et on voit qu'il sort de Paris, tape GTT, et le saut suivant est directement aux US.

glevy

Membre depuis le 01/08/2019

Si GTT te route vers les US, c'est que leur Local Preference interne favorise leur backbone transatlantique.

Tu devrais essayer d'utiliser leurs communautés BGP spécifiques pour influencer leur routage interne. Par exemple, réduire leur Local Pref sur les routes US pour ton prefix européen.

bertrand-bernard

Membre depuis le 08/07/2019

actif

Pour GTT, tu peux tester la communauté `4436:80` pour baisser la priorité. Mais attention, ça dépend de leur politique régionale.

As-tu vérifié si tu ne reçois pas de NO_EXPORT par erreur de ton côté ?

maggie-didier

Membre depuis le 06/04/2019

actif

Non, pas de NO_EXPORT. J'ai lancé un `birdc show route export gtt_paris all` et tout semble correct.

Par contre, je vois que Cogent à Paris préfère aussi m'envoyer vers l'international. C'est comme si mes routes locales FRA/LHR n'existaient plus pour eux.

glevy

Membre depuis le 01/08/2019

Est-ce que tes sessions BGP sur FRA et LHR sont bien UP ? Si elles ont flap, tes transitaires ont pu mettre tes routes en dampening.

Vérifie `birdc show protocols` pour être sûr que tout est stable.

bertrand-bernard

Membre depuis le 08/07/2019

actif

Le dampening BGP est une plaie. Si tu as eu des micro-coupures de session ce matin, ils peuvent ignorer tes annonces pendant 30 à 60 minutes.

maggie-didier

Membre depuis le 06/04/2019

actif

Les sessions sont UP depuis 4 jours. Pas de flap récent dans les logs de Bird.

gtt_fra BGP master up 2023-10-20 10:12:34 Established
gtt_lhr BGP master up 2023-10-20 10:15:01 Established

Je soupçonne une fuite de route ou une agrégation foireuse chez un de leurs peers.

glevy

Membre depuis le 01/08/2019

Utilise `vtysh` si tu as du Cisco/Arista en bordure ou regarde le Looking Glass de Cogent. Cherche ton prefix et regarde l'AS Path complet qu'ils voient à Paris.

bertrand-bernard

Membre depuis le 08/07/2019

actif

Une autre piste : le MED (Multi-Exit Discriminator). Si tu n'envoies pas de MED, certains transitaires utilisent des valeurs par défaut qui peuvent casser ton Anycast.

Essaie de forcer `bgp_med = 100;` dans tes filtres d'export.

maggie-didier

Membre depuis le 06/04/2019

actif

J'ai ajouté le MED et j'ai surtout ajouté des prepends sur les annonces US pour les forcer à préférer l'Europe quand ils sont en Europe.

if net = 1.2.3.0/24 then {
  bgp_path.prepend(my_as);
  bgp_path.prepend(my_as);
  accept;
}

glevy

Membre depuis le 01/08/2019

Le prepend sur les noeuds US est une bonne solution brute. Est-ce que la latence a chuté pour tes utilisateurs parisiens ?

bertrand-bernard

Membre depuis le 08/07/2019

actif

Vérifie aussi le RPKI. Si tes ROA sont mal configurés, certains transitaires rejettent tes routes plus spécifiques et se rabattent sur un agrégat plus large qui part aux US.

maggie-didier

Membre depuis le 06/04/2019

actif

C'était un mix entre le MED manquant et une latence de propagation RPKI suite à un changement de certificat hier soir !

Le prepend a aidé à stabiliser le temps que le cache RPKI des transitaires se mette à jour. Le trafic est de nouveau local à 10ms. Merci pour les pistes, le MED était clairement le déclencheur.

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire