<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V5.0//EN" "/usr/share/xml/docbook/schema/dtd/5.0/docbook.dtd" [
<!ENTITY authorgroup SYSTEM "authorgroup.xml">
<!ENTITY legalgroup SYSTEM "legalgroup.xml">
<!-- urls --><!ENTITY % inetdoc_urls SYSTEM "inetdoc.urls.xml">
<!--###################################################
                   Articles
    ################################################### --><!ENTITY url.modelisations '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/articles/modelisation/"><citetitle>Modélisations réseau</citetitle></link>'>
<!ENTITY url.modelisations.encapsulation '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/articles/modelisation/modelisations.concept.html#modelisations.concept.encapsulation"><citetitle>Encapsulation</citetitle></link>'>
<!ENTITY url.wireshark-as-user '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/articles/wireshark-as-user/"><citetitle>Capturer le trafic réseau au niveau utilisateur avec Wireshark</citetitle></link>'>
<!ENTITY url.rnis '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/articles/rnis/"><citetitle>Technologie RNIS</citetitle></link>'>
<!ENTITY url.ethernet '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/articles/ethernet/"><citetitle>Technologie Ethernet</citetitle></link>'>
<!ENTITY url.pppoe '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/articles/pppoe/"><citetitle>Modélisation d&#39;un lien WAN avec PPPoE</citetitle></link>'>
<!ENTITY url.adressage.ipv4 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/articles/adressage.ipv4/"><citetitle>Adressage IPv4</citetitle></link>'>
<!ENTITY url.lan-segmentation '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/articles/lan-segmentation/"><citetitle>Segmentation des réseaux locaux</citetitle></link>'>
<!ENTITY url.inter-vlan-routing '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/articles/inter-vlan-routing/"><citetitle>Routage Inter-VLAN</citetitle></link>'>
<!ENTITY url.reseau.libre '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/articles/reseau.libre/">
  <citetitle>Logiciel Libre &amp; Technologies Réseaux</citetitle></link>'>
<!--###################################################
                   Pas encore migré
    ################################################### --><!ENTITY url.explore '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/explore.gnulinux/">
  <citetitle>Exploration GNU/Linux</citetitle></link>'>
<!ENTITY url.explore.seance.4 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/explore.gnulinux/seance.4/">
  <citetitle>Exploration GNU/Linux - Séance 4</citetitle></link>'>
<!ENTITY url.explore.seance.5 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/explore.gnulinux/seance.5/">
  <citetitle>Exploration GNU/Linux - Séance 5</citetitle></link>'>
<!ENTITY url.explore.seance.6 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/explore.gnulinux/seance.6/">
  <citetitle>Exploration GNU/Linux - Séance 6</citetitle></link>'>
<!ENTITY url.config.interface.wlan '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/config.interface.wlan/">
  <citetitle>Configuration d&#39;une interface de réseau sans fil IEEE 802.11</citetitle></link>'>
<!ENTITY url.admin.reseau.fs '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.fs/">
  <citetitle>Systèmes de fichiers réseau</citetitle></link>'>
<!ENTITY url.admin.reseau.iscsi '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.iscsi/">
  <citetitle>Introduction au réseau de stockage iSCSI</citetitle></link>'>
<!ENTITY url.admin.reseau.nfs.abstract '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/index.html#admin.reseau.nfs">
  <citetitle>Introduction au système de fichiers réseau NFS</citetitle></link>'>
<!ENTITY url.admin.reseau.nfs '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.nfs/">
  <citetitle>Introduction au système de fichiers réseau NFS</citetitle></link>'>
<!ENTITY url.admin.reseau.nfs.synthese '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.nfs.synthese/">
  <citetitle>Introduction au système de fichiers réseau NFS</citetitle></link>'>
<!ENTITY url.admin.reseau.ldap.abstract '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/index.html#admin.reseau.ldap">
  <citetitle>Introduction au service LDAP</citetitle></link>'>
<!ENTITY url.admin.reseau.ldap '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.ldap/">
  <citetitle>Introduction au service LDAP</citetitle></link>'>
<!ENTITY url.admin.reseau.ldap.synthese '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.ldap.synthese/">
  <citetitle>Introduction au service LDAP</citetitle></link>'>
<!ENTITY url.admin.reseau.nfs4-ldap.abstract '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/index.html#admin.reseau.nfs4-ldap">
  <citetitle>NFSv4 + LDAP + autofs</citetitle></link>'>
<!ENTITY url.admin.reseau.nfs4-ldap '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.nfs4-ldap/">
  <citetitle>NFSv4 + LDAP + autofs</citetitle></link>'>
<!ENTITY url.admin.reseau.nfs4-ldap.synthese '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.nfs4-ldap.synthese/">
  <citetitle>NFSv4 + LDAP + autofs</citetitle></link>'>
<!ENTITY url.admin.reseau.nis '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.nis/">
  <citetitle>Introduction au service NIS</citetitle></link>'>
<!ENTITY url.admin.reseau.synthese-nfs3-nis '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.synthese-nfs3-nis/">
  <citetitle>Administration système en réseau : synthèse NFS v3 &amp; NIS</citetitle></link>'>
<!ENTITY url.admin.reseau.dns-dhcp '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.dns-dhcp/">
  <citetitle>Présentation services DNS &amp; DHCP</citetitle></link>'>
<!ENTITY url.admin.reseau.dns '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/cours/admin.reseau.dns/">
  <citetitle>Introduction au service DNS</citetitle></link>'>
<!--###################################################
                   Guides
    ################################################### --><!ENTITY url.lartc.fr '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/lartc/"><citetitle>HOWTO du routage avancé et du contrôle de trafic sous Linux</citetitle></link>'>
<!ENTITY url.lartc.fr.rpdb '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/lartc/lartc.rpdb.html"><citetitle>LARTC : bases de données des politiques de routage</citetitle></link>'>
<!ENTITY url.lartc.fr.netfilter '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/lartc/lartc.netfilter.html"><citetitle>LARTC : Netfilter et iproute - marquage de paquets</citetitle></link>'>
<!ENTITY url.lartc.fr.tunnel.ip-ip '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/lartc/lartc.tunnel.ip-ip.html"><citetitle>LARTC : IP dans un tunnel IP</citetitle></link>'>
<!ENTITY url.lartc.fr.tunnel.gre '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/lartc/lartc.tunnel.gre.html"><citetitle>LARTC : Le tunnel GRE</citetitle></link>'>
<!ENTITY url.iptables-tutorial.fr '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/iptables-tutorial/"><citetitle>Tutoriel iptables</citetitle></link>'>
<!ENTITY url.zebra.static '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/zebra.statique/"><citetitle>Initiation au routage, 1ère partie</citetitle></link>'>
<!ENTITY url.zebra.rip '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/zebra.rip/"><citetitle>Initiation au routage, 2ème partie</citetitle></link>'>
<!ENTITY url.zebra.ospf '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/zebra.ospf/"><citetitle>Initiation au routage, 3ème partie</citetitle></link>'>
<!ENTITY url.vm '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/vm/"><citetitle>Virtualisation système et enseignement</citetitle></link>'>
<!ENTITY url.vm.startup.sh '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/vm/vm.appendix.html#vm.appendix.startup.sh">code du script <function>startup.sh</function> de lancement d&#39;une machine virtuelle</link>'>
<!ENTITY url.linux.networking '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/linux.networking/"><citetitle>Fonctions réseau du noyau Linux</citetitle></link>'>
<!ENTITY url.policyrouting '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/pdf/Policy_Routing_in_Linux_ENG.pdf"><citetitle>Policy Routing in Linux</citetitle></link>'>
<!ENTITY url.proxy '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/guides/squid-guard/"><citetitle>Proxy Squid &amp; SquidGuard</citetitle></link>'>
<!--###################################################
                   Présentations
    ################################################### --><!ENTITY url.sysadm-base-1 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/presentations/sysadm-base-1/">
  <citetitle>Introduction aux systèmes GNU/Linux - Séance 1</citetitle></link>'>
<!ENTITY url.sysadm-base-2 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/presentations/sysadm-base-2/">
  <citetitle>Introduction aux systèmes GNU/Linux - Séance 2</citetitle></link>'>
<!ENTITY url.sysadm-base-3 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/presentations/sysadm-base-3/">
  <citetitle>Introduction aux systèmes GNU/Linux - Séance 3</citetitle></link>'>
<!ENTITY url.storage '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/presentations/stockage/"><citetitle>Stockage Réseau</citetitle></link>'>
<!--###################################################
                   Travaux pratiques
    ################################################### --><!ENTITY url.infra.tp '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/infra.tp/"><citetitle>Architecture réseau des travaux pratiques</citetitle></link>'>
<!ENTITY url.infra.tp.cabling '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/infra.tp/infra.tp.interco.html#infra.tp.interco.cabling"><citetitle>Disposition des équipements dans l&#39;armoire de brassage</citetitle></link>'>
<!ENTITY url.config.interface.lan '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/config.interface.lan/"><citetitle>Configuration d&#39;une interface de réseau local</citetitle></link>'>
<!ENTITY url.config.interface.lan.proc '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/config.interface.lan/config.interface.lan.procfs.html#change_proc"><citetitle>Configuration d&#39;une interface de réseau local : activation du routage</citetitle></link>'>
<!ENTITY url.intro.analyse '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/intro.analyse/"><citetitle>Introduction à l&#39;analyse réseau avec Wireshark</citetitle></link>'>
<!ENTITY url.interco '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/formations/m1/"><citetitle>Interconnexion de réseaux locaux et étendus</citetitle></link>'>
<!ENTITY url.interco.kernel '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/interco.kernel.q/"><citetitle>Configuration des fonctions réseau &amp; compilation du noyau Linux</citetitle></link>'>
<!ENTITY url.interco.kernel.answers "http://www.inetdoc.net/travaux_pratiques/interco.kernel.qa/">
<!ENTITY url.interco.rawip '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/interco.rawip.q/"><citetitle>Configuration d&#39;une interface RNIS en mode rawip</citetitle></link>'>
<!ENTITY url.interco.rawip.answers "http://www.inetdoc.net/travaux_pratiques/interco.rawip.qa/">
<!ENTITY url.interco.ppp '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/interco.ppp.q/"><citetitle>Topologie Hub &amp; Spoke avec le protocole PPP</citetitle></link>'>
<!ENTITY url.interco.ppp.answers "http://www.inetdoc.net/travaux_pratiques/interco.ppp.qa/">
<!ENTITY url.interco.netfilter '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/interco.netfilter.q/"><citetitle>Filtrage réseau avec netfilter/iptables</citetitle></link>'>
<!ENTITY url.interco.netfilter.answers "http://www.inetdoc.net/travaux_pratiques/interco.netfilter.qa/">
<!ENTITY url.interco.inter-vlan '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/interco.inter-vlan.qa/"><citetitle>Routage inter-VLAN</citetitle></link>'>
<!ENTITY url.interco.ospf '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/interco.ospf.q/"><citetitle>Routage dynamique avec OSPF</citetitle></link>'>
<!ENTITY url.interco.ospf.answers "http://www.inetdoc.net/travaux_pratiques/interco.ospf.qa/">
<!ENTITY url.interco.ospf.default "http://www.inetdoc.net/travaux_pratiques/interco.ospf.qa/interco.ospf.default-information.html">
<!ENTITY url.interco.cs '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/travaux_pratiques/interco.cs/"><citetitle>Étude de cas de synthèse sur l&#39;interconnexion LAN/WAN</citetitle></link>'>
<!--###################################################
                   Dev
    ################################################### --><!ENTITY url.socket-c '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/dev/socket-c/"><citetitle>Initiation au développement C sur les sockets</citetitle></link>'>
<!ENTITY url.socket-c.udp-client '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.inetdoc.net/dev/socket-c/socket-c.udp.client.html#socket-c.udp.client.source"><citetitle>Code du programme udp-client.c</citetitle></link>'>
<!--###################################################
                   Externes
    ################################################### --><!ENTITY url.802.3 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://standards.ieee.org/about/get/802/802.3.html"><citetitle>IEEE 802.3™: ETHERNET</citetitle></link>'>
