Configuration réseau

État : {a_reli}

Retour au document principal

L'interface réseau

La carte réseau (NIC - network interface card) doit être prise en charge par le noyau. Pour déterminer le type de carte utilisée, vous pouvez utiliser les commandes dmesg ou /sbin/lsmod, ou encore obtenir des informations à partir des fichiers /proc/interrupts ou /etc/modules.conf.

Exemple :

dmesg
Linux Tulip driver version 0.9.14 (February 20, 2001)
PCI: Enabling device 00:0f.0 (0004 -> 0007)
PCI: Found IRQ 10 for device 00:0f.0
eth0: Lite-On 82c168 PNIC rev 32 at 0xf800, 00:A0:CC:D3:6E:0F, IRQ 10.
eth0:  MII transceiver #1 config 3000 status 7829 advertising 01e1.

cat /proc/interrupts
0:    8729602          XT-PIC  timer
1:          4          XT-PIC  keyboard
2:          0          XT-PIC  cascade
7:          0          XT-PIC  parport0
8:          1          XT-PIC  rtc
10:     622417          XT-PIC  eth0
11:          0          XT-PIC  usb-uhci
14:     143040          XT-PIC  ide0
15:        180          XT-PIC  ide1

/sbin/lsmod
Module                  Size  Used by
tulip                  37360   1 (autoclean)

Dans l'exemple précédent, nous pouvons voir que la carte réseau est construite sur un circuit (chipset) Tulip, et qu'elle utilise les adresses d'E/S 0xf800 et l'IRQ 10. Vous pouvez utiliser ces informations quand le module chargé (le pilote) n'est pas le bon ou quand les ressources (E/S ou IRQ) ne sont pas disponibles.

On pourra soit insérer le module avec des adresses E/S différentes, en utilisant modprobe ou insmod, soit enregistrer ces informations dans /etc/modules.conf, pour qu'elles soient actives au prochain démarrage.

Informations sur l'hôte

Les paramètres réseau sont stockés dans les fichiers suivants.

On peut également associer un nom différent à chaque interface réseau. Ceci est fait différemment suivant les distributions.

Démarrage et arrêt du réseau

À partir de la ligne de commande

L'outil principal pour activer l'interface réseau est /sbin/ifconfig. À l'initialisation, le module du noyau lié (alias) à eth0 dans /etc/modules?conf (i.e. tulip.o - NdT : pour les noyaux 2.4.x) est chargé et l'adresse IP ainsi que le masque lui sont attribués.

Ainsi, vous pouvez brancher et débrancher l'interface sans perdre ces informations tant que le module du noyau est chargé.

Exemples : utilisation d'ifconfig

/sbin/ifconfig eth0 192.168.10.1 netmask 255.255.128.0
/sbin/ifconfig eth0 down
/sbin/ifconfig eth0 up

Vous pouvez également utiliser /sbin/ifup. Ce programme affecte les valeurs lues dans les fichiers de configuration de /etc/sysconfig à l'interface donnée. Pour eth0, vous devez configurer le script ifcfg-eth0. Si vous utilisez DHCP, alors ifup activera l'interface avec ce protocole.

Exemples : Utilisations d'ifup

/sbin/ifup eth0
/sbin/ifup ppp0
/sbin/ifdown eth0

À partir des scripts réseau

Au démarrage, la carte ethernet est initialisée avec le script /etc/rc.d/init.d/network (NdT : systèmes RedHat). Le script utilise les fichiers du répertoire /etc/sysconfig/.

Ce script lit également les options de sysctl dans /etc/sysctl.conf. C'est dans ce fichier que vous pouvez activer la redirection d'IP (IP forwarding) du noyau et ainsi configurer votre système comme un routeur. Par exemple, la ligne :

net.ipv4.ip_forward = 1

active la redirection IP et le fichier /proc/sys/net/ipv4/ip_forward contiendra un "1".

On lance le script network avec la commande suivante (NdT : systèmes RedHat) :

/etc/rc.d/init.d/network restart

Renouvellement du bail DHCP

Les commandes suivantes peuvent effectuer une requête auprès du serveur DHCP pour obtenir une nouvelle adresse IP :

Il existe également un démon client, nommé dhcpcd, à ne pas confondre avec le démon du serveur DHCP, dhcpd.

Routage

Une différence notable lorsque l'on utilise ifup (NdT : par rapport à ifconfig) est la table de routage du système. En effet, ifup lit le fichier /etc/sysconfig/network qui contient la passerelle par défaut, ou le serveur DHCP a envoyé cette information en même temps que l'adresse IP. La commanda /sbin/route permet de configurer, contrôler ou modifier les tables de routage.

Exemples d'utilisations de route

Passerelle par défaut

Dans la liste précédente, le champ de destination est le liste des réseau. Plus particulièrement, 0.0.0.0 signifie "n'importe où". En gardant ceci à l'esprit, il y a deux IPs dans le champ de passerelle, laquelle est la passerelle par défaut ?

(!) Pour éviter de taper les routes statiques à la main, les démons spéciaux : gated ou routed sont lancés pour mettre à jour dynamiquement les tables de routage à travers le réseau.

