This commit is contained in:
forgejo-actions 2026-10-05 19:15:15 +00:00
commit 080c3e1f0e
41 changed files with 2779 additions and 150 deletions

View file

@ -218,6 +218,13 @@
</ul>
</details></li>
</ul>
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Développement</span></p>
<ul class="nav bd-sidenav">
<li class="toctree-l1 has-children"><a class="reference internal" href="../developpement/index.html">Développement</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l2"><a class="reference internal" href="../developpement/lab.html">Lab de test multi-nœud</a></li>
</ul>
</details></li>
</ul>
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Interne</span></p>
<ul class="nav bd-sidenav">
<li class="toctree-l1 has-children"><a class="reference internal" href="../concepts/index.html">Concepts</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
@ -335,6 +342,11 @@
</div>
<nav aria-label="Page">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#routeur-de-cluster">Routeur de cluster</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#adressage">Adressage</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#configuration-de-frr">Configuration de FRR</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#contraintes-imposees-par-le-reste-du-cluster">Contraintes imposées par le reste du cluster</a></li>
</ul>
</nav>
@ -361,20 +373,103 @@ données VXLAN.</p>
<dt>Routeurs de bordure</dt><dd><p>terminent le routage vers l’extérieur.</p>
</dd>
</dl>
<section id="routeur-de-cluster">
<h2>Routeur de cluster<a class="headerlink" href="#routeur-de-cluster" title="Lien vers cette rubrique">#</a></h2>
<p>Le routeur de cluster est la passerelle des hyperviseurs et le voisin eBGP du route reflector, dont
il apprend la loopback : c’est par lui que chaque hyperviseur joint <code class="docutils literal notranslate"><span class="pre">10.255.255.1</span></code> pour ouvrir sa
session EVPN (<a class="reference internal" href="route-reflector.html"><span class="doc">VM route reflector</span></a>).</p>
<section id="adressage">
<h3>Adressage<a class="headerlink" href="#adressage" title="Lien vers cette rubrique">#</a></h3>
<div class="pst-scrollable-table-container"><table class="table">
<colgroup>
<col style="width: 30.0%" />
<col style="width: 25.0%" />
<col style="width: 45.0%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Adresse</p></th>
<th class="head"><p>Interface</p></th>
<th class="head"><p>Rôle</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">192.168.14.1/24</span></code></p></td>
<td><p>interface du segment des hyperviseurs</p></td>
<td><p>passerelle par défaut des hyperviseurs et du route reflector</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">169.254.0.1/28</span></code></p></td>
<td><p>même interface, <strong>adresse secondaire</strong></p></td>
<td><p>lien avec le route reflector (<code class="docutils literal notranslate"><span class="pre">169.254.0.3</span></code>) ; <code class="docutils literal notranslate"><span class="pre">router-id</span></code> ; le second routeur prend
<code class="docutils literal notranslate"><span class="pre">169.254.0.2</span></code></p></td>
</tr>
</tbody>
</table>
</div>
<p>Le MTU minimal du segment, imposé par VXLAN, est donné plus bas.</p>
</section>
<section id="configuration-de-frr">
<h3>Configuration de FRR<a class="headerlink" href="#configuration-de-frr" title="Lien vers cette rubrique">#</a></h3>
<p><code class="docutils literal notranslate"><span class="pre">bgpd</span></code> et <code class="docutils literal notranslate"><span class="pre">bfdd</span></code> activés dans <code class="docutils literal notranslate"><span class="pre">/etc/frr/daemons</span></code>.</p>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>frr defaults traditional
hostname sw1
log syslog informational
!
ip prefix-list RR-LOOPBACK-IN seq 10 permit 10.255.255.1/32
!
route-map RR-IN permit 10
match ip address prefix-list RR-LOOPBACK-IN
exit
!
route-map NO-OUT deny 999
exit
!
router bgp 65100
no bgp default ipv4-unicast
bgp router-id 169.254.0.1
neighbor 169.254.0.3 remote-as 65000
neighbor 169.254.0.3 description rr1
neighbor 169.254.0.3 bfd
!
address-family ipv4 unicast
neighbor 169.254.0.3 activate
neighbor 169.254.0.3 route-map RR-IN in
neighbor 169.254.0.3 route-map NO-OUT out
exit-address-family
!
exit
!
</pre></div>
</div>
<p>Ce qu’elle établit :</p>
<ul class="simple">
<li><p><strong>Route reflector</strong> : eBGP de l’AS 65100 vers l’AS 65000, avec BFD, en IPv4 unicast.</p></li>
<li><p><strong>En entrée</strong>, seule la loopback du route reflector est acceptée (<code class="docutils literal notranslate"><span class="pre">RR-IN</span></code>) ; <strong>en sortie</strong>,
rien n’est annoncé (<code class="docutils literal notranslate"><span class="pre">NO-OUT</span></code>). Symétrique de <code class="docutils literal notranslate"><span class="pre">RR-LOOPBACK-OUT</span></code> et <code class="docutils literal notranslate"><span class="pre">NO-IN</span></code> côté route
reflector : chaque côté filtre, aucun ne dépend du filtre de l’autre.</p></li>
<li><p><strong>Aucune session avec les hyperviseurs</strong> : le routeur leur sert de passerelle, pas de voisin BGP.</p></li>
</ul>
<p>Le route reflector déclare aussi le second routeur (<code class="docutils literal notranslate"><span class="pre">169.254.0.2</span></code>). La redondance est l’objet de
<a class="reference external" href="https://git.g3e.fr/syonad/two/issues/54">#54</a>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p><strong>À rédiger.</strong> Cette page attend les éléments de terrain. Pour chacun des trois niveaux :</p>
<p>Ce qui précède est le contrat du routeur de cluster : adresses, ASN, session, filtres. Sa
traduction dans la configuration d’un constructeur n’a pas sa place ici.</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p><strong>À rédiger.</strong> Reste à documenter, faute d’éléments de terrain :</p>
<ul class="simple">
<li><p>le matériel ou le logiciel employé, et la version de référence ;</p></li>
<li><p>la configuration de référence : interfaces, adressage, protocole de routage et numéros
d’AS ;</p></li>
<li><p>la redondance : combien d’équipements, quel mécanisme de bascule, quel comportement attendu
pendant une bascule ;</p></li>
<li><p>ce qui est annoncé et ce qui est filtré à chaque niveau ;</p></li>
<li><p>pour le routeur de cluster : le matériel employé et sa version de référence ; la redondance
— deux routeurs, mécanisme de bascule, comportement attendu pendant une bascule
(<a class="reference external" href="https://git.g3e.fr/syonad/two/issues/54">#54</a>) ;</p></li>
<li><p>pour les routeurs de datacentre et de bordure : tout — équipement, configuration de
référence, ce qui est annoncé et filtré à chaque niveau, redondance ;</p></li>
<li><p>l’ordre de mise en service, et ce qui doit être opérationnel avant de préparer le premier
hyperviseur.</p></li>
</ul>
</div>
</section>
</section>
<section id="contraintes-imposees-par-le-reste-du-cluster">
<h2>Contraintes imposées par le reste du cluster<a class="headerlink" href="#contraintes-imposees-par-le-reste-du-cluster" title="Lien vers cette rubrique">#</a></h2>
<p>Indépendamment des choix d’équipement, deux contraintes viennent de ce que fait l’agent.</p>
@ -445,6 +540,11 @@ joignable que depuis le réseau d’administration. Cf. <a class="reference inte
</div>
<nav id="pst-page-toc-nav" class="page-toc" aria-labelledby="pst-page-navigation-heading-2">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#routeur-de-cluster">Routeur de cluster</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#adressage">Adressage</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#configuration-de-frr">Configuration de FRR</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#contraintes-imposees-par-le-reste-du-cluster">Contraintes imposées par le reste du cluster</a></li>
</ul>
</nav></div>