 
 
 
Cette section traite d'informations spécifiques sur IP et Ethernet. Les sous-sections ont été rassemblées car je pense que ce sont les plus intéressantes de ce qui était appelé autrefois ``Technologies spécifiques''. Toute personne ayant un réseau local doit pouvoir tirer bénéfice de ces bonnes choses.
Les noms de périphériques Ethernet sont `eth0', `eth1',
`eth2' etc. La première carte détectée par le noyau devient
`eth0' et le reste est nommé dans l'ordre de détection.
par défaut, le noyau Linux ne détecte qu'un seul dispositif Ethernet, vous devez donc donner des arguments sur la ligne de commande pour forcer le noyau à détecter des autres cartes.
Pour savoir comment faire marcher votre carte Ethernet sous Linux référez-vous au Ethernet-HOWTO.
Une fois que vous avez compilé convenablement votre noyau pour supporter les cartes Ethernet, la configuration des cartes est aisée.
Typiquement vous faites ainsi (ce que la plupart des distributions font automatiquement pour vous, si vous les avez configurées pour supporter votre carte ethernet) :
root# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
root# route add -net 192.168.0.0 netmask 255.255.255.0 eth0
La plupart des pilotes Ethernet ont été développés 
par Donald Becker,
becker@CESDIS.gsfc.nasa.gov.
Le nom du périphérique EQL est `eql'. Avec les sources 
standards du noyau vous ne pouvez avoir qu'un seul périphérique 
EQL par machine. EQL permet d'utiliser plusieurs lignes point à point 
telles que PPP, SLIP ou PLIP comme si c'était un seul lien logique de 
transport tcp/ip. C'est souvent moins cher d'utiliser plusieurs lignes 
à faible débit que d'avoir une ligne à haut débit.
Options de compilation du noyau :
Network device support --->
    [*] Network device support
    <*> EQL (serial line load balancing) support
Pour supporter ce mécanisme la machine à l'autre bout de la ligne doit également supporter EQL. Linux, Livingstone Portmasters et de nouveaux serveurs de ligne supportent des systèmes compatibles.
Pour configurer EQL vous avez besoin des outils eql, disponibles sur : sunsite.unc.edu.
La configuration est plutôt directe. Vous commencez par configurer l'interface eql. C'est exactement comme un autre périphérique réseau. Vous configurez l'adresse IP et le mtu en utilissant l'outil ifconfig , comme ceci :
root# ifconfig eql 192.168.10.1 mtu 1006
Ensuite vous devez initialiser manuellement chacune des lignes que vous allez utiliser. Ce peut être toute combinaison de périphériques réseau point à point. La façon d'initialiser les connexions dépend du type de lien, voyez les paragraphes appropriés pour d'autres informations.
Enfin vous devez associer le lien série et le dispositif EQL, cela s'appelle `asservissement' (enslaving) et est réalisé avec la commande eql_enslave comme suit :
root# eql_enslave eql sl0 28800
root# eql_enslave eql ppp0 14400
Pour libérer une ligne d'un périphérique EQL vous utilisez la commande eql_emancipate comme ci-dessous :
root# eql_emancipate eql sl0
Vous ajoutez le routage comme vous le feriez pour tout lien point 
à point, sauf que vos routes doivent se rapporter au dispositif
eql plutôt qu'aux périphériques séries 
eux-mêmes. Typiquement vous devriez utiliser :
root# route add default eql
Le pilote EQL fut développé par Simon Janes, simon@ncm.com.
Les possibilités d'enregistrement IP du noyau Linux vous permettent de recueillir et d'analyser les données d'utilisation du réseau. Les données collectées comprennent le nombre de paquets et le nombre d'octets en cumul depuis la dernière remise à zéro. Vous avez à votre disposition une grande variété de réglages pour obtenir les données que vous désirez. Cette option a été enlevée du 2.1.102, car l'ancien dispositif pare-feu basé sur ipfwadm a été remplacé par ``ipfwchains''.
Options de compilation noyau :
Networking options  --->
    [*] IP: accounting
