Communitygithub.com

network-bgp-diagnostics

Diagnose-only BGP-Fehlerbehebungsmuster für Nachbarzustand, Routenaustausch, Präfix-Policy, AS-Pfad-Prüfung und sichere Beweissammlung. Verwenden Sie dies, wenn ein BGP-Nachbar nicht erreichbar ist, Routen fehlen oder Präfix-Policy und AS-Pfad überprüft werden müssen.

Was ist network-bgp-diagnostics?

Dieses Skill unterstützt Netzwerkingenieure und KI-Agenten bei der diagnoseorientierten Fehlerbehebung von BGP-Sitzungen. Es ist speziell für Szenarien konzipiert, in denen eine BGP-Session ausgefallen ist, flattert, zwar etabliert ist aber erwartete Routen fehlen, oder unerwartete Präfixe angekündigt werden. Der Standard-Workflow ist reine, schreibgeschützte Beweissammlung (Read-Only Evidence Collection); Richtlinien- und Reset-Aktionen gehören in ein überprüftes Change-Fenster. Das Skill enthält eine strukturierte Triage-Anleitung mit Zustandsinterpretation (Idle, Active, Established usw.), Transport- und Routing-Policy-Prüfungen sowie AS-Pfad-Analyse. Es bietet plattformunabhängige CLI-Befehlsvorlagen und einen Python-Parser für BGP-Summary-Ausgaben, der strukturierte Daten extrahiert. Das Skill betont wichtige Anti-Patterns wie das voreilige Zurücksetzen von Peers oder das Ignorieren von VRFs und Address Families, und es stellt klar, dass Aktionen mit potenziellen Routing-Auswirkungen (Session-Reset, Änderungen an Route-Maps, ACLs) nur in einem kontrollierten Change-Fenster durchgeführt werden sollten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/network-bgp-diagnostics

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Network BGP Diagnostics

Verwenden Sie dieses Skill, wenn eine BGP-Sitzung ausgefallen ist, flattert, zwar etabliert ist aber Routen fehlen, oder unerwartete Präfixe angekündigt werden. Der Standard-Workflow ist eine schreibgeschützte Beweissammlung; Richtlinien- und Reset-Aktionen gehören in ein überprüftes Change-Fenster.

Wann verwenden

  • BGP-Nachbarn hängen in Idle, Connect, Active, OpenSent oder OpenConfirm fest.
  • Eine Sitzung ist Established, aber erwartete Präfixe fehlen.
  • Eine route-map, prefix-list, max-prefix-Limit oder AS-Pfad-Richtlinie filtert möglicherweise Routen.
  • Sie benötigen Vorher/Nachher-Beweise für eine BGP-Änderung.
  • Sie überprüfen Automatisierung, die BGP-Summary-Ausgaben parst.

Schreibgeschützter Triage-Ablauf

  1. Identifizieren Sie den genauen Nachbarn, die Address Family, das VRF und die lokalen/entfernten ASNs.
  2. Erfassen Sie den Summary-Zustand und den letzten Reset-Grund.
  3. Überprüfen Sie die Erreichbarkeit der Peer-Quelladresse.
  4. Prüfen Sie die Route-Policy-Referenzen, bevor Sie von einem Transportfehler ausgehen.
  5. Vergleichen Sie angekündigte, empfangene und installierte Routen, sofern die Plattform diese Befehle unterstützt.
show bgp summary
show bgp neighbors <peer>
show ip route <peer>
show tcp brief | include <peer>|:179
show logging | include BGP|<peer>
show running-config | section router bgp
show ip prefix-list
show route-map

Verwenden Sie plattformspezifische Address-Family-Befehle, wenn das Gerät VRFs, IPv6, VPNv4 oder EVPN verwendet. Gehen Sie nicht von globalem IPv4-Unicast aus.

Zustandsinterpretation

ZustandErste Prüfungen
Established mit PräfixanzahlRoutenaustausch läuft; Policy und Tabellenauswahl prüfen
Established mit Null-PräfixenInbound-Policy, max-prefix, angekündigte Routen und AFI/SAFI prüfen
ActiveTCP-Sitzung wird nicht abgeschlossen; Routing, Quelle, ACLs und Peer-Erreichbarkeit prüfen
ConnectTCP-Verbindung wird aufgebaut; Pfad und remote Listener prüfen
OpenSent/OpenConfirmTCP funktioniert; ASN, Authentifizierung, Timer, Fähigkeiten und Logs prüfen
IdleNachbar ist möglicherweise deaktiviert, Konfiguration fehlt, durch Policy blockiert oder Backoff-Timer läuft