(!) Si vous êtes sur le réseau 192.168.10.0 et ajoutez une route vers le réseau 192.168.1.0, il est possible que les machines de ce réseau ne puissent pas vous répondre. C'est parce qu'aucune route n'aura été définie sur le réseau 192.168.0.1 pour contacter votre machine ! On résout ce problème en utilisant les routes dynamiques.

Routes statiques permanentes

Si vous avez utilisez différents réseaux avec plus d'une passerelle, vous pouvez utiliser le fichier /etc/sysconfig/static-routes en lieu et place des démons de routage (NdT : systèmes RedHat). Ces routes seront ajoutées au démarrage par le script network.

Un scénario de routage

Plan représentant le réseau du scénario de routage

Réseau 1

Réseau 2

10.8.10.34

192.168.1.2

réseau

Passerelle

réseau

Passerelle

10.0.0.0

0.0.0.0

192.168.1.0

0.0.0.0

0.0.0.0

10.0.0.2

0.0.0.0

192.168.1.1

route add 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.111

route add 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.108

réseau

Passerelle

réseau

Passerelle

10.0.0.0

0.0.0.0

192.168.1.0

0.0.0.0

192.168.1.0

10.0.0.111

10.0.0.0

192.168.1.108

0.0.0.0

10.0.0.2

0.0.0.0

192.168.1.1

Outils réseau courants

Voici une courte liste d'outils bien pratiques pour résoudre les problèmes de connexions réseau.

ping

ping hôte

Cette commande envoie un paquet ICMP_ECHO_REQUEST à "hôte" et attend un ICMP ECHO_RESPONSE.

Options :

netstat

La commande netstat permet d'obtenir, selon les options utilisées, la liste des connexions réseau en cours, la table de routage ou des statistiques sur l'interface.

Options :

Exemple :

netstat –-inet –n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address       Foreign Address         State
tcp        0      0 192.168.1.10:139   192.168.1.153:1992      ESTABLISHED
tcp        0      0 192.168.1.10:22    192.168.1.138:1114      ESTABLISHED
tcp        0      0 192.168.1.10:80    192.168.1.71:18858      TIME_WAIT

Dans cet exemple, vous pouvez voir que la machine a établi des connexions sur les ports tcp 139, 22 et 80.

arp

La commande arp affiche (NdT : et manipule) le cache de résolution des adresses ARP.

Exemple :

arp
Address          HWtype  HWaddress            Iface
192.168.1.71     ether   00:04:C1:D7:CA:2D    eth0

traceroute

Affiche la route prise par les paquets jusqu'à l'hôte distant. traceroute force les hôtes intermédiaires à répondre par des messages d'erreur (ICMP TIME_EXCEEDED), en fixant délibérément le TTL (temps de vie restant - Time To Live) à une valeur trop faible. Après chaque notification TIME_EXEEDED, traceroute incrémente cette valeur, ce qui force le paquet suivant à aller un nœud plus loin, jusqu'à ce qu'il atteigne sa destination.

Exemple :

/usr/sbin/traceroute -n  www.redhat.com
traceroute: Warning: www.redhat.com has multiple addresses; using 216.148.218.197
traceroute to www.redhat.com (216.148.218.197), 30 hops max, 38 byte packets
1  192.168.1.1  0.440 ms  0.347 ms  0.341 ms
        ---- snip ---
14  12.122.2.145  112.116 ms  110.908 ms  112.002 ms
15  12.122.2.74  156.629 ms  157.028 ms  156.857 ms
16  12.122.255.222  156.867 ms  156.641 ms  156.623 ms
17  216.148.209.66  159.982 ms  157.462 ms  158.537 ms
18  216.148.218.197  157.395 ms  156.789 ms  156.080 ms

Options :

Exercices

  1. Donnez la table de routage de la passerelle LAN pour le scénario de routage

  2. Activez votre interface réseau manuellement :
    •  ifconfig eth0 192.168.0.x 

    • à partir de la liste des modules du noyau, vérifiez que le module pour eth0 est chargé (regardez dans /etc/modules).

  3. stoppez votre interface réseau avec :
    1. ifconfig eth0 down
    2. vérifiez que vous pouvez réactiver votre interface sans avoir à entre de nouveau les paramètres : ifconfig eth0 up

  4. arrêtez votre interface puis déchargez le module du noyau (rmmod module). Que ce passe-t-il si vous répétez l'étape 3(ii) ?
  5. Séparez la classe en deux réseau : A (192.168.1.0) et B (10.0.0.0)
    • essayez d'accéder aux postes sur le réseau
    • choisissez une machine pour faire office de passerelle (sur les deux réseaux)
    • sur la passerelle uniquement, procédez comme suit :
      • activer la redirection d'adresses IP :
        echo 1 > /proc/sys/net/ipv4/ip_forward
      • activez une interface virtuelle qui fonctionnera comme seconde interface
        • pour une machine sur le réseau 192.168.1.0 : ifup eth0:1 10.0.0.x (où x est une IP disponible sur ce réseau)

      • ajoutez une route vers le nouveau réseau en la forçant à utiliser l'interface eth0:1
    • sur des machines de chacun des deux réseaux, définissez une route vers l'autre réseau utilisant l'IP de la passerelle

Page consultée 286 fois