{"id":100473,"date":"2026-01-23T17:46:02","date_gmt":"2026-01-23T16:46:02","guid":{"rendered":"https:\/\/dyb.fr\/?p=100473"},"modified":"2026-01-23T17:54:01","modified_gmt":"2026-01-23T16:54:01","slug":"pourquoi-ospf-ne-bascule-pas-toujours-comme-prevu","status":"publish","type":"post","link":"https:\/\/dyb.eu\/blog\/pourquoi-ospf-ne-bascule-pas-toujours-comme-prevu\/","title":{"rendered":"Pourquoi OSPF ne bascule pas toujours \u201ccomme pr\u00e9vu\u201d"},"content":{"rendered":"<figure class=\"wp-block-post-featured-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/dyb.eu\/blog\/wp-content\/uploads\/2026\/01\/ospf-wg-flapp.png\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" style=\"object-fit:cover;\" srcset=\"https:\/\/dyb.eu\/blog\/wp-content\/uploads\/2026\/01\/ospf-wg-flapp.png 1536w, https:\/\/dyb.eu\/blog\/wp-content\/uploads\/2026\/01\/ospf-wg-flapp-1280x853.png 1280w, https:\/\/dyb.eu\/blog\/wp-content\/uploads\/2026\/01\/ospf-wg-flapp-980x653.png 980w, https:\/\/dyb.eu\/blog\/wp-content\/uploads\/2026\/01\/ospf-wg-flapp-480x320.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1536px, 100vw\" \/><\/figure>\n\n\n<h2 class=\"wp-block-heading\">Retour d\u2019exp\u00e9rience DYB sur la haute disponibilit\u00e9 WAN avec pfSense, WireGuard et OSPF<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dans les architectures r\u00e9seau professionnelles multi-sites, la <strong>haute disponibilit\u00e9<\/strong> est devenue un pr\u00e9requis :<br>double lien Internet (FTTO + FTTH), tunnels inter-sites, routage dynamique, continuit\u00e9 de service.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sur le papier, les briques sont connues :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>pfSense pour la s\u00e9curit\u00e9 et le routage,<\/li>\n\n\n\n<li>WireGuard pour les interconnexions chiffr\u00e9es,<\/li>\n\n\n\n<li>OSPF pour le routage dynamique entre sites.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pourtant, dans la r\u00e9alit\u00e9 terrain, <strong>une panne op\u00e9rateur ne provoque pas toujours la bascule attendue<\/strong>, m\u00eame avec une architecture apparemment \u201cpropre\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Chez <strong>DYB<\/strong>, nous avons rencontr\u00e9 ce cas tr\u00e8s concret lors d\u2019une panne FTTO sur un site client multi-sites.<br>Ce retour d\u2019exp\u00e9rience illustre <strong>pourquoi OSPF ne r\u00e9agit pas toujours \u00e0 une d\u00e9gradation de lien<\/strong>, et <strong>comment corriger proprement ce comportement dans un contexte professionnel<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf Le besoin m\u00e9tier initial<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le besoin c\u00f4t\u00e9 client \u00e9tait clair et parfaitement l\u00e9gitime :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Plusieurs sites interconnect\u00e9s<\/li>\n\n\n\n<li>Deux acc\u00e8s Internet par site (FTTO prioritaire + FTTH de secours)<\/li>\n\n\n\n<li>Tunnels WireGuard redond\u00e9s<\/li>\n\n\n\n<li>Routage dynamique via OSPF<\/li>\n\n\n\n<li>Objectif :<br>\ud83d\udc49 <em>si le lien principal devient lent ou inutilisable, le trafic doit automatiquement passer par le lien secondaire<\/em><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Dans un contexte <strong>B2B<\/strong>, cela concerne directement :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ERP<\/li>\n\n\n\n<li>t\u00e9l\u00e9phonie IP<\/li>\n\n\n\n<li>acc\u00e8s RDP \/ VPN<\/li>\n\n\n\n<li>flux m\u00e9tiers critiques<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Une latence excessive (1 \u00e0 2 secondes) est <strong>fonctionnellement \u00e9quivalente \u00e0 une panne<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde0 L\u2019hypoth\u00e8se logique (mais fausse)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019hypoth\u00e8se initiale est tr\u00e8s r\u00e9pandue :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u00ab Si la passerelle principale devient rouge dans pfSense, OSPF devrait automatiquement basculer sur l\u2019autre route. \u00bb<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est logique\u2026<br>mais <strong>ce n\u2019est pas ainsi que fonctionnent OSPF ni pfSense<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2699\ufe0f Ce que fait r\u00e9ellement OSPF (et ce qu\u2019il ne fait pas)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">OSPF est un protocole de routage <strong>topologique<\/strong>, pas qualitatif.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il prend ses d\u00e9cisions <strong>uniquement<\/strong> sur :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>l\u2019\u00e9tat des interfaces (UP \/ DOWN)<\/li>\n\n\n\n<li>la pr\u00e9sence des voisins OSPF<\/li>\n\n\n\n<li>des co\u00fbts <strong>statiques<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u274c OSPF <strong>ne prend pas en compte<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>la latence<\/li>\n\n\n\n<li>la perte de paquets<\/li>\n\n\n\n<li>la qualit\u00e9 Internet<\/li>\n\n\n\n<li>l\u2019\u00e9tat des gateways pfSense<\/li>\n\n\n\n<li>les pings ou probes applicatives<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Autrement dit :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Un lien OSPF \u201cUP mais lent\u201d reste pr\u00e9f\u00e9rable \u00e0 un lien plus rapide si son co\u00fbt est inf\u00e9rieur.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd0d Le pi\u00e8ge WireGuard + multi-WAN<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dans notre cas, chaque site disposait de :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>deux tunnels WireGuard (FTTO \/ FTTH)<\/li>\n\n\n\n<li>deux routes OSPF avec des co\u00fbts diff\u00e9rents (ex : 10 et 20)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pourtant, lors de la panne FTTO :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>la route OSPF prioritaire est rest\u00e9e active<\/li>\n\n\n\n<li>aucune bascule n\u2019a eu lieu<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pourquoi ?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Parce que <strong>WireGuard est stateless<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si le lien FTTO tombe :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>pfSense peut d\u00e9cider de joindre l\u2019endpoint WireGuard <strong>via la FTTH<\/strong><\/li>\n\n\n\n<li>le tunnel reste UP<\/li>\n\n\n\n<li>le voisin OSPF reste FULL<\/li>\n\n\n\n<li>la route OSPF reste annonc\u00e9e<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1\ufe0f <strong>OSPF n\u2019a aucune raison de retirer la route<\/strong>, m\u00eame si la qualit\u00e9 du lien est d\u00e9sastreuse.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udea8 Le point cl\u00e9 souvent ignor\u00e9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dans pfSense :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>une <em>gateway<\/em> est une abstraction interne<\/li>\n\n\n\n<li>son \u00e9tat (UP \/ DOWN \/ LATENCY) est g\u00e9r\u00e9 par <code>dpinger<\/code><\/li>\n\n\n\n<li><strong>OSPF n\u2019a absolument aucune connaissance de cet \u00e9tat<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Il n\u2019existe <strong>aucun lien natif<\/strong> entre :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gateway pfSense d\u00e9grad\u00e9e  \u2260  d\u00e9cision OSPF\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udee0\ufe0f La solution professionnelle mise en place par DYB<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pour r\u00e9pondre au besoin m\u00e9tier r\u00e9el (qualit\u00e9 de service), nous avons mis en place une <strong>logique de corr\u00e9lation entre la qualit\u00e9 du lien et le routage OSPF<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Principe retenu<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>pfSense surveille activement la qualit\u00e9 du lien (latence \/ perte)<\/li>\n\n\n\n<li>Lorsqu\u2019un seuil critique est d\u00e9pass\u00e9 :\n<ul class=\"wp-block-list\">\n<li>un script est d\u00e9clench\u00e9<\/li>\n\n\n\n<li>le co\u00fbt OSPF du tunnel concern\u00e9 est augment\u00e9<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>OSPF recalcule les routes et privil\u00e9gie le chemin sain<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u27a1\ufe0f <strong>La bascule est automatique, d\u00e9terministe et r\u00e9versible<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Le principe \u00e0 connaitre :<\/p><cite><a href=\"https:\/\/dyb.eu\/blog\/cest-quoi-un-hysteresis-anti-flap\/\">C\u2019est quoi un hysteresis anti-flap ? | DYB<\/a><\/cite><\/blockquote><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udd17 Le m\u00e9canisme technique (sans rentrer dans le code)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">pfSense dispose d\u2019un hook natif peu connu mais extr\u00eamement puissant :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/rc.gateway_alarm\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ce script est ex\u00e9cut\u00e9 automatiquement lorsque :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>une gateway passe UP \/ DOWN<\/li>\n\n\n\n<li>ou devient fortement d\u00e9grad\u00e9e<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nous l\u2019utilisons pour :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>dialoguer avec FRR (OSPF)<\/li>\n\n\n\n<li>ajuster dynamiquement les co\u00fbts OSPF<\/li>\n\n\n\n<li>introduire une hyst\u00e9r\u00e9sis (anti-flapping)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfd7\ufe0f Pourquoi cette approche est adapt\u00e9e au monde pro<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714\ufe0f Avantages<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aucun \u00e9quipement propri\u00e9taire<\/li>\n\n\n\n<li>Aucun \u201cSD-WAN magique\u201d<\/li>\n\n\n\n<li>Ma\u00eetrise totale du comportement r\u00e9seau<\/li>\n\n\n\n<li>D\u00e9cisions bas\u00e9es sur la r\u00e9alit\u00e9 terrain<\/li>\n\n\n\n<li>Compatible multi-sites, multi-op\u00e9rateurs<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u26a0\ufe0f Points d\u2019attention<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>n\u00e9cessite une vraie compr\u00e9hension r\u00e9seau<\/li>\n\n\n\n<li>demande un design propre (1 tunnel = 1 lien)<\/li>\n\n\n\n<li>doit \u00eatre document\u00e9e et maintenue<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde9 Conclusion : OSPF n\u2019est pas cass\u00e9, il est juste fid\u00e8le \u00e0 son r\u00f4le<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ce retour d\u2019exp\u00e9rience met en \u00e9vidence une r\u00e9alit\u00e9 importante :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>OSPF n\u2019est pas con\u00e7u pour faire du routage bas\u00e9 sur la qualit\u00e9 du lien.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Dans un contexte professionnel moderne :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>multi-op\u00e9rateurs<\/li>\n\n\n\n<li>inter-sites chiffr\u00e9s<\/li>\n\n\n\n<li>applications sensibles \u00e0 la latence<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <strong>Il est indispensable d\u2019ajouter une couche d\u2019intelligence autour du routage dynamique<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est pr\u00e9cis\u00e9ment ce que nous faisons chez <strong>DYB<\/strong> :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>architectures sur mesure<\/li>\n\n\n\n<li>compr\u00e9hension fine des protocoles<\/li>\n\n\n\n<li>solutions robustes, explicables et ma\u00eetris\u00e9es<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udccc <strong>Chez DYB<\/strong>, nous concevons des infrastructures r\u00e9seau <strong>r\u00e9silientes, lisibles et adapt\u00e9es aux usages r\u00e9els<\/strong>, pas seulement \u201cfonctionnelles sur le papier\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous souhaitez auditer ou fiabiliser une architecture multi-sites,<br><strong>nous savons exactement o\u00f9 regarder.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Retour d\u2019exp\u00e9rience DYB sur la haute disponibilit\u00e9 WAN avec pfSense, WireGuard et OSPF Dans les architectures r\u00e9seau professionnelles multi-sites, la haute disponibilit\u00e9 est devenue un pr\u00e9requis :double lien Internet (FTTO + FTTH), tunnels inter-sites, routage dynamique, continuit\u00e9 de service. Sur le papier, les briques sont connues : Pourtant, dans la r\u00e9alit\u00e9 terrain, une panne op\u00e9rateur [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":100474,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26,24],"tags":[21,50,23,53],"class_list":["post-100473","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-adminsys","category-reseaux","tag-cybersecurite","tag-network","tag-pfsense","tag-wireguard"],"_links":{"self":[{"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/posts\/100473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/comments?post=100473"}],"version-history":[{"count":2,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/posts\/100473\/revisions"}],"predecessor-version":[{"id":100479,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/posts\/100473\/revisions\/100479"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/media\/100474"}],"wp:attachment":[{"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/media?parent=100473"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/categories?post=100473"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dyb.eu\/blog\/wp-json\/wp\/v2\/tags?post=100473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}