Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
affaan-m avatar

Network Interface Health

  • 1.4k installs
  • 238k repo stars
  • Updated August 5, 2026
  • affaan-m/ecc

This is a copy of network-interface-health by affaan-m - installs and ranking accrue to the original listing.

network-interface-health is a Claude Code skill that diagnoses interface CRC errors, drops, duplex mismatches, and counter trends on routers, switches, and Linux hosts for developers who need link-level evidence before c

About

network-interface-health is an ECC community skill for diagnosing physical-link and switch-port problems that masquerade as application or routing failures. The skill teaches baseline-then-delta counter analysis: capture interface statistics, wait a measurement interval, capture again, and compare increments rather than trusting absolute totals. It documents Cisco-style show interfaces commands, Linux ip -s link, ethtool, and ethtool -S queries, plus SNMP counters such as ifInErrors, ifOutErrors, and ifOutDiscards. A counter reference table explains eight error types—CRC, runts, giants, input drops, output drops, resets, and collisions—with common causes and remediation order. Diagnosis flows separate CRC and input-error investigation from congestion-driven output drops and duplex or speed negotiation mismatches. A bundled Python parser safely slices show interfaces blocks without arbitrary character windows. Developers reach for network-interface-health when monitoring reports rising interface errors or intermittent reachability on a VLAN or WAN link.

  • Diagnoses CRCs, runts, giants, drops, resets, flaps, duplex mismatches and speed negotiation failures
  • Captures baseline then delta counters over a measurement interval to reveal trends rather than absolute values
  • Runs Cisco-style show commands and Linux ip/ethtool equivalents on both ends of a link
  • Compares interface health before and after changes during maintenance windows
  • Provides ready counter reference table mapping CRC, input errors, ifInErrors, ifOutDiscards to root causes

Network Interface Health by the numbers

  • 1,361 all-time installs (skills.sh)
  • +82 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/affaan-m/ecc --skill network-interface-health

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.4k
repo stars238k
Last updatedAugust 5, 2026
Repositoryaffaan-m/ecc

How do you diagnose switch CRC and packet loss?

Quickly diagnose packet loss, CRC errors, flapping links, and interface counter trends on routers, switches, and Linux hosts.

Who is it for?

Network engineers and SREs troubleshooting packet loss, latency spikes, or rising ifInErrors on routers, switches, or Linux hosts before blaming application code.

Skip if: Developers debugging pure application-layer HTTP errors with clean interface counters should use application tracing instead of network-interface-health.

When should I use this skill?

Monitoring reports rising ifInErrors, ifOutDiscards, or CRC counters, or a host shows intermittent reachability that may be a physical link or duplex problem.

What you get

Before-and-after counter deltas, duplex and speed findings, link-end comparison notes, and hardware replacement evidence

  • Counter delta report
  • Duplex and speed findings
  • Link-end comparison notes

By the numbers

  • Counter reference table documents 8 interface error and drop types
  • Includes Python parser for show interfaces output blocks

Files

SKILL.mdMarkdownGitHub ↗

ネットワークインターフェースヘルス

ネットワークの症状が物理リンク、スイッチポート、ケーブル、トランシーバー、デュプレックス設定、または輻輳したインターフェースによって引き起こされている可能性がある場合にこのスキルを使用する。

使用するタイミング

  • ホストまたはVLANにパケットロス、レイテンシスパイク、または断続的な到達不能がある。
  • スイッチまたはルーターのインターフェースにCRC、ランツ、ジャイアント、ドロップ、リセット、またはフラップが表示されている。
  • ハードウェアを交換する前にリンクの両端を比較する必要がある。
  • 変更ウィンドウでインターフェースカウンターの前後の証拠が必要。
  • 監視がifInErrorsifOutErrors、またはifOutDiscardsの増加を報告している。

仕組み

インターフェースカウンターは証拠だが、絶対値よりもトレンドの方が重要である。ベースラインを取得し、測定間隔を待ち、再度取得してから増分を比較する。

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

Linuxホストの場合:

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

カウンターリファレンス

