Communitygithub.com

diagnóstico-bgp-red

Patrones de diagnóstico de BGP de solo lectura para estado de vecinos, intercambio de rutas, política de prefijos, inspección de path AS y recopilación segura de evidencia. Úselo cuando un vecino BGP esté caído, falten rutas o sea necesario inspeccionar la política de prefijos y el path AS.

¿Qué es diagnóstico-bgp-red?

Esta habilidad proporciona un flujo de trabajo estructurado de solo lectura para diagnosticar problemas de sesiones BGP en redes. Es ideal cuando un vecino BGP está caído, oscilando, o aunque la sesión esté establecida faltan rutas o hay prefijos inesperados. El enfoque principal es la recopilación de evidencia sin realizar cambios, cubriendo desde la verificación del estado de la sesión, la conectividad de transporte, la inspección de políticas de ruta (route-maps, prefix-lists), hasta el análisis de path AS con expresiones regulares. Incluye una tabla de interpretación de estados (Idle, Active, Established, etc.) con los primeros pasos a seguir, comandos de diagnóstico para diferentes plataformas (Cisco, etc.) y un patrón de análisis en Python para extraer información de resúmenes BGP. La habilidad enfatiza que acciones como reinicios de sesión, cambios de configuración o habilitación de almacenamiento adicional de rutas solo deben realizarse en una ventana de cambio aprobada, evitando diagnósticos automáticos que puedan afectar el enrutamiento. También documenta antipatrones comunes como asumir que el estado Active siempre indica que el extremo remoto está caído o ignorar diferencias de VRF y familia de direcciones.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Diagnóstico BGP de Red

Use esta habilidad cuando una sesión BGP esté caída, oscilando, establecida pero con rutas faltantes, o anunciando prefijos inesperados. El flujo de trabajo predeterminado es la recopilación de evidencia de solo lectura; las acciones de política y reinicio pertenecen a una ventana de cambio revisada.

Cuándo Usar

  • Los vecinos BGP están atascados en Idle, Connect, Active, OpenSent u OpenConfirm.
  • Una sesión está Established pero faltan los prefijos esperados.
  • Un route-map, prefix-list, límite de max-prefix o política de path AS puede estar filtrando rutas.
  • Necesita evidencia antes/después para un cambio BGP.
  • Está revisando automatización que analiza la salida del resumen BGP.

Flujo de Triage de Solo Lectura

  1. Identifique el vecino exacto, la familia de direcciones, la VRF y los ASN local/remoto.
  2. Capture el estado del resumen y la última razón de reinicio.
  3. Verifique la alcanzabilidad a la dirección fuente del par.
  4. Revise las referencias de política de ruta antes de asumir una falla de transporte.
  5. Compare las rutas anunciadas, recibidas e instaladas donde la plataforma lo admita.
show bgp summary
show bgp neighbors <par>
show ip route <par>
show tcp brief | include <par>|:179
show logging | include BGP|<par>
show running-config | section router bgp
show ip prefix-list
show route-map

Use comandos específicos de familia de direcciones para la plataforma cuando el dispositivo use VRFs, IPv6, VPNv4 o EVPN. No asuma unicast IPv4 global.

Interpretación de Estados

EstadoPrimeras comprobaciones
Established con conteo de prefijosEl intercambio de rutas está activo; inspeccione política y selección de tabla
Established con cero prefijosVerifique política de entrada, max-prefix, rutas anunciadas y AFI/SAFI
ActiveLa sesión TCP no se completa; verifique enrutamiento, fuente, ACLs y alcanzabilidad del par
ConnectLa conexión TCP está en progreso; verifique ruta y receptor remoto
OpenSent/OpenConfirmTCP funciona; verifique ASN, autenticación, temporizadores, capacidades y registros
IdleEl vecino puede estar deshabilitado, falta configuración, bloqueado por política o temporizador de retroceso

Comprobaciones de Transporte

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

Si el par se origina desde un loopback, confirme que ambas direcciones enruten hacia las direcciones de loopback y que la configuración del vecino use la fuente de actualización esperada.

Evite deshabilitar ACLs o políticas de firewall como atajo de diagnóstico. Lea primero los contadores de aciertos, registros y estado de ruta.

Comprobaciones de Política de Ruta

show bgp neighbors <par> advertised-routes
show bgp neighbors <par> routes
show ip prefix-list <nombre>
show route-map <nombre>
show bgp <prefijo>

Algunas plataformas requieren configuración adicional antes de que received-routes esté disponible. No agregue esa configuración durante el triage de incidentes a menos que el operador apruebe el cambio.

Revisión de Path AS y Prefijo

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

Use regex de AS-path con cuidado. _65001_ coincide con AS 65001 como token. 65001 simple puede coincidir con ASN más largos o texto no relacionado.

Patrón de Análisis

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

Prefiera la salida de analizador estructurado cuando esté disponible, pero almacene la salida sin procesar con el registro del incidente porque los formatos de resumen BGP varían según la plataforma y la familia de direcciones.

Solo Ventana de Cambio

Estas acciones pueden afectar el enrutamiento y no deben sugerirse como diagnóstico automático:

  • Limpiar una sesión BGP.
  • Cambiar autenticación de vecino, temporizadores, fuente de actualización, route-maps o prefix-lists.
  • Habilitar almacenamiento adicional de rutas recibidas.
  • Relajar firewall, ACL o política de plano de control.

Si se aprueba un reinicio, prefiera la opción de reinicio suave o actualización de ruta menos disruptiva que admita la plataforma y documente exactamente por qué es seguro.

Antipatrones

  • Asumir que Active siempre significa que el lado remoto está caído.
  • Ignorar diferencias de VRF, familia de direcciones o fuente de actualización.
  • Usar regex de AS-path amplio sin límites de token.
  • Reiniciar un par antes de leer la última razón de reinicio y los registros.
  • Tratar la salida faltante de received-routes como prueba de que no llegaron rutas.

Ver También

  • Habilidad: cisco-ios-patterns
  • Habilidad: network-config-validation
  • Habilidad: 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 relacionados