L'adressage IP est un système qui attribue une adresse unique à chaque appareil sur un réseau. Cette adresse permet aux appareils de s'identifier et de communiquer entre eux sur un réseau basé sur l'Internet Protocol (IP). Il existe deux versions principales utilisées pour l'adressage : IPv4 et IPv6.
Dans le contexte des réseaux IP, particulièrement pour les adresses IPv4, les termes NetID et HostID font référence à des parties distinctes d'une adresse IP :
Les adresses IPv4 sont traditionnellement divisées en cinq classes (A, B, C, D et E). Ce système, conçu dans les premières phases d'Internet, est appelé "classful addressing" (adressage avec classes).
Le système d'adressage par classes est largement obsolète dans l'Internet moderne, ayant été remplacé par le CIDR (Classless Inter-Domain Routing) qui permet une allocation plus flexible des adresses. Cependant, la connaissance des classes reste importante pour comprendre certains concepts et configurations réseau historiques ou existants.
Les adresses IP privées sont des plages d'adresses IP réservées pour être utilisées dans des réseaux locaux (LAN) et qui ne sont pas routables sur Internet public. Elles permettent la communication entre appareils au sein d'un même réseau local.
Réseaux domestiques : La plupart des box Internet attribuent des adresses comme 192.168.1.x aux appareils
Réseaux d'entreprise : Des plages plus larges comme 10.x.x.x permettent une meilleure segmentation
Environnements virtualisés : Les conteneurs, VM et réseaux SDN utilisent souvent ces plages
Réseaux VPN : Pour établir des tunnels sécurisés entre sites distants
Ces adresses privées, associées à la technologie NAT, ont permis de retarder l'épuisement des adresses IPv4 tout en offrant une solution simple et efficace pour créer des réseaux indépendants.
Un masque de sous-réseau est un code de 32 bits (pour IPv4) qui permet de délimiter la partie réseau et la partie hôte d'une adresse IP. Il joue un rôle fondamental dans la manière dont les données sont acheminées dans un réseau.
Segmentation du réseau : Diviser un réseau en sous-réseaux plus petits
Routage efficace : Déterminer si une destination est sur le réseau local ou distante
Économie d'adresses IP : Optimiser l'utilisation des adresses disponibles
Contrôle du trafic : Faciliter la gestion du trafic entre différents segments
Le masque de sous-réseau est essentiel pour comprendre comment les paquets de données sont acheminés et pour configurer correctement un réseau informatique.
La commande ip permet de configurer, gérer et interroger les paramètres des interfaces réseau du système (ip adress ou ip a).
Pour configurer une adresse IP:
//Configurer:
sudo ip addr add 192.168.1.10/24 dev eth0
sudo ip addr del 192.168.1.10/24 dev eth0
//Activer:
sudo ip link set eth0 up
sudo ip link set eth0 down
CentOS 7 et les versions ultérieures utilisent NetworkManager pour gérer les connexions réseau. Vous pouvez utiliser nmcli (Network Manager Command Line Interface) pour configurer les adresses IP de manière permanente (remplacez enp0s3 par le nom de votre interface réseau).
sudo nmcli con mod enp0s3 ipv4.addresses 192.168.100.101/24
sudo nmcli con mod enp0s3 ipv4.gateway 192.168.100.254
sudo nmcli con mod enp0s3 ipv4.dns "212.27.54.252"
sudo nmcli con mod enp0s3 ipv4.method manual
sudo nmcli con up enp0s3
Vouz pouvez aussi utiliser le fichier de configuration réseau sous /etc/sysconfig/network-scripts/. Pour configurer l’interface eth0, on modifie le fichier ifcfg-eth0:
Ne pas oublier de redémarrer le service réseau pour appliquer les changements:
L'interface loopback, souvent abrégée en "lo" dans les systèmes Linux, est une interface réseau virtuelle présente dans presque tous les systèmes d'exploitation. Elle joue un rôle crucial bien que souvent méconnu.
# Vérifier l'état de l'interface loopback
ip addr show lo
# Tester la connectivité loopback
ping 127.0.0.1
# Démarrer un service sur l'interface loopback uniquement
python -m http.server 8000 --bind 127.0.0.1
L'interface loopback est virtuelle et ne peut pas être utilisée pour communiquer avec d'autres machines
Elle fonctionne même lorsque les interfaces réseau physiques sont déconnectées
Le trafic vers 127.0.0.1 ne quitte jamais la machine et ne génère pas de trafic réseau physique
Toute la plage 127.0.0.0/8 (soit 127.0.0.1 à 127.255.255.254) est réservée pour loopback
L'interface loopback est un composant fondamental de la pile réseau qui permet à un système de communiquer avec lui-même de manière fiable et sécurisée.
Le hostname (nom d'hôte) est un nom unique attribué à un appareil sur un réseau. Il sert d'identifiant pour différencier les machines les unes des autres sans avoir à utiliser des adresses IP numériques difficilement mémorisables.
Identification : Le hostname permet d'identifier l'appareil lors des communications réseau au lieu d'utiliser des adresses IP, qui peuvent être difficiles à retenir.
Communication réseau : Il est utilisé par divers services et protocoles réseau, comme SSH, FTP, et SMTP, pour permettre aux utilisateurs de se connecter ou d'accéder à des ressources en utilisant un nom facile à retenir.
Pour vérifier le hostname actuel de votre système, vous pouvez utiliser la commande :
Le fichier /etc/hosts est un fichier de configuration système utilisé par le système d'exploitation pour mapper les adresses IP aux noms d'hôte. Ce fichier permet à l'ordinateur de résoudre des noms d'hôte en adresses IP sans avoir à consulter un serveur DNS (Domain Name System). Il est présent sur tous les systèmes d’exploitation.
Géré manuellement (pas de mise à jour automatique)
Non centralisé (doit être modifié sur chaque machine)
Peu pratique pour les grands réseaux
Peut être modifié par des logiciels malveillants
Le fichier hosts reste un outil simple mais puissant pour la gestion des noms d'hôtes au niveau local, particulièrement utile pour les développeurs et les administrateurs systèmes.
Le fichier host.conf est un fichier de configuration système. Ce fichier contrôle la manière dont le système résout les noms d'hôte en adresses IP.
Le fichier host.conf peut contenir plusieurs directives de configuration, les plus courantes étant :
order : Cette directive définit l'ordre dans lequel les services sont utilisés pour résoudre les noms. Par exemple, order hosts,bind indique au système de chercher d'abord dans le fichier /etc/hosts avant de consulter un serveur DNS.
multi on ou multi off : Cette option détermine si le système peut retourner plusieurs adresses IP pour un nom d'hôte unique. Lorsqu'elle est réglée sur on, le système peut retourner plusieurs adresses, ce qui est utile pour les hôtes avec plusieurs interfaces réseau.
nospoof on ou nospoof off : Cette directive aide à protéger contre le spoofing DNS, où les réponses DNS peuvent être falsifiées. Lorsqu'elle est activée (on), elle peut exiger des vérifications supplémentaires pour s'assurer que les réponses DNS sont légitimes.
trim : Permet de spécifier des domaines qui seront ignorés dans les résultats de la résolution DNS. Cela peut être utile pour éviter des conflits de noms ou pour des raisons de sécurité.
Voici un exemple de fichier:
# /etc/host.conf
# Consulter d'abord /etc/hosts, puis DNS
order hosts,bind
# Autoriser plusieurs adresses IP pour un même nom d'hôte
multi on
# Activer la protection contre l'usurpation
nospoof on
# Ignorer les requêtes de résolution inverse pour les adresses locales
reorder on
Dans les systèmes Linux modernes, le fichier host.conf est souvent remplacé par /etc/nsswitch.conf (Name Service Switch),
Le fichier resolv.conf est un fichier de configuration système. Ce fichier est utilisé par la bibliothèque résolveur du système pour déterminer où et comment obtenir les résolutions de noms de domaine en adresses IP. Il peut contenir plusieurs directives:
nameserver : Spécifie l'adresse IP des serveurs DNS que le système doit utiliser pour résoudre les noms de domaine. Vous pouvez spécifier plusieurs serveurs DNS, généralement au maximum trois, qui seront interrogés dans l'ordre où ils apparaissent dans le fichier.
search : Définit une liste de domaines de recherche qui seront ajoutés automatiquement aux requêtes DNS qui ne sont pas déjà des noms de domaine pleinement qualifiés (FQDN). Cela est utile dans les environnements de réseau d'entreprise pour la résolution de noms d'hôtes courts sans devoir saisir le domaine complet.
domain : Spécifie le domaine local. Si la directive search n'est pas utilisée, le système utilisera le domain pour compléter les requêtes DNS partielles. Généralement, soit search soit domain est utilisé, mais pas les deux
Une table de routage est essentiellement une liste qui indique où les paquets de données doivent être dirigés sur un réseau. Chaque entrée dans la table de routage est une règle qui détermine à travers quel interface réseau ou quel routeur les paquets destinés à une certaine adresse IP doivent être envoyés. Voici les composants clés d'une entrée typique dans une table de routage:
La table de routage sert de "carte routière" pour les paquets réseau. Lorsqu'un paquet arrive, l'appareil consulte sa table de routage pour déterminer l'interface de sortie et le prochain saut (next hop) vers lequel envoyer le paquet.
Traceroute fonctionne en envoyant une série de paquets de demande d'écho ICMP avec des valeurs de Time-To-Live (TTL) croissantes. Le TTL d'un paquet détermine le nombre maximal de sauts (routeurs traversés) que le paquet est autorisé à faire avant d'être considéré comme expiré et d'être jeté. Pour chaque paquet envoyé, le TTL est augmenté de 1, commençant généralement par 1.
Premier saut: Le premier paquet est envoyé avec un TTL de 1. Lorsque ce paquet atteint le premier routeur sur le chemin vers la destination, le routeur décrémente la valeur TTL à 0, constate que le paquet a expiré, et répond avec un message ICMP "Time Exceeded" à la source, révélant ainsi l'adresse IP du premier saut.
Sauts suivants: Le processus est répété avec des valeurs TTL croissantes (2, 3, 4, etc.) pour découvrir chaque routeur successif sur le chemin jusqu'à ce que le paquet atteigne la destination. Lorsque la destination reçoit un paquet, au lieu d'un message "Time Exceeded", elle répond avec un message ICMP "Echo Reply", indiquant que le paquet a atteint sa destination finale.
Identification des routeurs: En analysant les réponses des routeurs intermédiaires, traceroute est capable de déterminer et d'afficher le chemin parcouru par les paquets, y compris le temps de transit entre chaque saut.
Les résultats affichés par traceroute incluent généralement le numéro de saut, l'adresse IP de chaque routeur sur le chemin, et le temps de latence pour chaque saut. Ces temps de latence sont souvent affichés comme trois valeurs, correspondant à trois paquets test envoyés pour chaque saut, afin de fournir une estimation moyenne du temps de réponse.
La commande netstat est un outil en ligne de commande utile pour surveiller les connexions réseau, les statistiques des interfaces réseau, les tables de routage et d'autres activités réseau sur votre système.
netstat (network statistics) affiche les connexions réseau actives, les ports d'écoute, les statistiques des interfaces réseau et les tables de routage.
Les connexions affichées par netstat ont différents états :
ESTABLISHED : Connexion établie et active
LISTEN : Port en écoute, attendant des connexions entrantes
TIME_WAIT : Connexion fermée, mais en attente que tous les paquets soient traités
CLOSE_WAIT : L'autre extrémité a fermé la connexion
SYN_SENT : Tentative de connexion en cours
Sur les systèmes modernes, la commande ss est parfois recommandée comme remplacement de netstat car elle est plus rapide et fournit des informations supplémentaires.
NetworkManagerest un démon (service). Il surveille l’état des interfaces et mets à jours les fichiers de configurations.
Il ne crée pas ses propres fichiers de configuration, ni ne modifie ceux-ci. Les configurations de NetworkManager sont stockées dans le répertoire /etc/NetworkManager/, avec des fichiers spécifiques pour chaque connexion dans le sous-dossier system-connections/. Ces fichiers peuvent être édités manuellement pour des configurations avancées, mais l'utilisation de nmcli ou nmtui est recommandée pour éviter des erreurs.
Il offre des interfaces graphiques (comme nm-applet et nmtui) et des outils en ligne de commande (nmcli) pour gérer les connexions réseau, facilitant ainsi l'accès aux utilisateurs.
nmtui : Interface texte semi-graphique (basée sur ncurses)
nm-applet : Applet graphique pour les environnements de bureau (GNOME, KDE, etc.)
Paramètres réseau des environnements de bureau
# Afficher l'état des connexions
nmcli connection show
# Afficher les réseaux Wi-Fi disponibles
nmcli device wifi list
# Se connecter à un réseau Wi-Fi
nmcli device wifi connect "NomDuReseau" password "MotDePasse"
# Activer/désactiver une interface
nmcli radio wifi on/off
# Créer une nouvelle connexion
nmcli connection add type ethernet con-name "MaConnexion" ifname eth0
NetworkManager stocke ses configurations dans /etc/NetworkManager/ et les profils de connexion dans /etc/NetworkManager/system-connections/.
¶ Avantages par rapport aux méthodes traditionnelles
Gestion unifiée de tous types de connexions
Changement automatique entre réseaux (ex: passer du Wi-Fi à l'Ethernet lorsqu'un câble est branché)
Interface utilisateur intuitive pour les débutants
Outils en ligne de commande puissants pour les administrateurs système
NetworkManager est devenu le gestionnaire de réseau par défaut sur la plupart des distributions Linux modernes, remplaçant les anciennes méthodes de configuration réseau basées sur les fichiers /etc/network/interfaces ou /etc/sysconfig/network-scripts/.