Dominique Meeùs
Dernière modification le  
retour au sommaire Linux

Réseau

NetworkManager

Dans une installation moderne de Linux, le réseau est contrôlé par le NetworkManager (paquet network-manager). Dans Ubuntu ou autres environnements Gnome, le paquet network-manager-gnome fournit une icône dans la barre supérieure. En voulant mettre de l’ordre dans des lanceurs d’application, j’ai voulu effacer ce que je croyais être un séparateur et ensuite l’icone du NetworkManager n’y était plus. Ne trouvant aucun moyen de la réinstaller, j’ai désinstallé et réinstallé le paquet network-manager-gnome, en pure perte. Après de longues et fastidieuses recherches, j’ai découvert que cette icône apparait dans la Zone de notification. C’est elle que j’avais retirée par erreur. Il a suffi de la remettre pour retrouver l’icône du NetworkManager.

Commandes diverses

(Pour le chargement d’un driver de réseau, voir aussi Modules dans l’Aide-mémoire des commandes.)

Par ifconfig (commande fournie par le paquet net-tools), ou sur un dispositif particulier, par exemple, ifconfig eth0, on obtient une série de renseignements sur sa connexion, comme son adresse MAC et son adresse IP (ce qui est une manière de vérifier qu’on communique bien avec le serveur DHCP, si on n’utilise pas d’adresse IP fixe). On envoie une requête aux serveurs DHCP par sudo dhclient.

Le script qui active la connexion au réseau au démarrage du système est /etc/init.d/networking. Quand on n’a pas de réseau, il peut être utile de faire

sudo /etc/init.d/networking restart

Partage de fichiers

Il y a deux systèmes de partage de fichiers. Le système NFS (network file system) est propre à Unix et Linux. Le système Samba utilise les protocoles de Windows (hérités du PC LAN d’IBM), ce qui permet à une machine tournant sous Linux, soit d’accéder à un partage de fichiers Windows, soit d’être serveur de fichiers pour un réseau Windows.

Il y a deux systèmes de gestion en réseau des identités. Le système NIS (network information system) est propre à Unix et Linux. Samba permet la gestion de domaines comme les serveurs Windows NT et suivants.

Partage de fichiers en NFS

Les systèmes dovient pouvoir s’identifier l’un l’autre. Cela peut se faire soit directement par l’adresse IP, soit par un nom qui y correspond. Les noms sont gérés soit par un serveur DNS, soit, sur chacune des machines, par un fichier /etc/hosts, du genre

127.0.0.0    localhost

192.168.1.8    serveur

192.168.1.9    client

Le fichier hosts est lu chaque fois que nécessaire. Les modifications sont donc immédiatement suivies d’effet.

Un système Linux peut partager des fichiers en NFS si les démons nfs-common et nfs-kernel-server sont actifs. Les partages sont désignés dans le fichier /etc/exports, par exemple

/home/archives    client(rw,sync).

La commande exportfs dit ce que le démon partage actuellement. Si on modifie le fichier /etc/exports, la commande exportfs -ra oblige le démon à relire le fichier et à offrir les nouveaux partages.

Un système Linux peut accéder à des fichiers partagés en NFS si nfs-common est actif, en montant le fichier distant comme un système de fichier, par exemple

mount -t nfs serveur:/home/archives    /home/backup

ou bien en l’incluant dans etc/fstab comme

serveur:/home/archives    /home/backup    nfs    user,noauto,noexec,intr    0    0

Partage de fichiers avec Samba

Je n’ai pas encore exploré.

Administration à distance

Si on installe un serveur, par exemple un serveur LAMP (Linux, Apache, MySQL, PHP), on ne désire pas nécessairement immobiliser un moniteur et un clavier, et toute la surface de table que ça représente. Une fois réussi le minimum d'installation, il vaut mieux continuer à commander le serveur à distance.

Telnet

Telnet est à la fois le nom d'un protocole de communication et d'une commande utilisant ce protocole La commande telnet 192.168.1.8 sur un poste de travail offre une console sur le serveur dont l'adresse IP est 192.168.1.8 (par exemple), pour autant que le démon telnetd tourne sur le serveur. On peut y faire le login d'un utilisateur du serveur autre que root. Le terminal utilisé sur le poste de travail devient alors un terminal du serveur distant. Dans la communication en protocole Telnet, le login et le mot de passe qu'on introduit sont transportés comme du texte ordinaire en clair. Un programme qui « écoute » le trafic peut donc les lire. Il ne faut donc jamais utiliser Telnet sur Internet mais seulement sur un réseau local non connecté à l'extérieur ou connecté à travers un bon parefeu. C'est pour cela qu'on utilise plutôt aujourd'hui SSH.

Adaptateur réseau Ethernet

Davicom DM9601

Le chip Davicom DM9601 (utilisé par divers fabiquants d’adapateur Ethernet USB, par exemple Dynamode dans son USB-NIC-1417-100) est supporté par le noyau 2.6.22 utilisé par Ubuntu 7.10. Attention que le répertoire est devenu
/lib/modules/2.6.22_et_cetera/kernel/drivers/net/usb (au lieu de .../usb/net).