<!ENTITY url.ethernet.types '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.iana.org/assignments/ethernet-numbers"><citetitle>ETHER TYPES</citetitle></link>'>
<!ENTITY url.ieee.macaddr '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://standards.ieee.org/develop/regauth/tut/macgrp.pdf"><citetitle>Standard Group MAC Addresses: A Tutorial Guide</citetitle></link>'>
<!ENTITY url.ieee.eui64 '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://standards.ieee.org/develop/regauth/tut/eui64.pdf"><citetitle>Guidelines for 64-bit Global Identifier (EUI-64™) Registration Authority</citetitle></link>'>
<!ENTITY url.nat-howto '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.netfilter.org/documentation/HOWTO/fr/NAT-HOWTO.html"><citetitle>Guide Pratique du NAT</citetitle></link>'>
<!ENTITY url.packet.filtering.howto '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.netfilter.org/documentation/HOWTO/fr/packet-filtering-HOWTO.html"><citetitle>Guide Pratique du Filtrage de Paquets</citetitle></link>'>
<!ENTITY url.debian-reference '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.debian.org/doc/manuals/debian-reference/"><citetitle>Manuel de référence Debian</citetitle></link>'>
<!ENTITY url.debian-reference.kernel '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.debian.org/doc/manuals/debian-reference/ch09.fr.html#_the_kernel"><citetitle>Manuel de référence Debian : le noyau</citetitle></link>'>
<!ENTITY url.debian-reference.networking '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.debian.org/doc/manuals/debian-reference/ch05.fr.html"><citetitle>Manuel de référence Debian : configuration du réseau</citetitle></link>'>
<!ENTITY url.kernel '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.kernel.org/">
  <citetitle>The Linux Kernel Archives</citetitle></link>'>
<!ENTITY url.policyrouting.fun '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://www.linuxjournal.com/article/7134">
  <citetitle>Policy Routing for Fun and Profit</citetitle></link>'>
<!ENTITY url.decnet '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://sourceforge.net/apps/mediawiki/linux-decnet/">
  <citetitle>DECnet for Linux</citetitle></link>'>
<!ENTITY url.bridge '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://en.tldp.org/HOWTO/BRIDGE-STP-HOWTO/">
  <citetitle>Linux BRIDGE-STP-HOWTO</citetitle></link>'>
<!ENTITY url.howto.qos '<link xmlns="http://docbook.org/ns/docbook" xlink:href="http://edseek.com/~jasonb/articles/traffic_shaping/index.html">
  <citetitle>A Practical Guide to Linux Traffic Control</citetitle></link>'>
<!ENTITY packet SYSTEM "files/packet.c">
<!ENTITY tun SYSTEM "files/tun.c">
<!ENTITY socket-unix SYSTEM "files/socket_unix.c">
]>
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="linux.networking" xml:lang="fr">

<info>
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Fonctions réseau du noyau Linux</title>

  <authorgroup xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
  <author xmlns:xlink="http://www.w3.org/1999/xlink">
    <personname xmlns:xlink="http://www.w3.org/1999/xlink">
      <firstname xmlns:xlink="http://www.w3.org/1999/xlink">Philippe</firstname><surname xmlns:xlink="http://www.w3.org/1999/xlink">Latu</surname>
    </personname>
    <affiliation xmlns:xlink="http://www.w3.org/1999/xlink">
      <shortaffil xmlns:xlink="http://www.w3.org/1999/xlink">inetdoc.net</shortaffil>
      <jobtitle xmlns:xlink="http://www.w3.org/1999/xlink">Enseignant - Chargé de mission Systèmes &amp; Réseaux</jobtitle>
      <orgname xmlns:xlink="http://www.w3.org/1999/xlink">IUT - Université Toulouse III - Paul Sabatier</orgname>
      <address xmlns:xlink="http://www.w3.org/1999/xlink"><email xmlns:xlink="http://www.w3.org/1999/xlink">philippe.latu(at)inetdoc.net</email></address>
    </affiliation>
  </author>
  <author xmlns:xlink="http://www.w3.org/1999/xlink">
    <personname xmlns:xlink="http://www.w3.org/1999/xlink">
      <firstname xmlns:xlink="http://www.w3.org/1999/xlink">Laurent</firstname><surname xmlns:xlink="http://www.w3.org/1999/xlink">Foucher</surname>
    </personname>
    <affiliation xmlns:xlink="http://www.w3.org/1999/xlink">
      <jobtitle xmlns:xlink="http://www.w3.org/1999/xlink">Enseignant - Chargé de mission Systèmes &amp; Réseaux</jobtitle>
      <orgname xmlns:xlink="http://www.w3.org/1999/xlink">IUT - Université Toulouse III - Paul Sabatier</orgname>
      <address xmlns:xlink="http://www.w3.org/1999/xlink"><email xmlns:xlink="http://www.w3.org/1999/xlink">laurent.foucher(at)iut-tlse3.fr</email></address>
    </affiliation>
  </author>
</authorgroup>

  <abstract xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">
    <inlinemediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
      <imagedata fileref="images/thumb002.png" format="PNG" width="12em" scalefit="1"/>
    </imageobject>
    </inlinemediaobject>
    Le catalogue des fonctions réseau du noyau Linux étant assez
    conséquent, cette introduction n'a pas pour but d'être exhaustive. Dans un
    premier temps, on se propose d'identifier le sous-système réseau dans
    l'architecture du noyau Linux. Dans un second temps, on présente
    l'utilisation de quelques fonctions réseau caractéristiques. L'objectif est
    de fournir un panorama général de l'utilisation des nombreuses fonctions
    réseau fournies avec le noyau Linux.</para>
  </abstract>
</info>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="linux.networking.legal.meta">

  <title xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">Copyright et Licence</title>

<literallayout xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" class="monospaced">Copyright (c) 2000,2012 Philippe Latu, Laurent Foucher.
Permission is granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.3 or any later version
published by the Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included
in the section entitled "GNU Free Documentation License".</literallayout>

