Communitygithub.com

network-bgp-diagnostics

Modèles de diagnostic BGP en lecture seule pour l'état des voisins, l'échange de routes, la politique de préfixes, l'inspection des chemins AS et la collecte sécurisée de preuves.

Qu'est-ce que network-bgp-diagnostics ?

Ce diagnostic BGP en lecture seule aide les ingénieurs réseau à identifier pourquoi une session BGP est tombée, instable, établie avec des routes manquantes, ou annonce des préfixes inattendus. Il couvre les vérifications de transport, l'interprétation des états (Idle, Active, Established...), l'inspection des politiques de routage (route-map, prefix-list), et l'analyse des chemins AS. Le workflow privilégie la collecte de preuves sans modification de la configuration. Il fournit également un modèle d'analyse syntaxique Python pour extraire les informations de `show bgp summary`. Cette compétence est conçue pour les environnements multi-plateformes (Cisco, Juniper, etc.) et recommande de ne pas effectuer d'actions perturbatrices (reset, changement de politique) sans une fenêtre de changement approuvée.

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

Demander à votre IA préférée

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

Documentation

Diagnostic BGP Réseau

Utilisez cette compétence lorsqu'une session BGP est descendue, instable, établie avec des routes manquantes, ou annonce des préfixes inattendus. Le flux de travail par défaut est la collecte de preuves en lecture seule ; les actions de politique et de réinitialisation appartiennent à une fenêtre de changement revue.

Quand l'utiliser

  • Les voisins BGP sont bloqués dans les états Idle, Connect, Active, OpenSent ou OpenConfirm.
  • Une session est Établie mais les préfixes attendus sont manquants.
  • Une route-map, prefix-list, limite max-prefix, ou une politique de chemin AS filtre peut-être les routes.
  • Vous avez besoin de preuves avant/après pour un changement BGP.
  • Vous révisez une automatisation qui analyse la sortie du résumé BGP.

Flux de Triage en Lecture Seule

  1. Identifiez le voisin exact, la famille d'adresses, la VRF, et les ASN local/distant.
  2. Capturez l'état du résumé et la dernière raison de réinitialisation.
  3. Prouvez l'accessibilité à l'adresse source du pair.
  4. Vérifiez les références de politique de routage avant de supposer un problème de transport.
  5. Comparez les routes annoncées, reçues et installées là où la plateforme supporte ces commandes.
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

Utilisez les commandes spécifiques à la famille d'adresses lorsque l'appareil utilise des VRF, IPv6, VPNv4 ou EVPN. Ne supposez pas l'unicast IPv4 global.

Interprétation des États

ÉtatPremières vérifications
Établi avec un nombre de préfixesL'échange de routes est actif ; inspectez la politique et la sélection de table
Établi avec zéro préfixesVérifiez la politique entrante, max-prefix, les routes annoncées et AFI/SAFI
ActifLa session TCP ne se termine pas ; vérifiez le routage, la source, les ACL et l'accessibilité du pair
ConnectLa connexion TCP est en cours ; vérifiez le chemin et l'écouteur distant
OpenSent/OpenConfirmTCP fonctionne ; vérifiez ASN, authentification, temporisateurs, capacités et journaux
IdleLe voisin est peut-être désactivé, config manquante, bloqué par une politique ou temporisateur de retour

Vérifications de Transport

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

Si le pair est sourcé depuis une loopback, confirmez que les deux directions acheminent vers les adresses de loopback et que la configuration du voisin utilise la source de mise à jour attendue.

Évitez de désactiver les ACL ou la politique de pare-feu comme raccourci de diagnostic. Lisez d'abord les compteurs de hits, les journaux et l'état du chemin.

Vérifications de Politique de Routage

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

Certaines plateformes nécessitent une configuration supplémentaire avant que received-routes ne soit disponible. N'ajoutez pas cette configuration pendant le triage d'incident à moins que l'opérateur n'approuve le changement.

Revue du Chemin AS et du Préfixe

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

Utilisez les expressions régulières AS-path avec prudence. _65001_ correspond à AS 65001 comme jeton. 65001 seul peut correspondre à des ASN plus longs ou à du texte non lié.

Modèle d'Analyse Syntaxique

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

Préférez une sortie d'analyseur structurée lorsqu'elle est disponible, mais stockez la sortie brute avec l'enregistrement de l'incident car les formats de résumé BGP varient selon la plateforme et la famille d'adresses.

Fenêtre de Changement Uniquement

Ces actions peuvent affecter le routage et ne doivent pas être suggérées comme diagnostics automatiques :

  • Effacer une session BGP.
  • Modifier l'authentification du voisin, les temporisateurs, la source de mise à jour, les route-maps ou les prefix-lists.
  • Activer le stockage supplémentaire de routes reçues.
  • Assouplir le pare-feu, l'ACL ou la politique du plan de contrôle.

Si une réinitialisation est approuvée, privilégiez l'option la moins perturbatrice (soft ou route-refresh) supportée par la plateforme et documentez exactement pourquoi elle est sûre.

Anti-Patterns

  • Supposer que Actif signifie toujours que le côté distant est hors service.
  • Ignorer les différences de VRF, de famille d'adresses ou de source de mise à jour.
  • Utiliser une expression régulière AS-path large sans limites de jeton.
  • Réinitialiser brutalement un pair avant de lire la dernière raison de réinitialisation et les journaux.
  • Considérer l'absence de sortie received-routes comme la preuve qu'aucune route n'est arrivée.

Voir Aussi

  • Compétence : cisco-ios-patterns
  • Compétence : network-config-validation
  • Compétence : 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.

Skills associés