Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Configuration du réseau

Sujet : Résolution des problèmes liés au réseau
Niveau : Facile
Auteur : bofh, révisé par calimarno (17.09.2006)

Introduction

Cette page de documentation décrit les procédures de diagnostic utiles pour isoler et confirmer la nature de votre problème lorsque vous n'arrivez pas à configurer correctement votre réseau. Par exemple, si :

NB : Ce document est indépendant d'une distribution particulière et devrait être utile sur n'importe quelle distribution. Néanmoins, certaines distributions peuvent proposer des manières plus élégantes de résoudre les différents problèmes, qui ne seront pas détaillées ici.

Commandes administrateur

ATTENTION: les commandes indiquées ici sont soit préfixées par un “$” pour une commande normale, soit par un ”#” pour une commande administrateur. Voici une liste de méthodes possibles pour appeler les commandes administrateur:

  • Préfixer chaque commande avec “sudo” (Ex: ”# ifconfig” → “$ sudo ifconfig”
  • Lancer ces commandes depuis un shell administrateur, qui peut être obtenu par:
    • Un login avec l'utilisateur “root”
    • La commande “sudo -i”
    • La commande “su -”

Votre station ou votre passerelle Linux n'accède pas à Internet

Commencez par tester la connectivité avec la commande ping :

$ ping -c 3 128.178.50.12

(L'adresse indiquée est celle d'un des serveurs web de l'EPFL)

La résolution DNS ne fonctionne pas

Vérifiez que le contenu du fichier /etc/resolv.conf contient au moins une ligne du type :

nameserver <adresse IP>

dont l'adresse IP corresponde à un serveur DNS de votre fournisseur d'accès Internet ou éventuellement à celle de la passerelle par défaut (par exemple si celle-ci est un Modem/Routeur qui fait office de relais DNS.)
NB: Si l'interface réseau est configurée en DHCP, le contenu de /etc/resolv.conf est écrasé automatiquement a chaque attribution d'adresse. Si son contenu est incorrect, le problème se situe dans la configuration du serveur DHCP qui a attribué l'adresse.

Le routage ne fonctionne pas

  1. Quel est le type de matériel réseau utilisé ?
    • Si c'est une carte Ethernet (connecteur RJ-45), connecté a un Hub, un Switch, un Modem avec Bridge/Routeur intégré, l'interface souhaitée est: eth0
    • Si c'est une carte WiFi (802.11a/b/g), le nom peut être eth0, wifi0, wlan0, ra0 ou ath0.
    • Si c'est un modem classique utilisant ppp, l'interface est: ppp0
    • Si vous utilisez un VPN, et que le réseau cesse de fonctionner dès que vous activez le vpn, l'interface est: tun0
    • NB : L'interface lo est une interface virtuelle destinée aux communications locales. Sa présence indique simplement le fonctionnement du sous-système réseau du noyau, pas le fonctionnement d'un quelconque périphérique réseau.
  2. Exécutez la commande (avec les droits superutilisateur):
    # ifconfig -a

L'interface réseau n'est pas reconnue

Assurez-vous de disposer d'une version récente du noyau et/ou mettez à jour votre distribution. Suivant le type de matériel (Carte réseau PCI ou intégrée a la carte mère ou périphérique USB), essayez une des commandes suivantes:

# lspci -v
# lsusb -v
  • Si l'interface réseau n'apparaît nulle part, cela signifie que le noyau ne peut pas accéder au matériel réseau : vérifiez que le périphérique est correctement installé (câbles branchés, carte correctement enfichée dans son slot) et retournez au sommet de la page.
  • Si l'interface apparaît, mais n'est pas reconnue, c'est que le driver n'a pas enregistré l'interface réseau auprès du noyau. Notez les informations fournies par la commande ci-dessus (Type de matériel, nom du composant, etc.). Utilisez un moteur de recherche ou la documentation du noyau pour déterminer le pilote (driver) approprié pour votre matériel. (NB : S'il s'agit d'un pilote propriétaire, installez-le et passez directement à la section ”un module réseau est disponible”.)
    Exécutez ensuite les commandes suivantes :
    # cd /usr/src/linux
    # make menuconfig

    et cherchez le driver approprié dans la configuration du noyau.

    • Si le driver est intégré au noyau (<*>), il y a trois possibilités :
      1. Ce n'est pas le bon driver : relisez soigneusement la documentation.
      2. La configuration dans /usr/src/linux ne reflète pas la configuration du noyau en cours : dans le doute, recompilez et réinstallez le noyau.
      3. Le matériel est trop récent, et est compatible avec ce driver, mais pas encore reconnu : attendez une annonce concernant votre matériel dans le “ChangeLog” du noyau sur kernel.org.
    • Si le driver n'est pas sélectionné (< >), sélectionnez le en module (<M>), enregistrez la configuration, entrer les commandes suivantes
      # make modules
      # make modules_install

      et référez-vous au point suivant.

Un module réseau est disponible

Vérifiez la présence de ce module dans le noyau avec la commande

lsmod
  • Si le module est présent, mais que la commande
    # ifconfig -a

    n'affiche pas l'interface réseau désirée: Le module ne reconnaît pas le périphérique réseau. la commande

    # dmesg

    affiche les messages d'erreur du noyau : le pilote n'est probablement pas le bon ou le matériel est trop récent.

  • Si le module est absent, le charger en lançant la commande :
    # modprobe <nom du module>

    Vérifier le résultat avec la commande 'dmesg'. Si des messages relatifs a la nouvelle interface réseau s'affiche, prendre des dispositions pour que le module soit chargé automatiquement au démarrage, et retourner au début. Si rien ne s'affiche, se référer au cas précédent.

L'interface réseau ne fonctionne pas

(NB : Nous supposons ici que l'interface réseau désirée est eth0; si ce n'est pas le cas pour vous, n'oubliez pas de remplacez eth0 par le nom de votre interface.)
Entrez la commande :

# ifconfig eth0
  • Si le champ inet addr n'existe pas, il vous faut configurer la couche IP.
  • Si l'interface affiche UP mais pas RUNNING
    • vérifiez que les câbles sont branchés correctement, si c'est une interface câblée.
    • configurer la couche 2 WiFi, si c'est une interface WiFi.
  • Si le champ inet addr contient une adresse de commençant par 169.254, vous utilisez la configuration automatique APIPA, utilisable seulement pour communiquer localement. Allez également à configurer la couche IP

Entrez ensuite la commande:

# route -n

et vérifiez si une ligne commençant par 0.0.0.0 est présente.

  1. Si vous n'avez aucune ligne commençant par 0.0.0.0 : voir Configuration de la passerelle par défaut FIXME
  2. Si vous avez une ligne commençant par 0.0.0.0 mais que la deuxième colonne ne correspond pas à l'adresse IP de votre routeur : votre serveur DHCP local est mal configuré, voir Configuration de la passerelle par défaut FIXME
  3. Si vous avez une ligne commençant par 0.0.0.0 et que la deuxième colonne correspond a l'adresse IP de votre routeur :

voir tester la connectivite de la passerelle

Configurer la couche IP

Chaque interface utilisant le Protocole Internet (IP) doit se voir attribuer une adresse unique. Ces adresse peuvent être attribuées statiquement ou dynamiquement. La plupart des grandes distributions incluent une manière plus élégante de procéder a cette configuration. Les techniques décrites ici fonctionnent sur toutes les distributions et sont utiles pour le dépannage surtout.

  • Configuration statique à utiliser si :
    1. une plage d'adresse spécifique vous a été explicitement attribuée par votre fournisseur d'accès,
    2. l'interface à configurer appartient a un réseau privé non connecté à Internet, qui utilise une des plages publiques 1),
    3. l'interface à configurer est connectée à Internet via un Modem/Routeur qui applique du Masquerading, et dont le serveur DHCP est désactivé. (Il faut utiliser une des plages publiques 2) ).

Une interface réseau peut être configurée rapidement avec la commande

# ifconfig eth0 <adresse IP> netmask <masque de sous-réseau>

Il faut également spécifier l'adresse de la passerelle par défaut pour les destinations extérieures :

# route add default gw <adresse IP de la passerelle>

et inscrire les adresses des serveurs DNS dans le fichier /etc/resolv.conf:

nameserver <adresse IP du permier serveur DNS>
nameserver <adresse IP du deuxième serveur>
...
  • Configuration dynamique à utiliser si:
    1. vous utilisez un Modem USB ou un Modem/Bridge, et votre fournisseur d'accès ne vous a pas attribué de plage statique,
    2. vous utilisez un Modem/Routeur configuré pour appliquer du Masquerading (NAT), et qui dispose d'un serveur DHCP intégré.

Selon votre distribution, utilisez l'une de ces trois commandes:

# dhcpcd
# dhclient
# pump

Il est aussi possible d'activer l'option “IP Kernel Level Autoconfiguration” dans le noyau.

Tester la connectivité de la passerelle

Executez la commande suivante, en remplaçant l'adresse IP par celle de votre passerelle si nécessaire:

$ ping -c 1 192.168.1.1
  • Le test réussit (au moins un paquet passe): La passerelle est atteignable, mais ne route pas. Vérifiez sa configuration.
  • Le test échoue. Immédiatement après (refaites le ping si nécessaire), exécutez la commande suivante.
# arp -a
  • Cherchez la ligne correspondant à la passerelle.
  • La ligne existe et affiche une adresse MAC: la passerelle est atteignable, mais bloque les pings, peut-être pour raison de sécurité. Vérifiez sa configuration.
  • La ligne existe et affiche ”(incomplete)” en lieu de l'adresse: la passerelle n'est pas atteignable, malgré le statut du lien. Si vous êtes connectés à la passerelle à travers un switch, vérifiez les connexions en amont de votre switch.
Configurer la couche 2 WiFi

Si vous utilisez un réseau en mode Infrastructure protégé par WPA, ou que vous utilisez un laptop qui se déplace souvent entre plusieurs réseaux, il faut utiliser wpa_supplicant.

Dans le cas contraire, vous pouvez vous en tirer avec une configuration WiFi statique

Wpa_supplicant

La manière dont wpa_supplicant est lancé varie avec chaque distribution, mais vous pouvez le controler en lancant en root la commande interactive

# wpa_cli

qui permet de voir le statut WPA.

Configuration WiFi statique

La commande

# iwlist scan

permet d'identifier les réseaux disponibles, a condition que leur ESSID ne soit pas caché. Pour se connecter à un réseau ad-hoc, entrez

# iwconfig eth0 mode Ad-Hoc

Pour vous connecter à un réseau en mode infrastructure, entrez

# iwconfig eth0 mode Managed

Sélectionnez l'identifiant du réseau (ESSID) avec

# iwconfig eth0 essid <identifiant du réseau>

Si nécessaire, entrer la clef WEP, soit sous forme hexadécimale (26 caractères pour le WEP-128):

# iwconfig eth0 key 00112233..99

soit sous forme de chaîne de caractères ASCII (13 caractères pour le WEP-128), en la préfixant avec “s:” :

# iwconfig eth0 key s:abcdefghijklm

Pour les réseaux infrastructure, vérifier l'état avec

# iwconfig eth0

Si le champ Access Point affiche autre chose que 00:00:00:00:00:00, l'interface réseau est correctement connectée à la station de base.

Si vous utilisez WEP, et que le champ “Rx invalid crypt” donné par iwconfig est non-nul et augmente avec le temps, il est fort probable que votre clef WEP est incorrecte.

Votre connexion n'est pas partagée

Activez le Forwarding IP:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Vérifiez l'état de la chaîne de Forwarding du firewall:

# iptables -L FORWARD

Le cas échéant, il est possible de la vider entièrement avec

# iptables -F FORWARD

Les stations client doivent être configurées, soit avec des adresses statiques en concordance avec le schéma d'adressage choisi, soit pour utiliser la configuration dynamique par DHCP. Dans ce cas, il est nécessaire d'installer un serveur DHCP (comme dhcpd), généralement sur la passerelle elle-même.

Il ne faut pas oublier de définir l'adresse de la passerelle par défaut sur les autres stations du réseau. Il faut s'assurer que la résolution DNS fonctionne; Pour celà, il est possible d'utiliser les adresses des serveurs DNS du fournisseur d'accès Internet, ou d'installer un serveur DNS sur la passerelle (comme BIND). Ces deux paramètres doivent être ajustés sur toutes les stations si celles-ci sont configurées statiquement, ou dans le fichier de configuration du serveur DHCP (dhcpd.conf, l'emplacement exact peut varier) si les stations utilisent DHCP.

Si le réseau interne utilise une des plages publiques3), se référer à la section suivante. FIXME

