Page suivante Page précédente Table des matières
6. Informations sur IP et Ethernet
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.
6.1 Ethernet
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 eth0La plupart des pilotes Ethernet ont été développés par Donald Becker,
becker@CESDIS.gsfc.nasa.gov.6.2 EQL - égaliseur de charge à lignes multiples
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) supportPour 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 1006Ensuite 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 `mise en esclavage' (enslaving) et est réalisé avec la commande eql_enslave comme suit :
Le paramètre `estimated speed' que vous fournissez à eql_enslave ne fait rien directement. Il est utilisé par le pilote EQL pour déterminer comment les datagrammes vont se répartir sur ce périphérique, aussi vous pouvez régler l'équilibrage des lignes en jouant avec cette valeur.root# eql_enslave eql sl0 28800 root# eql_enslave eql ppp0 14400Pour libérer une ligne d'un périphérique EQL vous utilisez la commande eql_emancipate comme ci-dessous :
root# eql_emancipate eql sl0Vous ajoutez le routage comme vous le feriez pour tout lien point à point, sauf que vos routes doivent se rapporter au dispositif
eqlplutôt qu'aux périphériques séries eux-mêmes. Typiquement vous devriez utiliser :root# route add default eqlLe pilote EQL fut développé par Simon Janes,
simon@ncm.com.6.3 Enregistrement IP (IP Accounting) (pour Linux-2.0)
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 dans le noyau 2.1.102, car l'ancien dispositif firewall basé sur ipfwadm a été remplacé par ``ipfwchains''.
Options de compilation noyau :
Networking options ---> [*] IP: accountingAprè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 * -> * #6.4 Enregistrement IP (IP Accounting) (pour Linux-2.2)
On accède au nouveau code d'enregistrement par des ``chaînes IP Firewall''. 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/Changesdans les sources du dernier noyau).6.5 IP Aliasing
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 :
Aprés avoir compilé et installé le noyau avec le support IP_Alias, la configuration est très simple. Les alias sont ajoutés aux périphériques réseau virtuels associés au périphérique réseau réel. Une simple convention de noms s'applique pour périphériques :Networking options ---> .... [*] Network aliasing .... <*> IP: aliasing support<nom de périphérique> : <numéro de périphérique virtuel>, par ex.eth0:0,ppp0:10etc. 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 :
Pour supprimer un alias vous ajoutez simplement un `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 :Toutes les routes associées avec cet alias seront enlevées automatiquement.root# ifconfig eth0:0- 06.6 IP Firewall (pour Linux-2.0)
IP Firewall et les publications sur le Firewalling sont traités de manière plus appronfondies complètement dans le document Firewall-HOWTO. Le IP Firewalling 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çues par un dispositif réseau. Les règles en sortie s'appliquent aux datagrammes qui sont transmis 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 :
La configuration du IP firewall est réalisée en utilisant la commande ipfwadm. Comme mentionné plus haut, la sécurité n'est pas ma spécialité, aussi, bien que je vous présente un exemple utilsable par vous-même, faites des recherches et mettez au point vos propres règlages si la sécurité est importante pour vous.Networking options ---> [*] Network firewalls .... [*] IP: forwarding/gatewaying .... [*] IP: firewalling [ ] IP: firewall packet loggingVraisemblablement l'utilisation la plus courante de l'IP firewall est lorsque vous utilisez votre machine Linux comme routeur et passerelle firewall 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 firewall pour une machine Linux /firewall/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
rcde 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 ne puisse se connecter pendant que la machine firewall reboute.De bonnes configurations firewall sont dures à faire. Cet exemple peut être un bon point de départ pour vous. La page de manuel ipfwadm offre une aide pour savoir comment utiliser cet outil. Si vous voulez configurer un firewall, demandez autour de vous et recueillez des avis venant de sources de confiance et prenez contact avec quelqu'un qui est à l'extérieur pour tester votre configuration et en vérifier la fiabilité.#!/bin/sh # Flush the 'Forwarding' rules table # Change the default policy to 'accept' # /sbin/ipfwadm -F -f /sbin/ipfwadm -F -p accept # # .. and for 'Incoming' # /sbin/ipfwadm -I -f /sbin/ipfwadm -I -p accept # First off, seal off the PPP interface # I'd love to use '-a deny' instead of '-a reject -y' but then it # would be impossible to originate connections on that interface too. # The -o causes all rejected datagrams to be logged. This trades # disk space against knowledge of an attack of configuration error. # /sbin/ipfwadm -I -a reject -y -o -P tcp -S 0/0 -D 172.16.174.30 # Throw away certain kinds of obviously forged packets right away: # Nothing should come from multicast/anycast/broadcast addresses # /sbin/ipfwadm -F -a deny -o -S 224.0/3 -D 172.16.37.0/24 # # and nothing coming from the loopback network should ever be # seen on a wire # /sbin/ipfwadm -F -a deny -o -S 127.0/8 -D 172.16.37.0/24 # accept incoming SMTP and DNS connections, but only # to the Mail/Name Server # /sbin/ipfwadm -F -a accept -P tcp -S 0/0 -D 172.16.37.19 25 53 # # DNS uses UDP as well as TCP, so allow that too # for questions to our name server # /sbin/ipfwadm -F -a accept -P udp -S 0/0 -D 172.16.37.19 53 # # but not "answers" coming to dangerous ports like NFS and # Larry McVoy's NFS extension. If you run squid, add its port here. # /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 53 \ -D 172.16.37.0/24 2049 2050 # answers to other user ports are okay # /sbin/ipfwadm -F -a accept -P udp -S 0/0 53 \ -D 172.16.37.0/24 53 1024:65535 # Reject incoming connections to identd # We use 'reject' here so that the connecting host is told # straight away not to bother continuing, otherwise we'd experience # delays while ident timed out. # /sbin/ipfwadm -F -a reject -o -P tcp -S 0/0 -D 172.16.37.0/24 113 # Accept some common service connections from the 192.168.64 and # 192.168.65 networks, they are friends that we trust. # /sbin/ipfwadm -F -a accept -P tcp -S 192.168.64.0/23 \ -D 172.16.37.0/24 20:23 # accept and pass through anything originating inside # /sbin/ipfwadm -F -a accept -P tcp -S 172.16.37.0/24 -D 0/0 # deny most other incoming TCP connections and log them # (append 1:1023 if you have problems with ftp not working) # /sbin/ipfwadm -F -a deny -o -y -P tcp -S 0/0 -D 172.16.37.0/24 # ... for UDP too # /sbin/ipfwadm -F -a deny -o -P udp -S 0/0 -D 172.16.37.0/246.7 IP Firewall (pour Linux-2.2)
On accède au nouveau code d'enregistrement par des ``chaînes IP Firewall''. 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/Changesdans les sources du dernier noyau).6.8 Encapsulation IPIP
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 : l'amateurisme-Radio.
Options de compilation du noyau :
Networking options ---> [*] TCP/IP Networking [*] IP: forwarding/gatewaying .... <*> IP tunellingLes 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.
Une configuration de réseau avec tunneling.
Comme toujours, je pense qu'un schéma m'épargnera beaucoup de texte confus, aussi en voilà un :
Ce diagramme montre une autre raison possible d'utiliser l'encapsulation IPIP : le réseau privé virtuel. Cet exemple présuppose que vous ayez deux machines chacune avec une seule connexion Internet. Chaque hôte a une seule adresse IP. Derrière chacune de ces machines se trouve des réseaux privés locaux configurés avec des adresses IP réservées. Supposez que vous vouliez permettre à chacun des hôtes du groupe A de se connecter à n'importe quel hôte du groupe B, comme s'ils étaient vraiment connectés à l'Internet via un routage réseau. L'encapsulation IPIP vous permettra de le faire. A noter que l'encapsulation ne vous permettra pas de faire en sorte que chacun des hôtes des réseaux A et B puissent parler à n'importe qui sur l'Internet, vous aurez toujours besoin de choses comme IP masquerade pour pouvoir le faire. L'encapsulation est normalement accomplie par une machine fonctionnant comme routeur.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 # # Ethernet configuration 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 # # Tunnel device configuration 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 # # Ethernet configuration 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 # # Tunnel device configuration ifconfig tunl0 192.168.2.1 up route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0La commande :
dit : `Envoyer tous les datagrammes destinés àroute add -net 192.168.1.0 netmask $mask0 gw $remotegw tunl0192.168.1.0/24dans un paquet d'encapsulation ayant pour adresses de destinationaaa.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.Une configuration d'hôte pour l'encapsulation IPIP.
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
tunlsur 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 | | | | // | | | \-----/ \-----/ | also: 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 # # Ethernet configuration 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 # # Tunnel device configuration ifconfig tunl0 192.168.1.1 up route add -host 192.168.1.12 gw $remotegw tunl0 # # Proxy ARP for the remote host arp -s 192.168.1.12 xx:xx:xx:xx:xx:xx pubL'hôte Linux `
B' sera configuré comme suit :#!/bin/sh PATH=/sbin:/usr/sbin mask=255.255.255.0 remotegw=aaa.bbb.ccc.ddd # # ppp0 configuration (start ppp link, set default route) pppd route add default ppp0 # # Tunnel device configuration ifconfig tunl0 192.168.1.12 up route add -net 192.168.1.0 netmask $mask gw $remotegw tunl0Ce 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.
6.9 IP Masquerade (pour Linux-2.0)
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 `masquerade' ne travaille pratiquement que dans un seul sens : les hôtes sous `masquerade' 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 :
Normalement votre machine Linux supportant un lien SLIP ou PPP se comportera comme si elle était toute seule. De plus elle peut avoir un autre périphérique réseau configuré, par exemple une carte Ethernet, avec des adresses réseau réservée. Les hôtes utilisant `masquerade' seront ceux du second réseau. Chacun de ces hôtes aura l'adresse IP du port Ethernet réglée comme passerelle ou routeur par défaut.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 :
Les commandes adéquates pour cette configuration sont :- - \ | 192.168.1.0 \ | /255.255.255.0 \ --------- | | | Linux | .1.1 | NET =================| masq |------| | PPP/slip | router| | -------- / --------- |--| host | / | | | / | -------- - -# Network route for Ethernet route add -net 192.168.1.0 netmask 255.255.255.0 eth0 # # Default route to the rest of the internet. route add default ppp0 # # Cause all hosts on the 192.168.1/24 network to be masqueraded. ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0Si vous êtes minimaliste ou un paresseux du clavier, comme moi, et que votre hôte 'masquerade' n'a que deux interfaces ( en sorte que tout paquet devant être transmis doit être 'masqué'), la commande ci-dessous devrait suffire :
Vous pouvez obtenir plus d'informations sur IP Masquerade avec IP Masquerade Resource Page Il existe également un document très détaillé qui est le ``IP-Masquerade-mini-HOWTO'' (qui donne en plus des renseignements pour configurer d'autres systèmes d'exploitation pour fonctionner avec un serveur masquerade linux).root# /sbin/ipfwadm -F -a accept -m6.10 IP Transparent Proxy
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 :
La configuration du dispositif transparent proxy est réalisé en utilisant la commande ipfwadm.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 :
Cet exemple fera en sorte que toutes les tentatives de connexion vers le portipfwadm -I -a accept -D 0/0 telnet -r 2323telnet(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 forwarder 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
httpau 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:80et demandechemin/page, quand il se connecte au cache local il contacteproxy.local.domain:8080et recherchewww.server.com/chemin/page.Pour filtrer une demande
httpau 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 tournertransproxysur le port 8081, et exécuter la commande :Alors le programmeipfwadm -I -a accept -D 0/0 80 -r 8081transproxyrecevra toutes les connexions devant aller vers des serveurs externes et les passera au proxy local après avoir corriger les différences de protocole.6.11 IPv6
A peine pensez-vous avoir commencé à comprendre comment fonctionne le réseau IP, 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.
6.12 IP Mobile
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.
6.13 Multicast
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: multicastingUn 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
6.14 NAT - Network Address Translation (Traduction d'adresse réseau)
Le système de traduction d'adresse réseau IP ressemble plutôt au grand frère standardisé du système IP masquerade 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 firewall 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 PageLes noyaux 2.1.* récents incluent également quelques fonctions de NAT dans l'algorithme de routage.
6.15 Mise en forme du trafic - Changer la bande passante allouée
Le metteur en forme du trafic est un pilote de périphérique qui crée de nouvelles interfaces, lesquelles étant limitées au point de vue trafic selon un réglage défini par l'utilisateur, et se connectent aux périphériques réseau physiques pour une transmission effective et peuvent donc être utilisées comme route vers l'extérieur pour le 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-2distributé 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 64000Ce 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 fichierDocumentationnetworking/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.6.16 Routage avec Linux-2.2
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.
Page suivante Page précédente Table des matières