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 du chemin AS et la collecte sécurisée d'évidences.

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

Ce skill fournit une approche structurée et en lecture seule pour diagnostiquer les problèmes de session BGP. Il est conçu pour les ingénieurs réseau et les agents d'IA qui traitent des sessions BGP défaillantes, des routes manquantes ou des annonces de préfixes inattendues. Le skill couvre l'interprétation des états de session (Idle, Active, Established), la vérification de la connectivité de transport, l'inspection des politiques de routes (prefix-list, route-map, max-prefix) et l'analyse des chemins AS via des expressions régulières. Il inclut également un modèle d'analyse Python pour extraire des informations structurées à partir des sorties `show bgp summary`. Important : le workflow par défaut est la collecte d'évidences uniquement ; les actions de modification (reset de session, changement de politique) sont explicitement réservées à une fenêtre de changement validée. Le skill est applicable à toute plateforme réseau (Cisco IOS, NX-OS, JunOS, etc.) et fonctionne avec les VRFs, IPv6, VPNv4 et EVPN.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/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 ce skill lorsqu'une session BGP est en panne, instable, établie mais avec des routes manquantes, ou qu'elle annonce des préfixes inattendus. Le workflow par défaut est la collecte d'évidences en lecture seule ; les actions de politique et de réinitialisation relèvent d'une fenêtre de changement validée.

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 absents.
  • Une route-map, une prefix-list, une limite max-prefix ou une politique de chemin AS filtre peut-être les routes.
  • Vous avez besoin d'évidences 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 locaux/distance.
  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 route avant de supposer un problème de transport.
  5. Comparez les routes annoncées, reçues et installées là où la plateforme prend en charge 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 de la plateforme lorsque l'appareil utilise des VRFs, IPv6, VPNv4 ou EVPN. Ne présumez pas d'une unicast IPv4 globale.

Interprétation des états

ÉtatPremières vérifications
Established avec nombre de préfixesL'échange de routes est actif ; inspectez la politique et la sélection de table
Established avec zéro préfixesVérifiez la politique entrante, max-prefix, les routes annoncées et AFI/SAFI
ActiveLa session TCP ne se termine pas ; vérifiez le routage, la source, les ACLs 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, l'authentification, les timers, les capacités et les logs
IdleLe voisin peut être désactivé, une configuration manquante, bloqué par une politique ou le temporisateur de backoff

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 source 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 ACLs ou les politiques de pare-feu comme raccourci de diagnostic. Lisez d'abord les compteurs de hits, les logs et l'état du chemin.

Vérifications de politique de route

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 pour que received-routes soit disponible. N'ajoutez pas cette configuration pendant le triage d'incident à moins que l'opérateur n'approuve le changement.

Examen du chemin AS et des préfixes

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

Utilisez les regex de chemin AS avec précaution. _65001_ correspond à l'AS 65001 en tant que jeton. Un simple 65001 peut correspondre à des ASN plus longs ou à du texte sans rapport.

Modèle d'analyse

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

Privilégiez la sortie d'analyse 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 :

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

Si une réinitialisation est approuvée, privilégiez l'option de soft reset ou de route-refresh la moins perturbatrice prise en charge par la plateforme et documentez précisément pourquoi elle est sûre.

Anti-patrons

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

Voir aussi

  • 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/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 associés