Communitygithub.com

network-interface-health

Diagnostica errores de interfaz, caídas, CRCs, desajustes de dúplex, fluctuación, problemas de negociación de velocidad y tendencias de contadores en routers, switches y hosts Linux. Úsalo cuando una interfaz muestre errores, caídas, CRCs, fluctuación o un desajuste de dúplex o velocidad.

¿Qué es network-interface-health?

Esta habilidad está diseñada para diagnosticar problemas de salud de interfaces de red en routers, switches y hosts Linux. Se enfoca en interpretar contadores de interfaz como CRC, errores de entrada/salida, descartes, colisiones, y desajustes de dúplex/velocidad. Es útil cuando se sospecha que un síntoma de red (pérdida de paquetes, picos de latencia, conectividad intermitente) es causado por un enlace físico, cable, transceptor o configuración de puerto. La habilidad guía al usuario a través de un flujo de diagnóstico: capturar una línea base, esperar un intervalo de medición, capturar de nuevo y comparar incrementos, no solo valores absolutos. Además, proporciona una referencia de contadores, ejemplos de uso (como CRCs en un puerto de switch o internet lenta pero LAN bien), y antipatrones como limpiar contadores antes de guardar la línea base o mirar solo un lado del enlace. Incluye un ejemplo de parser seguro en Python para extraer datos de la salida de 'show interfaces'. Funciona en cualquier plataforma que soporte comandos CLI de red o herramientas Linux como ip, ethtool.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Salud de la Interfaz de Red

Utiliza esta habilidad cuando un síntoma de red pueda estar causado por un enlace físico, puerto de switch, cable, transceptor, configuración de dúplex o interfaz congestionada.

Cuándo Usarlo

  • Un host o VLAN tiene pérdida de paquetes, picos de latencia o conectividad intermitente.
  • Una interfaz de switch o router muestra CRCs, runts, giants, drops, resets o flaps.
  • Necesitas comparar ambos extremos de un enlace antes de reemplazar hardware.
  • Una ventana de cambio necesita evidencia de contadores de interfaz antes/después.
  • El monitoreo reporta ifInErrors, ifOutErrors o ifOutDiscards en aumento.

Cómo Funciona

Los contadores de interfaz son evidencia, pero la tendencia importa más que el número absoluto. Captura una línea base, espera un intervalo de medición, captura de nuevo, luego compara los incrementos.

show interfaces <interface>
show interfaces <interface> status
show logging | include <interface>|changed state|line protocol

En hosts Linux:

ip -s link show <interface>
ethtool <interface>
ethtool -S <interface>

Referencia de Contadores

ContadorSignificadoCausa común
CRCFalló la suma de verificación de la trama recibidaCable defectuoso, fibra sucia, óptica defectuosa, desajuste de dúplex
input errorsErrores agregados del lado de recepciónVerificar subcontadores antes de concluir
runtsTramas por debajo del tamaño mínimo de EthernetDesajuste de dúplex, dominio de colisión, NIC defectuosa
giantsTramas más grandes que el MTU esperadoDesajuste de MTU o límite de jumbo-frame
input dropsEl dispositivo no pudo aceptar paquetes entrantesRáfaga, sobresuscripción, ruta de CPU, presión de cola
output dropsLa cola de salida descartó paquetesCongestión, política QoS, uplink insuficiente
resetsReinicio de hardware de la interfazFluctuación, keepalive, controlador, óptica, energía
collisionsContador de colisiones EthernetHalf dúplex o desajuste de negociación

Flujo de Diagnóstico

CRCs o Errores de Entrada

  1. Confirmar que los contadores están incrementando, no solo son históricos.
  2. Verificar ambos extremos del enlace. Los errores del lado de recepción generalmente apuntan a la señal que llega a ese lado, no necesariamente al puerto que reporta el error.
  3. Reemplazar el cable de conexión o limpiar/reemplazar fibra y ópticas.
  4. Confirmar que las configuraciones de velocidad/dúplex coincidan en ambos lados.
  5. Revisar los registros en busca de eventos de fluctuación alrededor del mismo timestamp.

Descartados (Drops)

  1. Separar los descartes de entrada de los de salida.
  2. Comparar la tasa de la interfaz contra la capacidad.
  3. Revisar la política QoS, contadores de cola y si el enlace es un uplink sobresuscrito.
  4. Tratar el ajuste de cola como secundario. Primero probar si el enlace está congestionado.

Dúplex y Velocidad

Prefiere la autonegociación en enlaces Ethernet modernos cuando ambos lados la soportan. Si un lado debe ser fijo, configura ambos lados explícitamente y documenta por qué. Nunca mezcles velocidad/dúplex fijo en un lado con auto en el otro.

show interfaces <interface> | include duplex|speed

Ejemplo de Parser Seguro

Divide cada bloque de interfaz desde un encabezado hasta el siguiente. No uses una ventana de caracteres arbitraria; los bloques grandes de interfaz pueden hacer que se omitan contadores o se asignen al puerto equivocado.

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

Ejemplos

CRCs en un Puerto de Switch

  1. Capturar contadores en el puerto local.
  2. Capturar contadores en el puerto remoto conectado.
  3. Reemplazar el cable o la óptica antes de cambiar reglas de enrutamiento o firewall.
  4. Limpiar contadores solo después de registrar la línea base.
  5. Volver a verificar después de un intervalo fijo.

Internet Lenta Pero LAN Funciona Bien

  1. Revisar caídas/errores de la interfaz WAN.
  2. Revisar la utilización del uplink LAN y los descartes de salida.
  3. Revisar la CPU del gateway si el enlace WAN está limpio pero el rendimiento aún es bajo.
  4. Comparar pruebas cableadas e inalámbricas antes de culpar al servicio ascendente.

Antipatrones

  • Limpiar contadores antes de guardar una línea base.
  • Mirar solo un lado de un enlace.
  • Asumir que todos los CRCs históricos son problemas activos sin una ventana de tiempo.
  • Mezclar autonegociación en un lado con velocidad/dúplex fijo en el otro.
  • Tratar los descartes de salida como un problema de cable antes de verificar congestión.

Ver También

  • Agente: network-troubleshooter
  • Habilidad: network-config-validation
  • Habilidad: 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 relacionados