Un par atascado en Idle u OpenSent, o una sesión que rebota continuamente arrastrando consigo una ruta, es una de las escaladas más comunes en el borde de una red WAN. Este es el orden de diagnóstico que distingue las pocas causas raíz detrás de la mayoría de estos casos — los comandos display exactos, los códigos de error, y dónde la iteración de rutas rompe silenciosamente una sesión que por lo demás parece normal.
Por Yuwen Zhang (Atlas), fundador de AtlasCommTech — 13 años de despliegues de redes de operadores y empresariales · Actualizado en julio de 2026
No empiezo mirando fijamente la configuración — empiezo por averiguar en cuál de los seis estados está realmente atascado el par.
Una sesión BGP recorre una secuencia fija — Idle, Connect, Active, OpenSent, OpenConfirm, Established — y casi todo caso de «el vecino no sube» es en realidad una pregunta sobre en cuál de esos estados está atascado, no un misterio que se resuelve cambiando ajustes en ambos extremos a la vez. Una sesión que llega a Established y luego cae, rebota, o envía silenciosamente el tráfico solo por una de varias rutas de costo igual es un problema distinto, con su propio orden de diagnóstico, aunque se reporte de la misma forma: «BGP está caído».
A continuación, el árbol de fallas en el que se basa este texto, las comprobaciones de cada rama con los comandos exactos, las causas que aparecen una y otra vez tras las primeras comprobaciones, y algunas respuestas de preguntas frecuentes extraídas de casos reales de campo.
Las fallas de BGP se dividen en exactamente dos formas: el vecino nunca llega a Established, o llega y algo sigue sin estar bien.
Ubicar primero el síntoma en este árbol ahorra mucho retroceso más adelante — indica cuál de las secciones siguientes aplica realmente a lo que está viendo.
Las etiquetas del diagrama se mantienen en inglés por claridad técnica.
Una vez que sabe qué rama aplica, casi cada comprobación siguiente está a un solo comando display de una causa confirmada — la trampa es tratar una sesión ya Established que se vuelve inestable con la misma lista de verificación que una que nunca llegó a establecerse.La misma disciplina, aplicada a otro protocolo, está detrás de ¿El vecino OSPF está atascado o las rutas se vuelven inestables? Leer la máquina de estados para encontrar la falla, su nota hermana para las adyacencias OSPF.
Seis estados, un solo comando exacto para saber en cuál está atascado — y los registros de inestabilidad se explican solos una vez que se entiende el código de error.
Si el par nunca sale de Idle o Active, no toque todavía la configuración BGP — confirme primero que ambos extremos realmente pueden alcanzarse por TCP 179.
<HUAWEI> display acl all
Basic ACL 3001, 2 rules
ACL's step is 5
ACL's match-order is config
rule 5 deny tcp source-port eq bgp
rule 10 deny tcp destination-port eq bgp
// undo rule 5 destination-port / undo rule 10 source-port removes the block
El transporte está bien, pero el par sigue sin salir de OpenSent o muestra «No Neg» — casi siempre es un parámetro concreto que parece correcto aisladamente pero que en realidad no coincide con el otro extremo.
<HUAWEI> display bgp peer
BGP local router ID : 1.1.1.1
Local AS number : 41976
Total number of peers : 12 Peers in established state : 4
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
10.9.0.8 4 100 1601 1443 0 23:21:56 Established 10000
10.10.0.10 4 200 1565 1799 0 23:15:30 Established 9999
// Router ID and AS both compared directly against the peer's own values
Si cualquiera de los extremos origina la sesión desde una interfaz Loopback, hay cuatro parámetros adicionales que deben configurarse correctamente, y un quinto — el Device ID — simplemente no debe ser cero.
<Huawei> display bgp vpnv4 vpn-instance VPN1 peer
BGP local Device ID : 0.0.0.0 // invalid -- session will not originate or accept
...
// after adding a Loopback interface outside any VPN instance:
BGP local Device ID : 192.168.1.2
VPN-Instance VPN1, Device ID 192.168.1.2:
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
10.83.255.2 4 39651 10 22 0 02:59:49 Established 1
Una sesión que estaba bien y luego cayó, o que rebota continuamente, deja una razón exacta registrada — no hace falta estar observando cuando ocurre.
<HUAWEI> display bgp peer 10.8.200.26 log-info
Date/Time : 2021-02-06 18:34:31+00:00
State : Down
Error Code : 4(Hold Timer Expired)
Error Subcode : 0(UnSpecific)
Notification : Send Notification
[~HUAWEI-diagnose] pads diagnose neighbor establish-abnormal bgp history-record
NBR-Peer-IP Last-Detect-Time State Reason
1.1.1.1 01-27 20:23:49 OpenConfirm The shutdown command is run in the BGP view.
2.2.2.2 01-27 20:23:49 Idle The peer ignore command is configured for the BGP peer.
La sesión es estable — la «falla» está en cómo se usan o se reanuncian las rutas que transporta.
[Device] bgp 65001
[Device-bgp] maximum load-balancing 4
// configure identically on every router in the cross-connected mesh
[Device-bgp] preference 65
// set BGP's preference lower (worse) than the static route feeding the same aggregate (default static preference 60)
Una vez que los estados anteriores le han indicado dónde está el problema, estas seis causas explican la mayor parte de lo que realmente está mal.
SÍNTOMAEl par nunca llega a Established aunque el ping de transporte funciona perfectamente — simplemente se queda en OpenSent o cicla.
CAUSADos pares terminan con el mismo Router ID — a menudo tras una configuración clonada o basada en plantilla donde la dirección Loopback, o la selección de Router ID por defecto, no se cambió en la copia.
SOLUCIÓNConfigure un Router ID explícito y único en cada dispositivo, generalmente usando su propia dirección Loopback.
[Device] bgp 65001
[Device-bgp] router id 2.2.2.2
SÍNTOMAEl ping de capa de transporte entre las dos direcciones de par funciona bien, pero la sesión nunca sale de Idle o Active.
CAUSAUna ACL configurada para un propósito no relacionado — filtrado de seguridad, clasificación de QoS — resulta que deniega el puerto de origen o destino TCP bgp en la ruta entre los dos pares.
SOLUCIÓNRevise display acl all en ambos extremos y elimine o restrinja la regla que coincide con el puerto TCP 179.
<HUAWEI> display acl all
Basic ACL 3001, 2 rules
rule 5 deny tcp source-port eq bgp
rule 10 deny tcp destination-port eq bgp
[HUAWEI] acl 3001
[HUAWEI-acl-basic-3001] undo rule 5 destination-port
[HUAWEI-acl-basic-3001] undo rule 10 source-port
SÍNTOMAUna sesión hacia el router de otro fabricante se niega a reconectarse tras un reinicio del dispositivo, aunque la conexión TCP subyacente se completa sin problemas.
CAUSASi cada interfaz con dirección IP del dispositivo está vinculada dentro de una instancia VPN y no hay un Loopback independiente, el Device ID de BGP se resuelve como 0.0.0.0 — un valor que la mayoría de las implementaciones considera inválido, así que el dispositivo no originará ni aceptará una sesión con ese ID sin importar lo saludable que esté el transporte. Aparte, las sesiones originadas desde un Loopback necesitan peer connect-interface, y las sesiones EBGP originadas desde un Loopback o multisalto necesitan peer ebgp-max-hop — sin cualquiera de los dos, la sesión queda sin establecer sin un error evidente.
SOLUCIÓNAñada una interfaz Loopback fuera de cualquier instancia VPN (o configure router id explícitamente) para que el Device ID nunca sea 0.0.0.0, y configure connect-interface y ebgp-max-hop siempre que la sesión no sea un par EBGP directamente conectado simple.
[Device] interface loopback 1
[Device-LoopBack1] ip address 192.168.1.2 32
[Device] bgp 64512
[Device-bgp] peer 10.83.255.2 ebgp-max-hop 2
[Device-bgp] peer 10.83.255.2 connect-interface LoopBack1
SÍNTOMAUna sesión BGP con doble enlace ascendente que funcionaba bien cae a OpenSent en el momento en que un enlace físico se cae — aunque todavía se pueda hacer ping a la dirección Loopback del par desde este dispositivo.
CAUSALas rutas estáticas hacia el Loopback del par recurren a través de otra ruta estática en lugar de apuntar a una interfaz y un siguiente salto explícitos. Cuando cae un enlace físico, el siguiente salto de la ruta sobreviviente de costo igual itera hacia una ruta Null0 configurada para un propósito de agujero negro no relacionado. Un ping sin origen se distribuye por hash hacia la ruta que aún funciona y tiene éxito, pero la sesión BGP — originada desde el Loopback — se distribuye por hash hacia la ruta que ahora itera a Null0, y cae.
SOLUCIÓNHaga que cada ruta estática apunte a una interfaz de salida y un siguiente salto explícitos en lugar de dejar que recurra a través de otra entrada estática.
[Device] undo ip route-static 10.0.0.1 255.255.255.255 192.168.0.1
[Device] ip route-static 10.0.0.1 255.255.255.255 10GE0/0/2 192.168.0.1
<Device> display bgp peer
// the peer at 10.0.0.1 returns to Established once the recursive path is removed
SÍNTOMADos o más enlaces EBGP de costo igual conectan el mismo par de routers, pero casi todo el tráfico va por uno de ellos mientras el otro permanece casi inactivo.
CAUSAPor defecto, BGP solo instala y usa una única mejor ruta por prefijo — sin importar cuántas rutas de costo igual existan realmente — a menos que el balanceo de carga esté explícitamente habilitado. Sin él, la selección de ruta BGP habitual (el Router ID más bajo entre rutas idénticas, por ejemplo) siempre recae en la misma ruta única.
SOLUCIÓNHabilite maximum load-balancing con un valor de 2 o más en cada router de la malla interconectada, dimensionado para el crecimiento futuro, y confirme qué valor admite la plataforma del fabricante del extremo remoto si no es la misma que esta.
[Device] bgp 65001
[Device-bgp] maximum load-balancing 4
SÍNTOMAUna ruta resumida anunciada hacia el backbone se vuelve inestable continuamente — los pares aguas abajo la ven aparecer y desaparecer aunque nadie haya tocado ninguna política ni añadido o retirado una ruta.
CAUSAEl agregado se alimenta tanto de una ruta estática (a menudo un agujero negro) como de una ruta aprendida dinámicamente por IBGP o IGP con mejor preferencia que la entrada estática. Cada vez que la sesión subyacente de la ruta dinámica titubea — aunque sea brevemente — la fuente preferida del agregado cambia entre las dos, y el agregado se retira y se reanuncia aunque nada haya cambiado realmente en la red.
SOLUCIÓNConfigure la preferencia del protocolo dinámico peor (numéricamente más alta) que la de la ruta estática, para que la entrada estática siga siendo la fuente estable y permanente del agregado.
[Device] bgp 65001
[Device-bgp] preference 65
// static route default preference is 60 -- keep it better than BGP/IGP for this aggregate's source
Sacadas directamente del campo — las que vale la pena tener respondidas de antemano.
display bgp peer muestra directamente la columna State actual (Idle / Connect / Active / OpenSent / OpenConfirm / Established). Si no es evidente por qué no avanza más allá de ese estado, el comando de vista de diagnóstico pads diagnose neighbor establish-abnormal bgp history-record imprime una razón de una línea en lenguaje claro por cada par — «se ejecutó el comando shutdown en la vista BGP», «se configuró el comando peer ignore» — sin que tenga que reconstruirla a partir de la configuración en ejecución.
display bgp peer <ip> log-info mantiene un historial de transiciones Up/Down con el par exacto Error Code / Error Subcode para cada una. El código 6 subcódigo 2 (Administrative Shutdown) significa que alguien ejecutó shutdown o configuró peer ignore; el código 4 (Hold Timer Expired) significa que los keepalives simplemente dejaron de llegar a tiempo — revise el enlace y la carga de CPU; el código 6 subcódigo 6 significa que se modificó un comando que afecta al par, como ebgp-max-hop. Cruce la marca de tiempo con el registro de operaciones de ese mismo momento.
BGP solo instala una única mejor ruta por prefijo de forma predeterminada. Sin maximum load-balancing configurado con un valor de 2 o más en los routers que ven las rutas de costo igual, solo se usa una ruta sin importar cuántas rutas de costo igual existan realmente. Configúrelo en cada router del par interconectado, y verifique qué valor admite la plataforma del fabricante remoto si no es la misma que esta.
Esto es un problema de prioridad más que de protocolo. Si el agregado se alimenta tanto de una ruta estática como de una ruta aprendida dinámicamente por IBGP o IGP, la que tenga actualmente la mejor preferencia decide si el agregado está «activo». Cuando la sesión detrás de la ruta dinámica titubea, aunque sea brevemente, la fuente ganadora cambia y el agregado se retira y se reanuncia — nada cambió realmente en la red. Configure la preferencia del protocolo dinámico peor que la de la ruta estática para que la entrada estática siga siendo la fuente estable.
Verifique si este dispositivo realmente tiene un Device ID de BGP utilizable. Si todas las interfaces con dirección IP están vinculadas dentro de una instancia VPN y no hay un Loopback independiente, el Device ID se resuelve como 0.0.0.0, que la mayoría de las implementaciones rechaza de plano — el dispositivo no originará ni aceptará una sesión con ese ID aunque la conexión TCP en sí se complete sin problemas. Añada una interfaz Loopback fuera de cualquier instancia VPN, o configure router id explícitamente, antes de cambiar cualquier otra cosa.
Esta nota se construye en torno al modelo de clasificación de fallas BGP del router Huawei serie AR y sus comandos display bgp peer / display bgp peer log-info / pads diagnose neighbor bgp, además de los casos de campo detrás de ellos. Si su router es de otro fabricante, los comandos exactos cambian, pero la lógica subyacente — coincidencia de Router ID y AS, ACL de capa de transporte, parámetros de vecindad por Loopback, iteración de rutas, balanceo de carga ausente, inestabilidad impulsada por prioridad — se traslada directamente. No cubre en profundidad BGP FlowSpec, la validación de origen RPKI, ni los escenarios de BGP integrados con SR-TE.
Díganos la columna State exacta de display bgp peer, o el Error Code de display bgp peer log-info, y le ayudaremos a interpretarlo.