Gestion du réseau sous Linux
Gestion du réseau sous Linux
Introduction
Cette documentation couvre la gestion complète du réseau sous les principales distributions Linux (Debian, RedHat, Ubuntu).
Les interfaces réseau
Les interfaces correspondent aux cartes réseau sur un système Linux. Elles sont détectées au démarrage de la machine.
Interface de loopback
- Interface standard configurée sur chaque système
- Permet au kernel de valider la pile TCP/IP
- Permet de faire fonctionner certains services en local sans exposition externe
- Nom : lo
- IP : 127.0.0.1
- Aussi appelée interface localhost
Nommage des interfaces
Les interfaces peuvent être nommées différemment selon les distributions :
- Méthode classique : eth0, eth1, etc. (selon l'ordre de détection)
- Nouvelle norme (basée sur le firmware) :
- ens0 ou enp1s1 (ethernet) : le nom est basé sur l'emplacement physique de la carte
- wlp3s0 (wlan) : pour les interfaces wifi
Commandes de base
La commande IP
La commande ip est l'outil moderne qui remplace ifconfig. Elle permet de gérer tous les aspects de la configuration réseau.
Afficher les adresses IP
# ip addr # Affiche toutes les interfaces et leurs configurations
# ip a # Version abrégée de ip addr
L'affichage montre pour chaque interface :
- Son nom et son état (UP/DOWN)
- Son adresse MAC (link/ether)
- Son/ses adresse(s) IPv4 (inet)
- Son/ses adresse(s) IPv6 (inet6)
- Les paramètres de broadcast (brd)
Pour une interface spécifique :
# ip addr show dev enp0s3 # Affiche uniquement les informations de l'interface enp0s3
Gestion des interfaces
# ip link set down enp0s9 # Désactive l'interface enp0s9
# ip link set up enp0s9 # Active l'interface enp0s9
# ip link show # Affiche l'état de toutes les interfaces
Gestion des routes
Les routes définissent comment le trafic doit être acheminé vers différents réseaux.
Afficher la table de routage
# ip route # Affiche toutes les routes configurées
# ip r # Version courte de ip route
Dans la sortie :
- default via X.X.X.X : Route par défaut (gateway)
- dev INTERFACE : Interface utilisée pour cette route
- proto kernel : Route ajoutée automatiquement par le kernel
- scope link : Route directement accessible sur le réseau local
Configuration du système
Configuration des hôtes
Hostname
Le hostname est l'identité de la machine sur le réseau.
# hostname # Affiche le nom court de la machine
# hostname -f # Affiche le nom complet (FQDN)
Fichiers de configuration
- /etc/hosts :
- Fait office de DNS local
- Format : IP_ADDR HOSTNAME [ALIAS]
- Lu avant toute requête DNS
- Exemple :
127.0.0.1 localhost.localdomain localhost
192.168.1.10 serveur.local serveur
- /etc/hostname :
- Contient le nom d'hôte de la machine
- Un seul nom par ligne
- /etc/resolv.conf :
- Configuration des serveurs DNS
- Format :
domain mondomaine.local
search mondomaine.local autredomaine.local
nameserver 8.8.8.8
nameserver 8.8.4.4
Configuration des services
Le fichier services
- Situé dans /etc/services
- Définit la correspondance entre les services et les ports
- Format : service port/protocole [aliases]
- Exemple :
ssh 22/tcp
http 80/tcp
https 443/tcp
Configuration par distribution
Debian
Configuration via /etc/network/interfaces
Configuration DHCP
Configuration pour obtenir une adresse IP automatiquement :
auto lo # Active l'interface au démarrage
iface lo inet loopback # Configure lo comme interface de loopback
auto enp0s3 # Active enp0s3 au démarrage
iface enp0s3 inet dhcp # Configure enp0s3 en DHCP
Configuration statique
Configuration avec une adresse IP fixe :
auto lo
iface lo inet loopback
auto enp0s3
iface enp0s3 inet static # Configuration statique
address 192.168.33.101 # Adresse IP fixe
netmask 255.255.255.0 # Masque de sous-réseau
gateway 192.168.33.1 # Passerelle par défaut
RedHat
Configuration dans /etc/sysconfig/network-scripts/ifcfg-[interface]
Configuration DHCP
TYPE=Ethernet # Type d'interface
BOOTPROTO=dhcp # Protocole de démarrage : dhcp
DEFROUTE=yes # Utiliser comme route par défaut
NAME=enp0s3 # Nom descriptif
DEVICE=enp0s3 # Nom du périphérique
ONBOOT=yes # Activer au démarrage
Configuration statique
TYPE=Ethernet
BOOTPROTO=static # Configuration statique
DEFROUTE=yes
NAME=enp0s3
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.1.2 # Adresse IP fixe
NETMASK=255.255.255.0 # Masque de sous-réseau
Configuration de la passerelle dans /etc/sysconfig/network :
GATEWAY=192.168.1.254 # Passerelle par défaut
HOSTNAME=monpc.rezo.local # Nom d'hôte complet
Ubuntu (Netplan)
Ubuntu utilise Netplan comme système de configuration réseau par défaut depuis la version 17.10.
Présentation de Netplan
- Utilise des fichiers YAML pour la configuration
- Les fichiers sont stockés dans /etc/netplan/
- Génère la configuration pour différents backends :
- networkd : Système par défaut
- NetworkManager : Pour les environnements de bureau
Configuration DHCP
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: true # Active DHCP pour IPv4
dhcp6: true # Active DHCP pour IPv6
Configuration statique
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24 # IP et masque en notation CIDR
gateway4: 192.168.1.1 # Passerelle IPv4
nameservers:
search: [mondomaine.local] # Domaine de recherche
addresses: [8.8.8.8, 8.8.4.4] # Serveurs DNS
Configurations avancées
Agrégation de liens (bonding)
network:
version: 2
renderer: networkd
bonds:
bond0:
interfaces: [enp0s3, enp0s8]
parameters:
mode: active-backup
addresses:
- 192.168.1.100/24
VLAN
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
vlans:
vlan10:
id: 10
link: enp0s3
addresses:
- 192.168.10.100/24
Network Manager
NetworkManager est un service de gestion dynamique du réseau.
Commandes de base
# nmcli # Affiche la configuration complète
# nmcli device show enp3s0 # Montre la configuration détaillée d'une interface
# nmcli dev status # Affiche l'état de toutes les interfaces
# nmcli con up enp3s0 # Active la connexion sur l'interface enp3s0
Configuration
DHCP
# nmcli con add type ethernet \ # Ajoute une connexion Ethernet
con-name "Reseau virtuel" \ # Nom de la connexion
ifname enp3s0 # Interface concernée
Statique
# nmcli con add type ethernet \ # Ajoute une connexion Ethernet
con-name "Reseau virtuel" \ # Nom de la connexion
ifname enp3s0 \ # Interface concernée
ip4 10.0.5.25/24 \ # IP et masque en notation CIDR
gw4 10.0.5.1 # Passerelle
Outils de test et diagnostic
Tests de connectivité
Ping
Test de base de la connectivité :
# ping -c 5 google.com # Envoie 5 paquets ICMP
# ping -c 3 -w 1 192.168.1.1 # Timeout de 1 seconde
Traceroute
Analyse du chemin réseau :
# traceroute www.example.com # Affiche tous les sauts
# tracepath www.example.com # Alternative sans droits root
Analyse des connexions
SS
Affichage des connexions réseau :
# ss -tpnl # TCP, processus, numérique, listening
# ss -s # Statistiques résumées
Nmap
Scanner de ports réseau :
# nmap -p 22,80,443 192.168.10.18 -Pn # Scan de ports spécifiques
# nmap -sn 192.168.1.0/24 # Découverte d'hôtes
États possibles des ports :
- open : Port ouvert et accessible
- filtered : Port filtré par un pare-feu
- closed : Port fermé mais accessible
Dépannage
Vérifications de base
1. État de l'interface :
# ip link show dev enp0s3
2. Configuration IP :
# ip addr show dev enp0s3
3. Routes :
# ip route show
4. Résolution DNS :
# host www.example.com
# dig www.example.com
Journaux système
Consultation des logs :
# journalctl -u systemd-networkd
# journalctl -u NetworkManager
Bonnes pratiques
- Sauvegarder les configurations avant modification
- Documenter les changements
- Tester les modifications avant application en production
- Maintenir une configuration de secours
- Vérifier régulièrement les journaux système