Après avoir compilé et installé le noyau vous devez utiliser la commande ipfwadm pour configurer l'enregistrement IP. Il y a différentes possibilités pour choisir les informations à enregistrer. J'ai pris un exemple simplifié qui pourrait vous être utile; lisez plutôt la page de manuel ipfwadm pour plus d'informations.
Scenario : Vous avez un réseau Ethernet qui est relié à l'Internet via une liaison PPP. Sur l'Ethernet vous avez une machine qui offre un grand nombre de services et vous voulez savoir quel trafic est engendré par le trafic ftp et ww, aussi bien que le trafic total tcp et udp.
Vous pouvez utiliser une commande qui ressemble à ceci, qui se présente comme un script shell :
        #!/bin/sh
        #
        # Donne les réglages d'enregistrement
        ipfwadm -A -f
        #
        # Met en place les raccourcis
        localnet=44.136.8.96/29
        any=0/0
        # Ajoute des réglages pour le segment Ethernet local
        ipfwadm -A in  -a -P tcp -D $localnet ftp-data
        ipfwadm -A out -a -P tcp -S $localnet ftp-data
        ipfwadm -A in  -a -P tcp -D $localnet www
        ipfwadm -A out -a -P tcp -S $localnet www
        ipfwadm -A in  -a -P tcp -D $localnet
        ipfwadm -A out -a -P tcp -S $localnet
        ipfwadm -A in  -a -P udp -D $localnet
        ipfwadm -A out -a -P udp -S $localnet
        #
        # Réglages par défaut
        ipfwadm -A in  -a -P tcp -D $any ftp-data
        ipfwadm -A out -a -P tcp -S $any ftp-data
        ipfwadm -A in  -a -P tcp -D $any www
        ipfwadm -A out -a -P tcp -S $any www
        ipfwadm -A in  -a -P tcp -D $any
        ipfwadm -A out -a -P tcp -S $any
        ipfwadm -A in  -a -P udp -D $any
        ipfwadm -A out -a -P udp -S $any
        #
        # Liste les réglages
        ipfwadm -A -l -n
        #
        
Les noms ``ftp-data'' et ``www'' se réfèrent aux lignes du fichier
/etc/services.
La dernière commande liste chacune des règles d'enregistrement et 
affiche le total.
Il est important de noter, lorsque l'on analyse les enregistrement IP, que les totaux sont incrémentés à chaque fois, donc pour connaitre les différences vous devez exécuter les opérations mathématiques nécessaires. Par exemple si je veux savoir combien de données ne venaient pas de ftp, telnet, rlogin ou www je dois soustraire les totaux individuels correspondant à chaque port.
root# ipfwadm -A -l -n
IP accounting rules
 pkts bytes dir prot source               destination          ports
    0     0 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> 20
    0     0 out tcp  44.136.8.96/29       0.0.0.0/0            20 -> *
   10  1166 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> 80
   10   572 out tcp  44.136.8.96/29       0.0.0.0/0            80 -> *
  252 10943 in  tcp  0.0.0.0/0            44.136.8.96/29       * -> *
  231 18831 out tcp  44.136.8.96/29       0.0.0.0/0            * -> *
    0     0 in  udp  0.0.0.0/0            44.136.8.96/29       * -> *
    0     0 out udp  44.136.8.96/29       0.0.0.0/0            * -> *
    0     0 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> 20
    0     0 out tcp  0.0.0.0/0            0.0.0.0/0            20 -> *
   10  1166 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> 80
   10   572 out tcp  0.0.0.0/0            0.0.0.0/0            80 -> *
  253 10983 in  tcp  0.0.0.0/0            0.0.0.0/0            * -> *
  231 18831 out tcp  0.0.0.0/0            0.0.0.0/0            * -> *
    0     0 in  udp  0.0.0.0/0            0.0.0.0/0            * -> *
    0     0 out udp  0.0.0.0/0            0.0.0.0/0            * -> *
