Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > a412ceb851151854794ced2a242192bb > files > 3788

howto-html-fr-20080722-1mdv2010.0.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Routage avec plusieurs accès Internet/fournisseurs d'accès</title><link href="style.css" rel="stylesheet" type="text/css" /><meta content="DocBook XSL Stylesheets V1.73.2" name="generator" /><link rel="start" href="index.html" title="HOWTO du routage avancé et du contrôle de trafic sous Linux" /><link rel="up" href="ch04.html" title="Chapitre 4. Règles - bases de données des politiques de routage" /><link rel="prev" href="ch04.html" title="Chapitre 4. Règles - bases de données des politiques de routage" /><link rel="next" href="ch05.html" title="Chapitre 5. GRE et autres tunnels" /></head><body><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Routage avec plusieurs accès Internet/fournisseurs d'accès</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ch04.html">Précédent</a> </td><th align="center" width="60%">Chapitre 4. Règles - bases de données des politiques de routage</th><td align="right" width="20%"> <a accesskey="n" href="ch05.html">Suivant</a></td></tr></table><hr /></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="lartc.rpdb.multiple-links" />Routage avec plusieurs accès Internet/fournisseurs d'accès</h2></div></div></div><p>
Une configuration classique est la suivante, où deux fournisseurs d'accès
permettent la connexion d'un réseau local (ou même d'une simple machine) à
Internet.

<pre class="screen">                                                                   ________
                                          +--------------+        /
                                          |              |       |
                            +-------------+ Fournisseur 1+-------
        __                  |             |              |     /
    ___/  \_         +------+-------+     +--------------+    |
  _/        \__      |     if1      |                        /
 /             \     |              |                        |
| Réseau Local  -----+ Routeur Linux|                        |     Internet
 \_           __/    |              |                        |
   \__     __/       |     if2      |                        \
      \___/          +------+-------+     +--------------+    |
                            |             |              |     \
                            +-------------+ Fournisseur 2+-------
                                          |              |       |
                                          +--------------+        \________
</pre>
</p><p>
Il y a généralement deux questions à se poser pour cette configuration.
</p><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a id="N10455" />Accès séparé</h3></div></div></div><p>
	  La première est de savoir comment router les réponses aux paquets
	  entrants par un fournisseur particulier, disons le Fournisseur 1,
	  vers ce même fournisseur. 
	</p><p>
	  Commençons par définir quelques symboles.
	  <span class="command"><strong>$IF1</strong></span> sera le nom de la première interface (if1
	  sur la figure au-dessus) et <span class="command"><strong>$IF2</strong></span> le nom de la
	  deuxième interface. <span class="command"><strong>$IP1</strong></span> sera alors l'adresse
	  IP associée à <span class="command"><strong>$IF1</strong></span> et <span class="command"><strong>$IP2</strong></span>
	  sera l'adresse IP associée à <span class="command"><strong>$IF2</strong></span>.
	  <span class="command"><strong>$P1</strong></span> sera l'adresse IP de la passerelle du
	  fournisseur d'accès 1 et <span class="command"><strong>$P2</strong></span> sera l'adresse IP
	  de la passerelle du fournisseur d'accès 2. Enfin,
	  <span class="command"><strong>$P1_NET</strong></span> sera l'adresse réseau à l'intérieur
	  duquel se situe <span class="command"><strong>$P1</strong></span> et
	  <span class="command"><strong>$P2_NET</strong></span> sera l'adresse réseau à l'intérieur
	  duquel se situe <span class="command"><strong>$P2</strong></span>.
	</p><p>
	  Deux tables de routage supplémentaires sont créées, par exemple
	  <span class="command"><strong>T1</strong></span> et <span class="command"><strong>T2</strong></span>. Celles-ci sont
	  ajoutées dans <code class="filename">/etc/iproute2/rt_tables</code>. La
	  configuration du routage dans ces tables s'effectue de la façon
	  suivante :
	</p><p>
<pre class="screen">ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2
</pre>
	  
	  Rien de vraiment spectaculaire. Une route est simplement
	  positionnée vers la passerelle et une route par défaut via cette
	  passerelle est mise en place, comme nous le ferions dans le cas
	  d'un seul fournisseur d'accès. Ici, les routes sont placées dans
	  des tables séparées, une par fournisseur d'accès. Il est à noter que la
	  route vers le réseau suffit, dans la mesure où elle indique
	  comment trouver n'importe quel hôte dans ce réseau, ce qui inclut
	  la passerelle.
	</p><p>
	  La table de routage principale est maintenant configurée. C'est
	  une bonne idée de router les éléments à destination d'un voisin
	  direct à travers l'interface connectée à ce voisin. Notez les
	  arguments "src" qui assurent que la bonne adresse IP source sera
	  choisie.

