| name | sysadmin-network-troubleshooting |
| description | Diagnostic réseau Linux avancé : tcpdump, Wireshark/tshark, ss, iproute2, tc (traffic control), nmap, mtr, iperf3, ethtool, conntrack, ARP, MTU path discovery et résolution de pannes. |
| version | 1.0.0 |
| author | EVA |
| license | Privée EVA St-Étienne |
| platforms | ["linux"] |
| metadata | {"EVA":{"tags":["network","tcpdump","wireshark","tshark","ss","iproute2","tc","nmap","mtr","iperf3","ethtool","conntrack","troubleshooting","latency"],"related_skills":["os-linux-admin","sysadmin-kernel-tuning","sysadmin-monitoring","network-diagnostics-troubleshooting"]}} |
Diagnostic Réseau Linux Avancé
Vue d'ensemble
Le diagnostic réseau est une compétence essentielle pour tout administrateur système. Ce skill couvre la boîte à outils complète : de l'analyse de paquets avec tcpdump à la mesure de bande passante avec iperf3, en passant par la configuration avancée via iproute2 et le traffic control (tc).
Principes de Base du Diagnostic
Méthodologie OSI : Toujours commencer par la couche la plus basse.
| Étape | Commande | Couche OSI |
|---|
| 1. Interface physique | ethtool, ip link | 1 (Physique) |
| 2. Connexion L2 | ip neigh, arping, bridge | 2 (Liaison) |
| 3. Connectivité IP | ping, mtr | 3 (Réseau) |
| 4. Routage | ip route get, traceroute | 3 (Réseau) |
| 5. Port/Service | ss, nmap | 4 (Transport) |
| 6. DNS | dig, nslookup | 7 (Application) |
| 7. Application | curl -v, openssl s_client | 7 (Application) |
Quand l'utiliser
- Un service est inaccessible ou lent
- Des paquets sont perdus (latence anormale, timeouts)
- Besoin de capturer le traffic pour analyse forensique
- Configurer QoS, shaping ou limitation de bande passante
- Diagnostiquer des problèmes MTU/fragmentation
- Vérifier les connexions actives et les ports ouverts
1. iproute2 (Suite de Commandes Moderne)
ip (remplace ifconfig, route, arp)
ip link show
ip link set eth0 up/down
ip addr show eth0
ip addr add 192.168.1.10/24 dev eth0
ip addr del 192.168.1.10/24 dev eth0
ip route show
ip route get 8.8.8.8
ip route add default via 192.168.1.1 dev eth0
ip route del 10.0.0.0/8
ip neigh show
ip neigh del 192.168.1.1 dev eth0
ip netns add blue
ip netns exec blue ip addr
ss (remplace netstat)
ss -tulpn
ss -tanp 'sport = :80 or dport = :80'
ss -tan state time-wait
ss -tan state established
ss -s
ss -lx
2. Tcpdump — Capture de Paquets
Syntaxes Essentielles
sudo tcpdump -i eth0 -c 100
sudo tcpdump -i eth0 -n
sudo tcpdump -i any
sudo tcpdump -i eth0 host 192.168.1.100
sudo tcpdump -i eth0 src 10.0.0.1
sudo tcpdump -i eth0 dst 10.0.0.1
sudo tcpdump -i eth0 port 80
sudo tcpdump -i eth0 portrange 8000-9000
sudo tcpdump -i eth0 tcp
sudo tcpdump -i eth0 udp
sudo tcpdump -i eth0 icmp
sudo tcpdump -i eth0 'tcp and port 443'
sudo tcpdump -i eth0 'host 10.0.0.1 and not port 22'
sudo tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0'
sudo tcpdump -i eth0 -w capture.pcap -C 100 -W 5
tcpdump -r capture.pcap -n
tcpdump -r capture.pcap -X
tcpdump -r capture.pcap -A
Scénarios Typiques
sudo tcpdump -i any -A 'tcp port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420)'
sudo tcpdump -i any 'tcp[tcpflags] & (tcp-retrans) != 0'
sudo tcpdump -i any udp port 53 -c 50
sudo tcpdump -i any 'tcp[13] & 18 == 18'
3. Tshark (Wireshark CLI)
sudo tshark -i eth0
sudo tshark -i eth0 -Y "http.request.method == GET"
sudo tshark -i eth0 -Y "tcp.analysis.flags"
sudo tshark -i eth0 -z io,phs
sudo tshark -r capture.pcap -z conv,tcp
tshark -r capture.pcap --export-objects http,/tmp/extracted/
tshark -r capture.pcap -z follow,tcp,ascii,0
4. Mesure de Performance Réseau
iperf3 -s -p 5201
iperf3 -c 192.168.1.100 -p 5201 -t 30 -P 4
iperf3 -c 192.168.1.100 -u -b 100M
iperf3 -c 192.168.1.100 -R
mtr -r -c 100 8.8.8.8
mtr -r -c 100 --report-wide 8.8.8.8
mtr -n google.com
5. Configuration Avancée
Traffic Control (tc) — QoS, Shaping, Limitation
tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms
tc qdisc add dev eth0 root netem delay 100ms 20ms
tc qdisc add dev eth0 root netem loss 5%
tc qdisc show dev eth0
tc qdisc del dev eth0 root
Ethtool (Informations et Configuration Interface)
ethtool eth0
ethtool -i eth0
ethtool -S eth0
ethtool -S eth0 | grep -E "error|drop|crc|miss"
ethtool -g eth0
ethtool -G eth0 rx 4096 tx 4096
ethtool -K eth0 tso off gso off gro off lro off
6. Conntrack (Connection Tracking)
sudo conntrack -L
sudo conntrack -L -p tcp --dport 80
sudo conntrack -S
sysctl net.netfilter.nf_conntrack_max
sysctl -w net.netfilter.nf_conntrack_max=524288
7. Résolution MTU et Fragmentation
ping -M do -s 1472 8.8.8.8
ping -M do -s 1400 8.8.8.8
ip link show eth0 | grep mtu
sudo ip link set dev eth0 mtu 9000
iperf3 -c serveur -M 1500
iperf3 -c serveur -M 9000
8. Script de Diagnostic Rapide
#!/usr/bin/env bash
set -euo pipefail
TARGET="${1:-8.8.8.8}"
echo "=== 1. INTERFACE ==="
ip -br addr show | grep UP
echo -e "\n=== 2. ROUTE ==="
ip route get "$TARGET"
echo -e "\n=== 3. PING ==="
ping -c 4 -W 2 "$TARGET" | tail -1
echo -e "\n=== 4. PORTS OUVERTS ==="
ss -tulpn | head -20
echo -e "\n=== 5. CONNEXIONS ÉTABLIES ==="
ss -tan state established | wc -l
echo "connexions actives"
echo -e "\n=== 6. DNS ==="
dig +short "$TARGET" 2>/dev/null || host "$TARGET" 2>/dev/null || nslookup "$TARGET"
echo -e "\n=== 7. MTR (10 probes) ==="
mtr -r -c 10 "$TARGET"
echo -e "\n=== 8. ERREURS INTERFACE ==="
for iface in $(ip -br link show | awk '{print $1}' | grep -v lo); do
errors=$(ethtool -S "$iface" 2>/dev/null | grep -E "error|drop|crc|miss" | grep -v ": 0" || true)
if [ -n ];
-e
conntrack -S 2>/dev/null ||
Pièges Courants
-
Oublier -n sur tcpdump : Sans -n, tcpdump fait des résolutions DNS pour chaque paquet, ralentissant la capture et pouvant causer des délais.
-
Buffer overflow tcpdump : Sur un lien 10 Gbps, tcpdump peut perdre des paquets. Utiliser tcpdump -B 4096 (buffer 4 Mo).
-
Offloading qui cache les paquets : TSO/GRO/gso déplacent la segmentation vers le NIC. Les paquets capturés par tcpdump peuvent être plus gros que ce qui est réellement transmis. Désactiver avec ethtool -K.
-
MTU path incohérent : Un routeur intermédiaire avec MTU plus petit provoque des timeouts silencieux pour les connexions TCP (PMTUD). Symptôme : ping OK mais connexions TCP bloquées.
-
Firewall qui drop ICMP : Si les administrateurs réseau bloquent ICMP "Destination Unreachable (Fragmentation Needed)", Path MTU Discovery ne fonctionne pas → connexions TCP bloquées.
Liste de vérification (Checklist)