# 
On accède au nouveau code d'enregistrement par des ``chaînes IP pare-feu''.
Voir 
La page d'accueil des chaînes IP pour plus d'informations. Entre autres
vous devrez utiliser ipchains au lieu de ipfwadm pour configurer
vos filtres. (d'après Documentations/Changes dans les sources du
dernier noyau).
 
Il y a des applications où être en mesure d'affecter plusieurs adresses IP à un seul périphérique réseau pourrait être utile. Certains fournisseurs d'accès à l'Internet utilise souvent cette possibilité pour fournir des offres www et ftp `à la carte' pour leurs clients. Vous pouvez vous référer au mini-HOWTO IP-Aliasing pour plus d'informations.
Options de compilation du noyau :
Networking options  --->
    ....
    [*] Network aliasing
    ....
    <*> IP: aliasing support
<nom de périphérique> : <numéro de périphérique virtuel>, par ex. eth0:0,
ppp0:10 etc. Notez que le pilote de périphérique ifname:number
ne peut être configuré qu'après le réglage de l'interface principale.
Par exemple, supposons que vous ayez un réseau Ethernet avec simultanément deux sous-réseaux IP et que vous vouliez que votre machine ait un accès direct aux deux, vous pouvez faire quelque chose comme ceci :
        root# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
        root# route add -net 192.168.1.0 netmask 255.255.255.0 eth0
        root# ifconfig eth0:0 192.168.10.1 netmask 255.255.255.0 up
        root# route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0
        
-' au bout de son nom 
et et vous faites aussi simplement que ça :
       root# ifconfig eth0:0- 0
       
Le pare-feu IP et les publications le concernant sont traités de manière plus appronfondies dans le document Firewall-HOWTO. Le pare-feu IP vous permet de sécuriser votre machine contre les accès réseau non-autorisés en filtrant, ou acceptant, des datagrammes venant de, ou allant vers, des adresses IP de votre choix. Il y a différentes règles : le filtrage en entrée, le filtrage en sortie, et le filtrage en retransmission. Les règles en entrée s'appliquent aux datagrammes qui sont reçus par un dispositif réseau. Les règles en sortie s'appliquent aux datagrammes qui sont émis par un dispositif réseau. Les règles en retransmission s'appliquent aux datagrammes qui ne sont pas pour cette machine, c'est à dire les datagrammes qui seront reroutés.
Options de compilation noyau :
Networking options  --->
    [*] Network firewalls
    ....
    [*] IP: forwarding/gatewaying
    ....
    [*] IP: firewalling
    [ ] IP: firewall packet logging
Vraisemblablement l'utilisation la plus courante du pare-feu IP est lorsque vous utilisez votre machine Linux comme routeur et passerelle pare-feu et que vous voulez protéger votre réseau local contre les accès extérieurs non autorisés.
La configuration suivante est due à Arnt Gulbrandsen,
<agulbra@troll.no>.
L'exemple décrit une configuration de pare-feu pour une machine Linux /pare-feu/routeur illustrée par ce diagramme :
-                                   -
 \                                  | 172.16.37.0
  \                                 |   /255.255.255.0
   \                 ---------      |
    |  172.16.174.30 | Linux |      |
NET =================|  f/w  |------|    ..37.19
    |    PPP         | router|      |  --------
   /                 ---------      |--| Mail |
  /                                 |  | /DNS |
 /                                  |  --------