Transportprüfungen

ping <peer> source <local-source>
traceroute <peer> source <local-source>
show ip route <peer>
show bgp neighbors <peer> | include BGP state|Last reset|Local host|Foreign host

Wenn der Peer von einem Loopback stammt, überprüfen Sie, ob beide Richtungen zu den Loopback-Adressen routen und dass die Nachbarkonfiguration die erwartete Update-Quelle verwendet.

Vermeiden Sie es, ACLs oder Firewall-Richtlinien als Diagnose-Abkürzung zu deaktivieren. Lesen Sie zuerst Trefferzähler, Logs und den Pfadzustand.

Route-Policy-Prüfungen

show bgp neighbors <peer> advertised-routes
show bgp neighbors <peer> routes
show ip prefix-list <name>
show route-map <name>
show bgp <prefix>

Einige Plattformen erfordern zusätzliche Konfiguration, bevor received-routes verfügbar ist. Fügen Sie diese Konfiguration während der Incident-Triage nicht hinzu, es sei denn, der Operator genehmigt die Änderung.

AS-Pfad- und Präfix-Überprüfung

show bgp regexp _65001_
show bgp regexp ^65001$
show bgp <prefix>
show bgp neighbors <peer> advertised-routes | include Network|Path|<prefix>

Verwenden Sie AS-Pfad-Regex sorgfältig. _65001_ matcht AS 65001 als Token. Ein einfaches 65001 kann längere ASNs oder nicht zugehörigen Text matchen.

Parser-Muster

import re
from typing import Any

BGP_SUMMARY_RE = re.compile(
    r"^(?P<neighbor>\d{1,3}(?:\.\d{1,3}){3})\s+"
    r"(?P<version>\d+)\s+"
    r"(?P<remote_as>\d+)\s+"
    r"(?P<msg_rcvd>\d+)\s+"
    r"(?P<msg_sent>\d+)\s+"
    r"(?P<table_version>\d+)\s+"
    r"(?P<input_queue>\d+)\s+"
    r"(?P<output_queue>\d+)\s+"
    r"(?P<uptime>\S+)\s+"
    r"(?P<state_or_prefixes>\S+)$",
    re.M,
)

def parse_bgp_summary(raw: str) -> list[dict[str, Any]]:
    rows = []
    for match in BGP_SUMMARY_RE.finditer(raw):
        state_or_prefixes = match.group("state_or_prefixes")
        if state_or_prefixes.isdigit():
            state = "Established"
            prefixes_received = int(state_or_prefixes)
        else:
            state = state_or_prefixes
            prefixes_received = None
        rows.append({
            "neighbor": match.group("neighbor"),
            "remote_as": int(match.group("remote_as")),
            "state": state,
            "prefixes_received": prefixes_received,
            "uptime": match.group("uptime"),
        })
    return rows

Bevorzugen Sie strukturierte Parser-Ausgaben, wenn verfügbar, speichern Sie jedoch die Rohausgabe mit dem Incident-Datensatz, da BGP-Summary-Formate je nach Plattform und Address Family variieren.

Nur im Change-Fenster

Diese Aktionen können das Routing beeinflussen und sollten nicht als automatische Diagnose vorgeschlagen werden:

  • Zurücksetzen einer BGP-Sitzung.
  • Ändern der Nachbarauthentifizierung, Timer, Update-Quelle, Route-Maps oder Prefix-Listen.
  • Aktivieren zusätzlicher Received-Route-Speicher.
  • Lockern von Firewall-, ACL- oder Control-Plane-Richtlinien.

Wenn ein Reset genehmigt ist, bevorzugen Sie die am wenigsten störende Soft- oder Route-Refresh-Option, die von der Plattform unterstützt wird, und dokumentieren Sie genau, warum sie sicher ist.

Anti-Patterns

  • Annahme, dass Active immer bedeutet, dass die entfernte Seite ausgefallen ist.
  • Ignorieren von VRF-, Address-Family- oder Update-Source-Unterschieden.
  • Verwendung breiter AS-Pfad-Regex ohne Token-Grenzen.
  • Hard-Reset eines Peers, bevor der letzte Reset-Grund und Logs gelesen wurden.
  • Behandlung fehlender received-routes-Ausgabe als Beweis dafür, dass keine Routen angekommen sind.

Siehe auch

  • Skill: cisco-ios-patterns
  • Skill: network-config-validation
  • Skill: network-interface-health

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/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

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.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Verwandte Skills