par Guido Socher
L´auteur:
Guido est un adepte de Linux de longue date. Chez lui, tous ses ordinateurs
sont en réseau.
Sommaire:
|
Un réseau à la maison, lexique et vue d'ensemble
Résumé:
La mise en réseau devient de plus en plus à la mode. Votre
vieux 486 marche très bien comme serveur de fichiers ou pour faire
de l'IP-Masquerading afin de donner à toute la famille l'accès
à l'Internet depuis différents ordinateurs en même
temps. Cet article fournit une vue d'ensemble de base pour débuter
l'installation d'un réseau chez vous. Il explique le vocabulaire
dont vous avez besoin pour comprendre la littérature et les autres
articles sur la mise en réseau. Le sujet de l'article est un petit
réseau domestique.
10Base2
C'est un ethernet (NdT : une norme de réseau de communication local)
permettant un débit de 10MBit/s sur du câble coaxial. Les
extrémités du câble doivent être terminées
des deux côtés avec une résistance de 50 ohms. La longueur
totale du câble ne peut pas dépasser 185 m. La distance entre
les cartes doit être d'au moins 0,50 m. Les cartes réseau
sont connectées au câble à l'aide d'un connecteur en
T. Il n'y a pas besoin de hub et les cartes sont toutes connectées
directement au câble. C'est sans doute la méthode la plus
économique pour un réseau domestique. Il est important que
le câble aille directement d'une carte réseau à l'autre
(topologie bus). Il ne doit pas y avoir de câble entre la carte réseau
et le connecteur en T.
10baseT
C'est un ethernet permettant un débit de 10MBit/s sur du câble
à paires torsadées. Chaque carte est connectée via
un câble à paires torsadées jusqu'à un point
central appelé "hub" (hub = centre, foyer). Il en résulte
une topologie de réseau en étoile. La longueur de câble
entre une carte et le hub ne doit pas dépasser 100 m. Si vous voulez
ne connecter que 2 cartes, il est alors possible de se passer du
hub et d'utiliser un câble croisé.
100baseT et 100baseT4
Ce genre de réseau utilise aussi du câble à paires
torsadées (comme le 10baseT ) mais permet un débit de 100
MBit/s. Pour la plupart des applications dans un cadre domestique, les
réseaux à 10MBit/s sont plus que suffisants - et moins chers.
100baseT utilise les paires 2 et 3 du câble à paires torsadées.
100baseT4 utilise l'ensemble des 4 paires de fils.
Connecteur RJ-45
C'est le type de connecteur utilisé pour les réseaux 10baseT,
100baseT et 100baseT4. C'est un petit connecteur plat en plastique à
8 broches.
-
10baseT utilise seulement les paires 2 et 3
-
100baseT utilise seulement les paires 2 et 3
-
100baseT4 utilise les paires 1, 2, 3 et 4
broche |
nom |
description pour 10baseT |
1 |
TX+ |
transmission de données + |
2 |
TX- |
transmission de données - |
3 |
RX+ |
réception de données + |
4 |
n/c |
100BaseT4 uniquement |
5 |
n/c |
100BaseT4 uniquement |
6 |
RX- |
réception de données - |
7 |
n/c |
100BaseT4 uniquement |
8 |
n/c |
100BaseT4 uniquement |
|
Note : |
sur les hubs, TX et RX sont intervertis |
Note : une pince à sertir spéciale est indispensable pour
sertir le connecteur RJ-45 sur le câble.
Types de câble
On trouve couramment les types de câbles suivants :
-
câble coaxial 50 ohms coaxial. Utilisé pour les réseaux
10base2, débit maximum 10 Mbit/s
-
câble à paires torsadées :
-
câble UTP (Unshielded Twisted Pair : paires torsadées non
blindées), le moins cher, fin et flexible car il n'y a pas de blindage.
Les risques de radio interférences sont élevés, et
les interférences sont réciproques : vous pouvez gêner
un récepteur radio à ondes courtes proche mais un câble
très long peut aussi capter des champs électriques assez
forts comme par exemple ceux générés à l'allumage
ou l'extinction d'un chauffage électrique. Ce câble est cependant
tout à fait suffisant pour un réseau domestique dans lequel
les distances se limitent en général à quelques mètres.
-
câble STP (Shielded Twisted Pair : paires torsadées blindées)
avec un seul blindage entourant l'ensemble des fils. Ce câble est
très courant. Il est encore assez flexible et n'est pas trop cher.
Les risques de radio interférences sont réduits.
-
câble STP avec un blindage séparé autour de chaque
paire de fils. Il est cher et n'est pas à recommander pour un réseau
domestique.
Les différents types de câble à paires torsadées
sont standardisés en catégories selon l'affaiblissement du
signal relatif à la longueur de câble.
-
câble de catégorie 3 : largeur de bande maximum 16 MHz, utilisé
pour 10BaseT
-
câble de catégorie 5 : largeur de bande maximum 100 MHz, utilisé
pour 10BaseT, 100BaseT et 10BaseT4
La correspondance entre les broches du connecteur RJ-45 et les fils du
câble à paires torsadées est standardisée. Il
existe plusieurs standards qui utilisent des couleurs légèrement
différentes. Les attributions de broches sont :
n° de la paire de fils |
broches du connecteur |
standard 1 |
standard 2 |
standard 3 |
standard 4 |
1 |
4/5 |
bleu/blanc |
blanc/bleu |
blan/bleu |
blanc/marron |
2 |
3/6 |
blanc/vert |
rouge/orange |
cyan/violet |
vert/jaune |
3 |
1/2 |
blanc/orange |
noir/vert |
blance/orange |
gris/rose |
4 |
7/8 |
blanc/marron |
jaune/marron |
cyan/violet |
bleu/rouge |
Fabriquer soi-même ses câbles ne vaut la peine que si vous
voulez tirer 20 m ou plus de câble à travers toute la maison.
Si vous voulez seulement relier quelques ordinateurs dans la même
pièce, alors vous pouvez acheter pour pas trop cher des câbles
tout prêts avec les connecteurs déjà sertis. Ils sont
généralement disponibles dans des longueurs comprises entre
1 et 10 mètres.
Câble de connexion croisée
C'est un câble spécial permettant de connecter seulement 2
cartes réseau par un câble à paires torsadées.
Ce n'est que si vous souhaitez connecter trois ordinateurs ou plus que vous avez besoin d'un hub.
La connexion croisée intervertit RX et TX.
Les deux connecteurs sont reliés comme suit :
broche n° |
broche n° |
1 connectée |
à 3 |
2 connectée |
à 6 |
3 connectée |
à 1 |
4 connectée |
à 5 (100baseT4) |
5 connectée |
à 4 (100baseT4) |
6 connectée |
à 2 |
7 connectée |
à 8 (100baseT4) |
8 connectée |
à 7 (100baseT4) |
9 connectée |
à 9 (100baseT4) |
Vous pouvez aussi acheter des câbles croisés tout
prêts avec leurs connecteurs sertis.
Hub
Un hub est nécessaire dans le cas d'un réseau avec du câble
à paires torsadées et plus de deux ordinateurs. Le hub amplifie
le signal en provenance d'un ordinateur et le distribue à tous les
autres ordinateurs connectés. Pour un usage domestique, il vous
faut en général un hub pour groupe de travail comportant
5 ou 8 ports. Des switches ethernet peuvent aussi être utilisés
à la place des hubs mais ils sont beaucoup plus chers et ne se justifient
que si vous prévoyez un très fort trafic avec de nombreuses
machines connectées au réseau.
LAN
LAN signifie Local Area Network (réseau local) et indique un réseau
dans lequel chaque ordinateur peut joindre une autre machine sans passer
à travers un routeur. Par exemple tous les ordinateurs connectés
sur un câble coaxial ou tous les ordinateurs connectés à
un hub forment un LAN.
Cartes
Mon expérience personnelle montre que les cartes les moins chères
sont les meilleures. Les cartes plus chères ne vous apportent en
général rien de plus. Les cartes ISA PNP ("plug'n play")
peuvent être source d'ennuis. La plupart des cartes ISA PNP vendues
sont livrées avec une disquette DOS et un logiciel permettant de
changer les réglages dans la mémoire flash de la carte afin
de ne pas utiliser les fonctions PNP. Vous pouvez définir une interruption
fixe et une adresse E/S (si vous avez un BIOS PNP vous devez également
lui indiquer de désactiver le PNP pour cette interruption). L'adresse
E/S standard est en général io=0x300. Vous pouvez voir quelles
adresses et quelles interruptions sont déjà utilisées
en tapant :
cat /proc/interrupts /proc/ioports | more
Ce sont les interruptions et adresses effectivement utilisées
par un pilote à cet instant.
Si vous avez acheté une de ces cartes ISA PNP vous trouverez
sans doute que la disquette DOS n'est pas d'une grande utilité pour
un utilisateur de Linux. Vous ou un ami avez peut-être quelque part
une vieille diquette DOS bootable. Copiez le programme livré avec
la carte réseau sur cette disquette. Bootez sur cette disquette
et changez les réglages de la carte réseau. Les réglages
sont enregistrés dans la mémoire flash et ainsi vous n'avez
à faire cette opération qu'une seule fois après avoir
installé votre matériel et plus jamais ensuite.
Les cartes les moins chères sont en général des
cartes NE2000 et coûtent aux environs de 100 FF (un peu plus de 15 euros). Elles
sont bien reconnues sous Linux. Les cartes NE2000 sont disponibles pour bus ISA ou PCI.
Les cartes pour bus ISA ont besoin des modules "ne" et "8390". Vous
pouvez fournir l'IRQ et l'adresse E/S, ou laisser le pilote le trouver
tout seul. Le chargement du module sans auto-test peut être fait
comme suit :
insmod 8390
insmod ne irq=10 io=0x300
Avec une carte PCI vous n'aurez en général aucun problème
avec les interruptions et les adresses E/S, mais elles sont un petit peu
plus chères. Les modules pour les cartes NE2000 PCI sont appelés
"ne2k-pci" et "8390".
Interface réseau
L'interface réseau est représentée physiquement par
votre carte réseau mais le terme interface réseau est aussi
utilisé pour désigner un nom logiciel auquel assigner une
adresse IP. Si vous avez un modem et une carte ethernet sur votre ordinateur
alors vous avez déjà au moins deux adresses IP et deux interfaces
réseau pour cette machine. Une adresse IP est toujours assignée
à une interface réseau, jamais à un ordinateur. Vous
pouvez uniquement transmettre le hostname (nom de la machine hôte)
par l'adresse IP mais il y a généralement une relation un-à-plusieurs
entre le hostname et l'adresse IP . La commande ifconfig sert
à afficher la configuration des différentes interfaces réseau
actives. Vous pouvez également l'utiliser pour configurer une interface
réseau . Voici un exemple :
> /sbin/ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:1664 errors:0 dropped:0 overruns:0
TX packets:1664 errors:0 dropped:0 overruns:0
eth0 Link encap:10Mbps Ethernet HWaddr 00:80:AD:71:52:19
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5993 errors:0 dropped:0 overruns:0
TX packets:4073 errors:0 dropped:0 overruns:0
Interrupt:5 Base address:0x300
dummy0 Link encap:10Mbps Ethernet HWaddr 00:00:00:00:00:00
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0
UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
ppp0 Link encap:Point-Point Protocol
inet addr:199.94.253.30 P-t-P:199.94.253.4 Mask:255.255.255.0
UP POINTOPOINT RUNNING MTU:552 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0
TX packets:8 errors:0 dropped:0 overruns:0
Comme vous pouvez le constater, il y a 4 interfaces réseau dans
l'exemple ci-dessus.
Routage
Votre noyau Linux a un "routeur IP interne". La table de routage lui dit
ce qu'il doit faire d'un paquet IP entrant. Selon l'adresse IP de ce paquet
vous pouvez définir dans la table de routage vers où l'envoyer.
Sous Linux vous pouvez taper /sbin/route ou netstat -r
pour voir la table de routage mais la commande Unix standard est
netstat
-r.
Comment configurer le routage serait au-delà du domaine de cet
article et un autre traitera ce sujet. Le Guide Linux de l'Administrateur
Réseau (www.linuxdoc.org/LDP/nag/nag.html) est une bonne source en ligne pour
plus d'information sur la configuration du routage
(en français, voir le
NET4-HOWTO
chez Freenix).
PLIP
L'IP du port parallèle est une possibilité pour utiliser
le port parallèle comme interface réseau. Le paramètre
de configuration du noyau s'apelle CONFIG_PLIP et vous devriez de préférence
le configurer comme module. PLIP est une possibilité bon marché
de connecter votre portable à un autre ordinateur et par l'intermédiaire
de celui-ci à votre réseau. Il vous faut un câble pour
port parallèle avec deux connecteurs mâles appelé aussi
câble LapLink. Si vous voulez fabriquer le câble vous-même,
voici le câblage :
broche n° |
broche n° |
17 | à 17 |
25 | à 25 |
2 | à 15 |
3 | à 13 |
4 | à 12 |
5 | à 10 |
|
broche n° |
broche n° |
6 | à 11 |
15 | à 2 |
13 | à 3 |
12 | à 4 |
10 | à 5 |
11 | à 6 |
|
PLIP n'est pas aussi rapide que ethernet mais la vitesse est déjà
suffisante pour des applications réseau comme par exemple NFS.
Adresses IP
Vous devez décider quelles adresses utiliser pour votre réseau.
Normalement vous aurez une adresse IP fixée par votre fournisseur
d'accès lorsque vous êtes "en ligne". Cette adresse IP est
plus ou moins automatiquement affectée à l'interface ppp.
En général vous n'avez pas à vous en inquiéter.
Ce qu'il vous faut décider maintenant, c'est quelles adresses affecter
aux autres interfaces de votre réseau personnel (par exemple eth0
et l'interface plip1). Certaines adresses sont réservées
à un usage personnel. Elles ne sont pas routées sur
l'Internet et ne peuvent pas générer de problèmes
quand vous les réutilisez. Leurs intervalles sont :
Masque de réseau |
Adresses réseau |
255.0.0.0 | 10.0.0.0 - 10.255.255.255 |
255.255.0.0 | 172.16.0.0 - 172.31.255.255 |
255.255.255.0 | 192.168.0.0 - 192.168.255.255 |
Quelle adresse choisir ? Et bien, cela n'a pas vraiment d'importance
mais je recommande d'utiliser des nombres consécutifs.
Par exemple
vous avez deux ordinateurs connectés via ethernet et vous avez besoin
maintenant de deux adresses à assigner aux deux cartes réseau
(ou plutôt à la représentation logicielle des cartes, que l'on appelle interface).
Utilisez
simplement 192.168.0.1 et 192.168.0.2
Fichiers
La plupart des distributions d'aujourd'hui ont de très jolies interfaces
graphiques pour la configuration du réseau (comme Yast ou netcfg).
Vous pouvez les utiliser si vous voulez. Référez-vous au
manuel de votre distribution Linux pour savoir comment faire. Cet article
ne concerne pas une distribution particulière. Il explique donc
les fichiers de configuration sous-jacents que l'interface graphique de
votre distribution va modifier comme par magie. Cela vous donne aussi la
possibilité de vérifier ce que votre interface a réellement
fait.
/etc/hosts et /etc/host.conf
Pour un petit réseau domestique, il n'est pas très logique
de faire fonctionner un serveur DNS. Vous pouvez à la place juste
entrer le nom des machines dans un fichier appelé /etc/hosts
Exemple:
# ipaddr. fullname alias
127.0.0.1 localhost
192.168.0.1 obelix.mynet obelix
192.168.0.2 asterix.mynet asterix
192.168.0.3 idefix.mynet idefix
Avec ce fichier /etc/hosts va un fichier appelé /etc/host.conf
dans lequel vous indiquez comment résoudre les noms. Vous pourriez
utiliser ce fichier :
# /etc/host.conf
order hosts bind
# Allow multiple addrs
multi on
/etc/resolv.conf
Le fichier /etc/resolv.conf indique où résoudre
ce qui ne se trouve pas dans /etc/hosts. Vous devrez interroger
votre FAI (Fournisseur d'Accès à l'Internet) pour connaître
l'adresse IP de son serveur DNS. Vous pouvez indiquer plusieurs serveurs
DNS si possible. Ainsi, si le premier serveur DNS est lent ou bien hors-service
alors le suivant sera interrogé. La syntaxe est :
#/etc/resolv.conf
#nameserver ipaddr.
nameserver 123.456.789.1
# alternative DNS server:
nameserver 123.456.111.9
configurer le hostname
/etc/HOSTNAME (ou /etc/sysconfig/network pour RedHat)
est un fichier dans lequel de nombreuses distributions configurent le nom
de la machine locale. Mais en réalité le nom d'une machine
se définit via la commande hostname. Ce qui se passe avec
ces distributions, c'est que durant la phase de démarrage (par exemple
/etc/rc.
d/rc. sysinit) le fichier /etc/HOSTNAME est lu et son contenu
envoyé à la commande hostname. Le fichier précis
utilisé dépend des particularités de votre installation.
Il vous sera cependant facile maintenant de le rechercher.
Exemple de configuration du hostname:
hostname obelix.mynet
tcp wrapper
/etc/hosts.allow
C'est un fichier de configuration pour un système de sécurité
nommé tcp wrapper. Tout ce qu'il vous faut savoir, c'est que vous
devez ajouter les adresses IP de toutes les machines de votre réseau
local, sauf la machine où est ce fichier, après le mot-clef
ALL:
Exemple : obelix a deux interfaces réseau reliées aux
autres hôtes du réseau local. L'interface avec l'adresse IP
192.168.0.2 est celle de asterix et l'interface avec l'adresse IP 192.168.0.3
va à idefix.
Dans ce cas vous écrivez :
# hosts.allow
# See tcpd(8) and hosts_access(5) for a description
ALL: 192.168.0.2 192.168.0.3
Si vous lancez un serveur NFS sur obelix alors il vous faut ajouter la
ligne
portmap: 192.168.0.2 192.168.0.3
NFS (Network File System) vous donne la possibilité d'accéder
aux fichiers des autres hôtes comme s'ils étaient sur votre
disque.
/etc/hosts.deny concerne aussi le tcp wrapper, ne doit jamais
être modifié et devrait toujours à ressembler à
ce qui suit :
portmap: ALL
ALL: ALL
/etc/hosts.equiv
/etc/hosts.equiv autorise les utilisateurs locaux à se
logger sur les autres machines (par exemple avec rsh) sans mot
de passe. Vous devez décider si vous le souhaitez. La syntaxe est
le nom complet (comme dans /etc/hosts) d'un hôte autorisé
par ligne.
Par exemple :
asterix.mynet
idefix.mynet
/etc/hosts.lpd
Le fichier /etc/hosts.lpd est important si vous voulez fournir
un service d'impression réseau via lpd. Comment configurer
l'impression réseau est une autre histoire mais ce fichier doit
être présent sur la machine sur laquelle est lancé
le daemon lp et il doit lister le nom de toutes les machines autorisées
à imprimer. La syntaxe est la même que hosts.equiv.
Il vaut mieux faire la configuration de l'imprimante réseau elle-même
avec les outils d'administration système de votre distribution (par
exemple Yast avec la S.u.S.E. ou printtool avec RedHat). Le Printing-HOWTO
décrit comment configurer si vous ne souhaitez pas utiliser les
outils d'administration système de votre distribution .
sendmail
Le fichier /etc/service.switch est utilisé par sendmail.
Sur les machines de votre réseau (celles qui n'ont pas de connexion
directe à l'Internet) vous écrivez :
hosts files
aliases files
Vous configurez alors votre sendmail sur ces machines pour expédier
tout le courrier à la machine qui a le modem et que vous utilisez
comme serveur de courrier.
Sendmail lit au démarrage un fichier de configuration nommé
/etc/sendmail.cf
et ce fichier est assez difficile à lire. Les sources de sendmail
utilisent donc un macro langage appelé m4 pour générer
sendmail.cf
depuis un fichier macro. Pour faire ça, il vous faut le macro
processeur m4 (probablement déjà installé sur votre
système) et une partie des sources de sendmail. Redhat Linux installe
ces sources dans /usr/lib/sendmail-cf, d'autres distributions
ne les incluent pas mais vous pouvez toujours les récupérer.
La documentation sur le fonctionnement de la configuration de sendmail
peut être trouvée à http://www.sendmail.org/.
Un serveur de courrier central est appelé mail-hub. L'idée
est que toutes les différentes machines de votre réseau renvoient
leur courrier à ce serveur qui le stocke. Vous pouvez alors y accéder
via NFS ou pop/imap. Un fichier m4 pour faire précisément
ceci ressemble à ce qui suit :
#divert(-1)
include(`../m4/cf.m4')
VERSIONID(`mc file for asterix, A HOST INSIDE THE PRIVATE NETWORK')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
OSTYPE(`linux')
# mettez ici votre domaine pour l'extérieur. Si par exemple votre login est toto
# et votre adresse toto@linuxnet.chezmoi.org alors écrivez :
MASQUERADE_AS(linuxnet.chezmoi.org)
# Ne montrez pas ces noms de machines au monde extérieur :
MASQUERADE_DOMAIN(asterix.mynet)
MASQUERADE_DOMAIN(asterix)
MASQUERADE_DOMAIN(localdomain)
MASQUERADE_DOMAIN(localhost)
FEATURE(masquerade_envelope)
#the /etc/passwd entry: mail:*:8:12:mail:/var/spool/mail:
define(`confDEF_USER_ID',``8:12'')
# Le serveur de courrier est obelix,
# Notez que ceci est fait en dernier
define(`MAIL_HUB', `obelix.mynet. ')dnl
define(`confHOSTS_FILE',/etc/hosts)dnl
MAILER(smtp)dnl
MAILER(local)dnl
Pour générer le fichier sendmail.cf depuis le fichier
sendmail.mc ci-dessus, allez dans le répertoire cf des sources
(RedHat : /usr/lib/sendmail-cf/cf) et mettez-y le sendmail.mc.
Ensuite lancez m4 sendmail.mc > /etc/sendmail.cf
Notez que pour simplement faire fonctionner le réseau vous n'avez
pas besoin d'installer sendmail du tout et vous pouvez envoyer et recevoir
du courrier avec Netscape sans vous ennuyer avec sendmail. Sendmail est
plutôt pour des utilisateurs avancés de Linux.
La configuration de votre serveur de courrier est un peu plus difficile.
Il doit délivrer le courrier local et transmettre le courrier extérieur.
Le courrier extérieur peut par exemple être transmis via smtp
(Simple Mail Transfer Protocol) auquel cas vous devriez lire la documentation
sendmail ( http://www.sendmail.org/)
à propos de "define(`SMART_HOST', smtp:provider.mail.host)dnl".
Pour le courrier sortant via smtp il vous faut aussi sur votre machine
serveur de courrier un /etc/service.switch qui permette
la recherche DNS :
hosts files dns
aliases files
Vous pouvez aussi utiliser UUCP et d'autres méthodes. Cela dépend
de ce que votre fournisseur Internet permet.
UUCP signifie "Unix to Unix Copy" (copie de Unix à Unix). C'est
un vieux système de transfert de message mais il va très
bien pour récupérer le courrier depuis votre FAI. Encore
faut-il que votre FAI offre ce service Les sociétés les plus
ciblées sur Windows ne savent pas même ce qu'est UUCP !
Comment UUCP travaille-t-il pour vous ? Exemple : le domaine de votre
fournisseur est fournisseur.org et votre machine s'appelle linuxnet vue
de l'extérieur (c'est à dire via l'interface ppp, en interne
nous l'appellerons désormais obelix). Votre fournisseur vous donne
tout le courrier via UUCP expédié à <destinataire>@linuxnet.fournisseur.org
Vous pouvez alors le distribuer en utilisant sendmail. Chaque utilisateur
local a son propre compte de courrier que VOUS pouvez configurer.
C'est comme ajouter un autre utilisateur unix . Malheureusement la plupart
des fournisseurs d'accès n'offrent aujourd'hui qu'une adresse pop
mail et alors tout ceci ne vous concerne pas. Utilisez dans ce cas Netscape
ou fetchmail.
IP-Masquerading (NAT)
IP Masquerading est un terme Linux, la plupart des gens appellent cela
NAT ("Network Address Translation", soit "traduction d'adresse réseau"). C'est quelque chose de très bien
pour un petit réseau domestique . Cela vous donne la possibilité
d'accéder à l'Internet depuis n'importe laquelle des machines
de votre réseau alors qu'une seule machine est connue sur l'Internet.
Cette machine-là est sans doute connectée via modem/PPP et
a une adresse IP assignée dynamiquement (ou statiquement) à
son interface ppp0. Avec IP-Masquerading plusieurs personnes sur différents
ordinateurs de votre réseau local peuvent accéder à
l'Internet en même temps. Il y aura un article distinct dans LinuxFocus
sur la configuration de IP-Masquerading. Je recommande aussi la lecture
du howto sur IP-Masquerade. Pour le moment j'expliquerai juste les principes
de fonctionnement.
Pour comprendre comment fonctionne IP-Masquerade vous devez comprendre
comment se fait une connexion TCP. Quand vous vous connectez sur une machine
sur l'Internet avec votre navigateur, vous vous connectez à l'adresse
IP de cette machine et à l'application serveur Web. L'application
(par exemple un serveur Web) est sélectionnée par quelque
chose nommé numéro de port. Les numéros de port sont
prédéfinis. Le port 80 est le numéro de port pour
les applications serveurs Web. Ainsi si vous tapez www.linuxfocus.org
dans Netscape alors il sait qu'il doit connecter l'adresse IP 195.53.25.18
(= www.linuxfocus.org) et le port 80.
Pour une connexion tcp complète où les données
peuvent être envoyées et reçues, les paires d'adresses
IP et de numéros de port sont nécessaires. C'est donc 195.53.25.18
et 80 plus votre propre adresse IP et un numéro de port local auquel
le serveur Web peut répondre. Le numéro de port local est
habituellement attribué au hasard . Par exemple :
www at www.linuxfocus.org: ma.machine.chez.mon.fai:
IP=195.53.25.18 Port=80 ----- IP=123.123.456.1 Port=4123
Si vous lancez une deuxième fenêtre Netscape et que vous mettez
en place une autre connexion à www.linuxfocus.org alors un nouveau
numéro de port local est choisi :
www at www.linuxfocus.org: ma.machine.chez.mon.fai:
IP=195.53.25.18 Port=80 ----- IP=123.123.456.1 Port=4123
IP=195.53.25.18 Port=80 ----- IP=123.123.456.1 Port=4541
(NB : deux fois le port 80, ce n'est pas correct, mais c'est pour simplifier
l'exemple)
Quand un paquet TCP revient du serveur Web il sait vers quelle fenêtre
Netscape aller grâce à la différence dans le numéro
de port sur votre machine. Dans le cas d'un réseau privé
derrière ma.machine.chez.mon.fai la situation est :
www at www.linuxfocus.org --- ma.machine.chez.mon.fai --- privatehost1.mynet
|
+- privatehost2.mynet
Aucune des adresses IP des interfaces de privatehost1.mynet ne sont connues
sur l'Internet. Il est donc impossible d'envoyer un paquet IP depuis l'Internet
vers privatehost1.mynet. Aucun routeur sur l'Internet ne saurait à
qui l'envoyer. Pourtant ma.machine.chez.mon.fai a une adresse IP connue
sur l'Internet et comme nous venons de le voir, différentes connexions
peuvent être menées séparément selon leur numéro
de port.
privatehost1.mynet peut demander une connexion à www.linuxfocus.org
sur le port 80. Un numéo de port sera choisi, par exemple 3211,
et un paquet TCP envoyé en direction de ma.machine.chez.mon.fai.
L'hôte ma.machine.chez.mon.fai, sans IP-Masquerade, se contenterait
de router le paquet sur l'Internet où il disparaîtrait (ou
du moins la réponse du serveur www.linuxfocus.org disparaîtrait).
Avec IP-Masquerade ma.machine.chez.mon.fai attrape le paquet et bâtit
une nouvelle connexion avec un numéro de port local aléatoire.
Il se rappelle maintenant que tout paquet en réponse sur ce port
doit être envoyé à privatehost1.mynet sur le port 3211.
Ainsi IP-Masquerade vous construit une nouvelle connexion et conserve
une table de correspondance entre ses numéros de port et les adresses
IP et les numéros de port dans le réseau personnel. Si un
paquet en réponse revient vers la machine sur laquelle tourne IP-Masquerade,
elle vérifie à quelle adresse IP et sur quel numéro
de port il conviendra de faire suivre le paquet.
IRQ
Les problèmes avec les interruptions ne sont pas spécifiques
au réseau. Ils peuvent se poser chaque fois que vous ajoutez un
nouveau matériel à votre ordinateur. Malheureusement un PC
n'autorise que 16 interruptions et la plupart d'entre elles sont déjà
utilisées. Il est possible de partager des interruptions entre deux
cartes PCI au prix d'un peu de puissance processeur . Il n'est pas possible
de partager des interruptions entre des cartes ISA. Si vous avez un BIOS
PNP et que vous insérez une carte ISA avec une IRQ fixe dans votre
machine, vous devez aller d'abord dans le setup du BIOS et réserver
cette IRQ sinon le BIOS risque tenter d'assigner l'IRQ à un autre
matériel et ça ne fonctionnera pas.
Sous Linux vous pouvez voir combien de fois un matériel particulier
a déjà généré une interruption en utilisant
la commande :
cat /proc/interrupts. Un matériel non utilisé
ne génére aucune interruption.
Ce qui suit est une liste d'IRQs prédéfinies. Vous ne
pouvez les utiliser à d'autres fins que si vous n'utilisez pas les
composants matériels auxquels elles sont assignées. Si par
exemple vous utilisez des lecteurs SCSI au lieu de lecteurs IDE alors vous
pouvez utiliser l'IRQ 14/15 à autre chose.
IRQ |
assignée à |
0 |
horloge |
1 |
clavier |
2 |
cascade (contrôleur IRQ programmable ) |
3 |
série 2 |
4 |
série 1 |
5 |
libre, en général carte son |
6 |
lecteur de disquette |
7 |
port parallèle, mais sous Linux les imprimantes ne génèrent
aucune interruption |
8 |
horloge temps réel (RTC real time clock) |
9 |
libre |
10 |
libre |
11 |
libre |
12 |
souris ps2 (/dev/psaux) |
13 |
coprocesseur mathématique |
14 |
IDE 1 |
15 |
IDE 2 |
Réseau exemple
Après tant de théorie, j'aimerais traiter d'un petit réseau
exemple.
Pourquoi les gens montent-ils des réseaux chez eux ? Voici quelques
idées :
-
Les réseaux permettent de partager les ressources. Si un ordinateur
dispose d'un modem et d'une connexion à l'Internet, tous peuvent
la partager et l'utiliser. Si un ordinateur dispose d'une imprimante, tous
peuvent la partager. Si un ordinateur dispose d'un lecteur particulier
(Zip, CD-rom, DVD-rom), tous les ordinateurs peuvent l'utiliser et le "mounter"
via NFS. Si un ordinateur a un disque de grande capacité avec plein
d'images et de fichiers son, toutes les machines peuvent y accéder.
-
C'est techniquement intéressant.
Occupons-nous de notre réseau exemple. Nous avons un ordinateur
avec un modem, un autre avec une imprimante. Ils sont connectés
via ethernet. Tous les deux ont un lecteur de CD-rom et un lecteur de disquettes.
Il y a aussi un portable qui n'a ni imprimante, ni modem, ni lecteur de
CD-rom. Nous le connectons au port parallèle libre du premier ordinateur
et lui donnons donc accès à l'imprimante, au cédérom
et au modem/Internet.
Comment
configurer un tel réseau ? Bon, d'abord vous achetez le matériel.
Il vous faut (en plus des ordinateurs, du modem et de l'imprimante) deux
cartes réseau, un câble croisé et un câble Laplink.
Il n'y a pas besoin de hub. Vous installez le matériel, connectez
les câbles et vous vous assurez qu'il n'y a pas de conflit d'interruption
(IRQ) dû à votre nouveau matériel. Ensuite soit vous
reconfigurez le noyau, soit vous chargez juste les modules nécessaires
s'ils sont déjà présents. Le support de la plupart
du matériel sera déjà compilé si vous utilisez
le noyau préconfiguré de l'une des principales distributions.
Maintenant vous utilisez la commande ifconfig et vous assignez
une adresse IP aux nouvelles interfaces réseau. Vous utilisez ensuite
la commande
route pour définir quels paquets IP doivent
être expédiés et où. Après cela votre
réseau devrait être opérationnel. Vous ne pouvez pas
encore utiliser des noms de domaines et IP-Masquerade ne fonctionnera pas
non plus encore mais vous pouvez envoyer un ping et constater
que la diode de votre carte réseau s'allume.
Si vous utilisez les adresses IP suivantes :
IP |
interface |
192.168.0.1 |
eth0 sur station 1 |
192.168.0.2 |
eth0 sur station 2 |
Alors vous pouvez tapez sur la station 1 : ping 192.168.0.2
>ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2): 56 data bytes
64 bytes from 192.168.0.2: icmp_seq=0 ttl=64 time=0. 9 ms
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0. 8 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0. 9 ms
--- ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.8/0.8/0.9 ms
Vous arrêtez le défilement avec Ctrl-C.
Regardez également la commande cat /proc/interrupts
où vous devriez voir votre carte réseau ou PLIP dans le cas
de la connexion du portable. Un cat /proc/ioports devrait montrer
votre nouveau matériel et la commande netstat -i montre
combien de paquets IP ont été envoyés à chaque
interface.
Vous pouvez déjà à ce stade utiliser ftp entre
les ordinateurs et transférer des fichiers .
Votre réseau de base est bien là mais rien ne marche vraiment
bien. Vous devez maintenant éditer les différents fichiers
de configuration (utilisez aussi les jolis outils graphiques livrés
avec les différentes distributions). Finalement vous configurerez
IP-Masquerade et NFS afin que votre réseau soit pleinement fonctionnel.
J'espère que ces lignes vous auront permis de faire un bon tour
d'horizon. Ne soyez pas déçu si je ne vous ai pas vraiment
décrit comment exactement configurer la partie logicielle. Il y
aura des articles séparés couvrant ifconfig, route, netstat,
IP-Masquerade, PPP setup, l'impression réseau avec lpd et NFS. Cet
article était supposé donner une bonne vue d'ensemble pour
rendre plus facile la compréhension des autres articles à
propos du réseau.
Joyeux réseau !
P. S. : LinuxFocus est toujours heureux de recevoir des articles sur
le réseau. Tous les articles ne sont pas encore écrits et
ceci est seulement le début d'une série. Contactez-nous si
vous êtes un utilisateur expérimenté et que vous souhaitez
écrire un article.
Références
(NdT : Vous trouverez l'ensemble des
HOW-TO en français sur le site Freenix
)
Discussion sur cet article
Chaque article possède sa page de discussion. Vous pouvez y soumettre un commentaire ou lire ceux d´autres lecteurs:
2001-03-18, generated by lfparser version 2.8