Configuration du Masquerading

Les options suivantes doivent être compilées dans le noyau, ou les modules correspondants chargés:

  • Filtre de paquets IP (aka IPTables)
  • Support de la table NAT

Le masquerading s'active avec:

# iptables -t nat -A POSTROUTING --out-interface <interface de sortie> -j MASQUERADE

“interface de sortie” est le nom de l'interface réseau reliée au réseau public (ppp0, dsl0, etc.)

1) Plages d'adresses publiques : Si le réseau à configurer n'est pas relié à Internet, ou seulement à travers du Masquerading (NAT), il existe trois plages d'adresses IP publiques utilisables sans autorisation préalable. Ces plages sont: a) 10.0.0.0 – 10.255.255.255 (masque par défaut: 255.0.0.0) b) 172.16.0.0 – 172.16.255.255 (masque par défaut: 255.255.0.0) c) 192.168.0.0 - 192.168.255.255 (masque par défaut: 255.255.255.0) La plupart des modems/routeurs configurés pour le masquerading par défaut utilisent la plage 192.168.1.x, avec x=1 pour l'adresse du routeur lui-même.
2) voir la note 1
3) voir la note 1
Powered by Dokuwiki - fr/documentation/reseau.txt · Dernière modification: 2011/07/18 08:44 (modification externe)