Routage OSPF à trois routeurs
par Éric Lalitte · version 1 · 04/11/2026 · 5 téléchargements
Trois routeurs FRR en triangle doivent s'échanger leurs routes en OSPF pour que le serveur web (lan1) et le serveur DNS (lan2) se joignent. Les vérifications sont faites depuis les routeurs et depuis une sonde cachée placée sur lan1.
- Niveau
- intermédiaire
- Durée
- 60 min
- Machines
r1(routeur),r2(routeur),r3(routeur),web(serveur),dns(serveur) + 1 cachée- Segments
- lan1, lan2, l12, l13, l23
- Vérifications
- 5 (8 points)
- Variantes par élève
- lan1, lan2, domaine
- Mots-clés
- Nom du lab
ospf
Importer dans votre VM
Onglet Catalogue de l'interface web de la VM, ou en ligne de commande :
curl -o ospf.zip https://featherlab.lalitte.com/api/v1/labs/ospf/archive/ featherlab import ospf.zip
Ou téléchargez l'archive et faites « Importer un lab… » dans l'interface.
Énoncé
Lab ospf
Trois routeurs FRR en triangle (OSPF, zone 0), un serveur web et un serveur DNS sur deux réseaux.
lan1 {{ lan1 }} lan2 {{ lan2 }}
web .10 ── r1 ──── l12 ──── r2 ── dns .53
\ /
l13 l23
\ /
r3
| Machine | Rôle | Adresses |
|---|---|---|
| r1 | routeur | 10.0.12.1, 10.0.13.1, {{ lan1 |
| r2 | routeur | 10.0.12.2, 10.0.23.2, {{ lan2 |
| r3 | routeur | 10.0.13.3, 10.0.23.3 ; loopback 10.255.0.3 |
| web | nginx | {{ lan1 |
| dns | bind9, zone {{ domaine }} |
{{ lan2 |
Lancer et détruire
featherlab up ospf # environ 3 minutes
featherlab status ospf
featherlab down ospf
Ouvrir un shell sur une machine : incus exec --project lab-ospf r1 -- sh
(routeurs Alpine) ou incus exec --project lab-ospf web -- bash (serveurs).
À essayer
Voisins et routes OSPF :
incus exec --project lab-ospf r1 -- vtysh -c "show ip ospf neighbor"
incus exec --project lab-ospf r3 -- vtysh -c "show ip route ospf"
Chemin et services, depuis le serveur web :
incus exec --project lab-ospf web -- traceroute -n {{ lan2 | hote(53) }} # r1 → r2 → dns
incus exec --project lab-ospf web -- getent hosts www.{{ domaine }}
incus exec --project lab-ospf dns -- curl -s http://web.{{ domaine }}/
Panne d'un lien : couper l12 et regarder le trafic passer par r3.
incus exec --project lab-ospf r1 -- ip link set eth1 down
incus exec --project lab-ospf web -- traceroute -n {{ lan2 | hote(53) }} # r1 → r3 → r2 → dns
incus exec --project lab-ospf r1 -- ip link set eth1 up
Les liens entre routeurs utilisent des timers OSPF courts (hello 1 s, dead 4 s) pour que les pannes se voient vite.
Exercice et vérifications
Le dossier contient un exercice.yaml : le lab sert d'exercice de référence
(tout est déjà configuré, toutes les vérifications passent). Une machine
cachée, sonde, est placée sur lan1 comme un poste client ; elle n'apparaît
pas dans l'interface élève et sert à tester le DNS et le web depuis lan1.
featherlab verifier ospf # score, une ligne par vérification
featherlab verifier -v ospf # avec la sortie des vérifications échouées
Pour en faire un vrai exercice : retirer la configuration que l'élève doit
produire (par exemple la ligne fichiers: de r3, ou web/index.html),
décrire le travail attendu ici, et garder les vérifications.
Variantes par élève : exercice.yaml déclare trois variables (lan1,
lan2, domaine). Dans une classe, chaque élève reçoit ses propres
valeurs ; lab.yaml, ce README, les fichiers DNS et web et les
vérifications sont des gabarits ({{ '{{ lan1 | hote(10) }}' }},
{{ '{{ domaine }}' }}). Déployé directement (featherlab up ospf), le lab
prend les valeurs par défaut.
Limites
Les serveurs n'ont pas accès à Internet une fois déployés : leur eth0 est
sur le réseau du lab. Pour ajouter un paquet, l'ajouter dans lab.yaml
puis featherlab down ospf && featherlab up ospf.