🔌 Diagnostic rĂ©seau OT/IT · au shell Linux

Chapitre 01
Contexte OT/IT & poste de diagnostic

Objectifs du chapitre

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.

anneau MRP Pare-feu IT/OT ↑ rĂ©seau IT / bureautique Switch A MRM (manager) Switch B MRC Switch C MRC CPU S7-1500 IO-Controller ET 200SP IO-device ET 200SP IO-device Laptop WSL2 poste A 🔎 Edge Debian poste B 🔎
Figure 1.1. Une cellule type. Les trois switches managĂ©s forment l'anneau MRP (traits teal) ; le Switch A est le Media Redundancy Manager, les autres sont clients. Le CPU pilote les ET 200SP en Profinet. Nos deux postes de diagnostic (contours ambre) se branchent sur un port libre d'un switch — d'oĂč l'on observe, capture et scanne.

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 :

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 :

  1. WSL2 miroir (ci-dessus) — capture native dans le shell Linux. Le confort maximal.
  2. Capturer cĂŽtĂ© Windows, analyser dans WSL : Wireshark/Npcap enregistre un .pcap, que tu ouvres ensuite avec tshark -r capture.pcap dans WSL. Marche mĂȘme sans mode miroir.
  3. 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 :

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

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.