-                                   -
Les commandes suivantes doivent être normalement placées dans un 
fichier rc de telle sorte qu'elles seront démarrées 
automatiquement à chaque redémarrage du système. Pour une 
sécurité maximum, elles devront être effectuées
après la configuration des interfaces réseau,  
mais avant le montage de ces interfaces pour 
éviter que quelqu'un puisse se connecter pendant que la machine 
pare-feu reboute.
        #!/bin/sh
        # Nettoie la table des règles de 'Forwarding'
        # Change le réglage par défaut en 'accept'
        #
        /sbin/ipfwadm -F -f
        /sbin/ipfwadm -F -p accept
        #
        # .. et pour 'Incoming'
        #
        /sbin/ipfwadm -I -f
        /sbin/ipfwadm -I -p accept
        # En premier, dévérouille l'interface PPP 
        # J'aimerais bien utiliser '-a deny' au lieu de '-a reject -y' mais
        # il serait alors impossible d'établir des connexions également sur
        # cette interface. L'utilisation de -o fait en sorte que tous
        # les datagrammes rejetés sont enregistrés. Cela occupe de l'espace
        # disque avec pour compensation la connaissance sur l'attaque due
        # à une erreur de configuration.
        #
        /sbin/ipfwadm -I -a reject -y -o -P tcp -S 0/0 -D 172.16.174.30
        # Rejette certains types de paquets visiblement faux:
        # Rien ne doit venir des adresses multicast/anycast/broadcast s
        #
        /sbin/ipfwadm -F -a deny -o -S 224.0/3 -D 172.16.37.0/24
        #
        # et aucune chose venant du réseau loopback ne doit être vu sur l'air
        #
        /sbin/ipfwadm -F -a deny -o -S 127.0/8 -D 172.16.37.0/24
        # accepte les connexions entrantes SMTP et DNS, mais seules pour
        # le serveur  de courrier et le serveur de noms
        #
        /sbin/ipfwadm -F -a accept -P tcp -S 0/0 -D 172.16.37.19 25 53
        #
        # DNS utilise UDP aussi bien que TCP, ce qui l'autorise donc quand
        # le serveur de noms est interrogé
        #
        /sbin/ipfwadm -F -a accept -P udp -S 0/0 -D 172.16.37.19 53
        #
        # mais pas de "réponses" arrivant sur les ports dangereux tels que
        # NFS et l'extension NFS de Larry McVoy. Si vous utilisez squid
        # ajoutez son port ici.
        #
        /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 53 \
                -D 172.16.37.0/24 2049 2050
        # les réponses aux autres ports utilisateurs sont autorisées
        #
        /sbin/ipfwadm -F -a accept -P udp -S 0/0 53 \
                -D 172.16.37.0/24 53 1024:65535
        # Rejette les connexions entrantres vers identd
        # Nous utilisons 'reject' dans ce cas en sorte qu'il soit dit à l'hôte
        # entrant de ne pas persévérer, sinon nous devrons attendre que
        # identd s'arrête.
        #
        /sbin/ipfwadm -F -a reject -o -P tcp -S 0/0 -D 172.16.37.0/24 113
        # Accepte des connexions sur des services en provenance des réseaux
        # 192.168.64 et 192.168.65, qui sont des amis de confiance.
        #
        /sbin/ipfwadm -F -a accept -P tcp -S 192.168.64.0/23 \
                -D 172.16.37.0/24 20:23
        # accepte et laisse passer tout ce qui vient de l'intérieur
        #
        /sbin/ipfwadm -F -a accept -P tcp -S 172.16.37.0/24 -D 0/0
        # rejette la plupart des autres connexions TCP entrantes et les
        # enregistre (ajoutez 1:1023 si ftp ne fonctionne pas)
        #
        /sbin/ipfwadm -F -a deny -o -y -P tcp -S 0/0 -D 172.16.37.0/24
        # ... pour UDP également
        #
        /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 -D 172.16.37.0/24
On accède au nouveau code d'enregistrement par des ``chaînes pare-feu IP''.
Voir 
La page d'accueil des chaînes IP pour plus d'informations. Entre autres
vous devrez utiliser ipchains au lieu de ipfwadm pour configurer
vos filtres. (D'après Documentations/Changes dans les sources du
dernier noyau).
 
