Sophie

Sophie

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

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 11. Netfilter et iproute - marquage de paquets</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="ch10.html" title="Chapitre 10. Équilibrage de charge sur plusieurs interfaces" /><link rel="next" href="ch12.html" title="Chapitre 12. Filtres avancés pour la (re-)classification des paquets" /></head><body><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapitre 11. Netfilter et iproute - marquage de paquets</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ch10.html">Précédent</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ch12.html">Suivant</a></td></tr></table><hr /></div><div class="chapter" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="lartc.netfilter" />Chapitre 11. Netfilter et iproute - marquage de paquets</h2></div></div></div><p>Jusqu'à maintenant, nous avons vu comment 
<span class="application">iproute</span> travaille, et 
<span class="application">netfilter</span> a été mentionné plusieurs fois.
Vous ne perdrez pas votre temps à consulter 
<a class="ulink" href="http://netfilter.samba.org/unreliable-guides/" target="_top">
Rusty's Remarkably Unreliable Guides</a>.
Le logiciel Netfilter peut être trouvé 
<a class="ulink" href="http://netfilter.filewatcher.org/" target="_top">ici</a>.
</p><p><span class="application">Netfilter</span> nous permet de filtrer les paquets
ou de désosser leurs en-têtes.
Une de ses fonctionnalités particulières est de pouvoir marquer un paquet avec
un nombre, grâce à l'option <code class="option">--set-mark</code>.
</p><p>Comme exemple, la commande suivante marque tous les paquets destinés au
port 25, en l'occurrence le courrier sortant.
</p><pre class="screen"># iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 25 \
 -j MARK --set-mark 1
</pre><p>Disons que nous avons plusieurs connexions, une qui est rapide 
(et chère au mégaoctet) et une qui est plus lente, mais avec un tarif moins 
élevé.
Nous souhaiterions que le courrier passe par la route la moins chère.
</p><p>Nous avons déjà marqué le paquet avec un "1" et nous allons maintenant
renseigner la base de données de la politique de routage pour qu'elle 
agisse sur ces paquets marqués.
</p><pre class="screen"># echo 201 mail.out &gt;&gt; /etc/iproute2/rt_tables
# ip rule add fwmark 1 table mail.out
# ip rule ls
0:	from all lookup local 
32764:	from all fwmark        1 lookup mail.out 
32766:	from all lookup main 
32767:	from all lookup default 
</pre><p>Nous allons maintenant générer la table mail.out avec une route vers
la ligne lente, mais peu coûteuse.
</p><pre class="screen"># /sbin/ip route add default via 195.96.98.253 dev ppp0 table mail.out
</pre><p>Voilà qui est fait.
Il se peut que nous voulions mettre en place des exceptions, et il existe de
nombreux moyens pour le faire.
Nous pouvons modifier la configuration de <span class="application">netfilter</span>
pour exclure certains hôtes ou nous pouvons insérer une règle avec une 
priorité plus faible qui pointe sur la table principale pour nos hôtes faisant
exception.
</p><p>Nous pouvons aussi utiliser cette fonctionnalité pour nous conformer 
aux bits <acronym class="acronym">TOS</acronym> en marquant les paquets avec différents types
de service et les nombres correspondants.
On crée ensuite les règles qui agissent sur ces types de service.
De cette façon, on peut dédier une ligne <acronym class="acronym">RNIS</acronym> aux 
connexions interactives.
</p><p>Inutile de le dire, cela marche parfaitement sur un hôte qui fait de la
traduction d'adresse (<acronym class="acronym">NAT</acronym>), autrement dit du 
<em class="wordasword">masquerading</em>.
</p><p>IMPORTANT : Nous avons reçu une information selon laquelle 
<acronym class="acronym">MASQ</acronym> et <acronym class="acronym">SNAT</acronym> entrent en conflit avec le
marquage de paquets.
Rusty Russell l'explique dans 
<a class="ulink" href="http://lists.samba.org/pipermail/netfilter/2000-November/006089.html" target="_top">
ce courrier</a>. 
</p><p>Désactivez le filtrage de chemin inverse pour que cela fonctionne
correctement.
</p><p>Note : pour marquer les paquets, vous aurez besoin de valider quelques
options du noyau :
</p><pre class="screen">IP: advanced router (CONFIG_IP_ADVANCED_ROUTER) [Y/n/?]
IP: policy routing (CONFIG_IP_MULTIPLE_TABLES) [Y/n/?]
IP: use netfilter MARK value as routing key (CONFIG_IP_ROUTE_FWMARK) [Y/n/?]
</pre><p>Voir aussi <a class="xref" href="ch15s05.html" title="Cache web transparent utilisant netfilter, iproute2, ipchains et squid">la section intitulée « Cache web transparent utilisant <span class="application">netfilter</span>,
  <span class="application">iproute2</span>, <span class="application">ipchains</span> et
  <span class="application">squid</span> »</a> dans le chapitre
<em class="citetitle"><a class="xref" href="ch15.html" title="Chapitre 15. Recettes de cuisine">Recettes de cuisine</a></em>.
</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch10.html">Précédent</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ch12.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">Chapitre 10. Équilibrage de charge sur plusieurs interfaces </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> Chapitre 12. Filtres avancés pour la (re-)classification des paquets</td></tr></table></div></body></html>