Page suivante Page précédente Table des matières

5. Faire marcher le réseau

L'objectif ici est de pouvoir relier la machine au réseau local, et de la rendre capable de communiquer avec le reste du monde.

5.1 Faire reconnaitre la carte réseau

On suppose qu'il s'agit d'une carte Ethernet

Ça ne serait pas très différent avec des cartes Token Ring ou autres, mais inutile de compliquer les explications
.

Pour savoir si votre carte est déjà reconnue par le noyau, tentez ceci:

# ifconfig eth0

Si elle n'est pas reconnue, vous aurez le message "Périphérique non trouvé" qui signifie que la carte n'est pas encore reconnue par le noyau qui a été lancé au démarrage, ni par les pilotes de cartes réseau qui ont éventuellement été lancés par la suite. Maintenant, que faire ?

Première étape, identifier le type de carte réseau, en regardant la boite, ou sur la carte elle-même. A tout hasard, lancez la commande

# lspci
ou
# cat /proc/pci
qui vous dira ce que le noyau pense des cartes (et autres dispositifs) PCI présents dans l'ordinateur. Normalement - si c'est une carte PCI - vous devriez trouver une ligne qui parle d'Ethernet. Notez-la.

Seconde étape, cherchez un pilote pour la carte réseau parmi les modules disponibles. Les pilotes se trouvent dans /lib/modules/xx.yy.zz/net, où xx.yy.zz est la version du noyau, que vous pouvez déterminer par la commande uname -r.

Voila la liste des modules d'un système typique :

$ ls /lib/modules/$(uname -r)/net
3c501.o           comx-hw-locomx.o   hostess_sv11.o  sb1000.o
3c503.o           comx-hw-mixcom.o   hp-plus.o       sbni.o
3c505.o           comx-proto-fr.o    hp.o            scc.o
3c507.o           comx-proto-lapb.o  hp100.o         sdla.o
3c509.o           comx-proto-ppp.o   ibmtr.o         sdladrv.o
3c515.o           comx.o             ipddp.o         sealevel.o
3c523.o           cops.o             ircomm.o        shaper.o
3c527.o           cosa.o             irda.o          sis900.o
3c59x.o           cs89x0.o           irlan.o         sk98lin.o
6pack.o           de4x5.o            lance.o         sk_mca.o
8139too.o         de600.o            lanstreamer.o   sktr.o
82596.o           de620.o            lne390.o        slhc.o
8390.o            depca.o            ltpc.o          slip.o
ac3200.o          dgrs.o             mkiss.o         smc-mca.o
acenic.o          dlci.o             n2.o            smc-ultra.o
arc-rimi.o        dmascc.o           ne.o            smc-ultra32.o
arcnet.o          dmfe.o             ne2.o           smc9194.o
arlan-proc.o      dummy.o            ne2k-pci.o      soundmodem.o
arlan.o           e2100.o            ne3210.o        starfire.o
at1700.o          eepro.o            ng_tulip.o      strip.o
baycom_epp.o      eepro100.o         ni5010.o        syncppp.o
baycom_par.o      eexpress.o         ni52.o          tlan.o
baycom_ser_fdx.o  epic100.o          ni65.o          tulip.o
baycom_ser_hdx.o  eql.o              old_tulip.o     via-rhine.o
bonding.o         es3210.o           olympic.o       wanpipe.o
bpqether.o        eth16i.o           pc300.o         wanxl.o
bsd_comp.o        ethertap.o         pcnet32.o       wavelan.o
c101.o            ewrk3.o            plip.o          wd.o
com20020.o        fmv18x.o           ppp.o           x25_asy.o
com90io.o         hamachi.o          ppp_deflate.o   yam.o
com90xx.o         hdlc.o             rcpci.o         yellowfin.o
comx-hw-comx.o    hdlcdrv.o          rtl8139.o       z85230.o

Si vous trouvez votre bonheur dans la liste (par exemple via-rhine.o), il ne vous reste plus qu'à charger le module, par

# modprobe via-rhine
Si ça s'est bien passé, il n'y a pas de message à la console, et en faisant ifconfig eth0 vous devez voir des informations à propos de la carte. Si ça ne marche pas, voyez ce qu'a dit la commande dmesg à propos du chargement du module. Eventuellement essayez d'autre modules.

À tout hasard, une ``méthode de sauvage'' pour essayer de déterminer le module qui va convenir :

# cd /lib/modules/$(uname -r)/net
# for m in *.o ; do modprobe $(basename $m .o) ; done
et ensuite regarder ce qu'en dit dmesg, consulter la liste des modules chargés (lsmod), ...

Ensuite, il ne reste plus qu'à demander le chargement du module à chaque démarrage : selon les distributions de linux, vous pourrez

Remarques :

5.2 Configurer l'interface réseau et les routes

On suppose qu'on veut donner l'adresse 10.11.12.13 à notre machine, sachant que les autres machine du réseau local portent des numéros commençant par 10.11.12, et que la passerelle de sortie est 10.11.12.254.

La commande ifconfig permet de configurer l'interface réseau.

# ifconfig eth0 10.11.12.13  netmask 255.255.255.0  up

Si un ``ping 10.11.12.254'' répond, tout va bien.

Un ``ping 10.11.12.13'' qui répond n'est pas vraiment significatif. Dans ce cas la couche réseau de notre machine n'a absolument pas besoin de faire appel à la couche physique pour communiquer avec elle-même. Par contre si ça ne répond pas, c'est révélateur d'un problème (adresse mal configurée, pas de support réseau dans noyau, ...)

Sinon

Enfin, la route par défaut est installée par
# route add default gw 10.11.12.254
Normalement, la machine peut maintenant communiquer avec le reste du monde.

En cas de doute, on peut consulter la route par route -n ou netstat -rn.

Pour survivre au redémarrage, la configuration doit être enregistrée dans des fichiers qui dépendent - comme d'habitude - de la distribution

5.3 Utiliser un serveur de noms

Facile à configurer : il faut placer le numéro IP du serveur de noms dans le fichier /etc/resolv.conf, qui ressemble à ceci :

search stage.org
nameserver 10.11.12.1
La directive search indique un domaine par défaut, ce qui permet d'abréger un nom complet comme pc112.stage.org en pc112.


Page suivante Page précédente Table des matières