« Pour pratiquer le réseau, il faut acheter plusieurs ordinateurs et un switch. »
Linux peut simuler plusieurs machines et leurs câbles dans une seule VM. Le comportement réseau reste réel : interfaces, adresses MAC, trames Ethernet et tables de commutation.
Tu vas construire cette topologie :
pc1 (10.10.10.11/24) ──┐
├── br-lab (switch virtuel)
pc2 (10.10.10.12/24) ──┘
À la fin de cette leçon, tu sauras…
- créer deux network namespaces ;
- les relier à un bridge Linux ;
- attribuer des adresses IPv4 ;
- valider une communication locale ;
- nettoyer entièrement le laboratoire.
01Préparer les outils
Vérifie que le système possède les commandes nécessaires
Manipulecommand -v ip
command -v bridge
command -v pingSi une commande manque sur Debian ou Ubuntu :
sudo apt update
sudo apt install -y iproute2 iputils-ping02Créer deux postes isolés
Crée pc1 et pc2
Manipulesudo ip netns add pc1
sudo ip netns add pc2
sudo ip netns listObservepc2
pc1Comprends un namespace n’est pas une VM
Un network namespace possède sa propre pile réseau : interfaces, adresses, routes et voisins. Il partage le noyau Linux avec la machine hôte, contrairement à une VM qui exécute un système complet. Pour apprendre le réseau, cette isolation légère est idéale.
03Fabriquer les câbles
Crée deux paires veth
Manipulesudo ip link add veth-pc1 type veth peer name eth0-pc1
sudo ip link add veth-pc2 type veth peer name eth0-pc2Une paire veth fonctionne comme un câble : ce qui entre par une extrémité ressort par l’autre.
04Créer le switch virtuel
Crée et active un bridge Linux
Manipulesudo ip link add br-lab type bridge
sudo ip link set br-lab up
sudo ip link set veth-pc1 master br-lab
sudo ip link set veth-pc2 master br-lab
ip -brief link show br-lab
bridge linkComprends bridge et switch Ethernet
Un bridge Linux apprend quelles adresses MAC se trouvent derrière chaque port et transmet les trames vers le bon port. Fonctionnellement, il joue ici le rôle d’un commutateur Ethernet.
05Brancher les postes
Déplace une extrémité de chaque câble dans son poste
Manipulesudo ip link set eth0-pc1 netns pc1
sudo ip link set eth0-pc2 netns pc2
sudo ip -n pc1 link set eth0-pc1 name eth0
sudo ip -n pc2 link set eth0-pc2 name eth0
sudo ip -n pc1 link set lo up
sudo ip -n pc2 link set lo up
sudo ip -n pc1 link set eth0 up
sudo ip -n pc2 link set eth0 up06Donner une adresse à chaque poste
Place les deux postes dans le même réseau
Manipulesudo ip -n pc1 addr add 10.10.10.11/24 dev eth0
sudo ip -n pc2 addr add 10.10.10.12/24 dev eth0
sudo ip -n pc1 -brief address
sudo ip -n pc2 -brief address07Prouver la communication
Envoie des messages ICMP de pc1 vers pc2
Manipulesudo ip netns exec pc1 ping -c 3 10.10.10.12Observe64 bytes from 10.10.10.12: icmp_seq=1 ttl=64 time=...
64 bytes from 10.10.10.12: icmp_seq=2 ttl=64 time=...
64 bytes from 10.10.10.12: icmp_seq=3 ttl=64 time=...Regarde ensuite ce que le bridge a appris :
bridge fdb show br br-labCasse puis répare le LAN
- désactive l’interface de pc2 avec
sudo ip -n pc2 link set eth0 down; - relance le ping depuis pc1 et observe l’échec ;
- vérifie l’état avec
sudo ip -n pc2 -brief link; - réactive l’interface et prouve le retour du service.
08Nettoyer le laboratoire
sudo ip netns del pc1
sudo ip netns del pc2
sudo ip link del br-lab
✓Ce que tu retiens
Tu as construit un vrai LAN Ethernet dans une seule VM : deux hôtes isolés, deux liens virtuels et un bridge jouant le rôle de switch. La topologie est virtuelle, mais les interfaces, adresses MAC, trames et décisions de commutation sont réelles.