Mensajes de error del BGP
Descripción del manejo de errores para mensajes de actualización del BGP
Se considera que un mensaje BGP está malformado cuando cualquiera de los atributos del mensaje está malformado. Cuando un enrutador que participa en una sesión de BGP recibe un mensaje de actualización malformado, toda la sesión se restablece de forma predeterminada. Esto no es deseable, ya que los mensajes de actualización con rutas válidas también se ven afectados. Para evitar este comportamiento no deseado, es necesario modificar el control de errores de los mensajes de actualización del BGP.
Para configurar el control de errores para los mensajes de actualización del BGP, configure la bgp-error-tolerance instrucción en el [edit protocols bgp]nivel , [edit protocols bgp group group-name]o [edit protocols bgp group group-name neighbor address] jerarquía.
bgp-error-tolerance { malformed-route-limit number; malformed-update-log-interval seconds; no-malformed-route-limit; }
Si un atributo contiene indicadores de atributos que entran en conflicto con el valor del campo Tipo de atributo, las marcas de atributo se restablecen al valor correcto y el mensaje de actualización se procesa. El valor del bit Extended Length de los indicadores de atributos no cambia, ya que este valor define si la longitud del atributo es de uno o dos octetos. Por lo tanto, el valor de la marca de atributos afecta al modo en que se analiza el paquete de actualización del BGP.
No hay ninguna especificación explícita para el valor de marca de atributo para los atributos de ruta.
Los mensajes de actualización malformada se tratan caso por caso, dependiendo de los valores de los atributos incluidos en los mensajes. Hay tres maneras de manejar mensajes de actualización de BGP malformados, enumerados en el orden de disminución de la gravedad.
Notification message approach— El error del mensaje malformado se registra localmente, se envía un mensaje de actualización de código de error a la administración del par y se restablece toda la sesión del BGP.
Este enfoque se elige cuando:
El mensaje de actualización del BGP contiene el atributo de alcance MP o el atributo de unreach MP.
El campo NLRI o el mensaje de actualización del BGP no se pueden analizar correctamente debido a una discordancia entre la longitud del atributo y el valor del campo de longitud de atributo.
Treat-as-withdraw approach— Todas las rutas del mensaje de actualización malformada se tratan como rutas ocultas, a menos que la
keep noneinstrucción esté configurada, en cuyo caso las rutas se descartan. En ausencia de lakeep noneinstrucción, el número de rutas ocultas malformadas se configuran con un límite que, cuando se supera, descarta las rutas e impide que se oculte cualquier otra ruta malformada. Junos OS elimina las rutas malformadas recién recibidas cuando se alcanza el límite de ruta malformada.Attribute discard approach— Los atributos malformados del mensaje de actualización se descartan; sin embargo, el mensaje se procesa. No se recomienda usar este enfoque si los atributos que se descartarán pueden afectar a la selección o la instalación de la ruta.
Nota:Si un atributo aparece más de una vez en un mensaje de actualización, todas las ocurrencias del atributo, excepto la primera, se descartarán y el mensaje se procesará.
Los mensajes de actualización del BGP se analizan en busca de los siguientes atributos y se tratan como malformados según los valores de estos atributos:
The origin attribute—Gestionado por el enfoque de tratamiento como retirada.
The AS path attribute—Gestionado por el enfoque de tratamiento como retirada.
The AS 4 path attribute— Se controla mediante el enfoque de descarte de atributos. Si algún atributo tiene indicadores de atributos que entran en conflicto con el código de tipo de atributo, Junos OS restablece los indicadores de atributo al valor correcto. El mensaje de actualización se sigue procesando.
Junos OS no cambia el valor del bit de longitud extendida en los indicadores de atributos. Este bit define si la longitud del atributo es de un octeto o de dos octetos. El valor de esta marca afecta al modo en que se analiza el paquete BGP. No hay ninguna especificación explícita de este valor para los atributos de ruta.
The aggregator attribute— Se controla mediante el enfoque de descarte de atributos.
The aggregator 4 attribute— Se controla mediante el enfoque de descarte de atributos.
The next-hop attribute—Gestionado por el enfoque de tratamiento como retirada.
The multiple exit discriminator attribute—Gestionado por el enfoque de tratamiento como retirada.
The local preference attribute—Gestionado por el enfoque de tratamiento como retirada.
The atomic aggregate attribute— Se controla mediante el enfoque de descarte de atributos.
The community attribute—Gestionado por el enfoque de tratamiento como retirada.
The extended community attribute—Gestionado por el enfoque de tratamiento como retirada.
The originator attribute—Gestionado por el enfoque de tratamiento como retirada.
The cluster attribute—Gestionado por el enfoque de tratamiento como retirada.
The PMSI attribute—Gestionado por el enfoque de tratamiento como retirada.
The MP reach attribute— Se maneja mediante el enfoque del mensaje de notificación.
The MP unreach attribute— Se maneja mediante el enfoque del mensaje de notificación.
The attribute set attribute—Gestionado por el enfoque de tratamiento como retirada.
The AIGP attribute—Gestionado por el enfoque de tratamiento como retirada.
Unknown attribute— Si el indicador BGP no indica que se trata de un atributo opcional, este atributo malformado se controla mediante el enfoque del mensaje de notificación.
Cuando un mensaje de actualización del BGP contiene varios atributos malformados, se sigue el enfoque más grave desencadenado por uno de los atributos.
Consulte también
Ejemplo: Configuración de la gestión de errores para mensajes de actualización del BGP
En este ejemplo, se muestra cómo configurar el control de errores del BGP.
Requisitos
Antes de empezar:
Configure interfaces de enrutador.
Configure un protocolo de puerta de enlace interior (IGP).
Configure BGP.
Configure las políticas de enrutamiento.
Descripción general
Cuando un dispositivo de enrutamiento recibe un mensaje de actualización con un atributo malformado, el enrutador es necesario para restablecer la sesión. Esto se especifica en rfc 4271, protocolo de puerta de enlace de borde 4 (BGP-4). Los restablecimientos de sesión no solo afectan a las rutas con el atributo infractor, sino también a otras rutas válidas intercambiadas a través de la sesión. Además, este comportamiento puede presentar una potencial vulnerabilidad de seguridad en el caso de atributos transitivos opcionales. Para minimizar el impacto en el enrutamiento que hacen los mensajes de actualización mal formados, el borrador de Internet draft-ietf-idr-error-handling-01.txt, Revised Error Handling for BGP UPDATE Messages especifica las modificaciones para el manejo del mensaje de actualización del BGP con atributos mal formados. El nuevo manejo de errores permite mantener la sesión establecida y mantener las rutas válidas intercambiadas, a la vez que elimina las rutas llevadas en el mensaje UPDATE malformado.
Topología
En Figura 1, el dispositivo R1 tiene una sesión de emparejamiento BGP interna con el dispositivo R0 y una sesión de emparejamiento de BGP externa con el dispositivo R2.

