El “Origin Validation Looking Glass” es una herramienta que permite realizar diferentes consultas a un conjunto de datos que contiene prefijos BGP marcados con su estado de validez {valid, invalid}, construido de la misma manera que lo haría un router que implemente validación de origen.

La utilidad de esta herramienta es doble. Por un lado permite a los usuarios actuales del sistema RPKI de LACNIC (y de otros RIRs también) depurar los ROAs que han creado, pudiendo ver que rutas estarían al día de hoy siendo detectadas como “inválidas”, y por otro lado permite a los administradores de redes evaluar información proporcionada por clientes y peers, de manera similar al uso que se hace de herramientas como el WHOIS y los Routing Registries al momento de establecer nuevas sesiones BGP o aceptar nuevas publicaciones.

Automatización de consultas

El OVLG tiene (a partir de la version 3.0.1) una interfaz RESTful que permite automatizar las consultas que se pueden hacer a través del formulario web tradicional.

En esta versión las respuestas se codifican como texto plano (“Content-type: text/plain”) y tienen formato CSV utilizando el carácter de “pipe” (‘|’) como separador. En futuras versiones esperamos agregar XML y JSON como codifcaciones posibles para las respuestas.

De esta manera es muy sencillo automatizar las consultas utilizando herramientas como wget o curl y luego procesar las salidas para enviar alarmas o utilizarlas como input de scripts que crean listas de acceso o route maps para routers.

Formato de las URL REST

Las REST URIs se construyen de la siguiente manera:

http//www.labs.lacnic.net/rpkitools/looking_glass/rest/<query_scope>/<query_type>/<query_string></span>
  • query_scope: puede ser “all”, “valid” or “invalid”
  • query_type: puede ser
    • cidr: buscar dentro de bloques CIDR
    • prefix: buscar por string dentro de la lista de prefijos
    • asn: busqueda por ASNs vistos en los BGP updates
    • asn2: busqueda por ASNs esperados de acuerdo a los ROAs que han sido validados
  • query_string es la cadena que vamos a buscar en la base de datos

Algunos ejemplos de consultas RESTful al OVLG:

Consultar todas los prefijos invalidos dentro de un bloque CIDR:

Para consultar todas las rutas inválidas contenidas dentro del bloque 190.139.0.0/16 utilizamos:

curl http://www.labs.lacnic.net/rpkitools/looking_glass/rest/invalid/cidr/190.139.0.0/16/

Y la salida que obtenemos es:

190.139.97.120/29|Invalid / Bad Origin AS|10834|7303|10834
190.139.106.232/29|Invalid / Bad Origin AS|10834|7303|10834
190.139.106.240/29|Invalid / Bad Origin AS|10834|7303|10834
190.139.106.248/29|Invalid / Bad Origin AS|10834|7303|10834

Consultar todos los prefijos válidos IPv6 dentro de un bloque CIDR:

curl -L http://www.labs.lacnic.net/rpkitools/looking_glass/rest/valid/cidr/2001:13c7::/32

Y la salida que obtenemos es:

2001:13c7:7001::/48|Valid|28000
2001:13c7:7002::/48|Valid|28001
2001:13c7:7012::/47|Valid|28001