Sur le site de Davicom, on trouve des sources de pilote pour noyau 2.6. J’ai cependant eu un problème avec Ubuntu 7.04 : il n’y a plus de config.h (qui est appelé par include dans dm9601.c). J’ai donc dû en écrire un moi-même (en m’inspirant de versions antérieures du noyau). (Il parait que ce serait devenu configfs.h et qu’il faut corriger l’include.) Si ça vous intéresse, vous pouvez le télécharger. Voici aussi le dm9601.ko résultant.

Pour un portable un peu ancien (Dell Latitude Cpx) dépourvu d’adaptateur de réseau interne, je disposais d’un adaptateur Ethernet USB : Dynamode USB-NIC-1417-100, basé sur le chipset DM9601 de Davicom. La commande lsusb donne Bus 001 Device 002 ID 0a46:9601 Davicom Semiconductor, Inc. Cet adaptateur n’est à ma connaissance supporté par aucune disribution de Linux. (Il est vendu avec driver Windows sur CD-ROM et ça fonctionne.) Sur le site de Dynamode, on ne trouve rien. Sur le site de Davicom, on ne trouve que des sources de pilote pour noyaux 2.4.18 et 20. Je leur ai écrit et il m’ont envoyé dans le quart d’heure les sources d’un pilote pour le noyau 2.6.18 que j’ai pu compiler avec succès dans un Ubuntu 6.10 avec noyau 2.6.17. J’ai créé le dossier de ce pilote comme /usr/src/linux-headers-2.6.17-11/drivers/usb/net/dm9601-2-6-18. (Pour voir quels numéro il faut mettre derrière headers, faire uname -r.) Je m’y suis placé par cd. J’ai fait make. J’ai placé le fichier dm9601.ko obtenu avec les autres modules dans /lib/modules/2.6.17-11-generic/kernel/drivers/usb/net. Il faut encore faire depmod -A pour que le driver soit reconnu par le système. Ce qui est certain c’est que mon Dell Cpx se connecte maintenant à Internet par le réseau Ethernet local de la maison où j’habite. (Décembre 2006.) USB NICs based on the Davicom DM9601 chipset are not supported, as far as I now, by any Linux distribution. I got from Davicom the sources of a driver for the kernel 2.6.18 and it works under Ubuntu 6.10 (kernel 2.6.17). (December 2006.)
Si ça vous intéresse, téléchargez ce dossier comprimé tar.gz dm9601-2-6-18. Rien ne vous empêche, bien sûr, d’essayer d’abord mon driver dm9601.ko sous forme digitale. (Décembre 2006.) If you are interested, you may download the following tar.gz archive dm9601-2-6-18. Of course, you may want to try my dm9601.ko digital first. (December 2006.)

Une autre possiblité (que je n’ai pas explorée parce que j’ai finalement trouvé une solution purement Linux - et que d’ailleurs je ne connaissais pas à l’époque) serait d’utiliser le driver Windows à travers le NdisWrapper. Ce projet s’adresse surtout aux réseaux Wifi mais est réputé fonctionner aussi pour d’autres Ethernet, USB et cetera.

nForce 2

Le programme d’installation reconnait ma carte réseau ce qui permet d’installer à partir d’Internet. Le sytème installé fonctionne encore avec réseau. Un beau matin, suite à une mise à jour, plus de réseau. (C’était en Debian testing ou unstable, ces accidents n’arrivent plus avec Ubuntu.) J’ai essayé une nouvelle installation dans une nouvelle partition. L’installation se fait bien en réseau mais le système installé ne reconnait plus eth0 : « ERROR while getting interface flags: No such device ». J’ai réinstallé pour rien. Pourtant la carte est bien identifiée: la commande lspci donne "Ethernet controller: nVidia Corporation nForce2 Ethernet Controller (rev a1)".

Après des heures de recherches (où j’ai dû m’abaisser à retourner à Windows et à Internet Explorer – quelle honte ! – puisque je n’avais plus de réseau sous Linux), et l’étude du réseau, du chargement des modules et cetera, j’ai trouvé la solution dans une discussion: il faut écrire « alias eth0 forcedeth » (c’est le nom du pilote de ma carte nForce) dans le fichier /etc/modutils/aliases. Ensuite, la commande update-module va écrire cette information dans le fichier /etc/modules.conf qu’il vaut mieux ne pas éditer soi-même. Shutdown -r now, et ça marche, le pilote est chargé au démarrage et le réseau fonctionne. [modules.conf et update-modules sont maintenant obsolètes.]

Ça n’a l’air de rien quand on lit ça comme ça (appliquer la solution m’a pris une minute), mais c’est presque une journée de travail – où j’ai agrandi ma partition active sans rien perdre ! créé une nouvelle partition, fait une nouvelle installation, beaucoup tourné en rond, beaucoup appris – c’était ça Linux avant Ubuntu.

Dominique Meeùs, retour en haut de la page