Configuration d'interface : commande ifconfig
Configuration au boot : ifup
Configuration
du routage : route
Visualisation des adresses
physiques (MAC) connues de la machine : arp
btenir
des informations d'état : netstat
Tester
la connectivité : ping
Tester le
routage : traceroute
Commandes standards ou non
ifconfig [interface]
ifconfig interface [aftype] options | adresse ...
Utilitaire principal. Permet
d'assigner une adresse IP (par défaut) à une interface
et de préciser des paramètres tels que le masque de
sous-réseau.
Permet aussi de modifier l'adresse matérielle
(adresse MAC) si les drivers et cartes réseau le permettent.
Permet enfin de visualiser les caractéristiques des
interfaces configurées (sans option) ou de toutes les
interfaces présentes(avec l'option -a).
ifconfig est utilisable pour d'autres protocoles
que IP. Il permet de configurer des adresses IPV6 bien évidemment
mais aussi des adresses IPX, X25 où AppleTalk (ddp).
L'affectation d'une adresse IPv4 (fonctionnement par défaut)
configure généralement aussi un routage minimal. Par
exemple si on affecte l'adresse 192.168.100.72 à l'interface
eth0 la table de routage sera augmentée d'une
route vers le réseau 192.168.100.0 via l'interface configurée
eth0.
Exemples :
ifconfig eth0 192.168.100.72
ifconfig eth0 zoe
Dans le second exemple on donne un
nom de machine au lieu du numéro IP. Il est alors nécessaire
que ce numéro figure dans le fichier /etc/hosts
sur une ligne de la manière suivante :
192.168.100.72 zoe
Il est possible d'inhiber une
interface avec l'argument down et d'effectuer la remise
en service avec l'argument up.
Dans ce mode il est inutile de préciser
une adresse. La commande ifconfig eth0 up suffira. Le
module noyau IPv6 affecte automatiquement une adresse "lien
local" qui commence par fe80: et se termine par
l'adresse MAC étendue sur 64 bits (par ajout au milieu de fffe
et par inversion du second bit de poids faible du premier octet).
Si
en outre il existe un routeur sur le réseau et que celui-ci
soit configuré pour autoriser l'autoconfiguration des
interfaces, alors une adresse de portée globale (une adresse
officielle Internet IPv6) sera affectée à l'interface.
top
La commande ifup permet de
configurer toutes les interfaces de la machine, y compris la boucle
locale lo au moment du boot. En réalité il
ne s'agit que d'une utilité permettant d'appeler
l'incontournable ifconfig et cela pour toutes les
interfaces à configurer.ifup trouve les
paramètres de configuration dans des fichiers spécifiques
aux interfaces.
Sous Debian il s'agit du fichier
/etc/sysconfig/network/interfaces.
Sous redhat ou
Mandrake il s'agit de fichiers situés dans
/etc/sysconfig/network-scripts et portant un nom
commençant par ifcfg-.
Exemple (Mandrake),
le fichier /etc/sysconfig/network-scripts/ifcfg-lo
DEVICE=lo IPADDR=127.0.0.1 NETMASK=255.0.0.0 NETWORK=127.0.0.0 # If you're having problems with gated making 127.0.0.0/8 a martian, # you can change this to something else (255.255.255.255, for example) BROADCAST=127.255.255.255 ONBOOT=yes NAME=loopback
Nota Debian : dans cette distribution
ifup peut s'utiliser avec l'option -a pour
configurer toutes les interfaces en une seule opération.
top
route [-CFvnee]
route [-v] [-A famille] add [-net|-host] cible [netmask
Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I]
[reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A famille] del [-net|-host] cible [gw Gw]
[netmask Nm] [metric N] [[dev] If]
route [-V] [--version] [-h] [--help]
Cette commande permet de paramétrer le
routage d'une machine (routage statique) et de visualiser la table de
routage (sans options ou avec l'option -n).
Pour
fixer une route normale (hors route par défaut) il est
nécessaire de préciser le netmask associé soit
avec l'option netmask soit en notation CIDR avec un "/"
suivi par le nombre de bits du masque.
Exemples :
route add -net 192.168.10.0 gw 192.168.100.1 netmask 255.255.255.0
route add -net 192.168.100.10/24 gw 192.168.100.1
Les deux exemples ci-dessus montrent deux manières légèrement différentes de créer une route vers un même réseau sur une même machine. La différence est dans la manière de préciser le netmask, explicitement dans le premier cas, en notation CIDR dans le second.
route add default gw 192.168.100.1
si la "passerelle" par défaut est 192.168.100.1
route del -net 192.168.100.10/24 gw 192.168.100.1
Cette commande permet de visualiser les
adresses de niveau Ethernet connues de la machines et "résolues"
par le protocole ARP. Toutes les adresses connues seront affichées
avec l'option -a.
Lorsqu'une machine désire envoyer un
paquet IP à une autre machine elle a besoin de connaître
l'adresse de niveau 2 de cette machine de destination, son adresse
Ethernet s'il s'agit de ce type de réseau. Il s'agit de
l'adresse réseau local, ou encore adresse MAC (Medium Access
Control dans la terminologie IEEE). Ce type d'adresse n'est
généralement pas géré manuellement, les
adresses sont affectées par les constructeurs des cartes
interfaces.
La machine a donc besoin de construire un datagramme
de type Ethernet et de placer dans le champ adresse de destination
l'adresse Ethernet de la machine dessinatrice. Celle-ci sera obtenue
grâce au protocole ARP (Adress Resolution Protocol)en envoyant
une trame en broadcast sur le réseau contenant
une requête demandant quelle est l'adresse Ethernet de la
machine dont on fournit l'adresse IP dans la requête. Si une
machine du réseau se reconnaît, cette dernière
répond alors directement en indiquent son adresse MAC.
Cette
adresse est stockée dans un cache pendant un petit moment (la
résolution n'est pas faite pour chaque paquet IP émis).
C'est ce cache que permet de visualiser la commande arptop
.
Avec la commande netstat il
est possible d'obtenir de nombreuses informations sur "l'état
réseau" de la machine. En particulier avec les options :
-i : liste des interfaces en indiquant le nombre de paquets correctement transmis et reçus sur cette interface ainsi que le nombre de paquets erronés. Le MTU de chaque interface est aussi indiqué.
-a : liste des connexions en cours, aussi bien pour le protocole simplifié UNIX que pour les autres protocoles. Les connexions passives TCP ou UNIX (les points d'accès des serveurs) sont indiqués LISTEN.
-r : affiche la table de routage, de manière identique
à la commande route utilisée sans
argument (à part -n)
-p : affiche le nom et le numéro des processus associés aux connexions en cours (il faut être « root » pour pouvoir tout visualiser).
Les commandes comme route ou netstat -r
sans autres arguments affichent la table de routage en tentant
d'indiquer les noms de réseaux ou de machines et non les
numéros correspondants. En fait ces commandes tentent une
traduction nom/numéro via l'un des moyens possibles, à
savoir : le fichier /etc/hosts, le service NIS ou le
service DNS (selon le paramétrage indiqué dans
/etc/nsswitch.conf).
Cette traduction peut
parfois être longue et entraîner une lenteur désagréable
pour l'utilisateur. Il est recommandé alors d'utiliser
l'option -n de ces commandes pour interdire la
traduction.
top
Lorsqu'une interface est paramétrée
sur une machine il convient de tout de suite tester la connectivité
de la machine au réseau. Cela se fait avec la commande
ping.
Cette commande permet aussi de tester
l'accessibilité d'une autre machine n'importe où dans
l'Internet, elle permet donc de tester le routage. Elle indique en
outre les temps d'aller et retour des paquets IP entre la machine sur
laquelle on lance la commande et la machine cible.ping
est la commande de base de l'administrateur réseau, le test
premier. Lorsque ping permet d'atteindre une machine on
peut être certain que la machine distante est en marche, que la
machine locale est raccordée au réseau et que ce
raccordement fonctionnne. On peut être certain aussi que le
routage entre les deux machines est correct dans les deux sens. Une
remarque sur ce dernier point : lorsqu'on met en pace un routage dans
un réseau il est possible que les routes soient correctes dans
un sens entre deux machines et pas dans l'autre sens. ping ,
dans ce cas nous indiquera simplement une non accessibilité.
top
Cette commande permet de donner la liste des
routeurs entre la machine sur laquelle on lance la commande et la
machine cible. Pour chaque routeur traversé trois paquets de
test sont envoyés et les trois temps d'aller et retour sont
affichés.
L'option -n permet de ne pas faire
les traductions adresses IP <-> nom de machine et permet un
affichage plus rapide.
Certains routeurs détectent les
paquets traceroute et n'y répondent pas. Certains pare-feux à
l'entrée des réseaux d'entreprises filtrent aussi ces
paquets (portant le protocole UDP pour un port destination ne
correspondant pas à une application dans la machine
destinatrice). Ce n'est donc pas un test infaillible, il peut
cependant être très utile au sein des réseaux
internes.
Par défaut la commande se termine à 30
routeurs traversés mais ce seuil est paramétrable.
top
Mis à part la commande traceroute
toutes les commandes que nous avons énuméré
ci dessus sont standard sous Unix, avec parfois quelques variantes
d'option.
On peut même retrouver sous Windows les
commandes route , ping , tracert (pour
tracroute ).
top
/etc/hosts : contient une liste d'adresses IP et les noms associés à ces adresses. Permet de se passer de DNS
/etc/services : liste des services standards, leur protocole ainsi que leur numéro de port. En général on ne touche pas à ce fichier, on finit même par oublier son existence...
/etc/resolv.conf : contient les informations sur la résolution de noms et d'adresses IP (nom versus adresse) par le service DNS. Ce fichier peut être automatiquement mis à jour lorsque l'adresse IP est configurée via DHCP. Dans les cas d'affectation statique il faut le remplir à la main ou mieux via les interfaces graphiques de paramétrage des interfaces.
/etc/nsswitch.conf : ce fichier permet de contrôler comment on accède aux différents services de nommage pour les utilisateurs (les noms de login) mais aussi pour les services réseaux. La ligne importante de ce fichier est celle commençant par le mot clé « hosts », elle permet d'indiquer comment sont résolues les associations adresses/nom_machine puisqu'il y a au moins trois solutions : le fichier hosts local (sous /etc), le fichier hosts centralisable par le service NIS (il est alors sur un serveur distant) ou alors le DNS. Par exemple, la ligne :
hosts: files nis dns
indique que la résolution prendra en compte successivement les trois possibilités dans cet ordre. Il n'y a pas de problème si le service NIS n'est pas mis en œuvre alors qu'il est indiqué ici.
Debian standard, knoppix, etc...
/etc/network/interfaces : la liste des interfaces et leur paramétrage, par exemple
auto lo eth0 iface lo inet loopback iface eth0 inet dhcp
/etc/modules : fichier dans lequel on indique le nom du module driver correspondant à la carte réseau
/etc/sysconfig/network : première liste de paramètres de configuration
/etc/sysconfig/network-scripts/ifcfg-eth0 (ou lo, eth1, eth2...) : liste des paramètres pour l'interface en question. Par exemple