<literallayout xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" class="monospaced">Copyright (c) 2000,2012 Philippe Latu, Laurent Foucher.
Permission est accordée de copier, distribuer et/ou modifier ce document selon
les termes de la Licence de Documentation Libre GNU (GNU Free Documentation
License), version 1.3 ou toute version ultérieure publiée par la Free Software
Foundation ; sans Sections Invariables ; sans Texte de Première de Couverture,
et sans Texte de Quatrième de Couverture. Une copie de la présente Licence est
incluse dans la section intitulée « Licence de Documentation Libre GNU
».</literallayout>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="legal.meta.links">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Méta-information</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Cet article est écrit avec <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.docbook.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">DocBook</citetitle></link> XML
  sur un système <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.debian.org"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Debian
  GNU/Linux</citetitle></link>. Il est disponible en version imprimable au
  format PDF : <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.inetdoc.net/pdf/linux.networking.pdf"><literal xmlns:xlink="http://www.w3.org/1999/xlink">linux.networking.pdf</literal></link>.</para>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="config.interface.lan.convtypo">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Conventions typographiques</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Tous les exemples d'exécution des commandes sont précédés d'une invite
  utilisateur ou <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">prompt</wordasword> spécifique au niveau des
  droits utilisateurs nécessaires sur le système.</para>

  <itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Toute commande précédée de l'invite <prompt xmlns:xlink="http://www.w3.org/1999/xlink">$</prompt> ne nécessite
    aucun privilège particulier et peut être utilisée au niveau utilisateur
    simple.</para>
    </listitem>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Toute commande précédée de l'invite <prompt xmlns:xlink="http://www.w3.org/1999/xlink">#</prompt> nécessite les
    privilèges du super-utilisateur.</para>
    </listitem>
  </itemizedlist>
  </sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="linux.networking.presentation">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Présentation du noyau LINUX</title>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="linux.networking.presentation.intro">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>
    
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Linux s'intègre dans la longue histoire des systèmes <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="osname">UNIX</systemitem>. Le développement de ce système
  d'exploitation a débuté en 1969 sous l'impulsion de Ken Thompson et Dennis
  Ritchie qui travaillaient alors pour la société Bell Laboratories. Plusieurs
  versions furent développées en interne et c'est en 1975 qu'apparut la version
  6 qui deviendra la base des Unix commerciaux.</para>
  
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Par la suite, de nombreuses implémentations d'<systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="osname">UNIX</systemitem> furent développées. L'université de Berkeley
  fut à la base de la version BSD, Hewlett Packard proposa la version HP-UX,
  etc... Malgré de bonnes intentions au départ, il existait des
  incompatibilités entre tous ces Unix, si bien que le portage d'une
  application d'un <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="osname">UNIX</systemitem> vers un autre
  était difficile. Pour réduire ces disparités, la société AT&amp;T proposa un
  standard UNIX en 1983, connu sous le nom de System V. En 1986, l'Institute of
  Electrical and Electronics Engineers (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">IEEE</acronym>) proposa un
  autre standard connu sous le terme de POSIX. POSIX est une standardisation
  permettant d'assurer la portabilité des applications d'un UNIX à un
  autre.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le système d'exploitation GNU/Linux se comporte comme un UNIX et
  implémente les spécifications POSIX, avec des extensions système V et
  BSD.</para> 

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Issu du travail d'un étudiant finlandais, Linus Torvalds, Linux se
  distingue par le fait qu'il est distribué sous les conditions d'une licence
  particulière, appelée <acronym xmlns:xlink="http://www.w3.org/1999/xlink">GPL</acronym> (GNU Public License). Cette
  licence précise que toute personne peut modifier, améliorer ou corriger le
  code source, mais que ces modifications devront également être distribuées
  librement.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Les principales caractéristiques de Linux sont les suivantes :</para>
  
  <itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Multitâches : exécute plusieurs programmes en même temps.</para>
    </listitem>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Multi-utilisateurs : plusieurs utilisateurs peuvent être actifs
    en même temps.</para>
    </listitem>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Multi plates-formes : Linux peut fonctionner avec différents
    types de processeurs (Intel, Sparc, Alpha, PowerPC, etc...).</para>
    </listitem>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Supporte un grand nombre de systèmes de fichiers : Ext(2|3|4),
    XFS, FAT, VFAT, NFS, CIFS, etc.</para>
    </listitem>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Dispose d'un catalogue de fonctions réseau conséquent. Voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="interco.noyau.networking"/>.</para>
    </listitem>
  </itemizedlist>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">L'évolution du noyau est très rapide et celui qui est utilisé pour ce
  programme de formation appartient à la série 2.6.</para>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="linux.networking.presentation.archi">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Architecture du système GNU/Linux</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Comme dans tout système d'exploitation, le noyau LINUX est une
  interface entre des programmes et des périphériques physiques. L'accès à ces
  périphériques se fait par l'intermédiaire d'appels systèmes qui sont
  identiques quelle que soit la machine. Cette encapsulation du matériel libère
  les développeurs de logiciels de la gestion complexe des périphériques :
  c'est le système d'exploitation qui s'en charge. Ainsi, si le système
  d'exploitation existe sur plusieurs architectures, l'interface d'utilisation
  et de programmation sera la même sur toutes. On dira alors que le système
  d'exploitation offre une <emphasis xmlns:xlink="http://www.w3.org/1999/xlink">machine virtuelle</emphasis> à
  l'utilisateur et aux programmes qu'il exécute.</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="images/architecture.png" format="PNG" contentwidth="6cm" width="6.2cm"/>
  </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Architecture du système GNU/Linux</phrase>
  </textobject>
  </mediaobject>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">GNU/Linux est considéré comme un système d'exploitation monolithique,
  écrit comme un ensemble de procédures qui peuvent s'appeler mutuellement.
  Pour l'utilisateur, il se présente comme un seul gros fichier. Cependant, il
  contient un ensemble de composants réalisant chacun une tâche bien précise.
  Cette construction monolithique induit un aspect important : la notion
  <emphasis xmlns:xlink="http://www.w3.org/1999/xlink">d'espace noyau</emphasis> (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">kernelspace</wordasword>) et
  <emphasis xmlns:xlink="http://www.w3.org/1999/xlink">d'espace utilisateur</emphasis>
  (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">userspace</wordasword>). Dans l'espace noyau, aucune restriction
  n'est imposée. Dans l'espace utilisateur, un certain nombre de restrictions
  sont imposées (par exemple, la création d'un fichier ne peut se réaliser que
  si les droits sont suffisants), et le processus ne peut avoir accès qu'aux
  zones mémoires qui lui ont été allouées.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le noyau LINUX est composé de cinq sous-systèmes principaux. Un
  sous-système peut être défini comme une entité logicielle qui fournit une
  fonctionnalité particulière.</para>

  <variablelist xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="kernel.subsystems">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Tâches réalisées par le noyau LINUX</title>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">Gestion des processus</term>
    <term xmlns:xlink="http://www.w3.org/1999/xlink">Ordonnanceur</term>
    <term xmlns:xlink="http://www.w3.org/1999/xlink"><wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Scheduler</wordasword></term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Ce sous-système est chargé de répartir équitablement les accès au
    processeur entre toutes les applications actives. Cela n'inclut pas
    seulement les processus utilisateurs, mais aussi les sous-systèmes du noyau
    lui-même. Cette fonction est réalisée par le
    <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Scheduler</citetitle>.</para>
    </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">Gestion de la mémoire</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Ce sous-système est chargé d'affecter à chaque programme une zone
    mémoire. Il a également un rôle de protection : la mémoire pour un
    processus est privée et celle-ci ne doit pas être lue ni modifiée par un
    autre.</para>
    </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">Système de fichier virtuel</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Le sous-système de fichiers garantit une gestion correcte des
    fichiers et un contrôle des droits d'accès. Pour limiter la complexité liée
    aux nombreux systèmes de fichiers existants, LINUX adopte le concept de
    <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Virtual FileSystem</wordasword> (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">VFS</acronym>). Le
    principe du <acronym xmlns:xlink="http://www.w3.org/1999/xlink">VFS</acronym> est de proposer des appels systèmes
    identiques quel que soit le système de fichiers. Il est de la
    responsabilité du noyau de détourner les appels standards vers les appels
    spécifiques au système de fichiers.</para>
    </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">Service réseau</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Le sous-système réseau permet à Linux de se connecter à d'autres
    systèmes à travers un réseau informatique. Il y a de nombreux périphériques
    matériels qui sont supportés et plusieurs protocoles réseaux peuvent être
    utilisés.</para>
    </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">Communications Inter Processus</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Dans la mesure où un processus ne peut avoir accès qu'à la zone
    mémoire qui lui a été allouée, LINUX propose plusieurs mécanismes
    permettant à des applications de communiquer entre elles.</para>
    </listitem>
  </varlistentry>
  </variablelist>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Les relations entre les différentes parties du noyau sont montrées sur
  la figure ci-dessous.</para>

  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="images/noyau.png" format="PNG" contentwidth="10cm" width="10.2cm"/>
  </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Structure générale du noyau GNU/Linux</phrase>
  </textobject>
  </mediaobject>
  </sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="interco.noyau.networking">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Sous-système réseau du noyau LINUX</title>
  <subtitle xmlns:xlink="http://www.w3.org/1999/xlink">Networking options</subtitle>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le but de cette section est de découvrir les diverses options réseau
  que propose le noyau LINUX.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Les fonctions réseau indépendantes du matériel (piles de protocoles,
  liste de filtres, etc.) sont regroupées dans les menus
  <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">Networking</guimenuitem> puis <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">Networking
  Options</guimenuitem>.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Les pilotes de périphériques réseau sont accessibles à
  partir des menus <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">Device Drivers</guimenuitem> puis
  <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">Network device support</guimenuitem>.</para>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="packet-socket">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Packet Socket</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette fonctionnalité est utilisée pour recevoir ou envoyer des paquets
  bruts sur les périphériques réseaux sans passer par l'intermédiaire d'un
  protocole réseau implémenté dans le noyau. Certains programmes, tel que
  <application xmlns:xlink="http://www.w3.org/1999/xlink">tcpdump</application>, utilisent cette option.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le terme «socket» désigne l'interface de programmation à travers
  laquelle l'on va pouvoir accéder aux ressources réseau du noyau. La création
  d'une interface «socket» est réalisée par l'appel système
  suivant :</para>
<funcsynopsis xmlns:xlink="http://www.w3.org/1999/xlink">
<funcprototype xmlns:xlink="http://www.w3.org/1999/xlink">
  <funcdef xmlns:xlink="http://www.w3.org/1999/xlink"> int <function xmlns:xlink="http://www.w3.org/1999/xlink">socket</function></funcdef>
  <paramdef xmlns:xlink="http://www.w3.org/1999/xlink"> int <parameter xmlns:xlink="http://www.w3.org/1999/xlink">famille</parameter></paramdef>
  <paramdef xmlns:xlink="http://www.w3.org/1999/xlink"> int <parameter xmlns:xlink="http://www.w3.org/1999/xlink">type</parameter></paramdef>
  <paramdef xmlns:xlink="http://www.w3.org/1999/xlink"> int <parameter xmlns:xlink="http://www.w3.org/1999/xlink">protocole</parameter></paramdef>
</funcprototype>
</funcsynopsis>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le paramètre «famille» permet de préciser avec quel protocole réseau on
  souhaite travailler. L'ensemble des familles disponibles est listé dans le
  fichier <filename xmlns:xlink="http://www.w3.org/1999/xlink">/usr/include/linux/socket.h</filename>. Les types
  définissent le protocole de transport (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym> ou
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">UDP</acronym>). Une nouvelle famille de socket associée à cette
  fonctionnalité est ainsi disponible, à savoir
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">AF_PACKET</acronym>.</para>

  <variablelist xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Sous-option de Packet Socket</title>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">mapped IO</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option permet d'utiliser un mécanisme d'entrée-sortie plus
    rapide.</para>
    </listitem>
  </varlistentry>
  </variablelist>

  <example xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Utilisation de la socket packet</title>
<programlisting xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><![CDATA[
#include <stdio.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <linux/if_ether.h>
#include <linux/if_packet.h>

main ()
{

int sock_fd ;
struct sockaddr_ll sll;
struct ifreq ifr;
char buffer[2000];
int nb_octet;

if (sock_fd = socket(AF_PACKET,SOCK_RAW,htons(ETH_P_ALL)) == -1 ) {
		printf("Erreur dans la création de la socket\n");
		return-1 ;
	}

memset(&ifr, 0, sizeof(ifr));
strncpy (ifr.ifr_name, "eth0", sizeof(ifr.ifr_name));

if (ioctl(sock_fd,SIOCGIFINDEX, &ifr) == -1 ) {
		printf("Erreur dans la recherche de index\n");
		return -1 ;
	}

memset(&sll, 0, sizeof(sll));
sll.sll_family = AF_PACKET ;
sll.sll_ifindex = ifr.ifr_ifindex ;
sll.sll_protocol = htons(ETH_P_ALL);

if (bind(sock_fd, (struct sockaddr *) &sll, sizeof(sll)) == -1) {
		printf("Erreur avec bind\n");
		return -1 ;
	};

	nb_octet=recvfrom(sock_fd,buffer,sizeof(buffer),0,NULL,0);
	printf("Nombre d'octets reçus : %d\n",nb_octet);
}
]]>
</programlisting>
  </example>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="netlink-socket">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Kernel/User netlink socket</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink"><guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">Kernel/User netlink socket</guimenuitem> : Définit
  une nouvelle famille de socket, <acronym xmlns:xlink="http://www.w3.org/1999/xlink">AF_NETLINK</acronym>. Cette socket
  permet d'établir une communication bidirectionnelle entre le noyau et
  l'espace utilisateur. Cette option est nécessaire pour pouvoir utiliser
  l'outil <systemitem xmlns:xlink="http://www.w3.org/1999/xlink">iproute2</systemitem> qui permet la configuration de la
  partie réseau du noyau.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">En plus de cette <systemitem xmlns:xlink="http://www.w3.org/1999/xlink">socket</systemitem>, la communication peut
  également se réaliser, pour un processus utilisateur, par la lecture ou
  l'écriture de fichiers caractères spéciaux. Ces fichiers spéciaux ont le
  numéro majeur 36 et se trouvent dans le répertoire <filename xmlns:xlink="http://www.w3.org/1999/xlink" class="directory">/dev</filename>.</para>

  <variablelist xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Sous-option de netlink</title>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">Routing Messages</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Le noyau fournit des informations sur le routage via le fichier
    <filename xmlns:xlink="http://www.w3.org/1999/xlink">/dev/route</filename> de numéro majeur 36 et de numéro mineur
    0.</para>
    </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">Netlink Device Emulation</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet la compatibilité avec d'anciennes fonctionnalités. Option
    amenée à disparaître.</para>
    </listitem>
  </varlistentry>
  </variablelist>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="socket-filter">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Socket Filtering</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette fonctionnalité permet, dans les programmes en mode utilisateur,
  la mise en place de filtres au niveau des sockets. On a ainsi la possibilité
  d'autoriser ou d'interdire des types de données traversant une socket. Cette
  fonctionnalité est dérivée du filtrage de paquets Berkeley. Pour plus
  d'informations, voir le fichier
  <filename xmlns:xlink="http://www.w3.org/1999/xlink">Documentation/networking/filter.txt</filename> dans les sources du
  noyau.</para>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="unix.domain.socket">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Unix domain socket</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet la prise en charge des sockets du domaine <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="osname">UNIX</systemitem>. <application xmlns:xlink="http://www.w3.org/1999/xlink">X-windows</application> et
  <application xmlns:xlink="http://www.w3.org/1999/xlink">syslog</application> sont des exemples de programmes qui
  utilisent ce type de fonctionnalité. Les sockets <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="osname">UNIX</systemitem> ne permettent que des communications locales
  sur une machine. Ce type de socket est lié à la création d'un fichier. Le nom
  de la famille associé aux sockets du domaine Unix est
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">AF_UNIX</acronym>.</para>

  <example xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Utilisation de la socket UNIX</title>
<programlisting xmlns:xlink="http://www.w3.org/1999/xlink"><![CDATA[
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>

int main(void)
{
    int socket_unix, len;
    struct sockaddr_un local;

    if ((socket_unix = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
        perror("socket");
        exit(1);
    }

    local.sun_family = AF_UNIX;
    strcpy(local.sun_path,"/tmp/test_socket_unix");
    unlink(local.sun_path);
    len = strlen(local.sun_path) + sizeof(local.sun_family);

    if (bind(socket_unix, (struct sockaddr *)&local, len) == -1) {
        perror("bind");
        exit(1);
    }

    system("ls -l /tmp/");

    unlink(local.sun_path);
    return 0;
}
]]>
</programlisting>
  </example>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tcpip.networking">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">TCP/IP networking</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Active le protocole TCP/IP.</para>

  <sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">IP: multicasting</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet d'envoyer des paquets à plusieurs ordinateurs en même temps.
  Cette fonctionnalité est, par exemple, utilisée pour la diffusion audio et
  vidéo.</para>
  </sect3>

  <sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">IP: advanced router</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Par défaut, la décision du routage se fait en examinant l'adresse de
  destination. En activant cette option, on peut contrôler beaucoup plus
  précisément le routage et la prise de décision pourra se faire en fonction de
  nombreux autres critères.</para>

  <variablelist xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Sous-option de advanced router</title>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">policy routing</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet le remplacement de la table de routage classique, basée sur
    les adresses de destination, par la Base de Données des Politiques de
    Routage ou <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Routing Policy DataBase</wordasword>
    (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">RPDB</acronym>) en anglais. Cette base de données est une liste
    ordonnée de règles qui scrutent certains caractéristiques des
    paquets :</para>
    <itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">adresse source</para>
      </listitem>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">adresse de destination</para>
      </listitem> 
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">champ TOS</para>
      </listitem>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">marque du packet</para>
      </listitem>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">interface d'entrée</para>
      </listitem>
    </itemizedlist>

    <para xmlns:xlink="http://www.w3.org/1999/xlink">Si un paquet satisfait les spécifications d'une règle, alors l'action
    correspondante est réalisée. L'action standard consiste à fournir l'adresse
    IP du prochain saut. Si vous souhaitez plus d'informations sur ce sujet, je
    vous conseille la lecture de deux documents :</para>

    <itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">La documentation ip-cref d'Alexey Kuznetsov, disponible avec le
      paquet <systemitem xmlns:xlink="http://www.w3.org/1999/xlink">iproute</systemitem>.</para>
      </listitem> 
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">L'article <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.linuxjournal.com/article/7134">
  <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Policy Routing for Fun and Profit</citetitle></link>.</para>
      </listitem> 
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">L'article <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.inetdoc.net/pdf/Policy_Routing_in_Linux_ENG.pdf"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Policy Routing in Linux</citetitle></link>.</para>
      </listitem> 
    </itemizedlist>

    <para xmlns:xlink="http://www.w3.org/1999/xlink">De plus, un exemple complet de routage avancé peut être consulté dans
    le document <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.inetdoc.net/guides/lartc/lartc.rpdb.html"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">LARTC : bases de données des politiques de routage</citetitle></link>.</para>
    
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Si l'option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">IP: use netfilter MARK value as routing
    key</guimenuitem> est validée, le routage des paquets pourra s'établir en
    fonction de la marque du paquet. Un exemple peut être consulté dans le
    document <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.inetdoc.net/guides/lartc/lartc.netfilter.html"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">LARTC : Netfilter et iproute - marquage de paquets</citetitle></link>.</para>

    <para xmlns:xlink="http://www.w3.org/1999/xlink">Si l'option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">IP: fast network translation
    address</guimenuitem> est validée, le routeur pourra modifier les adresses
    source et destination des paquets transmis.</para>

    <example xmlns:xlink="http://www.w3.org/1999/xlink">
      <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de NAT</title>
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Soit un routeur avec d'un coté un réseau local <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="ipaddress">192.168.1.0/24</systemitem> et de l'autre un réseau public
    (<systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="ipaddress">200.200.200.0/24</systemitem>, par exemple)
    ayant une connectivité sur Internet. On souhaite qu'une machine du réseau
    local (<systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="ipaddress">192.168.1.1</systemitem>, par exemple)
    soit reconnue avec l'adresse <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="ipaddress">200.200.200.10</systemitem> sur Internet.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink">$ </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">ip route add nat 200.200.200.10 via 192.168.1.1</command>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink">$ </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">ip rule add prio 300 from 192.168.1.1 nat 200.200.200.10</command>
</screen>
    </example>
    </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">equal cost multipath</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Avec cette option, on peut spécifier plusieurs routes alternatives
    que peuvent emprunter les paquets. Le routeur considère toutes ces routes
    comme étant de coûts égaux et choisit l'une d'elle d'une manière non
    déterministe si un paquet arrive avec la bonne correspondance.</para>

    <example xmlns:xlink="http://www.w3.org/1999/xlink">
      <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de chemins multiples</title>
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Considérons un routeur avec deux liaisons <acronym xmlns:xlink="http://www.w3.org/1999/xlink">PPP</acronym>. On
    souhaite que les paquets sortant puissent utiliser indifféremment ppp0 ou
    ppp1 comme interface de route par défaut.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink">$ </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">ip route add default scope global nexthop dev ppp0 nexthop dev ppp1</command>
</screen>
    </example>
    </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">use TOS value as routing key</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">L'entête d'un paquet IP contient un champ de 8 bits nommé
    <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Type Of Service</wordasword> (Type de service). Dans ce champ,
    il y a trois indicateurs qui permettent de préciser le type d'acheminement
    souhaité : Délai faible (faible temps d'attente), débit important et
    fiabilité importante. Cela permet de choisir entre, par exemple, une
    liaison satellite à haut débit mais avec un délai d'attente important ou
    une ligne louée à faible débit et faible délai. Cette option permet
    d'utiliser la valeur du champ <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TOS</acronym> dans la liste de
    règles.</para>
    <example xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tos.routing">
      <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple d'utilisation du champ TOS pour le routage</title>
    <para xmlns:xlink="http://www.w3.org/1999/xlink">But : tous les paquets marqués avec le champ
    <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TOS</acronym> «débit important» (0x08) (par exemple le transfert
    de données via <acronym xmlns:xlink="http://www.w3.org/1999/xlink">FTP</acronym>) doivent emprunter une liaison
    <acronym xmlns:xlink="http://www.w3.org/1999/xlink">RNIS</acronym>.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink">$</prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">ip rule add tos 0x08 prio 100 table 10</command>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink">$</prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">ip route add default dev ippp0 table 10</command>
</screen>
    </example>
    </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">verbose route monitoring</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet l'affichage de messages au sujet du routage.</para>
    </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">large routing tables</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Si la table de routage possède plus de 64 entrées, il est préférable
    d'activer cette option pour accélérer le processus de routage.</para>
    </listitem>
  </varlistentry>
  </variablelist>
  </sect3>

  <sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">IP: kernel level autoconfiguration</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option permet de configurer les adresses IP des périphériques au
  moment du démarrage, ainsi que la table de routage. Les informations
  nécessaires à cette configuration sont fournies soit sur la ligne de
  commande, soit par l'intermédiaire des protocoles <acronym xmlns:xlink="http://www.w3.org/1999/xlink">DHCP</acronym>,
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">BOOTP</acronym> ou <acronym xmlns:xlink="http://www.w3.org/1999/xlink">RARP</acronym>.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Les informations sont fournies au noyau via le paramètre
  <parameter xmlns:xlink="http://www.w3.org/1999/xlink">ip</parameter>. Cette option est principalement utilisée pour la
  mise en place de stations clientes sans disque dur et qui ont besoin de
  monter la racine du système de fichiers via <acronym xmlns:xlink="http://www.w3.org/1999/xlink">NFS</acronym>. Pour plus
  d'informations, voir le fichier
  <filename xmlns:xlink="http://www.w3.org/1999/xlink">Documentation/nfsroot.txt</filename> dans les sources du
  noyau.</para>

  <example xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de configuration IP au démarrage</title>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink">LILO: </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">linux ip=192.168.1.1::192.168.1.254:255.255.255.0:Linuxbox:eth0:none</command>
</screen>
  </example>
  </sect3>

  <sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">IP: optimize as router not host</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de supprimer certaines vérifications lorsque le noyau reçoit un
  paquet. Dans le cas où Linux est principalement utilisé comme un routeur,
  c'est-à-dire une machine qui ne fait que transmettre les paquets, cela permet
  d'améliorer la vitesse de commutation.</para>
  </sect3>

  <sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">IP: tunneling</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">tunneling</wordasword> permet l'encapsulation d'un
  protocole réseau dans un autre protocole réseau. Cette option permet
  l'encapsulation du protocole IP dans IP. Cela peut être utilisé dans le cas
  où l'on souhaite pouvoir faire communiquer deux réseaux ayant des adresses
  privées, donc non routables, à travers l'Internet. Un exemple complet de
  tunnel IP dans IP pourra être consulté dans le document
  <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.inetdoc.net/guides/lartc/lartc.tunnel.ip-ip.html"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">LARTC : IP dans un tunnel IP</citetitle></link>.</para>
  </sect3>

  <sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">IP: GRE tunnel over IP</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink"><acronym xmlns:xlink="http://www.w3.org/1999/xlink">GRE</acronym> est un protocole de tunnel qui a été
  originellement développé par <trademark xmlns:xlink="http://www.w3.org/1999/xlink">CISCO</trademark>, et qui peut
  réaliser plus de choses que le tunnel IP dans IP. Par exemple, ont peut aussi
  transporter du trafic multi-diffusion et de l'IPv6 à travers un tunnel GRE.
  Un exemple complet de tunnel GRE pourra être consulté dans le document
  <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.inetdoc.net/guides/lartc/lartc.tunnel.gre.html"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">LARTC : Le tunnel GRE</citetitle></link>.</para>
  </sect3>

  <sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">IP: TCP Explicit Congestion Notification support</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Fonctionnalité qui permet aux routeurs d'annoncer aux clients une
  congestion du réseau.</para>
  </sect3>

  <sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">IP: TCP syncookie support</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Prévient une attaque appelée le <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">SYN
  Flooding</citetitle>.</para>
  </sect3>

  <sect3 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">IP: Allow large windows (not recommanded if &lt;16 Mb of
    memory)</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de définir de plus gros tampons dans lesquels les données sont
  stockées avant d'être envoyées à l'hôte destinataire.</para>
  </sect3>

  <sect3 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="packet-filter">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Network packet filtering (replace ipchains)</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option active la fonction de filtrage des paquets traversant la
  machine Linux. Le filtrage permet un blocage sélectif du trafic IP en
  fonction, par exemple, de l'origine ou de la destination.</para>

  <variablelist xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Sous-option de Network packet filtering</title>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">Network packet filtering debugging</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet d'avoir des messages supplémentaires du code netfilter.</para>
  </listitem>
  </varlistentry>
  <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
    <term xmlns:xlink="http://www.w3.org/1999/xlink">Bridge IP/ARP packet filtering</term>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet d'utiliser les fonctionnalités de filtrage netfilter lorsque
    la machine est configurée pour fonctionner comme un pont.</para>
    </listitem>
  </varlistentry>
  </variablelist>

  <sect4 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">IP: Netfilter configuration</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de rentrer dans un nouveau menu pour la configuration du
  filtrage. Celui-ci permet l'ajout de fonctionnalités dont voici une liste des
  plus importante :</para>

  <variablelist xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Sous-option de Netfilter configuration</title>
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Connection tracking (required for masq/NAT)</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option permet de mettre en place le filtrage dit
      <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">StateFul</wordasword>. Cette technique permet de garder en
      mémoire, dans une table d'état, une trace des «communications en cours».
      Cela permet de différencier le trafic entre les hôtes pairs, en émission
      et en réception. Cette option est indispensable pour l'utilisation des
      mécanismes de traduction d'adresse.</para>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Connection mark tracking support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option permet d'activer le support du marquage des
      communications. Ce support est nécessaire pour le critère  de sélection
      <acronym xmlns:xlink="http://www.w3.org/1999/xlink">connmark</acronym> (voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="connmark"/>) et pour la
      cible <acronym xmlns:xlink="http://www.w3.org/1999/xlink">CONNMARK</acronym> (voir <xref xmlns:xlink="http://www.w3.org/1999/xlink" linkend="packet-mangling"/>).</para>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">IP tables support (required for filtering/masq/NAT)</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option permet la mise en place de la structure générale pour
      le filtrage, le masquage ou la traduction d'adresse des paquets.</para>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">limit match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de limiter le débit en fonction d'une règle de
      correspondance.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
	<title xmlns:xlink="http://www.w3.org/1999/xlink">Limitation des requêtes ICMP</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : limiter les requêtes «pings» à 1 paquet par
      seconde.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A INPUT -p icmp -icmp-type echo-request -m limit --limit 1/second -j ACCEPT</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">IP range match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de spécifier un intervalle d'adresses source ou
      destination.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">consultation d'un intervalle d'adresses IP source</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : Accepter de transmettre tous les paquets dont l'adresse
      source est comprise entre <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="ipaddress">192.168.1.1</systemitem> et <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="ipaddress">192.168.1.10</systemitem>.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A FORWARD -m iprange --src-range 192.168.1.1-192.168.1.10 -j ACCEPT</command>
</screen>
      </example>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">consultation d'un intervalle d'adresses IP destination</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : Accepter de transmettre tous les paquets dont l'adresse
      destination est comprise entre <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="ipaddress">192.168.1.1</systemitem> et <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="ipaddress">192.168.1.10</systemitem>.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A FORWARD -m iprange --dst-range 192.168.1.1-192.168.1.10 -j ACCEPT</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">MAC address match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage sur les adresses <acronym xmlns:xlink="http://www.w3.org/1999/xlink">MAC</acronym>
      des trames Ethernet.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Filtrage de paquets sur l'adresse MAC</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : interdire les paquets provenant d'une adresse MAC
      particulière.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A INPUT -m mac --mac-source 00:A0:24:A0:A4:11 -j DROP</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Packet type match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de considérer le type de paquet : unicast, broadcast ou
      multicast.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Journalisation des paquets de diffusion</title>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A INPUT -m pkttype --pkt-type broadcast -j LOG</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">netfilter MARK match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage sur la marque d'un paquet. Le marquage
      d'un paquet est réalisé grâce à la cible <acronym xmlns:xlink="http://www.w3.org/1999/xlink">MARK</acronym>.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Filtrage de paquets suivant le marquage</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : interdire les paquets à destination du serveur web local
      en utilisant le marquage de paquets.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A PREROUTING -t mangle -p tcp --dport 80 -j MARK --set-mark=2</command>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A INPUT -m mark --mark 2 -j DROP</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">multiple port match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de spécifier un ensemble de ports sources ou destinations
      <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym> ou <acronym xmlns:xlink="http://www.w3.org/1999/xlink">UDP</acronym>.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Filtrage de paquets sur plusieurs ports source</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : interdire les accès aux ports sources 3000 et
      4000.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink"> iptables -A INPUT -p tcp -m multiport --source-ports 3000,4000 -j DROP  </command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">TOS match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage sur la valeur du champ TOS du
      paquet.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé sur la valeur du champ TOS</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : marquer les paquets qui ont le champ
      <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TOS</acronym> <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Minimize-Delay</wordasword> activé. Ce
      marquage pourra ainsi être utilisé pour le routage de ces paquets.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -t mangle -A PREROUTING -m tos --tos Minimize-Delay -j MARK --set-mark=1</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">recent match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage en recherchant la présence d'une
      adresse dans une liste.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
	<title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé la présence d'une adresse dans une
	liste</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : FIXME</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A FORWARD -m recent --rcheck --seconds 60 -j DROP</command>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A FORWARD -i eth0 -d 127.0.0.0/8 -m recent --set -j DROP</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">ECN match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">La RFC3168 défini un mécanisme de notification de congestion. Ce
      mécanisme utilise les bits 7 et 8 du champs Type Of
      Service et l'en-tête IPv4 et défini deux nouveaux flags dans l'en-tête
      TCP. Ces flags ont pour noms CWR pour Congestion window Reduced et ECE
      pour ECN-Echo. </para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé </title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : FIXME</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables </command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">DSCP match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage sur la valeur des 6 bits DSCP de
      l'en-tête IP.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé </title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Placer dans la classe Diffserv EF les paquets à destination de
      serveurs web.</para> 
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -t mangle -A FORWARD -p tcp --dport 80 -j DSCP --set-dscp-class EF</command>
</screen>
      </example>
  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="images/capture-iptables-DSCP.png" format="PNG" contentwidth="8.5cm" width="8cm"/>
  </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Visualisation de la marque DSCP</phrase>
  </textobject>
  </mediaobject>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">AH/ESP match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">FIXME</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé </title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : FIXME</para> 
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables </command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">LENGTH match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage sur la longueur, exprimée en octets, du
      paquet IP.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé sur la longueur de paquet</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : Supprimer les paquets <acronym xmlns:xlink="http://www.w3.org/1999/xlink">ICMP</acronym> de type
      <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">echo-request</wordasword> qui ont une longueur supérieure à
      84 octets.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A FORWARD -p icmp --icmp-type echo-request -m length --length ! :84 -j DROP</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">TTL match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage sur la valeur du champ
      <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TTL</acronym> <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Time To Live</wordasword> de l'en-tête
      du paquet IP.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé sur le champ TTL</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : FIXME</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables </command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">tcpmss match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage sur la valeur de l'option
      <acronym xmlns:xlink="http://www.w3.org/1999/xlink">MSS</acronym> <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Maximum Segment Size</wordasword> du
      protocole de transport <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym>.</para> 
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé sur l'option MSS</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : Autoriser l'émission de paquet 
      <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym> dont le MSS est inférieur à 1400.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A OUTPUT -o ppp0 -p tcp -m tcpmss --mss 0:1400 -j ACCEPT </command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Helper match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser FIXME</para>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Connection state match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage sur l'état des «communications».</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="connection.state.match">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Filtrage de paquets FIXME</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : interdire les nouvelles communications entrantes vers la
      machine locale, mais autoriser les communications depuis la machine
      locale.</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -P INPUT DROP</command>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP</command>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Connection tracking match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet d'activer le module de critère de sélection
      <acronym xmlns:xlink="http://www.w3.org/1999/xlink">conntrack</acronym>. Cette option permet une plus grande
      granularité de recherche dans le suivi de communication.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink"><title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage de paquets en utilisant le suivi de
      communication avancé</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : autoriser les paquets appartenant à une connexion TCP
      établie.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED --ctproto tcp -j ACCEPT</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option Option qui a disparu ?
    <varlistentry>
      <term>Unclean match support</term>
      <listitem>
      <para>Cette option permet de repérer des paquets qui semblent douteux ou
      inhabituels.</para>
      <example>
        <title>Exemple d'utilisation de la correspondance unclean</title>
      <para>But : interdire les paquets entrant mal formés.</para>
<screen width='80'><prompt># </prompt><command>iptables -A INPUT -m unclean -j DROP</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
-->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Owner match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage sur l'identifiant du processus local
      ayant créé le paquet. Cette option ne peut être utilisée que dans la
      chaîne OUTPUT.</para>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Physdev match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Dans le cas où la machine est configurée comme un pont entre deux
      réseaux Ethernet, cette option permet de repérer l'interface physique sur
      laquelle arrive les paquets ou sur laquelle ils doivent partir.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé sur l'interface physique de sortie des
	paquets</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : Enregistrer les paquets sortant par l'interface eth0 d'un
      pont ethernet.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A FORWARD -m physdev --physdev-out eth0 -j LOG --log-level 7</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">address type match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser le filtrage en fonction de la nature de l'adresse. </para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé sur le type de paquet</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : accepter les paquets multicast.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A INPUT -m addrtype --dst-type MULTICAST -j ACCEPT</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">realm match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser FIXME</para>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">SCTP protocol match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser FIXME</para>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">comment match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser FIXME</para>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="connmark">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">connection mark match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet d'activer le critère de recherche
      <acronym xmlns:xlink="http://www.w3.org/1999/xlink">connmark</acronym>. Ce critère permet de repérer la marque
      associée à une communication.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
	<title xmlns:xlink="http://www.w3.org/1999/xlink">Limitation des requêtes ICMP</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : Autoriser les paquets sortant par eth0 et appartenant à
      la communication repérée par la marque 1.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A OUTPUT -o eth0 -m connmark --mark 1 -j ACCEPT</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">hashlimit match support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de baser FIXME</para>
      </listitem>
    </varlistentry>
<!-- Fin option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Packet filtering</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option permet le support du filtrage de paquets. La table
      gérant le filtrage se nomme <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">filter</wordasword> et possède les
      chaînes par défaut <acronym xmlns:xlink="http://www.w3.org/1999/xlink">INPUT</acronym>, <acronym xmlns:xlink="http://www.w3.org/1999/xlink">FORWARD</acronym> et
      <acronym xmlns:xlink="http://www.w3.org/1999/xlink">OUTPUT</acronym>. La sous option <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">REJECT target
      support</wordasword> ajoutera la cible <acronym xmlns:xlink="http://www.w3.org/1999/xlink">REJECT</acronym>. Cette
      cible permet de renvoyer un paquet d'erreur à la machine émettrice,
      simulant ainsi l'absence d'un service.</para>

      <example xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tcp.reject">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Emission d'un paquet tcp-reject</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : rejeter les connexion ssh provenant des machines du
      réseau 192.168.0.0 et émettre un paquet tcp-reset.</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 \
   -j REJECT --reject-with tcp-reset</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">LOG target support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option permet l'enregistrement des paquets grâce au démon
      <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="daemon">syslogd</systemitem>.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Journalisation de paquets web</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : enregistrer tous les paquets à destination d'un site web
      sortant d'un hôte.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A OUTPUT -p tcp --dport 80 \
   -j LOG --log-level 7 --log-prefix "Paquets WEB :"</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">ULOG target support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet d'activer la cible ULOG utilisée pour envoyer à
      travers une socket netlink le paquet à un processus de l'espace
      utilisateur à des fins d'enregistrement.</para>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">TCPMSS target support</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet de modifier la valeur du champ <acronym xmlns:xlink="http://www.w3.org/1999/xlink">MSS</acronym> contenu
      dans l'entête TCP grâce à la cible TCPMSS.
      L'usage le plus courant de cette règle de correspondance vise à adapter la taille maximale des
      segments <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym> à la taille maximale des unités transmises
      au niveau réseau : <acronym xmlns:xlink="http://www.w3.org/1999/xlink">MTU</acronym> ou <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Maximum
      Transmit Unit</wordasword>.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de filtrage basé sur l'option MSS</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : Adapter la taille maximale des segments
      <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym> en fonction de la taille maximale des unités
      transmises au niveau réseau.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A POSTROUTING -o ppp0 -p tcp -m tcpmss --mss 1400:1536 \
   -j TCPMSS --clamp-mss-to-pmtu</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Full NAT</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option permet le support de la traduction des adresses source
      (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">SNAT</acronym>) et destination (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">DNAT</acronym>).</para> 
      <para xmlns:xlink="http://www.w3.org/1999/xlink">La sous option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">MASQUERADE target support</guimenuitem>
      permet l'utilisation du <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">masquerading</wordasword> comme
      traducteur d'adresse source.</para>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">La sous option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">REDIRECT target support</guimenuitem>
      permet la redirection des paquets vers la machine locale. Cette cible
      est utilisée dans la mise en place de proxies transparent.</para>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">La sous option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">NETMAP target support</guimenuitem>
      permet d'activer le cible NETMAP. Cette cible permet de rediriger le
      trafic destiné aux hôtes d'un réseau vers les hôtes d'un autre réseau.</para>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">La sous option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">SAME target support</guimenuitem>
      permet d'activer la cible SAME. Cette cible permet de traiter le cas
      particulier d'une traduction d'adresse source où plusieurs adresses de
      traduction peuvent être utilisées. Avec cette cible, on s'assure que la
      même adresse source sera utilisée pour tous les paquets d'une même
      communication.</para>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de traduction d'adresse source</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : masquer l'adresse source des paquets sortant par
      l'interface eth0 avec l'adresse <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="ipaddress">200.200.200.1</systemitem>.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 200.200.200.1</command>
</screen>
      </example>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de traduction d'adresse de destination</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : rediriger les paquets à destination d'un serveur web vers
      le proxy de la machine <systemitem xmlns:xlink="http://www.w3.org/1999/xlink" class="ipaddress">200.200.200.1</systemitem> qui écoute le port
      8080.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 200.200.200.1:8080</command>
</screen>
      </example>
      </listitem>
    </varlistentry>
<!-- Fin option -->
<!-- Début option -->
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="packet-mangling">
      <term xmlns:xlink="http://www.w3.org/1999/xlink">Packet Mangling</term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option permet de modifier certains éléments du paquet.</para>

      <para xmlns:xlink="http://www.w3.org/1999/xlink">La sous option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">TOS target support</guimenuitem> permet de
      modifier le champ <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TOS</acronym> du paquet.</para>

      <para xmlns:xlink="http://www.w3.org/1999/xlink">La sous option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">ECN target support</guimenuitem> permet de
      supprimer les bits ECN.</para>

      <para xmlns:xlink="http://www.w3.org/1999/xlink">La sous option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">MARK target support</guimenuitem> permet
      de marquer les paquets. Ces marques pourront être utilisées par la suite
      pour, par exemple, imposer un routage particulier ou par l'outil de
      configuration de la qualité de service <application xmlns:xlink="http://www.w3.org/1999/xlink">tc</application>.</para>

      <para xmlns:xlink="http://www.w3.org/1999/xlink">La sous option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">CLASSIFY target support</guimenuitem> permet
      de positionner des paquets dans des classes de qualité de service.</para>

      <para xmlns:xlink="http://www.w3.org/1999/xlink">La sous option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">TTL target support</guimenuitem> permet
      de modifier la valeur du champ TTL dans l'entête IP.</para>

      <para xmlns:xlink="http://www.w3.org/1999/xlink">La sous option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">CONNMARK target support</guimenuitem>
      permet de marquer les paquets appartenant à une communication. Ces
      marques pourront être utilisées par la suite pour, par exemple, imposer
      un routage particulier.</para>

      <example xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="tos.minimize.delay">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Configuration du champ TOS</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : positionner le champ <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TOS</acronym> à
      <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Minimize-Delay</wordasword> pour les clients telnet.</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A PREROUTING -t mangle -p tcp --dport telnet -j TOS --set-tos Minimize-Delay</command>
</screen>
      </example>

      <example xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="ttl.inc">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Utilisation de la cible TTL</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : rendre invisible le routeur aux <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">traceroute</wordasword>.</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A PREROUTING -p tcp --dport 33434:33542 -j TTL --ttl-inc 1</command>
</screen>
      </example>
      <example xmlns:xlink="http://www.w3.org/1999/xlink">
        <title xmlns:xlink="http://www.w3.org/1999/xlink">Utilisation des cibles MARK et CONNMARK</title>
      <para xmlns:xlink="http://www.w3.org/1999/xlink">But : positionner une marque pour tous les paquets d'une connexion.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A POSTROUTING -t mangle -j CONNMARK --restore-mark</command> <co xml:id="connmark1"/>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A POSTROUTING -t mangle -m mark ! --mark 0 -j ACCEPT</command> <co xml:id="connmark2"/>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A POSTROUTING -t mangle -p tcp --dport 21 -j MARK --set-mark 1</command> <co xml:id="connmark3"/>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink"># </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">iptables -A POSTROUTING -t mangle -j CONNMARK --save-mark</command> <co xml:id="connmark4"/>
</screen>
      </example>

      <calloutlist xmlns:xlink="http://www.w3.org/1999/xlink">
	<callout arearefs="connmark1">
	  <para xmlns:xlink="http://www.w3.org/1999/xlink">Permet d'imposer aux paquets appartenant à une connexion la
	  marque définie pour le premier paquet de cette connexion.</para>
	</callout>
	<callout arearefs="connmark2">
	  <para xmlns:xlink="http://www.w3.org/1999/xlink">Si le paquet possède déjà une marque, celui-ci est accepté car cela signifie que ce
	  n'est pas le premier paquet d'une connexion.</para>
	</callout>
	<callout arearefs="connmark3">
	  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le premier paquet d'une nouvelle connexion FTP est marqué avec la marque 1.</para>
	</callout>
	<callout arearefs="connmark4">
	  <para xmlns:xlink="http://www.w3.org/1999/xlink">La marque du premier paquet sera considérée comme étant la
	  marque de tous les paquets de la connexion. Cette marque sera imposée
	  aux autres paquets associés à la connexion grâce à la première règle.</para>
	</callout>
      </calloutlist>
      </listitem>
    </varlistentry>
<!-- Fin option -->
  </variablelist>
  </sect4>
  </sect3>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">802.1Q VLAN Support</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">De nos jours, les réseaux locaux ou <acronym xmlns:xlink="http://www.w3.org/1999/xlink">LANs</acronym>
  (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Local Area Network</wordasword>) sont définis comme étant un
  domaine de diffusion unique. Les réseaux locaux virtuels ou
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">VLANs</acronym> permettent de définir des réseaux locaux logiques
  sans se soucier de la localisation physique du matériel. Ces
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">VLANs</acronym> sont identifiés par une balise. Suivant la
  configuration du commutateur, il est parfois nécessaire d'indiquer à quel
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">VLAN</acronym> appartient une trame qui est envoyée sur le réseau.
  C'est ici que le protocole IEEE 802.1Q intervient. Ce protocole va
  permettre le marquage des trames Ethernet.</para>

  <example xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de configuration du support VLAN</title>
  <para xmlns:xlink="http://www.w3.org/1999/xlink">But : définir l'interface eth0 comme appartenant au
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">VLAN</acronym> numéro 2.</para>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink">LinuxBox# </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">modprobe 8021q</command>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink">LinuxBox# </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">ifconfig eth0 0.0.0.0 up</command>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink">LinuxBox# </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">vconfig add eth0 2</command>
<prompt xmlns:xlink="http://www.w3.org/1999/xlink">LinuxBox# </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">ifconfig eth0.2 192.168.1.1 up</command>
</screen>
  </example>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">La figure ci-dessous propose un exemple de trame Ethernet avec le
  support du protocole IEEE 802.1Q.</para>
  <mediaobject xmlns:xlink="http://www.w3.org/1999/xlink">
  <imageobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <imagedata fileref="images/vlan.png" format="PNG" contentwidth="10.5cm" width="10cm"/>
  </imageobject>
  <textobject xmlns:xlink="http://www.w3.org/1999/xlink">
    <phrase xmlns:xlink="http://www.w3.org/1999/xlink">Exemple de trame Ethernet avec le protocole IEEE 802.1Q</phrase>
  </textobject>
  </mediaobject>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le document <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.inetdoc.net/articles/inter-vlan-routing/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Routage Inter-VLAN</citetitle></link> développe beaucoup plus en détails
  l'utilisation des <acronym xmlns:xlink="http://www.w3.org/1999/xlink">VLANs</acronym> sur GNU/Linux.</para>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">The IPX Protocol</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Ajoute le support du protocole <acronym xmlns:xlink="http://www.w3.org/1999/xlink">IPX</acronym>, principalement
  utilisé par les réseaux <trademark xmlns:xlink="http://www.w3.org/1999/xlink">Novell</trademark>. <acronym xmlns:xlink="http://www.w3.org/1999/xlink">IPX</acronym>
  est un protocole de couche 3 (couche réseau).</para>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Appletalk DDP</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Appletalk est le protocole de communication des ordinateurs
  <trademark xmlns:xlink="http://www.w3.org/1999/xlink">Apple</trademark>. Cette option permet à la machine Linux de
  pouvoir dialoguer avec les machines <trademark xmlns:xlink="http://www.w3.org/1999/xlink">Apple</trademark>. En
  utilisant le programme <application xmlns:xlink="http://www.w3.org/1999/xlink">netatalk</application>, Linux peut agir
  comme serveur d'impression et de fichiers pour Mac. Il pourra également
  accéder aux imprimantes Appletalk.</para>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="decnet">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">DECnet support</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">La société <trademark xmlns:xlink="http://www.w3.org/1999/xlink">Digital Equipment Corporation</trademark> a créé
  une architecture réseau complète qui porte le nom de <acronym xmlns:xlink="http://www.w3.org/1999/xlink">DNA</acronym>
  (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Digital Network Architecture</wordasword>). Cette architecture
  s'appuie sur une pile de protocole qui englobe l'ensemble des couches du
  modèle <acronym xmlns:xlink="http://www.w3.org/1999/xlink">OSI</acronym>. Les produits qui implémentent l'architecture
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">DNA</acronym> sont appelés produits <acronym xmlns:xlink="http://www.w3.org/1999/xlink">DECNet</acronym>. Par
  abus de langage, on désigne parfois le terme DECNet pour identifier un réseau
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">DNA</acronym>.</para> 

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Pour plus d'informations sur ce sujet, consulter le site officiel du
  support <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://sourceforge.net/apps/mediawiki/linux-decnet/">
  <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">DECnet for Linux</citetitle></link>.</para>
  </sect2>

<!-- Phil : Ajout de la rubrique 802.1d Ethernet Bridging
lien vers le cours sur les modes d'interconnexion réseau : Transmission par pont -->

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="networking.options.bridging">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">802.1d Ethernet Bridging</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Avec cette option, votre boîte Linux pourra être assimilée à un pont
  Ethernet ; ce qui signifie que les différents segments Ethernet connectés
  apparaîtront comme un seul réseau Ethernet. Plusieurs ponts de ce type
  peuvent fonctionner ensemble pour créer un réseau de segments Ethernet encore
  plus grand en utilisant l'algorithme de <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Spanning Tree
  Protocol</citetitle> (IEEE 802.1d). Comme le protocole IEEE 802.1d est un
  standard universel, les ponts Linux fonctionneront correctement avec des
  équipements tiers.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Pour utiliser un pont Ethernet, vous aurez besoin des outils de
  configuration de pont. Voir
  <filename xmlns:xlink="http://www.w3.org/1999/xlink">Documentation/networking/bridge.txt</filename> pour plus
  d'information. Lire aussi le <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://en.tldp.org/HOWTO/BRIDGE-STP-HOWTO/">
  <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Linux BRIDGE-STP-HOWTO</citetitle></link>.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Notez que si votre machine fonctionne en pont, elle contient plusieurs
  interfaces Ethernet. Le noyau n'est pas capable de reconnaître plus d'une
  interface au démarrage sans assistance. Pour plus de détails, lire le
  document <link xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.inetdoc.net/articles/ethernet/"><citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Technologie Ethernet</citetitle></link>.</para>
  </sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="linux.networking.userspace">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Les outils réseaux du noyau Linux</title>
  
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Le code des outils de configuration réseau ne faisant pas partie du
    noyau est généralement appelé : <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">userspace
    code</citetitle>.</para>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="linux.networking.userspace.if">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Configuration des interfaces réseaux</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">À partir de la version 2.2 du noyau LINUX, de nombreuses
  fonctionnalités sont apparues dans le support du protocole
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP/IP</acronym>, notamment au niveau du routage. Pour pouvoir
  utiliser ces nouveautés, les outils classiques tels que
  <command xmlns:xlink="http://www.w3.org/1999/xlink">ifconfig</command> ou <command xmlns:xlink="http://www.w3.org/1999/xlink">route</command> ne suffisent plus. Il
  convient d'utiliser un nouvel outil, appelé
  <systemitem xmlns:xlink="http://www.w3.org/1999/xlink">iproute2</systemitem>. Le paquet de la distribution
  <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">Debian GNU/Linux</citetitle> est baptisé
  <systemitem xmlns:xlink="http://www.w3.org/1999/xlink">iproute</systemitem>.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">La syntaxe générale pour l'outil iproute2 est la suivante :</para>

<synopsis xmlns:xlink="http://www.w3.org/1999/xlink">
Usage: ip [ OPTIONS ] OBJET { COMMAND | help }
où  OBJET := { link | addr | route | rule | neigh | tunnel |
                   maddr | mroute | monitor }
       OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] |
                    -f[amily] { inet | inet6 | dnet | link } | -o[neline] }
</synopsis>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Les différents objets permettent de voir ou de configurer un élément du
  réseau.</para>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">ip link</title>
  
  <para xmlns:xlink="http://www.w3.org/1999/xlink">L'objet link permet de visualiser l'état des périphériques réseaux et
  de les modifier. La syntaxe générale pour cette option est la
  suivante :</para>

<synopsis xmlns:xlink="http://www.w3.org/1999/xlink">
Usage: ip link set DEVICE { up | down | arp { on | off } |
	                     dynamic { on | off } |
	                     multicast { on | off } | txqueuelen PACKETS |
	                     name NEWNAME |
	                     address LLADDR | broadcast LLADDR |
	                     mtu MTU }
       ip link show [ DEVICE ]
</synopsis>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Cette option ne s'intéresse qu'au niveau 2 du modèle
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">OSI</acronym>.</para>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">ip address</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Cet objet permet d'attacher une ou plusieurs adresses
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">IPv4</acronym> ou <acronym xmlns:xlink="http://www.w3.org/1999/xlink">IPv6</acronym> à un périphérique
  réseau.</para>

<synopsis xmlns:xlink="http://www.w3.org/1999/xlink">
Usage: ip addr {add|del} IFADDR dev STRING
       ip addr {show|flush} [ dev STRING ] [ scope SCOPE-ID ]
                            [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ]
IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label STRING ] [ scope SCOPE-ID ]
SCOPE-ID := [ host | link | global | NUMBER ]
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ permanent | dynamic | secondary | primary |
           tentative | deprecated ]
</synopsis>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">La configuration de base d'une interface réseau ressemble à
  ceci :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"># ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255
# route add default gw 192.168.0.1
</screen>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Les commandes équivalentes avec l'outil
  <systemitem xmlns:xlink="http://www.w3.org/1999/xlink">iproute2</systemitem> sont les suivantes :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"># ip addr add 192.168.0.2/24 dev eth0 brodcast 192.168.0.255
# ip route add default dev eth0 via 192.168.0.1
</screen>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">ip rule</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le routage du trafic <acronym xmlns:xlink="http://www.w3.org/1999/xlink">IP</acronym> a été complètement revu avec
  le noyau 2.2. Avant cette version, la prise de décision ne se faisait qu'en
  consultant l'adresse de destination. Dans certaines circonstances, on peut
  souhaiter router les paquets IP en se basant sur d'autres champs :
  adresse source, champs TOS, etc.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le routage est maintenant basé sur l'existence d'un ensemble de règles,
  qui dirigent le paquet vers des tables de routage. L'ensemble de ces règles
  est vu comme une base de données par le noyau, que l'on appelle
  <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Routing Policy DataBase</wordasword> (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">RPDB</acronym>).
  Cette base de données de la politique de routage est en fait une liste
  linéaire de règles ordonnées par une valeur numérique de priorité. La gestion
  de ces règles se fait par l'intermédiaire de l'objet <option xmlns:xlink="http://www.w3.org/1999/xlink">rule</option>,
  dont voici la syntaxe :</para>

<synopsis xmlns:xlink="http://www.w3.org/1999/xlink">
Usage: ip rule [ list | add | del ] SELECTOR ACTION
SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK ]
            [ dev STRING ] [ pref NUMBER ]
ACTION := [ table TABLE_ID ] [ nat ADDRESS ]
          [ prohibit | reject | unreachable ]
          [ realms [SRCREALM/]DSTREALM ]
TABLE_ID := [ local | main | default | NUMBER ]
</synopsis>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Chaque règle est constituée d'un sélecteur et d'une action. Quand le
  noyau a besoin de prendre une décision sur le routage, la <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">Routing
  Policy DataBase</wordasword> (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">RPDB</acronym>) est scannée dans
  l'ordre des priorités croissantes. Pour chaque paquet, on compare le
  sélecteur de la règle et l'en-tête du paquet. Si il y a correspondance entre
  les deux, l'action est réalisée. En général, l'action consiste à se
  «brancher» sur une table de routage qui contient l'information utile. Si
  l'action ne parvient pas à déterminer une route, alors la règle suivante est
  examinée. La commande suivante permet de lister l'ensemble des règles
  définies dans la base <acronym xmlns:xlink="http://www.w3.org/1999/xlink">RPDB</acronym> :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"><prompt xmlns:xlink="http://www.w3.org/1999/xlink">$ </prompt><command xmlns:xlink="http://www.w3.org/1999/xlink">ip rule ls</command>
0:	from all lookup local 
32766:	from all lookup main 
32767:	from all lookup default 
</screen>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Ces lignes méritent quelques explications. Les chiffres de la colonne
  de gauche indiquent la priorité de la règle. Ensuite, on a le sélecteur. Dans
  ce cas, toutes les règles seront appliquées à tous les paquets
  (<wordasword xmlns:xlink="http://www.w3.org/1999/xlink">from all</wordasword>). Enfin, on a l'action. Le mot-clé
  <option xmlns:xlink="http://www.w3.org/1999/xlink">lookup</option> indique d'aller regarder la table de routage dont le
  nom suit.</para>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">ip route</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Une fois que le noyau a sélectionné la table à consulter, il recherche
  dans celle-ci les informations de routage proprement dites. Ces informations
  précisent le périphérique de sortie et éventuellement l'adresse de la
  prochaine passerelle. Par défaut, il y a trois tables de routage :
  <option xmlns:xlink="http://www.w3.org/1999/xlink">local</option>, <option xmlns:xlink="http://www.w3.org/1999/xlink">main</option> et
  <option xmlns:xlink="http://www.w3.org/1999/xlink">default</option>.</para>

  <orderedlist xmlns:xlink="http://www.w3.org/1999/xlink" numeration="arabic">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">local</option> : cette table est une table un peu
    spéciale ayant la plus grande priorité. Elle contient les routes pour les
    adresses locales et les adresses de diffusion.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">main</option> : cette table est la table de routage
    normale, et ce sont les informations contenues dans celle-ci qui seront
    affichées par la commande <command xmlns:xlink="http://www.w3.org/1999/xlink">ip route ls</command>.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">default</option> : cette table est généralement vide et
    n'est consultée que si les règles précédentes n'ont pas sélectionné le
    paquet.</para>
  </listitem>
  </orderedlist>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">La syntaxe associée à l'objet route est la suivante :</para>

<synopsis xmlns:xlink="http://www.w3.org/1999/xlink">
Usage: ip route { list | flush } SELECTOR
       ip route get ADDRESS [ from ADDRESS iif STRING ]
                            [ oif STRING ]  [ tos TOS ]
       ip route { add | del | change | append | replace | monitor } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
            [ table TABLE_ID ] [ proto RTPROTO ]
            [ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...
NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ]
           [ rtt NUMBER ] [ rttvar NUMBER ]
           [ window NUMBER] [ cwnd NUMBER ] [ ssthresh REALM ]
           [ realms REALM ]
TYPE := [ unicast | local | broadcast | multicast | throw |
          unreachable | prohibit | blackhole | nat ]
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
FLAGS := [ equalize ]
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
</synopsis>
  </sect2>
</sect1>

<sect1 xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="interco.noyau.filtering">
  <title xmlns:xlink="http://www.w3.org/1999/xlink">Configuration du filtrage</title>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Introduction</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">La sécurité informatique est un terme général qui cache de nombreux
  aspects, tels que la sécurité physique de la machine, le contrôle d'accès aux
  fichiers, etc. L'un des aspects de la sécurité concerne la sécurité des
  réseaux. Avec la démocratisation d'Internet, les tentatives d'intrusions se
  développent. Afin de limiter le nombres de ces attaques, le mieux est encore
  de filtrer dès l'entrée du réseau tout ce qui n'est pas sensé y entrer. Le
  système qui permet la mise en place de ce filtrage s'appelle un
  <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">firewall</wordasword> ou un «pare-feu» en français.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Un <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">firewall</wordasword> peut se définir comme un
  dispositif de protection (matériel et/ou logiciel) constituant un filtre
  entre un ordinateur ou un réseau local et un réseau non sûr (Internet ou un
  autre réseau local par exemple). On distingue deux grandes familles de
  <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">firewalls</wordasword> :</para>

  <itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Les <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">firewalls</wordasword> basés sur le filtrage
    réseau. Ces éléments fonctionnent au niveau <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">transmission
    de l'information</citetitle> des couches du modèle <acronym xmlns:xlink="http://www.w3.org/1999/xlink">OSI</acronym>.
    Le filtrage s'effectue en fonction des informations contenues dans les
    en-têtes des trames, des paquets (adresses source et destination) et des
    segments (ports source et destination). Ce type de filtrage ne s'intéresse
    pas au contenu des paquets.</para>
    </listitem>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink">Les <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">firewalls</wordasword> applicatifs ou de services. Ce
    type de filtrage permet de contrôler le <citetitle xmlns:xlink="http://www.w3.org/1999/xlink">traitement de
    l'information</citetitle>. Dans ce cas, l'information contenue dans le
    paquet peut être prise en compte. Les demandes de connexions sont dirigées
    vers un programme spécial appelé mandataire ou proxy de service. C'est ce
    dernier qui établira la connexion vers le service extérieur demandé.</para>
    </listitem>
  </itemizedlist>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Netfilter et iptables</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Pour pouvoir bénéficier des fonctions de filtrage réseau du noyau
  LINUX, il faut y intégrer l'option <guimenuitem xmlns:xlink="http://www.w3.org/1999/xlink">Network packet
  filtering</guimenuitem> lors de la compilation. Cette fonctionnalité est une
  structure générale qui permet à d'autres éléments de se «brancher» dessus.
  Pour pouvoir indiquer les différentes règles au noyau, on dispose de
  l'utilitaire appelé <command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command>.</para>
  
  <para xmlns:xlink="http://www.w3.org/1999/xlink">L'outil <command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command> utilise le concept de tables de
  règles, chaque table correspondant à une fonctionnalité d'examen du paquet.
  La table <option xmlns:xlink="http://www.w3.org/1999/xlink">filter</option> correspond au filtrage des paquets, la table
  <option xmlns:xlink="http://www.w3.org/1999/xlink">nat</option> concerne la traduction d'adresse et la table
  <option xmlns:xlink="http://www.w3.org/1999/xlink">mangle</option> permet la modification des paquets.</para>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Utilisation de l'outil iptables</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Dans un premier temps, <command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command> servira à la gestion
  des chaînes. Une chaîne peut être assimilée à une politique de sécurité
  associée à un flux de données. Par exemple, on peut définir une chaîne
  <option xmlns:xlink="http://www.w3.org/1999/xlink">INTERNET</option> pour désigner tous les flux venant de l'extérieur
  de votre réseau local. Trois chaînes par défaut existent, à savoir
  <option xmlns:xlink="http://www.w3.org/1999/xlink">INPUT</option>, <option xmlns:xlink="http://www.w3.org/1999/xlink">FORWARD</option> et <option xmlns:xlink="http://www.w3.org/1999/xlink">OUTPUT</option>.
  Si le nombre de règles est limité, on peut se contenter de celles-ci, mais si
  les règles deviennent conséquentes, il est préférable, pour faciliter la
  gestion, de créer de nouvelles chaînes. Les commandes de l'outil
  <command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command> associées à la gestion des chaînes sont les
  suivantes :</para>

  <variablelist xmlns:xlink="http://www.w3.org/1999/xlink">
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">-N</option></term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Création d'une nouvelle chaîne. Exemple <userinput xmlns:xlink="http://www.w3.org/1999/xlink">iptables -N
      INTERNET</userinput>.</para>
      </listitem>
    </varlistentry>
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">-X</option></term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Suppression d'une chaîne vide. Exemple <userinput xmlns:xlink="http://www.w3.org/1999/xlink">iptables -X
      INTERNET</userinput>.</para>
      </listitem>
    </varlistentry>
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">-P</option></term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Mise en place de la règle par défaut pour une chaîne existante.
      Exemple : <userinput xmlns:xlink="http://www.w3.org/1999/xlink">iptables -P INPUT DROP</userinput>. Seules les
      chaînes <option xmlns:xlink="http://www.w3.org/1999/xlink">INPUT</option>, <option xmlns:xlink="http://www.w3.org/1999/xlink">FORWARD</option> et
      <option xmlns:xlink="http://www.w3.org/1999/xlink">OUTPUT</option> peuvent avoir une règle par défaut et les seules
      cibles disponibles sont <option xmlns:xlink="http://www.w3.org/1999/xlink">ACCEPT</option> et
      <option xmlns:xlink="http://www.w3.org/1999/xlink">DROP</option>.</para>
      </listitem>
    </varlistentry>
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">-L</option></term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Lister les règles d'une chaîne. Exemple : <userinput xmlns:xlink="http://www.w3.org/1999/xlink">iptables
      -L INTERNET</userinput>.</para>
      </listitem>
    </varlistentry>
    <varlistentry xmlns:xlink="http://www.w3.org/1999/xlink">
      <term xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">-F</option></term>
      <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
      <para xmlns:xlink="http://www.w3.org/1999/xlink">Effacer les règles d'une chaîne. Exemple : <userinput xmlns:xlink="http://www.w3.org/1999/xlink">iptables
      -F INTERNET</userinput>.</para>
      </listitem>
    </varlistentry>
  </variablelist>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Dans un deuxième temps, il convient de construire les règles à
l'intérieur des différentes chaînes. L'ajout d'une règle s'effectue avec
l'option <option xmlns:xlink="http://www.w3.org/1999/xlink">-A</option> de l'outil <command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command>, tandis que
l'effacement d'une règle se fait avec l'option <option xmlns:xlink="http://www.w3.org/1999/xlink">-D</option>. Les
principales spécifications sur lesquelles les règles peuvent s'appuyer sont les
suivantes :</para>

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink" mark="opencircle">
<listitem xmlns:xlink="http://www.w3.org/1999/xlink"><para xmlns:xlink="http://www.w3.org/1999/xlink">-s : spécifie l'adresse IP source</para></listitem>
<listitem xmlns:xlink="http://www.w3.org/1999/xlink"><para xmlns:xlink="http://www.w3.org/1999/xlink">-d : spécifie l'adresse IP de destination</para></listitem>
<listitem xmlns:xlink="http://www.w3.org/1999/xlink"><para xmlns:xlink="http://www.w3.org/1999/xlink">-p : spécifie le protocole. Le protocole peut être tcp, udp
ou icmp</para></listitem>
<listitem xmlns:xlink="http://www.w3.org/1999/xlink"><para xmlns:xlink="http://www.w3.org/1999/xlink">-i : spécifie le nom de l'interface physique à travers
laquelle les paquets entrent</para></listitem>
<listitem xmlns:xlink="http://www.w3.org/1999/xlink"><para xmlns:xlink="http://www.w3.org/1999/xlink">-o : spécifie le nom de l'interface physique à travers
laquelle les paquets sortent</para></listitem>
</itemizedlist>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Ces spécifications sont les plus générales, mais il en existe bien
d'autres qui sont parfaitement listées dans la page de manuel de l'outil
<command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command>.</para>
</sect2>

<sect2 xmlns:xlink="http://www.w3.org/1999/xlink"><title xmlns:xlink="http://www.w3.org/1999/xlink">Le filtrage avec iptables</title>
<para xmlns:xlink="http://www.w3.org/1999/xlink">
Avec <command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command>, les différentes règles de filtrage sont
organisées et regroupées dans des chaînes. Par défaut, il y a trois chaînes
appelées <parameter xmlns:xlink="http://www.w3.org/1999/xlink">INPUT</parameter>, <parameter xmlns:xlink="http://www.w3.org/1999/xlink">OUTPUT</parameter> et
<parameter xmlns:xlink="http://www.w3.org/1999/xlink">FORWARD</parameter>. L'arrangement de ces chaînes est proposé sur le
schéma suivant :</para>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">                             _____
   Incoming                 /     \         Outgoing
          --&gt;[Routing ]---&gt;|FORWARD|-------&gt;
             [Decision]     \_____/    ^
              |                        |
              v                      ____
             ___                    /    \
            /   \                  |OUTPUT|
           |INPUT|                  \____/
            \___/                      ^
              |                        |
               ----&gt; Local Process ----
   (c)2000 Rusty Russell
</screen>

<para xmlns:xlink="http://www.w3.org/1999/xlink">Les différentes chaînes sont consultées suivant la procédure suivante :
<orderedlist xmlns:xlink="http://www.w3.org/1999/xlink" numeration="arabic">
<listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">
Quand un paquet arrive, le noyau décide de la destination de ce paquet :
c'est la phase de routage.
  </para>
</listitem>
<listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">
Si le paquet est destiné à la machine, le paquet descend dans le diagramme
et la chaîne INPUT est appliquée. Si le paquet passe cette chaîne, celui-ci
sera transmis à l'un des processus locaux.
  </para>
</listitem>
<listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">
Si le routage décide que le paquet est destiné à un autre réseau, alors
c'est la chaîne <parameter xmlns:xlink="http://www.w3.org/1999/xlink">FORWARD</parameter> qui est appliquée.
  </para>
</listitem>
<listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">
Enfin, les paquets envoyés par un processus local seront examinés par la
chaîne OUTPUT. Si le paquet est accepté, celui-ci sera envoyé quelle que soit
son interface de sortie.
  </para>
</listitem>
</orderedlist>

Une chaîne est composée d'une liste de règles. Une règle décide de l'avenir
d'un paquet en fonction de son en-tête. Les règles d'une chaîne
sont examinées les unes après les autres jusqu'à ce qu'une correspondance soit
trouvée. Finalement, si aucune correspondance n'est trouvée, la règle par
défaut, policy, est appliquée. On associe à chaque règle une action à
réaliser qui décide de l'avenir du paquet. Les fonctions principales sont
les suivantes :

<itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink" mark="opencircle">
<listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">
ACCEPT : cette cible permet d'accepter les paquets.
  </para>
</listitem>
<listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">
DROP : cette cible permet de refuser les paquets sans avertir le demandeur
que sa demande de connexion a été refusée.
  </para>
</listitem>
<listitem xmlns:xlink="http://www.w3.org/1999/xlink">
  <para xmlns:xlink="http://www.w3.org/1999/xlink">
REJECT : cette cible permet de refuser les paquets, mais en avertissant le demandeur
que sa demande de connexion a été refusée en lui envoyant un paquet RESET
(RST).
  </para>
</listitem>
</itemizedlist>
</para>
</sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Le suivi des communications, <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">stateful
    firewalling</wordasword></title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">L'une des grandes nouveautés de la partie réseau du noyau 2.4 est la
  possibilité du suivi des communications. Ceci fait référence à la capacité du
  noyau à maintenir une table de suivi des communications en se basant, par
  exemple, sur le couple adresses (source et destination), sur les numéros de
  ports (source et destination), sur les types de protocoles ou l'état de la
  communication. Les pare-feux disposant de cette fonctionnalité sont appelés
  <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">stateful firewalls</wordasword>. Dans ce cas, les paquets sont
  inspectés dans le contexte d'une session. Par exemple, un segment
  <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym> avec le bit <acronym xmlns:xlink="http://www.w3.org/1999/xlink">ACK</acronym> activé sera rejeté
  si aucun segment <acronym xmlns:xlink="http://www.w3.org/1999/xlink">SYN</acronym> correspondant n'a été reçu
  auparavant.</para>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Le suivi des «communications» se base sur trois états :</para>

  <itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">NEW</option> : correspond à la demande de communication
    <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym> initiale, au premier datagramme UDP ou au premier
    message <acronym xmlns:xlink="http://www.w3.org/1999/xlink">ICMP</acronym>.</para>
    </listitem>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">ESTABLISHED</option> : si une entrée de la table de
    suivi des communications correspond, alors le paquet appartient à une communication
    de type <option xmlns:xlink="http://www.w3.org/1999/xlink">ESTABLISHED</option>. Dans le cas du protocole
    <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym>, on se réfère au bit <acronym xmlns:xlink="http://www.w3.org/1999/xlink">ACK</acronym> après
    qu'une communication ait été initiée. Dans le cas de datagrammes UDP c'est
    l'échange entre deux hôtes et les correspondances de numéros de ports qui
    sont prises en compte. Enfin, les messages <acronym xmlns:xlink="http://www.w3.org/1999/xlink">ICMP</acronym>
    <option xmlns:xlink="http://www.w3.org/1999/xlink">echo-reply</option> doivent correspondre aux requêtes
    <option xmlns:xlink="http://www.w3.org/1999/xlink">echo-request</option>.</para>
    </listitem>
    <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">RELATED</option> : se réfère aux messages d'erreurs
    <acronym xmlns:xlink="http://www.w3.org/1999/xlink">ICMP</acronym> correspondant à une «communication»
    <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym> ou <acronym xmlns:xlink="http://www.w3.org/1999/xlink">UDP</acronym> déjà présente dans la
    table de suivi.</para>
    </listitem>
  </itemizedlist>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">D'un point de vue pratique, le module de suivi des communications sera
  activé grâce à l'option <option xmlns:xlink="http://www.w3.org/1999/xlink">-m state</option> de la commande
  <command xmlns:xlink="http://www.w3.org/1999/xlink">iptables</command>. L'option <option xmlns:xlink="http://www.w3.org/1999/xlink">--state</option> permet de
  spécifier l'état de la communication à considérer.</para>

  <example xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">Autorisation d'une connexion ssh vers l'extérieur</title>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"># iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A OUTPUT -p tcp -d 0/0 --dport 22 -m state --state NEW -j ACCEPT
</screen>
  </example>
  </sect2>

  <sect2 xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">La traduction d'adresse (NAT)</title>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">La traduction d'adresse est une technique qui permet de remplacer une
  adresse source ou destination par une autre. La traduction d'adresse du noyau
  2.4 supporte le <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">source NAT</wordasword> (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">SNAT</acronym>)
  et le <wordasword xmlns:xlink="http://www.w3.org/1999/xlink">destination NAT</wordasword> (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">DNAT</acronym>). La
  table <option xmlns:xlink="http://www.w3.org/1999/xlink">nat</option> permet la modification des adresses source et
  destination grâce à deux chaînes par défaut :</para>

  <itemizedlist xmlns:xlink="http://www.w3.org/1999/xlink">
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">PREROUTING</option> : permet la modification de
    l'adresse de destination (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">DNAT</acronym>) avant que le paquet ne
    passe par les fonctions de routage.</para>
  </listitem>
  <listitem xmlns:xlink="http://www.w3.org/1999/xlink">
    <para xmlns:xlink="http://www.w3.org/1999/xlink"><option xmlns:xlink="http://www.w3.org/1999/xlink">POSTROUTING</option> : permet la modification de
    l'adresse source (<acronym xmlns:xlink="http://www.w3.org/1999/xlink">SNAT</acronym>) après que le paquet soit passé
    par les fonctions de routage.</para>
  </listitem>
</itemizedlist>

<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80">        _____                                     _____
       /     \                                   /     \
     PREROUTING --&gt;[décision]-----------------&gt;POSTROUTING-----&gt;
       \D-NAT/     [de routage]                  \S-NAT/
        -----          |                            ^
                       |                          __|__
                       |                         /     \
                       |                        | OUTPUT|
                       |                         \D-NAT/
                       |                            ^
                       |                            |
                       --------&gt;Processus local------
</screen>

  <para xmlns:xlink="http://www.w3.org/1999/xlink">Intéressons nous dans un premier temps à la traduction d'adresse source
  ou <acronym xmlns:xlink="http://www.w3.org/1999/xlink">S-NAT</acronym>. Il existe en deux formes distinctes au sein des
  noyaux (2.4|2.6) : <option xmlns:xlink="http://www.w3.org/1999/xlink">SNAT</option> et <option xmlns:xlink="http://www.w3.org/1999/xlink">MASQUERADE</option>.
  <option xmlns:xlink="http://www.w3.org/1999/xlink">SNAT</option> est la forme standard de la traduction d'adresse
  source, tandis que la deuxième est plus spécialisée au cas d'adresses IP
  assignées dynamiquement. La distinction entre les deux formes est
  subtile.</para>
  
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Avec <option xmlns:xlink="http://www.w3.org/1999/xlink">SNAT</option>, la communication est maintenue pendant un
  certain temps d'attente lors d'un dysfonctionnement. Si cette communication est
  rétablie suffisamment rapidement, les programmes réseaux ne seront pas
  affectés et le trafic <acronym xmlns:xlink="http://www.w3.org/1999/xlink">TCP</acronym> interrompu sera retransmis, dans
  la mesure où l'adresse IP n'a pas été changée.</para>
  
  <para xmlns:xlink="http://www.w3.org/1999/xlink">Avec la forme <option xmlns:xlink="http://www.w3.org/1999/xlink">MASQUERADE</option>, il n'y a pas de temps
  d'attente quand la connexion est rompue et les informations concernant la
  traduction d'adresse sont effacées. Ceci permet d'utiliser immédiatement la
  nouvelle adresse IP qui peut être attribuée lors d'une reconnexion à un
  fournisseur d'accès, par exemple.</para>

  <example xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">SNAT standard</title>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"># iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.192.192.192
</screen>
  </example>
  <example xmlns:xlink="http://www.w3.org/1999/xlink">
    <title xmlns:xlink="http://www.w3.org/1999/xlink">MASQUERADE</title>
<screen xmlns:xlink="http://www.w3.org/1999/xlink" width="80"># iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
</screen>
  </example>
  </sect2>
</sect1>

</article>

