Configuration réseau
Configuration réseau
1. Principes
2. Configuration manuelle
3. Configuration permanente
Avant de pouvoir utiliser ou fournir des services sur un réseau, un système Debian GNU/Linux doit déjà
être connecté à ce réseau. Sur un ordinateur de bureau, cette configuration est souvent automatique, mais il
est bon de la maîtriser si l'on souhaite jouer un rôle de serveur.
1. Principes
Les réseaux informatiques utilisent un modèle composé de plusieurs couches de protocoles. Nous nous
intéressons ici à la troisième couche, dite couche réseau, qui utilise le protocole IP (Internet protocol), dans
sa version 4 ou 6 : c'est cette couche qui définit la topologie des réseaux, et dont la configuration est par
conséquent très importante.
On se connecte à un réseau en utilisant une carte ou une clef réseau. Du point de vue du système
d'exploitation, ce périphérique est une interface réseau. Sous Linux, ces interfaces sont nommées eth0,
eth1… pour des interfaces filaires, et wlan0, wlan1 pour des interfaces sans fil (wifi, wimax…). Il existe
également une interface spéciale, nommée lo (pour loopback) qui désigne toujours votre propre ordinateur.
Note
Dans tout ce chapitre, nous supposerons que vous disposez d'une interface filaire, nommée eth0. Nous
verrons plus loin comment afficher la liste de vos interfaces.
Éléments de configuration
Une configuration réseau complète, permettant de profiter d'un réseau ou de l'Internet, est constituée des
éléments suivants :
une adresse IP
cette adresse identifie votre hôte sur le réseau où il est connecté ;
un masque de sous-réseau
cette donnée indique la partie de votre adresse qui caractérise le réseau local sur lequel votre hôte
est connecté, et lui permet de déterminer, pour n'importe quelle adresse IP, si celle-ci fait ou non
partie du réseau local ;
une passerelle par défaut
c'est l'adresse IP à laquelle il faut transmettre les paquets IP destinés à des hôtes situés hors du
réseau local, pour qu'ils soient routés vers le réseau local de leur destinataire ;
des serveurs DNS
ce sont les adresses de serveurs auxquels votre système ira demander les correspondances entre
noms de domaine ([Link]) et adresses IP ([Link]).
Chaque élément de configuration est nécessaire pour pouvoir utiliser normalement le réseau ou l'Internet :
sans adresse IP, il est impossible de recevoir les réponses à ses requêtes ;
sans masque de sous-réseau ou sans passerelle par défaut, il est impossible de communiquer avec
les hôtes situés hors du réseau local ;
sans serveur DNS, on ne peut pas désigner un hôte par son nom de domaine, et il faut donc
connaître les adresses IP de tous les serveurs que l'on souhaite utiliser.
Masque de sous-réseau
Le sous-réseau désigne votre réseau local ou LAN (local area network). Il est défini par
un préfixed'adresse, par exemple 192.168.0 : toutes les adresses IP qui commencent pas ce préfixe font
partie de votre réseau local. Il peut être écrit de deux façon :
par sa longueur
en nombre de bits, notée /longueur : dans notre exemple, /24 (chaque chiffre d'une adresse IP
fait un octet, soit 8 bits) ;
par un masque
Page 1 sur 7
Configuration réseau
semblable à une adresse IP dont tous les bits sont à 1 dans la partie correspondant au préfixe, et
à 0 dans la partie restante : dans notre exemple, [Link].
Configuration statique
C'est le mode de configuration le plus simple à comprendre : vous devez connaître à l'avance votre
configuration complète, pour l'appliquer sur votre système.
Configurer votre connexion consiste alors à affecter à votre carte réseau son adresse IP et son masque de
sous-réseau, à ajouter la passerelle par défaut à la table de routage du noyau Linux, et à noter l'adresse des
serveurs DNS dans le fichier de configuration durésolveur DNS.
Configuration dynamique
Ce mode de configuration, désormais très répandu, est plus adapté aux ordinateurs portables, susceptibles
d'être connectés à des réseaux différents, ou aux gens qui ne veulent pas avoir besoin de configurer eux-
même leur connexion.
Pour cela, lorsque votre système démarre, ou détecte qu'il vient d'être connecté à un réseau, envoie une
demande de paramètres de connexion. Pour un réseau IPv4, cette demande utilise le protocole DHCP
(dynamic host configuration protocol) ; pour un réseau IPv6, elle s'effectue dans le cadre d'un processus
appelé découverte de voisinage, ou par DHCPv6.
Sur un réseau permettant les configurations dynamiques, un serveur répond alors en vous proposant une
configuration, qui est alors appliquée sur votre système.
2. Configuration manuelle
2.1. Adresse IP et masque de sous-réseau
La configuration IP proprement dite peut être gérée à l'aide de la commande ifconfig. Sans argument, celle-
ci affiche la configuration de toutes vos interfaces réseau configurées :
% ifconfig
eth0 Link encap:Ethernet HWaddr [Link]
inet adr:[Link] Bcast:[Link] Masque:[Link]
adr inet6: fe80::21c:23ff:fe3f:ffbb/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:749880 errors:0 dropped:0 overruns:0 frame:0
TX packets:393902 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:910931782 (868.7 MiB) TX bytes:32422248 (30.9 MiB)
Interruption:17
lo Link encap:Boucle locale
inet adr:[Link] Masque:[Link]
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:71 errors:0 dropped:0 overruns:0 frame:0
TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:10096 (9.8 KiB) TX bytes:10096 (9.8 KiB)
Note
Cette commande peut également afficher les interfaces non configurées, avec l'argument -a, pour all.
Cela peut servir à déterminer le nom d'une interface non encore configurée.
Pour appliquer une configuration à une interface, on utilise la même commande, avec des arguments
correspondants à cette configuration. Par exemple, pour utiliser l'adresse IPv4 [Link] et le masque de
sous-réseau [Link] sur l'interface eth0, en tant que root, tapez :
# ifconfig eth0 [Link]
Page 2 sur 7
Configuration réseau
Pour ajouter l'adresse IPv6 [Link] avec un sous-réseau de longueur 32, tapez :
# ifconfig eth0 add [Link]/32
Note
Pour supprimer une configuration IPv4, utilisez la commande ifconfig eth0 down. Pour supprimer une
configuration IPv6, utilisez la commande ifconfig eth0 del <adresse>.
2.2. Passerelle par défaut
La passerelle par défaut permet de définir l'hôte de votre réseau local vers lequel envoyer tous les paquets
destinés à des hôtes situés hors du réseau local, ce qui définit une route par défaut. Cette route doit être
ajoutée à la table de routage du noyau Linux, avec la commande route. Par exemple, si votre passerelle par
défaut a pour adresse IPv4 [Link], et peut être jointe par votre interface eth0, ajoutez ainsi la route par
défaut :
# route add default gw [Link] dev eth0
Si vous êtes sur un réseau IPv6 qui possède une passerelle [Link], utilisez l'option --inet6, qui permet
de manipuler la table de routage IPv6 plutôt que la table IPv4 :
# route --inet6 add default gw [Link] dev eth0
Pour afficher la table de routage conmplète, utilisez la commande route sans arguments. Pour supprimer
une route, utilisez la commande route del, suivie des mêmes arguments :
% route --inet6
Table de routage IPv6 du noyau
Destination Next Hop Flag Met Ref Use If
2001::/32 :: U 256 0 1 eth0
fe80::/64 :: U 256 0 0 eth0
::/0 [Link] UG 1 0 0 eth0
ff00::/8 :: U 256 0 0 eth0
# route --inet6 del default gw [Link] dev eth0
Note
La configuration IP et la table de routage peuvent être manipulées de façon plus avancée par une
commande unique, ip, disponible dans le paquet iproute, dont vous pouvez consulter le site web.
2.3. Serveurs DNS
La configuration IP et la route par défaut concernaient le noyau Linux. Les serveurs DNS concernent
le résolveur, une fonction logicielle qui permet de traduire les noms de domaines en adresses IP. Ce
résolveur utilise pour cela les serveurs dont les adresses sont notées dans le fichier /etc/[Link]. Si
le serveur DNS de votre fournisseur d'accès, a pour adresse IPv4 [Link], éditez ce fichier pour qu'il
contienne :
nameserver [Link]
2.4. Configuration dynamique
Dans un réseau IPv4, vous pouvez demander une configuration par DHCP en utilisant le
programme dhclient :
# dhclient eth0
Si un serveur DHCP est disponible sur votre réseau et répond à votre requête, dhclient vous rend la main
en affichant des informations sur la configuration obtenue, appelée bail DHCP. Dans le cas contraire, il
Page 3 sur 7
Configuration réseau
continue d'envoyer des requêtes DHCP indéfiniment, jusqu'à ce que vous décidiez de l'interrompre en
appuyant sur Ctrl+c. Vous devrez alors procéder à une configuration manuelle…
3. Configuration permanente
Évidemment, il serait hors de question de devoir saisir à la main les commandes permettant de configurer
votre connexion à chaque fois que vous démarrez votre système. Debian permet donc d'enregistrer votre
configuration dans un fichier,/etc/network/interfaces :
auto lo eth1
allow-hotplug eth0
iface lo inet loopback
iface eth0 inet dhcp
iface eth1 inet static
address [Link]
netmask [Link]
gateway [Link]
dns-nameservers [Link]
iface eth1 inet6 static
address [Link]
netmask 32
gateway [Link]
dns-nameservers [Link]
Interfaces à configurer automatiquement
Les instructions auto, qui peuvent se trouver plusieurs fois et n'importe où dans le fichier, précisent quelles
interfaces doivent être configurées au démarrage du système d'exploitation. On les place en général juste
avant la définition de chaque interface.
Les instructions allow-hotplug ont le même effet, à ceci près que l'interface ne sera configurée au
démarrage que si elle est connectée à un réseau.
Dans mon exemple, les interfaces lo et eth1 seront donc configurées au démarrage, qu'elles soient
branchées ou non. L'interfaceeth0, quant à elle, sera configurée au démarrage si elle est branchée.
Configuration d'une interface
La configuration de chaque interface est décrite dans une section iface <nom_de_l'interface>. Celle-ci est
immédiatement suivie du protocole utilisé : inet pour une configuration IPv4 et inet6 pour une
configuration IPv6. Enfin, toujours sur la même ligne, on trouve le type de configuration à utiliser : static,
ou dhcp pour une configuration dynamique par DHCP.
Note
Pour une configuration IPv6 dynamique, il est inutile de préciser une configuration dans le
fichierinterfaces : le protocole IPv6 a été conçu de telle façon que le processus découverte de
voisinage est entièrement pris en charge par le noyau.
Les interfaces configurées par DHCP n'ont besoin d'aucune autre paramètre. En revanche, pour les
interfaces dont la configuration est définie de façon statique, il faut préciser cette configuration :
address
l'adresse IP attribuée à l'interface ;
netmask
pour une configuration IPv4, le masque de sous-réseau ; pour une configuration IPv6, la longueur
du préfixe correspondant au sous-réseau ;
gateway
l'adresse IP de la passerelle ;
dns-nameservers
Page 4 sur 7
Configuration réseau
les adresses IP de vos serveurs DNS.
Note
La directive dns-nameservers ne peut être utilisée qu'après avoir installé le paquet resolvconf, qui
n'estpas préinstallé avec Debian.
Note
Pour plus de détails sur ce fichier de configuration, vous pouvez consulter son manuel : man
interfaces.
Astuce
Il est possible d'attribuer plusieurs configurations IP à une même adresse. La façon la plus simple pour
cela est de définir des interfaces virtuelles. À partir de l'interface eth0, vous pouvez définir les
interfaceseth0:0, eth0:1…, qui seront alors utilisables comme des interfaces réelles.
Appliquer la configuration d'une interface
Les interfaces listées comme auto ou allow-hotplug sont activées selon leur configuration au démarrage de
Debian. Si vous venez de rédiger la configuration d'une interface, ou si vous voulez l'activer ou la
désactiver à la main, utilisez les commandes ifup (pour l'activer) et ifdown (pour la désactiver) :
# ifup eth0
Configuration d'un serveur d'un réseau TCP/IP sous Linux
Introduction
Dans cette partie , nous allons décrire toutes les étapes nécessaires pour configurer votre réseau TCP/IP sur
votre serveur. Tout d'abord, nous verrons les types d'adressage IP, ensuite, nous configurerons vos interfaces
réseaux et enfin nous pourrons terminer par la description de quelques outils réseaux.
Cette documentation explique la mise en oeuvre d'un réseau TCP/IP pour toutes les distributions Linux. Celle-ci ne
traitera donc pas de la mise en place des fichiers de démarrage réseaux.
Assignation du nom de machine
Pour beaucoup d'application réseau, il est souvent important de définir un nom de machine.
Pour cela vous pouvez utiliser la commande hostname :
hostname VotreMachine
Par exemple
hostname Albert
(où "Albert" est le nom de ma machine)
Assignation des adresses IP
Avant de configurer un réseau ip , il est important de se poser la question de ce que vous comptez faire de ce
réseau et combien de clients, votre réseau va gérer. En effet le nombre de client détermine la classe d'adresse IP à
choisir.
Si vous desirez simplement configurer des applications réseaux et ne pas posséder de clients sur le même réseau.
Vous pouvez vous contenter de l'interface loopback ([Link])
Combien de clients pensez vous avoir sur votre réseau ?
1. moins de 255 ?
2. un peu moins de 65535 ?
3. plus de 65535 ?
Page 5 sur 7
Configuration réseau
Voici les adresses que vous pouvez prendre en fonction de votre réponse.
1. Classe C : [Link] - [Link] : [Link]
2. Classe B : [Link] - [Link] : [Link]
3. Classe A : [Link] : [Link]
L'interface loopback
Maintenant, nous allons configurer votre réseau. Une fois que vous êtes en root :
Sur la plupart des distributions Linux, l'interface loopback est deja configurée. Vous pouvez le verifier en faisant la
commande suivante :
# /sbin/ifconfig
Vous devriez voir ceci :
# ifconfig lo
lo Link encap Local loopback
inet addr [Link] Bcast [NONE SET] Mask [Link]
UP BROADCAST LOOPBACK RUNNING MTU 2000 Metric 1
RX packets 0 errors 0 dropped 0 overrun 0
TX packets 0 errors 0 dropped 0 overrun 0
sinon faites :
# ifconfig lo [Link]
Il faut maintenant entrer cette interface dans la table de routage
# route add [Link]
Maintenant que votre interface loopback est configuré il suffit de tester votre interface en faisant des "ping". Nous
verrons le fonctionnement de "ping" dans la section des outils réseaux.
# ping [Link]
PING localhost ([Link]): 56 data bytes
64 bytes from [Link]: icmp_seq=0 ttl=32 time=1 ms
64 bytes from [Link]: icmp_seq=0 ttl=32 time=0 ms
Votre interface loopback est correctement configurée.
L'interface ethernet
La configuration de l'interface Ethernet utilise les memes outils et les memes méthodes que l'interface Loopback.
Nous allons configurer cette interface avec une classe C pour 254 clients. Mais vous pouvez changer l'adressage ip
en suivant le tableau cité plus haut. Avant d'effectuer ceci, il faut avoir inseré le module réseau correspondant à
votre carte.
# ifconfig eth0 [Link] netmask [Link]
en faisant
# /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr [Link]
inet addr:[Link] Bcast:[Link] Mask:[Link]
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:1 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:4
collisions:0 txqueuelen:0
Interrupt:11 Base address:0x1000
Il faut ajouter l'interface ethernet dans la table de routage :
# route add -net [Link]
Vous devez deja voir l'interface "lo" aussi connu sous le nom de loopback sinonifconfig lo [Link]
# ping [Link]
1 packets transmitted, 1 packets received, 0% packet loss
Page 6 sur 7
Configuration réseau
rOund-trip min/avg/max = 0.1/0.1/0.1 ms
bash-2.04$ ping [Link]
PING [Link] ([Link]): 56 data bytes
64 bytes from [Link]: icmp_seq=0 ttl=128 time=0.5 ms
64 bytes from [Link]: icmp_seq=1 ttl=128 time=0.3 ms
--- [Link] ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.4/0.5 ms
Vos interfaces sont désormais configurées correctement.
Vous pouvez maintenant editer votre fichiers /etc/hosts :
#Debut du fichier /etc/hosts.
[Link] localhost
[Link] [Link] Albert
#Fin du fichier /etc/hosts.
Essayez de faire
# ping localhost
# ping Albert
Page 7 sur 7