Chapitre 01
Contexte OT/IT & poste de diagnostic
Objectifs du chapitre
- Situer les acteurs d'une cellule d'automatisme : CPU S7-1500, IO-devices, switch managé, anneau MRP, et les protocoles qui circulent.
- Comprendre ce que « OT » impose de plus que « IT » du point de vue du diagnostic réseau.
- Mettre en place tes deux postes de diagnostic â WSL2 et edge Debian â et surtout Ă©viter le piĂšge du NAT WSL2 qui empĂȘche de voir le trafic sur le fil.
- Installer une fois pour toutes la boĂźte Ă outils shell qui servira dans tout le cours.
1. Ce qu'on diagnostique : une cellule d'automatisme
Avant de sortir la moindre commande, il faut une carte mentale de ce qui est branchĂ©. Une cellule Siemens typique s'organise autour d'un CPU S7-1500 qui joue le rĂŽle de contrĂŽleur Profinet (Profinet IO-Controller). Il pilote des IO-devices â des pĂ©riphĂ©riques dĂ©centralisĂ©s comme des stations ET 200SP, des variateurs, des Ăźlots de vannes â Ă travers un ou plusieurs switches managĂ©s (gamme Scalance, par exemple). Ces switches sont souvent cĂąblĂ©s en anneau avec le protocole de redondance MRP, pour qu'une coupure de cĂąble ne fasse pas tomber la ligne.
Par-dessus ce trafic temps réel circulent d'autres flux : la supervision et la configuration (OPC-UA vers un serveur, un SCADA, un edge), l'administration des switches (SNMP, web), et l'accÚs depuis le monde bureautique via un pare-feu IT/OT.
2. OT n'est pas IT
En informatique de gestion (IT), on optimise le débit et on tolÚre la latence : un mail qui arrive 200 ms plus tard, personne ne le remarque. En automatisme (OT, Operational Technology), c'est l'inverse : le trafic Profinet temps réel attend un échange toutes les 1 à 4 ms, de façon réguliÚre comme un métronome. Ce qui compte, ce n'est pas le débit mais la régularité (le jitter) et l'absence de perte.
ConsĂ©quence pour le diagnostic : les rĂ©flexes IT peuvent ĂȘtre contre-productifs. Un scan de ports agressif, un « ping de la mort », une tempĂȘte de broadcast peuvent perturber un automate qui n'a pas Ă©tĂ© conçu pour encaisser du trafic parasite. D'oĂč une rĂšgle de conduite.
Sur une installation en production, on privilĂ©gie toujours l'observation passive (capture, LLDP, lecture SNMP) avant toute action active, et on n'exĂ©cute un scan ou une Ă©criture DCP qu'en connaissance de cause. Dans ce cours, on travaille sur des bancs de test : on peut ĂȘtre agressif sans risque â mais garde ce rĂ©flexe pour le terrain.
3. Tes deux postes de diagnostic
Tout le cours suppose l'un de ces deux points d'observation, tous deux capables d'accéder au segment Profinet :
- Poste A â laptop Windows + WSL2 (Debian ou Ubuntu). C'est le poste du quotidien, transportable, mais avec une subtilitĂ© rĂ©seau majeure dĂ©taillĂ©e au §4.
- Poste B â edge device Debian dĂ©jĂ cĂąblĂ© dans l'armoire, atteint en
ssh. Son interface Ethernet est physiquement sur le réseau machine : la capture couche 2 y est directe, sans aucune gymnastique.
Quand une commande se comporte différemment sur l'un ou l'autre, le cours le précisera. Par défaut, tout ce qui suit s'exécute dans un shell Debian/Ubuntu identique sur les deux.
4. Le piĂšge WSL2 : le NAT qui cache le fil
Par défaut, WSL2 place ta distribution Linux derriÚre un routeur NAT : Linux reçoit
une interface virtuelle (souvent eth0 dans un réseau en 172.x.x.x) reliée à un
switch virtuel Hyper-V, pas à la carte Ethernet physique du laptop. Vérifie-le :
$ ip -brief addr
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 172.24.108.3/20 fe80::215:5dff:fe6c:1a2b/64
Cette adresse en 172.x n'est pas celle de ton réseau machine (typiquement
192.168.0.x en Profinet). Conséquence directe : un tcpdump
lancĂ© ici ne verra jamais une trame Profinet du fil â il n'observe que le trafic du switch
virtuel WSL. C'est la premiÚre source de confusion du débutant : « je capture, mais rien ne passe ».
En mode NAT, WSL2 ne voit pas les trames de couche 2 du rĂ©seau physique (Profinet RT, LLDP, DCP, MRPâŠ). Ce ne sont pas des paquets IP routables : le NAT ne peut pas les relayer. Tu peux parfois joindre un automate en IP (si le pare-feu Windows et le routage le permettent), mais tu ne captureras rien de la couche liaison.
La solution : le mode réseau « miroir »
Windows 11 (et WSL récent) propose un mode réseau miroir (mirrored) qui
donne Ă Linux les mĂȘmes interfaces que Windows â carte Ethernet physique comprise. On l'active
dans le fichier .wslconfig, Ă la racine de ton profil Windows
(C:\Users\<toi>\.wslconfig) :
# C:\Users\<toi>\.wslconfig
[wsl2]
networkingMode=mirrored
Puis, depuis PowerShell, on redémarre le sous-systÚme :
wsl --shutdown
AprÚs redémarrage, ip -brief addr dans WSL montre désormais les interfaces réelles du
laptop (par ex. eth3 avec l'IP du réseau machine). La capture couche 2 devient possible
directement dans WSL.
Trois façons d'observer le fil depuis un laptop Windows, de la plus simple à la plus lourde :
- WSL2 miroir (ci-dessus) â capture native dans le shell Linux. Le confort maximal.
- Capturer cÎté Windows, analyser dans WSL : Wireshark/Npcap enregistre un
.pcap, que tu ouvres ensuite avectshark -r capture.pcapdans WSL. Marche mĂȘme sans mode miroir. - Adaptateur USB-Ethernet dĂ©diĂ© passĂ© Ă WSL via
usbipd-win: Linux pilote directement une carte réseau. Utile pour isoler un segment.
Sur l'edge Debian, rien de tout cela : eth0 (ou son vrai nom, cf.
chapitre 2) est la carte physique branchée sur le switch. tcpdump -i eth0 voit le
Profinet immédiatement. Quand tu as le choix et que tu veux capturer du temps réel, l'edge est le
poste le plus sûr.
5. Installer la boĂźte Ă outils
Une seule session d'installation suffit pour tout le cours. Sur Debian/Ubuntu (WSL comme edge) :
# Mettre Ă jour l'index des paquets
sudo apt update
# Couches basses & capture
sudo apt install -y iproute2 ethtool tcpdump tshark
# Découverte & scan
sudo apt install -y lldpd nmap arp-scan
# Supervision & MIB SNMP
sudo apt install -y snmp snmp-mibs-downloader
# Outils Profinet & OPC-UA en Python
sudo apt install -y python3-pip
pip install --user pnio-dcp asyncua
Deux points d'attention Ă l'installation :
tsharkdemande si les utilisateurs non-root peuvent capturer (« Should non-superusers be able to capture packets? »). RĂ©ponds Oui pour Ă©viter de tout lancer ensudoâ cela configure les capacitĂ©s surdumpcap.lldpdest un dĂ©mon : une fois installĂ©, il tourne en tĂąche de fond et collecte les voisins LLDP. On l'interrogera aveclldpctlau chapitre 3.
Vérifie que l'essentiel répond, sans privilÚge particulier :
$ ip -V; tshark -v | head -1; nmap --version | head -1
ip utility, iproute2-6.1.0
TShark (Wireshark) 4.2.2
Nmap version 7.94 ( https://nmap.org )
CĂŽtĂ© S7-1500, la plupart de ces observations ont un Ă©quivalent dans TIA Portal (vue « Diagnostic en ligne », « Topologie », serveur web du CPU). L'intĂ©rĂȘt du shell Linux : il est non-intrusif, scriptable, indĂ©pendant du fabricant, et il voit le rĂ©seau tel qu'il est rĂ©ellement sur le fil â pas la vue qu'en donne l'ingĂ©nierie. Les deux sont complĂ©mentaires : TIA pour la configuration attendue, le shell pour la rĂ©alitĂ© mesurĂ©e.
Récapitulatif
- Une cellule = un CPU S7-1500 (IO-Controller) pilotant des IO-devices via des switches managés, souvent en anneau MRP ; par-dessus, OPC-UA, SNMP et l'uplink IT.
- En OT, on juge la régularité et l'absence de perte, pas le débit ; en production, on observe passivement avant d'agir.
- Deux postes : WSL2 (mobile) et edge Debian (cùblé, capture directe).
- PiÚge WSL2 : le NAT par défaut cache le fil. Solution = mode réseau
miroir (
.wslconfigânetworkingMode=mirroredâwsl --shutdown), ou capturer cĂŽtĂ© Windows et lire le.pcapdans WSL. - BoĂźte Ă outils installĂ©e une fois :
iproute2,ethtool,tcpdump,tshark,lldpd,nmap,arp-scan,snmp, pluspnio-dcpetasyncua.
Exercices
Exercice 1 â Suis-je derriĂšre un NAT ?
Sur ton poste (WSL2 ou edge), affiche tes interfaces et détermine si l'adresse IP que tu vois
correspond au réseau machine attendu (par ex. 192.168.0.0/24) ou à un réseau NAT WSL
(172.16.0.0/12). Quelle commande, et comment conclure ?
Voir la solution
$ ip -brief addr
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 172.24.108.3/20 ...
Une adresse en 172.16â172.31.x avec un masque /20 et un nom d'interface
eth0 unique est la signature du NAT WSL2 : tu ne verras pas le fil. Une
adresse dans le plan machine (ex. 192.168.0.50/24) sur une interface qui porte le nom du
matĂ©riel indique que tu es sur le segment â cas normal de l'edge, ou d'un WSL en
mode miroir. En cas de doute, un tcpdump -c 5 -i eth0 qui ne capture que ton
propre trafic (et aucune trame Profinet ni LLDP) confirme le NAT.
Exercice 2 â Passer WSL2 en mode miroir
(Poste A uniquement.) Configure WSL2 pour qu'il expose les interfaces physiques du laptop, applique le changement, et vérifie que l'interface Ethernet du réseau machine apparaßt désormais dans Linux.
Voir la solution
Créer ou éditer C:\Users\<toi>\.wslconfig :
[wsl2]
networkingMode=mirrored
Depuis PowerShell : wsl --shutdown, puis rouvrir WSL. Vérifier :
$ ip -brief addr | grep -v 172\\.
eth3 UP 192.168.0.71/24 ...
L'apparition d'une interface portant l'IP du plan machine (ici 192.168.0.71) confirme
le succÚs. Si rien n'a changé, vérifie la version de Windows (le mode miroir demande Windows 11
22H2 ou plus récent) et que .wslconfig est bien à la racine de ton profil.
Exercice 3 â VĂ©rifier la boĂźte Ă outils
Installe la boßte à outils, puis écris une seule ligne de commande qui affiche la version de
tshark, nmap et lldpd, pour confirmer d'un coup d'Ćil que les
trois répondent.
Voir la solution
$ for t in tshark nmap lldpd; do "$t" -v 2>&1 | head -1; done
TShark (Wireshark) 4.2.2
Nmap version 7.94 ( https://nmap.org )
lldpd 1.0.16
La boucle for évite de répéter la commande. On redirige 2>&1 car
certains outils écrivent leur version sur la sortie d'erreur, et head -1 ne garde que la
premiÚre ligne. Si l'un des trois manque, command -v tshark confirme s'il est installé et
dans le PATH.