Aplicación y práctica de RPKI
12/04/2011
Habilitación del uso operativo de RPKI a través de los Registros de Enrutamiento de Internet
Manish Karir and Larry BlunkMerit Network Inc.
Antecedentes:
La infraestructura de clave pública (RPKI) ha surgido como la manera más segura de asegurar las distribuciones de direcciones IP y sus anuncios a través del protocolo de enrutamiento BGP. Los cinco Registros Regionales de Internet (RIR) ya tienen prototipos en producción o bien están planeando ponerlos en producción dentro del próximo año. Estos desarrollos han asegurado que RPKI probablemente sea el método elegido para la certificación de recursos en la jerarquía de IANA a los RIR y luego a los titulares de los recursos (los ISP). Sin embargo, el despliegue de RPKI a nivel de administración de recursos aun no ha abordado el problema de cómo se puede facilitar la adopción de RPKI a gran escala para la validación operativa del enrutamiento BGP.
El sistema de Registro de Enrutamiento de Internet (IRR, Internet Routing Registry) [1][6] es un conjunto de registros de enrutamiento cuyo propósito es permitir que los grandes operadores registren y realicen búsquedas de su propia política de enrutamiento así como la de otras redes. Luego, en base a la información contenida en estos registros de enrutamiento, los operadores pueden fácilmente usar herramientas automatizadas para generar filtros de rutas que pueden ayudar a prevenir la propagación de mensajes de actualización de BGP anómalos. En este contexto, el sistema IRR es un complemento natural para ayudar a difundir la adopción de RPKI entre la comunidad de Internet a nivel más amplio.
El objetivo de esta nota es discutir las diferentes opciones para integrar RPKI al sistema IRR. En particular, proponemos cuatro técnicas diferentes que pueden contribuir al acercamiento de estos dos sistemas. La primera consiste en ampliar el lenguaje de especificación de políticas de enrutamiento (RPSL) para incluir los atributos de RPKI. La segunda consiste en crear y operar un cache de validación de RPKI. La tercera consiste en modificar el núcleo del software del registro de enrutamiento básico para permitir que realice una búsqueda y devuelva información de validez de RPKI cada vez que se consulte una ruta. La cuarta consiste en aumentar los conjuntos de herramientas existentes de modo que puedan usar la información de RPKI distribuida a través de los IRR. Estas opciones se describen a continuación.
Opciones de integración:
Extensiones de RPSL para soportar RPKI:
La especificación de RPSL [2][3][4] ha demostrado ser muy útil para ayudar a promover el uso de políticas de enrutamiento en una sintaxis bien estructurada. Sin embargo, aunque han habido intentos esporádicos por extender y adaptar la especificación básica, pocos han tenido éxito más allá de los esfuerzos realizados bajo el paraguas de RPSL-ng para permitir objetos IPv6 y multicast. Estamos considerando si agregar atributos adicionales a la especificación de RPSL que le permitan a los usuarios especificar atributos de RPKI. Un método que hemos investigado es agregar una etiqueta roa-uri. Esta etiqueta permite que para cada objeto de ruta en el registro de enrutamiento los usuarios especifiquen una etiqueta o indicador de la ubicación real de una confirmación certificada (ROA) para dicha ruta. Otros cambios posibles que estamos considerando es agregar soporte para un campo adicional tal como roa-valid que serviría simplemente para indicar si el registro de encaminamiento ha validado si un objeto de ruta determinado es válido o no. También es posible agregar otros atributos de RPKI que quizás la comunidad de Internet desee utilizar, como por ejemplo etiquetas que simplemente indiquen si un prefijo dado ha implementado RPKI, o incluso quizás permitir que la totalidad de la certificación X.509 se almacene como parte de ese objeto de ruta.
Crear y operar un cache de validación público como parte de RADB
El marco de RPKI [5] permite usar un caché de validación como repositorio de confianza de objetos de ruta que han sido validados. Este cache de validación luego se puede utilizar para buscar rutas válidas de manera que la validación no deba ser realizada por cada router que está intentando usar validación RPKI. El cache de validación también se puede usar para proveerle a la comunidad de Internet un servicio de lookup sencillo que se pueda utilizar con fines de detección y corrección de problemas. Podríamos desarrollar y operar un cache de validación de calidad en producción. Este cache se sincronizaría con los cinco RIR y le proveería a la comunidad de Internet una fuente secundaria de rutas validadas consolidadas. Nuestro objetivo es que este cache de validación funcione como un servicio de producción como parte del servicio RADB.
Modificar el software IRRD para agregar soporte para búsquedas de RPKI:
El sofware IRRD con el que funciona gran parte del sistema IRR, es desarrollado y mantenido por Merit y se ofrece a la comunidad bajo una licencia de código abierto. Podríamos modificar el software IRRD para agregar puntos de acceso en el código (hooks) que soporten búsquedas de RPKI en un cache de validación. El objetivo de esto sería proveer a la comunidad de Internet información de RPKI cada vez que se envía una consulta a whois.radb.net. El servicio WHOIS de RADB [7] recibe más de 5M de consultas por día y esto aseguraría que por defecto todas las consultas obtengan resultados que incluyan alguna información de RPKI. El atributo adicional que más probablemente se puede proveer de esta manera es una etiqueta roa-valid. Para cada búsqueda de prefijos esta etiqueta puede indicar si la ruta está presente en el cache de validación y ha sido validada por el cache. Esto le permitirá a la comunidad determinar muy rápida y fácilmente el estado RPKI de cualquier ruta dada.
Aumentar los conjuntos de herramientas IRR existentes para incluir soporte para atributos de RPKI
La mayoría de los operadores utilizan un conjunto estándar de herramientas tales como RtConfig, IRRtoolset o IRRPowerTools para consultar el sistema IRR y crear configuraciones de routers. Deberíamos mejorar estas herramientas para que puedan utilizar los atributos de RPKI adicionales que puede proveer un registro de enrutamiento.
Conclusiones:
Aunque el sistema RPKI provee un muy necesario marco de seguridad para la certificación de la distribución y uso de rutas, no se ocupa directamente del tema de la integración a gran escala en el entorno de la operación de redes. Debido a su familiaridad para la comunidad, el sistema IRR nos provee un camino único para acelerar la adopción y el uso de RPKI día a día.
Referencias:
[1] Merit Network Inc., The IRR System, https://www.irr.net, Feb 2011.
[2] C. Alaettinoglu, C. Villamizar, E. Gerich, D. Kessens, D. Meyer, T. Bates, D. Karrenberg, M. Terpstra, Routing Policy Specification Language (RPSL), http://tools.ietf.org/html/rfc2622, June 1999.
[3] L. Blunk, J. Damas, F. Parent, A. Robachevsky, Routing Policy Specification Language next generation (RPSLng), http://tools.ietf.org/html/rfc4012, March 2005.
[4] R. Kisteleki, Securing RPSL Objects with RPKI Signatures, http://tools.ietf.org/html/draft- ietf-sidr-rpsl-sig-01, July 2009.
[5] M. Lepinski, S. Kent, An Infrastructure to Support Secure Internet Routing, http://tools.ietf.org/html/draft-ietf-sidr-arch-12, Feb 2011.
[6] L. Blunk, M. Karir, Internet Routing Registry, http://www.merit.edu/networkresearch/papers/pdf/2011/NANOG51 IRR Tutorial.pdf, Feb 2011.
[7] Merit Network Inc., Routing Assets Database, http://www.radb.net, Feb 2011.