<pre class="screen">ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
</pre>

	  Indiquez maintenant votre préférence pour votre route par
	  défaut :
	  
<pre class="screen">ip route add default via $P1
</pre>

	  Vous configurez ensuite les règles de routage. Celles-ci
	  définissent la table qui sera vraiment choisie pour le routage.  Il
	  faut s'assurer que le routage s'effectue à travers une interface
	  donnée si vous avez l'adresse source correspondante :
	  
<pre class="screen">ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
</pre>

	  Cet ensemble de commandes vous assure que toutes les réponses au
	  trafic entrant sur une interface particulière seront envoyées par
	  cette interface.
	</p><p>
  	<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td valign="top" align="center" rowspan="2" width="25"><img alt="[Avertissement]" src="images/warning.png" /></td><th align="left">Avertissement</th></tr><tr><td valign="top" align="left"><p>
	Notes d'un lecteur : si $P0_NET est le réseau local et $IF0
	est son interface, alors les entrées suivantes sont
	désirables :

<pre class="screen">ip route add $P0_NET     dev $IF0 table T1
ip route add $P2_NET     dev $IF2 table T1
ip route add 127.0.0.0/8 dev lo   table T1
ip route add $P0_NET     dev $IF0 table T2
ip route add $P1_NET     dev $IF1 table T2
ip route add 127.0.0.0/8 dev lo   table T2                                      
</pre>
        </p></td></tr></table></div>
	  Nous avons maintenant une configuration très basique. Elle
	  marchera pour tous les processus exécutés sur le routeur
	  lui-même, ainsi que pour le réseau local si celui-ci est masqué.
	  Si ce n'est pas le cas, soit vous avez une plage d'adresses IP
	  pour chaque fournisseur d'accès, soit vous masquez vers l'un des deux
	  fournisseurs d'accès. Dans les deux cas, vous ajouterez des
	  règles indiquant, en fonction de l'adresse IP de la machine du
	  réseau local, vers quel fournisseur vous allez router.
	</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a id="N104BD" />Balance de charge</h3></div></div></div><p>
	  La seconde question concerne la balance de charge du trafic
	  sortant vers les deux fournisseurs d'accès. Ceci n'est pas
	  vraiment très dur si vous avez déjà configuré l'accès séparé
	  comme décrit ci-dessus.
	  </p><p>
	  Au lieu de choisir l'un des deux fournisseurs d'accès comme route
	  par défaut, celle-ci peut être une route multi-chemin. Par
	  défaut, le noyau répartira les routes vers les deux fournisseurs
	  d'accès. Ceci est réalisé de la façon suivante (construit
	  également sur l'exemple de la section de l'accès séparé) :
<pre class="screen">ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
nexthop via $P2 dev $IF2 weight 1
</pre>

	  Ceci réalisera la balance des routes vers les deux fournisseurs.
	  Les paramètres <span class="command"><strong>weight</strong></span> peuvent permettre de
	  favoriser un fournisseur par rapport à un autre.
	</p><p>
	  Il est à noter que la balance de charge ne sera pas parfaite dans
	  la mesure où elle est basée sur les routes et que celles-ci sont
	  mises dans des caches. Ceci signifie que les routes vers les
	  sites les plus souvent utilisés passeront toujours par le même
	  fournisseur d'accès.
	</p><p>
	  De plus, si vous voulez vraiment mettre en oeuvre ceci, vous
	  devriez également aller consulter les mises à jour de Julien
	  Anastasov à
	    <a class="ulink" href="http://www.ssi.bg/~ja/#routes" target="_top">http://www.ssi.bg/~ja/#routes
	    </a>
	   Elles rendront le travail plus facile. 
	</p></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch04.html">Précédent</a> </td><td align="center" width="20%"><a accesskey="u" href="ch04.html">Niveau supérieur</a></td><td align="right" width="40%"> <a accesskey="n" href="ch05.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">Chapitre 4. Règles - bases de données des politiques de routage </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> Chapitre 5. GRE et autres tunnels</td></tr></table></div></body></html>