affaan-m/ECC/docs/ja-JP/skills/network-interface-health/SKILL.md
network-interface-health
Review network-interface-health's use cases, installation, workflow, and original source instructions.
- Source repository stars
- 234,327
- Declared platforms
- 0
- Static risk flags
- 0
- Last source update
- 2026-07-27
- Source checked
- 2026-07-28
Decision brief
What it does—and where it fits
ネットワークの症状が物理リンク、スイッチポート、ケーブル、トランシーバー、デュプレックス設定、または輻輳したインターフェースによって引き起こされている可能性がある場合にこのスキルを使用する。
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/affaan-m/ECC --skill "docs/ja-JP/skills/network-interface-health"Inspect the Agent Skill "network-interface-health" from https://github.com/affaan-m/ECC/blob/4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38/docs/ja-JP/skills/network-interface-health/SKILL.md at commit 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
使用するタイミング
ホストまたはVLANにパケットロス、レイテンシスパイク、または断続的な到達不能がある。
ホストまたはVLANにパケットロス、レイテンシスパイク、または断続的な到達不能がある。スイッチまたはルーターのインターフェースにCRC、ランツ、ジャイアント、ドロップ、リセット、またはフラップが表示されている。ハードウェアを交換する前にリンクの両端を比較する必要がある。 - 02
仕組み
インターフェースカウンターは証拠だが、絶対値よりもトレンドの方が重要である。ベースラインを取得し、測定間隔を待ち、再度取得してから増分を比較する。
インターフェースカウンターは証拠だが、絶対値よりもトレンドの方が重要である。ベースラインを取得し、測定間隔を待ち、再度取得してから増分を比較する。 - 03
カウンターリファレンス
Review the “カウンターリファレンス” section in the pinned source before continuing.
Review and apply the “カウンターリファレンス” source section. - 04
診断フロー
1. カウンターが増加していることを確認する(歴史的なものだけでなく)。 2. リンクの両端を確認する。受信側エラーは通常、エラーを報告しているポートではなく、その側に到着する信号を指す。 3. パッチケーブルを交換するか、ファイバーとオプティクスを清掃/交換する。 4. 両側で速度/デュプレックス設定が一致していることを確認する。 5. 同じタイムスタンプ前後のフラップイベントのログを確認する。
カウンターが増加していることを確認する(歴史的なものだけでなく)。リンクの両端を確認する。受信側エラーは通常、エラーを報告しているポートではなく、その側に到着する信号を指す。パッチケーブルを交換するか、ファイバーとオプティクスを清掃/交換する。
Permission review
Static risk signals and limitations
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 70/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 234,327 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- affaan-m/ECC
- Skill path
- docs/ja-JP/skills/network-interface-health/SKILL.md
- Commit
- 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38
- License
- MIT
- Collected
- 2026-07-28
- Default branch
- main
View the original SKILL.md
ネットワークインターフェースヘルス
ネットワークの症状が物理リンク、スイッチポート、ケーブル、トランシーバー、デュプレックス設定、または輻輳したインターフェースによって引き起こされている可能性がある場合にこのスキルを使用する。
使用するタイミング
- ホストまたはVLANにパケットロス、レイテンシスパイク、または断続的な到達不能がある。
- スイッチまたはルーターのインターフェースにCRC、ランツ、ジャイアント、ドロップ、リセット、またはフラップが表示されている。
- ハードウェアを交換する前にリンクの両端を比較する必要がある。
- 変更ウィンドウでインターフェースカウンターの前後の証拠が必要。
- 監視が
ifInErrors、ifOutErrors、または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または入力エラー
- カウンターが増加していることを確認する(歴史的なものだけでなく)。
- リンクの両端を確認する。受信側エラーは通常、エラーを報告しているポートではなく、その側に到着する信号を指す。
- パッチケーブルを交換するか、ファイバーとオプティクスを清掃/交換する。
- 両側で速度/デュプレックス設定が一致していることを確認する。
- 同じタイムスタンプ前後のフラップイベントのログを確認する。
ドロップ
- 入力ドロップと出力ドロップを分離する。
- インターフェースレートを容量と比較する。
- QoSポリシー、キューカウンター、リンクがオーバーサブスクリプションのアップリンクかどうかを確認する。
- キューチューニングは二次的な処置として扱う。まずリンクが輻輳しているかどうかを証明する。
デュプレックスと速度
両側がサポートしている場合、最新のイーサネットリンクではオートネゴシエーションを優先する。一方の側を固定する必要がある場合は、両側を明示的に設定し、理由を文書化する。一方を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
- ローカルポートのカウンターを取得する。
- 接続されたリモートポートのカウンターを取得する。
- ルーティングやファイアウォールルールを変更する前にケーブルまたはオプティクスを交換する。
- ベースラインを記録した後にのみカウンターをクリアする。
- 一定間隔後に再確認する。
インターネットは遅いがLANは正常
- WANインターフェースのドロップ/エラーを確認する。
- LANアップリンクの利用率と出力ドロップを確認する。
- WANリンクがクリーンでもスループットが低い場合はゲートウェイCPUを確認する。
- 上流サービスを責める前に有線と無線のテストを比較する。
アンチパターン
- ベースラインを保存する前にカウンターをクリアする。
- リンクの一方の側だけを確認する。
- 時間ウィンドウなしで過去のすべてのCRCをアクティブな問題と仮定する。
- 一方の側でオートネゴシエーションを使用し、もう一方で固定速度/デュプレックスを使用する。
- 輻輳を確認する前に出力ドロップをケーブル問題として扱う。
関連情報
- エージェント:
network-troubleshooter - スキル:
network-config-validation - スキル:
homelab-network-setup
Alternatives