martes, 21 de mayo de 2013

Implementando RPKI (Parte 1)


Volvemos a actualizar el blog con un tema por demás de actual: Resource Public Key Infrastructure.

La idea básica del problema es que si se dan algunas condiciones, cualquier mortal con acceso a un router que usa BGP puede publicar las redes de cualquier otra institución como si fueran propias.

Hubo muchos casos, quizás el más famoso sea el de la Pakistan Telekom que se robó los prefijos de Youtube, haciendo que gran parte del tráfico mundial de Youtube se dirija hasta esta telco (y se descarte).

RPKI nos puede ayudar a que estos incidentes no vuelvan a ocurrir, y a vuelo de pájaro vamos a explicar como funciona:
  1. Cualquier entidad que posee rangos IP(v4|v6) genera ante la entidad que se los asignó un certificado y uno o más ROA (Route Origination Autorization), que son básicamente una autorización en donde describe qué prefijos va a asignar y hacia qué sistema autónomo.
  2. La información de los anuncios permitidos de cada sistema autónomo se procesa y queda disponible para que se pueda consultar desde cualquier lugar.
  3. En nuestra empresa instalamos una aplicación de RIPE NCC que descarga via RSYNC las autorizaciones y arma un cache local con toda la información.
  4. Nuestros routers se conectarán al cache mediante el protocolo RTR y podrán obtener la información para chequear la validez de los prefijos de BGP que se reciben desde los upstream providers, generando rutas válidas (coinciden con los ROA), inválidas (no coinciden con los ROA) o desconocidas (no hay un ROA para esas rutas).

Esta información se puede aprovechar al momento de armar las políticas de ruteo (route-maps), como por ejemplo:

route-map internet-in permit 10
 match rpki valid
 set local-preference 200
route-map internet-in permit 20
 match rpki not-found
 set local-preference 50
route-map internet-in deny 30
 match rpki invalid

En el ejemplo anterior, damos mayor preferencia a las rutas válidas, menor preferencias a las indeterminadas y descartamos las inválidas.

En la siguiente entrega vamos a mostrar la implementación de estos servicios.

Espero les haya servido.

 





0 comentarios:

Publicar un comentario