Solución de problemas
En la vida, es posible que la situación – no se realice de acuerdo con el plan y BGP redes no es una excepción. Al empezar a utilizar la tabla de enrutamiento segura e implementar RPKI en la red, los clientes pueden notar que, en raras ocasiones, algunas redes o direcciones IP a las que desean tener acceso se han vuelto inalcanzables.
Este capítulo describe los pasos que puede llevar a cabo para averiguar si un problema notificado es resultado de la implementación de la seguridad de enrutamiento. No espere un tutorial completo BGP para la solución de problemas, tan solo algunas sugerencias, trucos y unos cuantos punteros sobre dónde encontrar información adicional que pueda resultar útil.
Un buen punto de partida para solucionar problemas BGP es el Juniper Networks TechLibrary: https://www.juniper.net/documentation/en_US/junos/topics/task/verification/bgp-configuration-process-summary.html.
Comprobar si un destino está presente en la tabla de enrutamiento
Junos OS utiliza dos bases de datos (tablas) para la información de enrutamiento:
Tabla de enrutamiento: Contiene toda la información de enrutamiento que han aprendido todos los protocolos de enrutamiento [RIB].
Tabla de reenvío: Contiene las rutas que se utilizan realmente para reenviar paquetes [FIB].
Junos OS instala todas las rutas activas desde la tabla de enrutamiento a la tabla de reenvío. Las rutas activas son rutas que se utilizan para reenviar paquetes a sus destinos. El Junos núcleo del sistema operativo mantiene una copia maestra de la tabla de reenvío. Copia la tabla de reenvío al motor de reenvío de paquetes, que es el componente responsable de enviar paquetes.
Si un cliente sugiere que parece que no se puede alcanzar un determinado prefijo, debe comprobar la ruta o rutas de ese prefijo. Para asegurarse de que la ruta se ha instalado y de que se puede tener acceso al destino desde la red, debe buscar tanto en la tabla de enrutamiento como en la de reenvío.
Existen tres formas de comprobar las distintas tablas:
show route <destination-prefix>
: Se mostrarán las entradas de la tabla de enrutamiento.show route forwarding-table destination <destination-prefix>
: Esto mostrará la versión del motor de enrutamiento del prefijo de destino en la tabla de reenvío.show pfe route ip prefix <destination-prefix>
: Esto mostrará la entrada de la tabla de reenvío que realmente está instalada en cada PFE.
En un mundo perfecto, el prefijo de destino estará visible en los tres escenarios y deberá mostrar un RPKI valida-tion-state:
valid
Si tiene un ROA válido y pasa la validación de RPKI.
Comprobar el estado de validación de RPKI de una ruta
Para comprobar si se utiliza una ruta, es esencial poder mostrar información acerca de la base de datos de validación de ruta cuando se configura RPKI validación de ruta. Puede consultar todos los registros de validación de ruta que coincidan con un prefijo determinado o origin-autonomous-system
. Además, puede filtrar la salida por una sesión específica de la caché de RPKI:
user@R1> show route inet.0: 3 destinations, 3 routes (2 active, 0 holddown, 1 hidden) + = Active Route, - = Last Active, * = Both 2.2.0.2/32 *[BGP/170] 01:06:58, localpref 110, from 1.0.1.1 AS path: 200 I, validation-state: valid > to 10.0.0.2 via lt-1/2/0.1 172.16.1.1/32 *[BGP/170] 00:40:52, localpref 90, from 1.0.1.1 AS path: 200 I, validation-state: invalid Unusable 192.168.2.3/32 *[BGP/170] 01:06:58, localpref 100, from 1.0.1.1 AS path: 200 I, validation-state: unknown > to 10.0.0.2 via lt-1/2/0.1 224.0.0.5/32
Los Estados de validación pueden ser cualquiera de los Estados definidos en RFC 6811:
Validar
No válido
Conocida
Pero también, otro estado en el “que la validación no se ejecutaría en”absoluto:
Sin verificar
El no comprobado es distinto de desconocido; una ruta en la que no se ha comprobado puede ser válida, no válida o desconocida, si se intentó llevar a cabo la validación. Básicamente, sin comprobarse significa que la validación de origen’(RPKI) solo’es inhabilitada o no se ejecuta en el enrutador.
Para obtener más comandos, visite el Juniper TechLibrary: https://www.juniper.net/documentation/en_US/junos/topics/reference/command-summary/show-validation-database.html
Compruebe si el validador RPKI es accesible y si la base de datos está actualizada
Mostrar estadísticas de validación
Este comando muestra estadísticas acerca de la base de datos de validación. Obviamente, si ha habilitado RPKI y la conexión con el validador funciona, debe ver las entradas en la base de datos:
user@host> show validation statistics Total RV records: 453455 Total Replication RV records: 453455 Prefix entries: 35432 Origin-AS entries: 124400 Memory utilization: 16.31MB Policy origin-validation requests: 234995 BGP import policy reevaluation notifications: 460268 inet.0: 435345 inet6.0: 3454
Referencia de la biblioteca técnica: https://www.juniper.net/documentation/en_US/junos/topics/reference/command-summary/show-validation-statistics.html.
Mostrar base de datos de validación
Este comando muestra el contenido real de la base de datos:
user@host> show validation database RV database for instance master Prefix Origin-AS Session State Mismatch 172.16.1.0/24-32 1 10.0.77.1 valid 172.16.2.0/24-32 2 10.0.77.1 valid 172.16.3.0/24-32 3 10.0.77.1 valid 172.16.4.0/24-32 4 10.0.77.1 valid 172.16.5.0/24-32 5 10.0.77.1 valid 172.16.6.0/24-32 6 10.0.77.1 valid 172.16.7.0/24-32 7 10.0.77.1 valid 172.16.8.0/24-32 8 10.0.77.1 valid 72.9.224.0/19-24 26234 192.168.1.100 valid * 72.9.224.0/19-24 3320 192.168.1.200 invalid * 10.0.0.0/8-32 0 internal valid IPv4 records: 14 IPv6 records: 0
Referencia de la biblioteca técnica: https://www.juniper.net/documentation/en_US/junos/topics/reference/command-summary/show-validation-database.html.
Mostrar sesión de validación
Si la base de datos de validación está vacía o desea comprobar si los validadores están todavía en funcionamiento, puede hacerlo con el show validation session brief
y show validation session detail
órdenes
user@host> show validation session brief Session State Flaps Uptime #IPv4/IPv6 records 1.3.0.2 up 2 00:01:37 13/0 10.255.255.11 up 3 00:00:01 1/0 10.255.255.12 connect 2 64/68
Tenga en cuenta que la tercera sesión de este resultado muestra connect
en lugar de up
. Es muy probable que esto sea resultado de la configuración de las tres sesiones en el mismo grupo RPKI; Si lo hace, solo aparecerán dos sesiones y cualquier otra podrá permanecer inactiva si’no cambia el número máximo de validadores por grupo.
Mostrar detalle de sesión de validación
user@host> show validation session detail Session 10.0.77.1, State: up Group: test, Preference: 100 Local IPv4 address: 10.0.77.2, Port: 2222 Refresh time: 300s Session flaps: 14, Last Session flap: 5h13m18s ago Hold time: 900s Record Life time: 3600s Serial (Full Update): 0 Serial (Incremental Update): 0 Session flaps 2 Session uptime: 00:48:35 Last PDU received: 00:03:35 IPv4 prefix count: 71234 IPv6 prefix count: 345
Volver a ejecutar la validación, opcionalmente, para solo las rutas especificadas
Cuando se configura BGP validación de origen y, por alguna razón, la base de datos se daña, o si desea actualizarla, solicite manualmente una ruta validation policy
para su reevaluación. Este comando hace que se reevalúen los registros de validación de rutas dependientes. Los registros de validación de ruta dependientes son exactamente iguales y registros más específicos:
user@host> request validation policy Enqueued 1 IPv4 records Enqueued 0 IPv6 records
Referencia de la biblioteca técnica: https://www.juniper.net/documentation/en_US/junos/topics/reference/command-summary/request-validation-policy.html.