Para protegerse contra los mensajes de actualización malformados que causan la inestabilidad de la red, el dispositivo R1 tiene configurado el manejo de errores del BGP, como se muestra aquí:
bgp-error-tolerance {
malformed-update-log-interval 10;
malformed-route-limit 5;
}
De forma predeterminada, se considera que un mensaje de BGP está malformado cuando cualquiera de los atributos del mensaje está malformado. Cuando un enrutador que participa en una sesión de BGP recibe un mensaje de actualización malformado, se restablece toda la sesión. La bgp-error-tolerance instrucción invalida este comportamiento para que esté vigente el siguiente control de errores del BGP:
En caso de errores fatales, Junos OS envía un mensaje de notificación titulado Mensaje de actualización de código de error y restablece la sesión del BGP. Se considera que un error en el atributo MP_{UN}REACH es fatal. También se considera que la presencia de varios atributos MP_{UN}REACH en una actualización del BGP es un error grave. Junos OS restablece la sesión del BGP si no puede analizar correctamente el campo NLRI o la actualización del BGP. No se puede analizar el paquete de actualización del BGP cuando la longitud del atributo no coincide con la longitud del valor del atributo.
Para algunos errores no casuales, Junos OS trata todas las rutas contenidas en el mensaje de actualización del BGP malformado como rutas retiradas y las instala como ocultas, a menos que la
keep noneinstrucción esté incluida en la configuración del BGP. Junos OS utiliza este enfoque de manejo de errores para los casos que involucran cualquiera de los siguientes atributos: ORIGIN, AS_PATH, NEXT_HOP, MULTI_EXIT_DISC, LOCAL_PREF, ORIGINOR, CLUSTER, ATTRSET, PMSI, Community y Extended Community. Además, si falta alguno de los atributos de ruta conocidos obligatorios, Junos OS trata la actualización del BGP como malformada. Para limitar el uso de memoria de estas rutas ocultas malformadas, Junos OS deja de instalar nuevas rutas ocultas malformadas después de alcanzar el número máximo de estas rutas ocultas malformadas. En este ejemplo, el número máximo se establece en 5 mediante lamalformed-route-limitinstrucción. El valor predeterminado es 1000. Opcionalmente, puede permitir un número ilimitado de rutas ocultas debido a atributos malformados. Para ello, incluya lano-malformed-route-limitinstrucción.En el caso de otros errores no fetales, Junos OS descarta los atributos de ruta malformadas y continúa procesando el mensaje de actualización del BGP. No es seguro usar este enfoque en los atributos de ruta que pueden afectar a la selección o instalación de la ruta. Junos OS utiliza este enfoque de manejo de errores para los casos que involucran cualquiera de los siguientes atributos: ATOMIC_AGGREGATE, AGGREGATOR, AGGREGATOR4 y AS4PATH.
Para facilitar la resolución de problemas de paquetes malformados, Junos OS registra el error que enumera el código de atributo de ruta malformada, la marca, la longitud, la información del par y la familia, y el primer prefijo de la actualización del BGP malformado. El registro de los paquetes malformados puede ralentizar el rendimiento de Junos OS si se recibe un número significativo de paquetes malformados en poco tiempo. Para limitar el impacto en el rendimiento, Junos OS implementa un algoritmo para registrar una actualización malformada, suprimir el registro durante un intervalo y registrar un resumen. Cuando caduca el temporizador de supresión de registro, el software registra el número total de atributos malformados recibidos durante el intervalo. En este ejemplo, el temporizador se establece en 10 segundos mediante la malformed-update-log-interval instrucción. El valor predeterminado es 300 segundos (5 minutos).
Configuración rápida de CLI muestra la configuración de todos los dispositivos en Figura 1.
La sección #d100e116__d100e307 describe los pasos en el dispositivo R1.
Configuración
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red y, luego, copie y pegue los comandos en la CLI en el [edit] nivel de jerarquía.
Dispositivo R0
set interfaces fe-1/2/0 unit 0 description to-R1 set interfaces fe-1/2/0 unit 0 family inet address 172.16.10.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols bgp group internal-peers type internal set protocols bgp group internal-peers local-address 192.168.0.3 set protocols bgp group internal-peers export local-direct set protocols bgp group internal-peers neighbor 192.168.0.1 set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement local-direct from protocol [local direct] set policy-options policy-statement local-direct then accept set routing-options autonomous-system 64510 set routing-options router-id 192.168.0.3
Dispositivo R1
set interfaces fe-1/2/1 unit 0 description to-R2 set interfaces fe-1/2/1 unit 0 family inet address 10.10.10.1/30 set interfaces fe-1/2/0 unit 0 description to-R0 set interfaces fe-1/2/0 unit 0 family inet address 172.16.10.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp bgp-error-tolerance malformed-update-log-interval 10 set protocols bgp bgp-error-tolerance malformed-route-limit 5 set protocols bgp group internal-peers type internal set protocols bgp group internal-peers local-address 192.168.0.1 set protocols bgp group internal-peers export local-direct set protocols bgp group internal-peers neighbor 192.168.0.3 set protocols bgp group external-peers type external set protocols bgp group external-peers export local-direct set protocols bgp group external-peers peer-as 64511 set protocols bgp group external-peers neighbor 10.10.10.2 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement local-direct from protocol [local direct] set policy-options policy-statement local-direct then accept set routing-options autonomous-system 64510 set routing-options router-id 192.168.0.1
Dispositivo R2
set interfaces fe-1/2/1 unit 0 description to-R1 set interfaces fe-1/2/1 unit 0 family inet address 10.10.10.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group external-peers type external set protocols bgp group external-peers export local-direct set protocols bgp group external-peers peer-as 64510 set protocols bgp group external-peers neighbor 10.10.10.1 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement local-direct from protocol [local direct] set policy-options policy-statement local-direct then accept set routing-options autonomous-system 64511 set routing-options router-id 192.168.10.2
Procedimiento
Procedimiento paso a paso
El siguiente ejemplo requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener más información acerca de cómo navegar por la CLI, consulte Uso del editor de CLI en el modo de configuración en la Guía del usuario de la CLI de Junos OS.
Para configurar el manejo de errores del BGP:
Configure las interfaces del enrutador.
[edit interfaces] user@R1# set fe-1/2/1 unit 0 description to-R2 user@R1# set fe-1/2/1 unit 0 family inet address 10.10.10.1/30 user@R1# set fe-1/2/0 unit 0 description to-R0 user@R1# set fe-1/2/0 unit 0 family inet address 172.16.10.6/30 user@R1# set lo0 unit 0 family inet address 192.168.0.1/32
Configure un protocolo de puerta de enlace interior (IGP), como OSPF o IS-IS.
[edit protocols ospf area 0.0.0.0] user@R1# set interface fe-1/2/1.0 user@R1# set interface fe-1/2/0.0 user@R1# set interface lo0.0 passive
Configure el número de sistema autónomo (AS) y el ID del enrutador.
[edit routing-options] user@R1# set autonomous-system 64510 user@R1# set router-id 192.168.0.1
Configure la política de enrutamiento.
[edit policy-options policy-statement local-direct] user@R1# set from protocol [local direct] user@R1# set then accept
Configure la sesión del EBGP.
[edit protocols bgp group external-peers] user@R1# set type external user@R1# set export local-direct user@R1# set peer-as 64511 user@R1# set neighbor 10.10.10.2
Configure las sesiones del IBGP.
[edit protocols bgp group internal-peers] user@R1# set type internal user@R1# set local-address 192.168.0.1 user@R1# set export local-direct user@R1# set neighbor 192.168.0.3
Habilite la tolerancia a errores del BGP.
[edit protocols bgp] user@R1# set bgp-error-tolerance
(Opcional) Configure el intervalo de registro.
[edit protocols bgp bgp-error-tolerance] user@R1# set malformed-update-log-interval 10
(Opcional) Configure un límite para la cantidad de rutas ocultas que se almacenarán.
[edit protocols bgp bgp-error-tolerance] user@R1# set malformed-route-limit 5
Resultados
Desde el modo de configuración, ingrese los comandos , show protocols, show policy-optionsy show routing-options, para confirmar la show interfacesconfiguración. Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
user@R1# show interfaces
fe-1/2/0 {
unit 0 {
description to-R0;
family inet {
address 172.16.10.6/30;
}
}
}
fe-1/2/1 {
unit 0 {
description to-R2;
family inet {
address 10.10.10.1/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.1/32;
}
}
}
user@R1# show protocols
bgp {
bgp-error-tolerance {
malformed-update-log-interval 10;
malformed-route-limit 5;
}
group internal-peers {
type internal;
local-address 192.168.0.1;
export local-direct;
neighbor 192.168.0.3;
}
group external-peers {
type external;
export local-direct;
peer-as 64511;
neighbor 10.10.10.2;
}
}
ospf {
area 0.0.0.0 {
interface fe-1/2/1.0;
interface fe-1/2/0.0;
interface lo0.0 {
passive;
}
}
}
user@R1# show policy-options
policy-statement local-direct {
from protocol [local direct];
then accept;
}
user@R1# show routing-options
router-id 192.168.0.1;
autonomous-system 64510;
Si ha terminado de configurar los dispositivos, ingrese commit desde el modo de configuración.
Verificación
Confirme que la configuración funciona correctamente.
- Comprobar las sesiones de vecino de BGP
- Comprobación de rutas ocultas
- Verificar el origen de las rutas ocultas
Comprobar las sesiones de vecino de BGP
Propósito
Compruebe que la tolerancia de error del BGP está habilitada y muestre los contadores relacionados con atributos de ruta malformados.
Acción
user@R1# show bgp neighbor
Peer: 10.10.10.2+50058 AS 64511 Local: 10.10.10.1+179 AS 64510
Type: External State: Established Flags: <Sync>
Last State: OpenConfirm Last Event: RecvKeepAlive
Last Error: None
Export: [ local-direct ]
Options: <Preference PeerAS Refresh>
Holdtime: 90 Preference: 170
Number of flaps: 0
Malformed attributes log interval: 10 route limit: 5
Attribute: ORIGIN(1) Last Received: 0 Total Received: 3
Attribute: LOCAL_PREF(5) Last Received: 0 Total Received: 2
Peer ID: 192.168.10.2 Local ID: 192.168.10.1 Active Holdtime: 90
Keepalive Interval: 30 Group index: 0 Peer index: 0
BFD: disabled, down
Local Interface: fe-1/2/1.0
NLRI for restart configured on peer: inet-unicast
NLRI advertised by peer: inet-unicast
NLRI for this session: inet-unicast
Peer supports Refresh capability (2)
Stale routes from peer are kept for: 300
Peer does not support Restarter functionality
NLRI that restart is negotiated for: inet-unicast
NLRI of received end-of-rib markers: inet-unicast
NLRI of all end-of-rib markers sent: inet-unicast
Peer supports 4 byte AS extension (peer-as 64511)
Peer does not support Addpath
Table inet.0 Bit: 10000
RIB State: BGP restart is complete
Send state: in sync
Active prefixes: 0
Received prefixes: 3
Accepted prefixes: 0
Suppressed due to damping: 0
Advertised prefixes: 2
Last traffic (seconds): Received 25 Sent 17 Checked 73
Input messages: Total 2702 Updates 10 Refreshes 0 Octets 51652
Output messages: Total 2701 Updates 6 Refreshes 0 Octets 51571
Output Queue[0]: 0
Peer: 192.168.10.3+179 AS 64510 Local: 192.168.10.1+51127 AS 64510
Type: Internal State: Established Flags: <Sync>
Last State: OpenConfirm Last Event: RecvKeepAlive
Last Error: None
Export: [ local-direct ]
Options: <Preference LocalAddress Refresh>
Local Address: 192.168.10.1 Holdtime: 90 Preference: 170
Number of flaps: 0
Malformed attributes log interval: 10 route limit: 5
Peer ID: 192.168.10.3 Local ID: 192.168.10.1 Active Holdtime: 90
Keepalive Interval: 30 Group index: 1 Peer index: 0
BFD: disabled, down
NLRI for restart configured on peer: inet-unicast
NLRI advertised by peer: inet-unicast
NLRI for this session: inet-unicast
Peer supports Refresh capability (2)
Stale routes from peer are kept for: 300
Peer does not support Restarter functionality
NLRI that restart is negotiated for: inet-unicast
NLRI of received end-of-rib markers: inet-unicast
NLRI of all end-of-rib markers sent: inet-unicast
Peer supports 4 byte AS extension (peer-as 64510)
Peer does not support Addpath
Table inet.0 Bit: 10001
RIB State: BGP restart is complete
Send state: in sync
Active prefixes: 0
Received prefixes: 3
Accepted prefixes: 0
Suppressed due to damping: 0
Advertised prefixes: 2
Last traffic (seconds): Received 5 Sent 24 Checked 51
Input messages: Total 417 Updates 3 Refreshes 0 Octets 8006
Output messages: Total 421 Updates 2 Refreshes 0 Octets 8136
Output Queue[0]: 0Significado
El campo Atributos malformados muestra que la tolerancia a errores está habilitada. El intervalo de registro y los campos de límite de ruta muestran los valores configurados.
Los contadores de atributos muestran que en la conexión ebGP, se recibieron varios atributos malformados del dispositivo R2.
Comprobación de rutas ocultas
Propósito
Vea información sobre rutas ocultas y descubra por qué están ocultas.
Acción
user@R1> show route hidden detail
inet.0: 42 destinations, 45 routes (36 active, 0 holddown, 6 hidden)
10.0.0.0/32 (1 entry, 0 announced)
BGP
Next hop type: Router
Address: 0x93d8b0c
Next-hop reference count: 5
Source: 10.10.10.2
Next hop type: Router, Next hop index: 782
Next hop: via fe-1/2/1.0, selected
Session Id: 0x1
State: <Hidden Ext>
Local AS: 1 Peer AS: 1
Age: 5:32 Metric2: 1
Validation State: unverified
Task: BGP_1.10.10.5.62+56218
AS path: I (MalformedAttr)
Router ID: 192.168.0.2
10.0.0.1/32 (1 entry, 0 announced)
BGP
Next hop type: Router
Address: 0x93d8b0c
Next-hop reference count: 5
Source: 10.10.10.2
Next hop type: Router, Next hop index: 782
Next hop: via fe-1/2/1.0, selected
Session Id: 0x1
Indirect next hop: 953c000 - INH Session ID: 0x3
State: <Hidden Int Ext>
Local AS: 1 Peer AS: 1
Age: 5:32 Metric2: 1
Validation State: unverified
Task: BGP_1.10.10.5.62+56218
AS path: I (MalformedAttr)
Router ID: 192.168.0.2
Significado
Las rutas ocultas malformadas se marcan con MalformedAttr en el campo de ruta del AS.
Puede quitar las rutas ocultas ejecutando el clear bgp neighbor 10.10.10.2 malformed-route comando.
Verificar el origen de las rutas ocultas
Propósito
Vea información sobre rutas ocultas y descubra por qué están ocultas.
Acción
user@R1> show route receive-protocol bgp 10.10.10.2 detail hidden
inet.0: 42 destinations, 45 routes (36 active, 0 holddown, 6 hidden)
10.0.0.0/32 (1 entry, 0 announced)
Nexthop: 10.10.10.2
Localpref: 100
AS path: I (MalformedAttr)
10.0.0.1/32 (1 entry, 0 announced)
Nexthop: 10.10.10.2
Localpref: 100
AS path: I (MalformedAttr)Significado
Junos OS muestra MalformedAttr en el campo de ruta del AS en la salida del show route receive-protocol bgp 10.10.10.2 detail hidden comando.
Puede quitar las rutas ocultas ejecutando el clear bgp neighbor 10.10.10.2 malformed-route comando.