Pourquoi vouloir encapsuler des paquets IP dans d'autres paquets IP? Cela semble bizarre si vous n'avez jamais vu d'applications auparavant. Il y a deux endroits où c'est utilisé : le Mobile-IP et l'IP-Multicast. C'est dans un environnement qui est peut-être le plus largement utilisé et qui est le moins connu : le radio-amateurisme.
Options de compilation du noyau :
Networking options  --->
    [*] TCP/IP Networking
    [*] IP: forwarding/gatewaying
    ....
    <*> IP tunelling
Les périphériques IP tunnel s'appellent `tunl0', `tunl1', etc..
"Mais pourquoi ?" D'accord. D'accord. Les règles de routage classiques spécifient qu'un réseau IP comprend une adresse IP et un masque de réseau. Ceci fournit un ensemble d'adresses contiguës qui peuvent toutes être routées par l'intermédiaire d'une seule entrée de routage. Cela marche, mais signifie que vous ne pouvez utiliser une seule adresse uniquement lorsque vous êtes connecté à un point du réseau auquelle elle appartient. Dans la plupart des cas, il n'y a pas de problèmes, mais si vous êtes en mouvement alors vous ne pouvez pas rester connecté au même endroit tout le temps. L'encapsulation IP/IP ( IP tunneling) vous permet de passer outre cette contrainte en permettant aux paquets destinés à votre adresse d'être enveloppés et redirigés vers une autre adresse. Si vous savez que vous allez opérer depuis un autre réseau IP pour quelques temps, vous pouvez régler une machine qui est chez vous pour accepter des paquets destinés à votre adresse IP et les rediriger vers l'adresse que vous allez utiliser provisoirement.
Comme toujours, je pense qu'un schéma m'épargnera beaucoup de texte confus, aussi en voici un :
 192.168.1.24                         192.168.2.24
     -                                    -
     |      ppp0 =           ppp0 =       |
     |  aaa.bbb.ccc.ddd  fff.ggg.hhh.iii  |
     |                                    |
     |   /-----\                 /-----\  |
     |   |     |        //       |     |  |
     |---|  A  |------//---------|  B  |  |
     |   |     |    //           |     |  |
     |   \-----/                 \-----/  |
     |                                    |
     -                                    -
Le routeur Linux `A' sera configuré comme suit :
        #!/bin/sh
        PATH=/sbin:/usr/sbin
        mask=255.255.255.0
        remotegw=fff.ggg.hhh.iii
        #
        # configuration éthernet
        ifconfig eth0 192.168.1.1 netmask $mask up
        route add -net 192.168.1.0 netmask $mask eth0
        #
        # ppp0 configuration (start ppp link, set default route)
        pppd
        route add default ppp0
        #
        # configuration du périphérique de tunneling
        ifconfig tunl0 192.168.1.1 up
        route add -net 192.168.2.0 netmask $mask gw $remotegw tunl0
        
