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.
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:
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)
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.
eth0
eth0
, wifi0
, wlan0
, ra0
ou ath0
.ppp
, l'interface est: ppp0
tun0
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. # ifconfig -a
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
# cd /usr/src/linux # make menuconfig
et cherchez le driver approprié dans la configuration du noyau.
# make modules # make modules_install
et référez-vous au point suivant.
Vérifiez la présence de ce module dans le noyau avec la commande
lsmod
# 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.
# 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.
(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
inet addr
n'existe pas, il vous faut configurer la couche IP. UP
mais pas RUNNING
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 IPEntrez ensuite la commande:
# route -n
et vérifiez si une ligne commençant par 0.0.0.0 est présente.
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.
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> ...
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.
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
# arp -a
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
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.
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.
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.
Les options suivantes doivent être compilées dans le noyau, ou les modules correspondants chargés:
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.)