カウンター意味一般的な原因
CRC受信フレームのチェックサムが失敗不良ケーブル、汚れたファイバー、不良オプティック、デュプレックス不一致
input errors受信側エラーの集計結論を出す前にサブカウンターを確認
runts最小イーサネットサイズ未満のフレームデュプレックス不一致、コリジョンドメイン、不良NIC
giants期待されるMTUより大きいフレームMTU不一致またはジャンボフレーム境界
input dropsデバイスがインバウンドパケットを受け入れられなかったバースト、オーバーサブスクリプション、CPUパス、キュー圧迫
output drops送信キューがパケットを廃棄した輻輳、QoSポリシー、サイズ不足のアップリンク
resetsインターフェースハードウェアリセットフラッピング、キープアライブ、ドライバー、オプティック、電源
collisionsイーサネットコリジョンカウンターハーフデュプレックスまたはネゴシエーション不一致

診断フロー

CRCまたは入力エラー

1. カウンターが増加していることを確認する(歴史的なものだけでなく)。 2. リンクの両端を確認する。受信側エラーは通常、エラーを報告しているポートではなく、その側に到着する信号を指す。 3. パッチケーブルを交換するか、ファイバーとオプティクスを清掃/交換する。 4. 両側で速度/デュプレックス設定が一致していることを確認する。 5. 同じタイムスタンプ前後のフラップイベントのログを確認する。

ドロップ

1. 入力ドロップと出力ドロップを分離する。 2. インターフェースレートを容量と比較する。 3. QoSポリシー、キューカウンター、リンクがオーバーサブスクリプションのアップリンクかどうかを確認する。 4. キューチューニングは二次的な処置として扱う。まずリンクが輻輳しているかどうかを証明する。

デュプレックスと速度

両側がサポートしている場合、最新のイーサネットリンクではオートネゴシエーションを優先する。一方の側を固定する必要がある場合は、両側を明示的に設定し、理由を文書化する。一方をfixed speed/duplexに設定し、もう一方をautoにすることは絶対にしてはならない。

show interfaces <interface> | include duplex|speed

安全なパーサーの例

各インターフェースブロックを1つのヘッダーから次のヘッダーまでスライスする。任意の文字ウィンドウを使用しないこと。大きなインターフェースブロックはカウンターが欠落したり、誤ったポートに割り当てられたりする可能性がある。

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

1つのスイッチポートのCRC

1. ローカルポートのカウンターを取得する。 2. 接続されたリモートポートのカウンターを取得する。 3. ルーティングやファイアウォールルールを変更する前にケーブルまたはオプティクスを交換する。 4. ベースラインを記録した後にのみカウンターをクリアする。 5. 一定間隔後に再確認する。

インターネットは遅いがLANは正常

1. WANインターフェースのドロップ/エラーを確認する。 2. LANアップリンクの利用率と出力ドロップを確認する。 3. WANリンクがクリーンでもスループットが低い場合はゲートウェイCPUを確認する。 4. 上流サービスを責める前に有線と無線のテストを比較する。

アンチパターン

  • ベースラインを保存する前にカウンターをクリアする。
  • リンクの一方の側だけを確認する。
  • 時間ウィンドウなしで過去のすべてのCRCをアクティブな問題と仮定する。
  • 一方の側でオートネゴシエーションを使用し、もう一方で固定速度/デュプレックスを使用する。
  • 輻輳を確認する前に出力ドロップをケーブル問題として扱う。

関連情報

  • エージェント: network-troubleshooter
  • スキル: network-config-validation
  • スキル: homelab-network-setup

Related skills

How it compares

Use network-interface-health over generic debugging skills when symptoms point to physical links, switch ports, or SNMP interface counters rather than application stack traces.

FAQ

How does network-interface-health analyze interface counters?

network-interface-health captures a baseline of interface counters, waits a measurement interval, captures again, and compares increments. The skill treats trends as evidence rather than absolute historical totals, and documents show interfaces, ip -s link, and ethtool -S command

What counters does network-interface-health explain?

network-interface-health documents eight counter types in a reference table: CRC, input errors, runts, giants, input drops, output drops, resets, and collisions. Each entry lists meaning, common cause, and whether to suspect cable, duplex, congestion, or QoS policy.

Cloud & Infrastructuremonitoringinfra

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.