Sophie

Sophie

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

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>Chapitre 4. Règles - bases de données des politiques de routage</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="index.html" title="HOWTO du routage avancé et du contrôle de trafic sous Linux" /><link rel="prev" href="ch03s05.html" title="ARP" /><link rel="next" href="ch04s02.html" title="Routage avec plusieurs accès Internet/fournisseurs d'accès" /></head><body><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapitre 4. Règles - bases de données des politiques de routage</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ch03s05.html">Précédent</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ch04s02.html">Suivant</a></td></tr></table><hr /></div><div class="chapter" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="lartc.rpdb" />Chapitre 4. Règles - bases de données des politiques de routage</h2></div></div></div><div class="toc"><p><b>Table des matières</b></p><dl><dt><span class="sect1"><a href="ch04.html#lartc.rpdb.simple">Politique de routage simple par l'adresse source</a></span></dt><dt><span class="sect1"><a href="ch04s02.html">Routage avec plusieurs accès Internet/fournisseurs d'accès</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch04s02.html#N10455">Accès séparé</a></span></dt><dt><span class="sect2"><a href="ch04s02.html#N104BD">Balance de charge</a></span></dt></dl></dd></dl></div><p>Si vous avez un routeur important, il se peut que vous vouliez satisfaire
les besoins de différentes personnes, qui peuvent être traitées différemment.
Les bases de données des politiques de routage vous aident à
faire cela, en gérant plusieurs ensembles de tables de routage.
</p><p>Si vous voulez utiliser cette fonctionnalité, assurez-vous que le
noyau est compilé avec les options <code class="option">IP : Advanced router</code> et 
<code class="option">IP : policy routing</code>.
</p><p>Quand le noyau doit prendre une décision de routage, il recherche
quelle table consulter. Par défaut, il y a trois tables. 
L'ancien outil <span class="command"><strong>route</strong></span> modifie les tables principale
(<em class="wordasword">main</em>) et locale (<em class="wordasword">local</em>), comme
le fait l'outil <span class="command"><strong>ip</strong></span> (par défaut).
</p><p>Les règles par défaut :
</p><pre class="screen">[ahu@home ahu]$ ip rule list
0:	from all lookup local 
32766:	from all lookup main 
32767:	from all lookup default
</pre><p>Ceci liste la priorité de toutes les règles.
Nous voyons que toutes les règles sont appliquées à tous les paquets 
(<em class="wordasword">from all</em>).
Nous avons vu la table <em class="wordasword">main</em> précédemment, sa sortie
s'effectuant avec <strong class="userinput"><code>ip route ls</code></strong>, mais les tables 
<code class="literal">local</code> et <code class="literal">default</code> sont nouvelles. 
</p><p>Si nous voulons faire des choses fantaisistes, nous pouvons créer
des règles qui pointent vers des tables différentes et qui nous
permettent de redéfinir les règles de routage du système.
</p><p>Pour savoir exactement ce que fait le noyau en présence d'un
assortiment de règles plus complet, référez-vous à la documentation
<span class="application">ip-cref</span> d'Alexey [NdT : dans le
paquet <span class="application">iproute2</span> de votre distribution].
</p><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="lartc.rpdb.simple" />Politique de routage simple par l'adresse source</h2></div></div></div><p>Prenons encore une fois un exemple réel.
J'ai 2 modems câble, connectés à un routeur Linux <acronym class="acronym">NAT</acronym>
(<em class="wordasword">masquerading</em>).
Les personnes habitant avec moi me paient pour avoir accès à Internet.
Supposons qu'un de mes co-locataires consulte seulement hotmail et veuille 
payer moins.
C'est d'accord pour moi, mais il utilisera le modem le plus lent.
</p><p>Le modem câble « <span class="quote">rapide</span> » est connu sous 
<code class="literal">212.64.94.251</code> et est en liaison <acronym class="acronym">PPP</acronym>
avec <code class="literal">212.64.94.1</code>.
Le modem câble « <span class="quote">lent</span> » est connu sous diverses adresses 
<acronym class="acronym">IP</acronym> : <code class="literal">212.64.78.148</code> dans notre 
exemple avec un lien vers <code class="literal">195.96.98.253</code>.
</p><p>La table locale :
</p><pre class="screen">[ahu@home ahu]$ ip route list table local
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
local 10.0.0.1 dev eth0  proto kernel  scope host  src 10.0.0.1 
broadcast 10.0.0.0 dev eth0  proto kernel  scope link  src 10.0.0.1 
local 212.64.94.251 dev ppp0  proto kernel  scope host  src 212.64.94.251 
broadcast 10.255.255.255 dev eth0  proto kernel  scope link  src 10.0.0.1 
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 212.64.78.148 dev ppp2  proto kernel  scope host  src 212.64.78.148 
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1 
</pre><p>Il y a beaucoup de choses évidentes, mais aussi des choses qui ont besoin
d'être précisées quelque peu, ce que nous allons faire. 
La table de routage par défaut est vide.
</p><p>Regardons la table principale (<em class="wordasword">main</em>) :
</p><pre class="screen">[ahu@home ahu]$ ip route list table main 
195.96.98.253 dev ppp2  proto kernel  scope link  src 212.64.78.148 
212.64.94.1 dev ppp0  proto kernel  scope link  src 212.64.94.251 
10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.0.0.1 
127.0.0.0/8 dev lo  scope link 
default via 212.64.94.1 dev ppp0 
</pre><p>Maintenant, nous générons une nouvelle règle que nous appellerons
<code class="literal">John</code>, pour notre hypothétique co-locataire. 
Bien que nous puissions travailler avec des nombres IP purs, il est plus 
facile d'ajouter notre table dans le fichier 
<code class="filename">/etc/iproute2/rt_tables</code>. 
</p><pre class="screen"># echo 200 John &gt;&gt; /etc/iproute2/rt_tables
# ip rule add from 10.0.0.10 table John
# ip rule ls
0:	from all lookup local 
32765:	from 10.0.0.10 lookup John
32766:	from all lookup main 
32767:	from all lookup default
</pre><p>Maintenant, tout ce qu'il reste à faire est de générer la table 
<code class="literal">John</code>, et de vider le cache des routes :
</p><pre class="screen"># ip route add default via 195.96.98.253 dev ppp2 table John
# ip route flush cache
</pre><p>Et voilà qui est fait.
Il ne reste plus, comme exercice laissé au lecteur,
qu'à implémenter cela dans <span class="command"><strong>ip-up</strong></span>.
</p></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch03s05.html">Précédent</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ch04s02.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">ARP </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> Routage avec plusieurs accès Internet/fournisseurs d'accès</td></tr></table></div></body></html>