Le routeur Linux `B' sera configuré comme suit :
        #!/bin/sh
        PATH=/sbin:/usr/sbin
        mask=255.255.255.0
        remotegw=aaa.bbb.ccc.ddd
        #
        # configuration éthernet
        ifconfig eth0 192.168.2.1 netmask $mask up
        route add -net 192.168.2.0 netmask $mask eth0
        #
        # ppp0 configuration (start ppp link, set default route)
        pppd
        route add default ppp0
        #
        # configuration du périphérique de tunneling
        ifconfig tunl0 192.168.2.1 up
        route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0
        
La commande :
root# route add -net 192.168.1.0 netmask $mask0 gw $remotegw tunl0
192.168.1.0/24 dans un paquet d'encapsulation ayant pour adresses de
destination
aaa.bbb.ccc.ddd'.
Notez que les configurations sont inversées à l'autre bout.
Le périphérique tunnel utilise
`gw' dans la commande route comme destination du paquet IP
où se trouve le datagramme qu'il doit router.
Cette machine doit savoir comment `désencapsuler' les paquets IPIP,
c'est à dire qu'elle doit aussi être configurée comme
périphérique tunnel.
Ce n'est pas tout un réseau que vous aurez à router. Vous  
pouvez par exemple ne router qu'une seule adresse IP. Dans ce cas vous
devrez configurer le périphérique
tunl sur la machine `distante' avec sa propre adresse IP et à
l'extrémité A n'utiliser qu'une route hôte (avec Proxy
Arp) plutôt qu'une route réseau via le périphérique 
tunnel. Refaisons et modifions notre configuration de manière 
appropriée. Maintenant nous avons seulement l'hôte
`B' qui veut agir comme si il était à la fois 
connecté à l'Internet et également au réseau distant
supporté par l'hôte
`A' :
 192.168.1/24
     -
     |      ppp0 =                ppp0 =
     |  aaa.bbb.ccc.ddd      fff.ggg.hhh.iii
     |
     |   /-----\                 /-----\
     |   |     |       //        |     |
     |---|  A  |------//---------|  B  |
     |   |     |     //          |     |
     |   \-----/                 \-----/
     |                      aussi: 192.168.1.12
     -
Le routeur Linux  `A' sera configuré comme suit :
        #!/bin/sh
        PATH=/sbin:/usr/sbin
        mask=255.255.255.0
        remotegw=fff.ggg.hhh.iii
        #
        # configuration éthernet
        ifconfig eth0 192.168.1.1 netmask $mask up
        route add -net 192.168.1.0 netmask $mask eth0
        #
        # configuration de ppp0 (démarre le lien ppp link, règle la route par
        # défaut)
        pppd
        route add default ppp0
        #
        # configuration du périphérique de tunneling
        ifconfig tunl0 192.168.1.1 up
        route add -host 192.168.1.12 gw $remotegw tunl0
        #
        # Proxy ARP pour l'hôte distant
        arp -s 192.168.1.12 xx:xx:xx:xx:xx:xx pub
L'hôte Linux `B' sera configuré comme suit :
        #!/bin/sh
        PATH=/sbin:/usr/sbin
        mask=255.255.255.0
        remotegw=aaa.bbb.ccc.ddd
        #
        # configuration de ppp0 (démarre le lien ppp, règle la route par défaut)
        pppd
        route add default ppp0
        #
        # configuration du périphérique de tunelling
        ifconfig tunl0 192.168.1.12 up
        route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0
        
