tripoli.cloud/bird-lab/teardown.sh
Adam Belkacemi 7802c59931 Phase 6 (bonus) : bird-lab, BGP+BFD entre namespaces (rtnetlink/Bird)
- Topologie en étoile : racine (AS 65000) en transit entre bird-a
  (AS 65010) et bird-b (AS 65011), namespaces créés par tripoli-netctl
  (Phase 4). Chaque feuille origine une route factice, jamais
  installée dans la table de routage réelle (export none partout) -
  labo pédagogique, ne pilote aucun trafic de production.
- Vérifié en conditions réelles : sessions BGP Established dans les
  deux sens, route de bird-b vue par bird-a avec next-hop = racine
  (transit confirmé, pas un peering direct), sessions BFD Up
  (200ms/200ms), coupure de lien détectée en < 5ms.
- Découverte : les namespaces n'ont aucun pare-feu propre, mais ufw
  côté racine bloquait le retour des paquets BFD (chaque bout envoie
  indépendamment, conntrack ne le reconnaît pas comme un flux BGP/TCP
  existant) - même schéma que Caddy -> tripoli-edge en Phase 2. Règle
  ufw ajoutée par run.sh, retirée par teardown.sh : rien de permanent.
- Pas de service systemd : labo lancé, vérifié, puis proprement démonté
  (processus Bird, namespaces et règle ufw temporaire tous supprimés).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 01:17:15 +02:00

26 lines
786 B
Bash
Executable file

#!/usr/bin/env bash
# Arrête les trois instances Bird et détruit les namespaces du labo.
# Volontairement pas de service systemd permanent pour ce labo : le
# faire tourner en continu sur un serveur de production partagé n'aurait
# aucune valeur pédagogique de plus, juste de la RAM utilisée pour rien.
set -euo pipefail
NETCTL=/opt/tripoli-src/target/debug/tripoli-netctl
for ctl in root bird-a bird-b; do
if [ -S "/run/bird-lab/$ctl.ctl" ]; then
birdc -s "/run/bird-lab/$ctl.ctl" down || true
fi
done
sleep 1
pkill -f "bird -c /etc/bird-lab" || true
sleep 1
"$NETCTL" destroy bird-a || true
"$NETCTL" destroy bird-b || true
ufw delete allow from 10.200.0.0/16 to any port 3784 proto udp || true
rm -rf /run/bird-lab
echo "labo BGP/BFD arrêté et nettoyé"