Santé des Interfaces Réseau
Utilisez cette compétence lorsqu'un symptôme réseau peut être causé par un lien physique, un port de commutateur, un câble, un émetteur-récepteur, un paramètre de duplex, ou une interface congestionnée.
Quand l'Utiliser
- Un hôte ou un VLAN présente des pertes de paquets, des pics de latence ou une joignabilité intermittente.
- Une interface de commutateur ou de routeur affiche des CRC, des runts, des géants, des pertes, des réinitialisations ou du flapping.
- Vous devez comparer les deux extrémités d'un lien avant de remplacer du matériel.
- Une fenêtre de changement nécessite des preuves de compteurs d'interface avant/après.
- La supervision rapporte une augmentation de
ifInErrors,ifOutErrorsouifOutDiscards.
Comment ça Fonctionne
Les compteurs d'interface sont des preuves, mais la tendance est plus importante que le nombre absolu. Capturez une ligne de base, attendez un intervalle de mesure, capturez à nouveau, puis comparez les incréments.
show interfaces <interface>
show interfaces <interface> status
show logging | include <interface>|changed state|line protocol
Sur les hôtes Linux :
ip -s link show <interface>
ethtool <interface>
ethtool -S <interface>
Référence des Compteurs
| Compteur | Signification | Cause courante |
|---|---|---|
| CRC | Somme de contrôle de trame reçue échouée | Mauvais câble, fibre sale, mauvais optique, incompatibilité de duplex |
| input errors | Agrégat des erreurs côté réception | Vérifier les sous-compteurs avant de conclure |
| runts | Trames en dessous de la taille Ethernet minimale | Incompatibilité de duplex, domaine de collision, carte réseau défectueuse |
| giants | Trames plus grandes que le MTU attendu | Incompatibilité MTU ou limite de jumbo-frame |
| input drops | Le périphérique n'a pas pu accepter les paquets entrants | Rafale, sursouscription, chemin CPU, pression de file d'attente |
| output drops | La file d'attente de sortie a supprimé des paquets | Congestion, politique QoS, liaison montante sous-dimensionnée |
| resets | Réinitialisation matérielle de l'interface | Flapping, keepalive, pilote, optique, alimentation |
| collisions | Compteur de collision Ethernet | Half-duplex ou incompatibilité de négociation |
Flux de Diagnostic
CRC ou Erreurs d'Entrée
- Confirmez que les compteurs augmentent, et ne sont pas seulement historiques.
- Vérifiez les deux extrémités du lien. Les erreurs côté réception pointent généralement vers le signal arrivant de ce côté, pas nécessairement vers le port qui signale l'erreur.
- Remplacez le câble de brassage ou nettoyez/remplacez la fibre et les optiques.
- Confirmez que les paramètres de vitesse/duplex correspondent des deux côtés.
- Vérifiez les journaux pour les événements de flapping autour du même horodatage.
Pertes
- Séparez les pertes d'entrée des pertes de sortie.
- Comparez le débit de l'interface avec sa capacité.
- Vérifiez la politique QoS, les compteurs de file d'attente, et si le lien est une liaison montante sursouscrite.
- Traitez le réglage des files d'attente comme secondaire. Prouvez d'abord si le lien est congestionné.
Duplex et Vitesse
Privilégiez l'auto-négociation sur les liaisons Ethernet modernes lorsque les deux côtés la supportent. Si un côté doit être fixé, configurez les deux côtés explicitement et documentez pourquoi. Ne mélangez jamais une vitesse/duplex fixe d'un côté avec l'auto-négociation de l'autre.
show interfaces <interface> | include duplex|speed
Exemple d'Analyseur Sécurisé
Découpez chaque bloc d'interface d'un en-tête au suivant. N'utilisez pas de fenêtre de caractères arbitraire ; les grands blocs d'interface peuvent entraîner des compteurs manqués ou attribués au mauvais port.
import re
from typing import Any
HEADER_RE = re.compile(
r"^(?P<nom>\S+) is (?P<statut>(?:administratively )?down|up), "
r"line protocol is (?P<protocole>up|down)",
re.I | re.M,
)
ERROR_RE = re.compile(r"(?P<entree>\d+) input errors, (?P<crc>\d+) CRC", re.I)
DROP_RE = re.compile(r"(?P<sortie>\d+) output errors", re.I)
DUPLEX_RE = re.compile(r"(?P<duplex>Full|Half|Auto)-duplex,\s+(?P<vitesse>[^,]+)", re.I)
def parse_show_interfaces(texte_brut: str) -> list[dict[str, Any]]:
en_tetes = list(HEADER_RE.finditer(texte_brut))
interfaces = []
for index, en_tete in enumerate(en_tetes):
fin = en_tetes[index + 1].start() if index + 1 < len(en_tetes) else len(texte_brut)
bloc = texte_brut[en_tete.start():fin]
erreurs = ERROR_RE.search(bloc)
pertes = DROP_RE.search(bloc)
duplex = DUPLEX_RE.search(bloc)
interfaces.append({
"nom": en_tete.group("nom"),
"statut": en_tete.group("statut"),
"protocole": en_tete.group("protocole"),
"duplex": duplex.group("duplex") if duplex else "inconnu",
"vitesse": duplex.group("vitesse").strip() if duplex else "inconnu",
"erreurs_entree": int(erreurs.group("entree")) if erreurs else 0,
"erreurs_crc": int(erreurs.group("crc")) if erreurs else 0,
"erreurs_sortie": int(pertes.group("sortie")) if pertes else 0,
})
return interfaces
Exemples
CRC sur un Port de Commutateur
- Capturez les compteurs sur le port local.
- Capturez les compteurs sur le port distant connecté.
- Remplacez le câble ou l'optique avant de modifier les règles de routage ou de pare-feu.
- Effacez les compteurs uniquement après avoir enregistré la ligne de base.
- Re-vérifiez après un intervalle fixe.
Internet Lent mais LAN OK
- Vérifiez les pertes/erreurs de l'interface WAN.
- Vérifiez l'utilisation de la liaison montante LAN et les pertes en sortie.
- Vérifiez le CPU de la passerelle si le lien WAN est propre mais le débit toujours faible.
- Comparez les tests filaires et sans fil avant d'incriminer le fournisseur d'accès.
Anti-Patterns
- Effacer les compteurs avant de sauvegarder une ligne de base.
- Ne regarder qu'un seul côté d'un lien.
- Supposer que tous les CRC historiques sont des problèmes actifs sans fenêtre de temps.
- Mélanger l'auto-négociation d'un côté avec une vitesse/duplex fixe de l'autre.
- Traiter les pertes en sortie comme un problème de câble avant de vérifier la congestion.
Voir Aussi
- Agent :
network-troubleshooter - Compétence :
network-config-validation - Compétence :
homelab-network-setup