Ce type de configuration est vraiment typique d'une application IP-Mobile, où un simple hôte veut seulement se balader sur l'Internet et maintenir une adresse IP utilisable tout le temps. Référez-vous au paragraphe Mobile-IP pour avoir plus d'informations et savoir comment faire en pratique.
Beaucoup de gens ont une simple connexion par téléphone pour aller sur l'Internet. Presque tout le monde ne se voit offrir qu'une seule adresse IP par le founisseur d'accès avec ce type de configuration. Ceci est normalement suffisant pour permettre un accès complet au réseau. IP Masquerade est une astuce intelligente qui vous permet d'avoir plusieurs machines utilisant une seule adresse IP, en faisant croire aux autres hôtes qu'il n'y a que la machine supportant la connexion (NdT : d'où le terme masquerade=duperie, mascarade). Il y a qu'une seule mise en garde, qui est que la fonction masquage ne travaille pratiquement que dans un seul sens : les hôtes masqués peuvent appeler mais ne peuvent accepter ou recevoir des connexions réseau de la part d'hôtes éloignés. Cela signifie que certains services réseau comme talk ne peuvent fonctionner et que d'autres, comme ftp doivent être configurés pour fonctionner en mode passif (PASV). Heureusement la plupart des services réseau comme telnet, World Wide Web et irc fonctionnent correctement.
Options de compilation du noyau :
Code maturity level options  --->
    [*] Prompt for development and/or incomplete code/drivers
Networking options  --->
    [*] Network firewalls
    ....
    [*] TCP/IP networking
    [*] IP: forwarding/gatewaying
    ....
    [*] IP: masquerading (EXPERIMENTAL)
Une configuration typique ressemble à ceci :
-                                   -
 \                                  | 192.168.1.0
  \                                 |   /255.255.255.0
   \                 ---------      |
    |                | Linux | .1.1 |
NET =================| masq  |------|
    |    PPP/slip    | router|      |  --------
   /                 ---------      |--| hôte |
  /                                 |  |      |
 /                                  |  --------
-                                   -
# Routage réseau pour éthernet
route add -net 192.168.1.0 netmask 255.255.255.0 eth0
#
# Route par défaut pour le reste de l'internet.
route add default ppp0
#
# Fait en sorte que tous les hôtes du réseau 192.168.1/24  soient masqués.
ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 
Si vous êtes minimaliste ou un paresseux du clavier, comme moi, et que votre hôte `masqué' n'a que deux interfaces ( en sorte que tout paquet devant être transmis doit être masqué), la commande ci-dessous devrait suffire :
root# /sbin/ipfwadm -F -a accept -m
IP transparent proxy est un procédé qui vous permet de rediriger des serveurs ou des services destinés à une autre machine vers les services de votre machine. Typiquement c'est utile lorsque vous avez une machine Linux routeur et qui fournit aussi un serveur proxy. Vous redirigerez toutes les connexions à ce service distant vers le serveur proxy local.
Options de compilation du noyau :
Code maturity level options  --->
        [*] Prompt for development and/or incomplete code/drivers
Networking options  --->
        [*] Network firewalls
        ....
        [*] TCP/IP networking
        ....
        [*] IP: firewalling
        ....
        [*] IP: transparent proxy support (EXPERIMENTAL)
Par exemple :
ipfwadm -I -a accept -D 0/0 telnet -r 2323
telnet (23), de n'importe quel hôte, 
seront redirigées vers le port
2323 de ce même hôte. Si vous utilisez un service sur ce port, vous pouvez
rediriger des connexions telnet, les enregistrer ou exécuter tout ce qui 
bon vous semble. 
Un exemple plus intéressant est la redirection de tout le trafic
http au travers d'un cache local. Cependant, le protocole utlisé par
les serveurs proxy diffère du protocole natif de http : quand un client se
connecte à www.server.com:80 et demande chemin/page,
quand il se connecte au cache local il contacte proxy.local.domain:8080
et recherche www.server.com/chemin/page.
Pour filtrer une demande http au travers du proxy local, vous devez 
pouvoir adapter le protocole en insérant un petit serveur, appelé 
transproxy (vous pouvez le trouver sur la toile). Vous pouvez choisir
de faire tourner transproxy sur le port 8081, et exécuter la
commande :
ipfwadm -I -a accept -D 0/0 80 -r 8081
transproxy recevra toutes les connexions
devant aller vers des serveurs externes et les passera au proxy local
après avoir corrigé les différences de protocole.
À peine pensez-vous avoir commencé à comprendre comment fonctionne le réseau IP, que les règles ont changé! IPv6 est l'abbréviation de version 6 du `Protocole Internet' (version 6 de IP). Il fut développé initialement pour calmer les inquiétudes de la communauté Internet quant à la pénurie éventuelle d'adresses IP. Les adresses IPv6 ont 16 octets de long (128 bits). IPv6 inclut un certain nombre d'autres changements, la plupart du temps des simplifications, qui rendront les réseaux IPv6 plus facilement gérables que les réseaux IPv4.
Linux a déjà une implémentation IPv6 qui marche, mais pas 
encore complètement, dans la série des noyaux
2.1.*.
Si vous voulez essayer cette prochaine génération de technologie Internet, ou si vous voulez un renseignement, lisez le document IPv6-FAQ qui se trouve sur www.terra.net.
Le terme "mobilité IP" décrit la possibilité qu'un hôte a de transférer sa connexion réseau d'un point de l'Internet vers un autre sans changer d'adresse IP ou sans perdre la connectivité. Normalement quand un hôte IP change de point de connexion, il change aussi d'adresse IP. La mobilité IP résoud ce problème en allouant une adresse IP fixe à l'hôte qui se déplace et en utilisant une encapsulation IP (tunneling) avec routage automatique pour s'assurer que les datagrammes qui lui sont destinés seront routés vers l'adresse effectivement utilisée à ce moment.
Un projet est en cours en vue de fournir un paquetage complet d'outils Linux pour la mobilité IP. L'état de ce projet et les outils peuvent être obtenus sur : Linux Mobile IP Home Page.
L'IP Multicast permet de router simultanément des datagrammes IP vers un certain nombre d'hôtes se trouvant sur des réseaux différents. Ce mécanisme est exploité pour fournir sur l'Internet des applications prenant de la bande passante, telles que les transmissions audio et video et autres nouvelles applications.
Options de compilation du noyau :
Networking options  --->
        [*] TCP/IP networking
        ....
        [*] IP: multicasting
Un ensemble d'outils et quelques modifications de la configuration réseau sont nécessaires. Pour plus d'informations sur le support multicast pour Linux, voyez le Multicast-HOWTO.html
Le système de traduction d'adresse réseau IP ressemble plutôt au grand frère standardisé du système de masquage IP de Linux. Il est décrit en détail dans la RFC-1631 sur votre archive RFC la plus proche. NET fournit des possibilités que IP Masquerade ne sait pas faire, ce qui le rend plus apte à une utilisation de routeur pare-feu pour un réseau d'entreprise et des installations de plus grandes dimensions.
Une implémentation alpha de NAT pour le noyau 2.0.29 de Linux a été développée par
Michael.Hasenstein, Michael.Hasenstein@informatik.tu-chemnitz.de. 
La documentaion et l'umplémentation de Michael se trouve sur :
 
Linux IP Network Address Web Page
Les noyaux 2.1.* récents incluent également quelques fonctions de NAT dans l'algorithme de routage.
Le metteur en forme de trafic est un pilote de périphérique qui crée de nouvelles interfaces; celles-ci sont limitées au point de vue trafic selon les réglages de l'utilisateur, et se connectent aux périphériques de réseau physiques pour la transmission réelle, et peuvent donc être utilisées comme route vers l'extérieur en vue de trafic réseau.
Le metteur en forme fut introduit sur Linux-2.1.15 et ensuite sur
Linux-2.0.36 (il apparut dans le 2.0.36-pre-patch-2 distributé  par Alan
Cox, l'auteur du dispositif de mise en forme et le mainteneur de Linux-2.0).
Le metteur en forme de trafic ne peut être compilé qu'en tant que module, et se configure à l'aide du programme shapecfg avec des commandes comme :
        shapecfg attach shaper0 eth1
        shapecfg speed shaper0 64000
        
Ce metteur en forme de trafic ne peut contrôler que la bande passante du trafic sortant, car les paquets sont transmis par le metteur en forme si l'on se réfère aux tables de routage; ainsi, le fonctionnement suivant ``un routage par adresse de départ'' peut aider à limiter la bande passante totale d'hôtes spécifiques utilsant un routeur Linux.
Linux-2.1 possède déjà le support pour un tel routage et si vous en avez
besoin pour Linux-2.0, voyez le patch de Mike McLagan, sur 
ftp.invlogic.com. Lisez le fichier Documentationnetworking/shaper.txt
pour plus d'informations.
Si vous voulez faire (une tentative de) mise en forme pour les paquets
entrants, essayez rshaper-1.01 (ou plus récent), sur 
ftp.systemy.it.
La dernière version de Linux-2.1 permet un tas de réglages concernant le routage. Malheureusement, vous devez attendre la prochaine édition de cet HOWTO, ou bien lire les sources du noyau.
 
 
