Un réseau à la maison, lexique et vue d'ensemble

ArticleCategory: [Es gibt verschiedene Artikel Kategorien]

System Administration

AuthorImage:[Ein Bild von Dir]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Guido Socher

en to fr Jean Peyratout

AboutTheAuthor:[Eine kleine Biographie über den Autor]

Guido est un adepte de Linux de longue date. Chez lui, tous ses ordinateurs sont en réseau.

Abstract:[Here you write a little summary]

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.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

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.
10Base2

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é.
10BaseT

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.


RJ-45
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 : 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. 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 :
  1. 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.
  2. 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.
example network 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 )