Communitygithub.com

network-interface-health

Diagnostique les erreurs d'interface, les pertes, les CRC, les décalages de duplex, le flapping, les problèmes de négociation de vitesse et les tendances des compteurs sur les routeurs, commutateurs et hôtes Linux. À utiliser lorsqu'une interface présente des erreurs, des pertes, des CRC, du flapping ou un décalage de duplex ou de vitesse.

Qu'est-ce que network-interface-health ?

Cette compétence aide les ingénieurs réseau et les agents IA à diagnostiquer les problèmes de connectivité physique et de couche 2 en analysant les compteurs d'interface et les journaux système. Elle est principalement utile pour les routeurs, commutateurs réseau et hôtes Linux, et prend en charge les commandes courantes comme `show interfaces`, `ethtool`, et `ip -s link`. Le flux de diagnostic guide l'utilisateur à travers les vérifications de base (CRC, pertes, duplex, vitesse) et propose des contre-mesures spécifiques (remplacement de câble, nettoyage de fibre, ajustement de QoS). Un exemple d'analyseur sécurisé en Python démontre comment parser les sorties de commandes réseau de manière fiable, en découpant les blocs d'interface plutôt qu'en utilisant des fenêtres de caractères arbitraires. La compétence met également en garde contre les anti-patrons courants comme l'effacement des compteurs avant de sauvegarder une référence ou le mélange de l'auto-négociation avec une configuration fixe.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/network-interface-health

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Santé de l'interface réseau

Utilisez cette compétence lorsqu'un symptôme réseau pourrait être causé par un lien physique, un port de commutateur, un câble, un émetteur-récepteur, un réglage 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 atteignabilité intermittente.
  • L'interface d'un commutateur ou d'un routeur affiche des CRC, des runts, des giants, des pertes, des réinitialisations ou du flapping.
  • Vous devez comparer les deux extrémités d'un lien avant de remplacer le matériel.
  • Une fenêtre de changement nécessite des preuves de compteurs d'interface avant/après.
  • La surveillance signale une augmentation de ifInErrors, ifOutErrors ou ifOutDiscards.

Comment ça fonctionne

Les compteurs d'interface sont des preuves, mais la tendance est plus importante que le nombre absolu. Capturez une référence, 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

CompteurSignificationCause fréquente
CRCLa somme de contrôle de la trame reçue a échouéMauvais câble, fibre sale, mauvais optique, décalage de duplex
input errorsAgrégat d'erreurs côté réceptionVérifier les sous-compteurs avant de conclure
runtsTrames en dessous de la taille minimale EthernetDécalage de duplex, domaine de collision, NIC défectueux
giantsTrames plus grandes que le MTU attenduDécalage de MTU ou limite de trames Jumbo
input dropsLe périphérique n'a pas pu accepter les paquets entrantsRafale, sur-abonnement, chemin CPU, pression de file d'attente
output dropsLa file d'attente de sortie a supprimé des paquetsCongestion, politique QoS, liaison montante sous-dimensionnée
resetsRéinitialisation matérielle de l'interfaceFlapping, keepalive, pilote, optique, alimentation
collisionsCompteur de collisions EthernetDemi-duplex ou décalage de négociation

Flux de diagnostic

CRC ou Erreurs d'entrée

  1. Confirmer que les compteurs s'incrémentent, pas seulement historiques.
  2. Vérifier les deux extrémités du lien. Les erreurs côté réception indiquent généralement le signal arrivant de ce côté, pas nécessairement le port signalant l'erreur.
  3. Remplacer le câble de brassage ou nettoyer/remplacer la fibre et les optiques.
  4. Confirmer que les réglages de vitesse/duplex correspondent des deux côtés.
  5. Vérifier les journaux pour des événements de flapping autour du même timestamp.

Pertes

  1. Distinguer les pertes d'entrée des pertes de sortie.
  2. Comparer le taux de l'interface avec la capacité.
  3. Vérifier la politique QoS, les compteurs de file d'attente, et si le lien est une liaison montante sur-abonnée.
  4. Traiter le réglage de file d'attente comme secondaire. D'abord prouver si le lien est congestionné.

Duplex et Vitesse

Préférez l'auto-négociation sur les liaisons Ethernet modernes lorsque les deux côtés la supportent. Si un côté doit être fixe, configurez les deux côtés explicitement et documentez pourquoi. Ne mélangez jamais vitesse/duplex fixe d'un côté avec auto 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<name>\S+) is (?P<status>(?:administratively )?down|up), "
    r"line protocol is (?P<protocol>up|down)",
    re.I | re.M,
)
ERROR_RE = re.compile(r"(?P<input>\d+) input errors, (?P<crc>\d+) CRC", re.I)
DROP_RE = re.compile(r"(?P<output>\d+) output errors", re.I)
DUPLEX_RE = re.compile(r"(?P<duplex>Full|Half|Auto)-duplex,\s+(?P<speed>[^,]+)", re.I)

def parse_show_interfaces(raw: str) -> list[dict[str, Any]]:
    headers = list(HEADER_RE.finditer(raw))
    interfaces = []
    for index, header in enumerate(headers):
        end = headers[index + 1].start() if index + 1 < len(headers) else len(raw)
        block = raw[header.start():end]
        errors = ERROR_RE.search(block)
        drops = DROP_RE.search(block)
        duplex = DUPLEX_RE.search(block)
        interfaces.append({
            "name": header.group("name"),
            "status": header.group("status"),
            "protocol": header.group("protocol"),
            "duplex": duplex.group("duplex") if duplex else "unknown",
            "speed": duplex.group("speed").strip() if duplex else "unknown",
            "input_errors": int(errors.group("input")) if errors else 0,
            "crc_errors": int(errors.group("crc")) if errors else 0,
            "output_errors": int(drops.group("output")) if drops else 0,
        })
    return interfaces

Exemples

CRC sur un port de commutateur

  1. Capturez les compteurs sur le port local.
  2. Capturez les compteurs sur le port distant connecté.
  3. Remplacez le câble ou l'optique avant de modifier les règles de routage ou de pare-feu.
  4. Effacez les compteurs uniquement après avoir enregistré la référence.
  5. Revérifiez après un intervalle fixe.

Internet lent mais LAN correct

  1. Vérifiez les pertes/erreurs sur l'interface WAN.
  2. Vérifiez l'utilisation de la liaison montante LAN et les pertes de sortie.
  3. Vérifiez le CPU de la passerelle si le lien WAN est propre mais le débit toujours faible.
  4. Comparez les tests filaires et sans fil avant d'incriminer le service en amont.

Anti-patrons

  • Effacer les compteurs avant de sauvegarder une référence.
  • Regarder un seul côté d'une liaison.
  • Supposer que tous les CRC historiques sont des problèmes actifs sans fenêtre temporelle.
  • Mélanger l'auto-négociation d'un côté avec une vitesse/duplex fixe de l'autre.
  • Traiter les pertes de 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

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Skills associés