Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Cómo actualizar automáticamente las listas de prefijos

 

A lo largo de este libro ha trabajado ampliamente con listas de prefijos. Una lista de prefijos contiene uno o más prefijos que se pueden usar en las directivas de enrutamiento. Cuando se crea una red, normalmente se inicia con listas de prefijos creadas manualmente y que se actualizan manualmente. Su propio conjunto de prefijos (los que deberá originar) no’cambia con frecuencia; de todos modos, acepta todo, desde los proveedores de tránsito, cuando no tiene muchos interlocutores o clientes, tampoco hay muchos cambios en sus listas de prefijos. Todos’hemos estado ahí.

Sin embargo, a medida que la red y la base de clientes crecen, no es factible mantener manualmente las listas de prefijos. En este apéndice, le mostraremos cómo usamos la funcionalidad NETCONF de Junos OS, junto con algunas secuencias de comandos de Python, para cargar automáticamente los cambios de lista de prefijos.

Este apéndice es un poco diferente al resto del libro, ya que no podemos ofrecer secuencias de comandos que pueda cortar y pegar en su sistema de administración de red’. En su lugar, le mostramos cómo lo hacemos y cómo le invitamos a hablar con su equipo de desarrollo de software, alentarles para que sean entusiastas de su nueva tabla de enrutamiento seguro y que implementen cambios de lista de prefijos automáticos en su red.

Existen tres pasos básicos:

  1. Asegúrese de que, para cada cliente, su base de datos de clientes contenga el AS-SET (o el número) que sus clientes anuncien a usted.

  2. Recupere la lista de prefijos para ese valor tal y como está establecido a partir del TIR.

  3. Cargue la lista de prefijos en sus enrutadores.

Hacerlo periódicamente (por ejemplo, dos veces al día) significa que no’tendrá que preocuparse por los clientes que deseen cambiar su lista de prefijos. No tienen que crear tickets que le pidan que cambie su lista de prefijos y qué’más s: Esto significa que no’tendrá que tratar estos vales más.

Base de datos de clientes

La base de datos debe contener al menos dos campos para cada cliente:

  • Su número AS (lo utilizaremos en el nombre de la lista de prefijos a medida que se cargue en el enrutador).

  • Sus.

Su cliente habrá creado su propio como establecido en el TIR. Cuando conecte su cliente a la red, comprobará si su conjunto de AS tiene sentido. Debe contener el número AS que utilizan en su propia red (desde el que anunciarán sus propios prefijos), así como los números de AS y/o los de sus clientes. Al recorrer este “árbol”, el bgpq3 herramienta creará una lista de prefijos única que contraerá todos los prefijos que pueda anunciar el cliente.

Recuperar lista de prefijos: Utilice bgpq3

La herramienta para convertir los valores como definido en listas de prefijo es bgpq3. El sitio web oficial de bgpq3 está en https://github.com/SNAr/bgpq3 donde se le ha invitado a leer, aprender y contribuir. Después de instalar bgpq3 en un equipo, puede usarlo para crear listas de prefijos como las que se indican a continuación:

Y para IPv6:

Utilice bgpq3, cree un archivo. txt en el directorio prefix-list.d/ para cada uno de los conjuntos que desea actualizar automáticamente. El archivo. txt debe tener el nombre de la lista de prefijos tal y como desea que se inserte en el enrutador; y el contenido debe ser un prefijo por línea. La creación de una secuencia de comandos que lo hace periódicamente se deja como un ejercicio para el lector.

Cargar en el enrutador

El Junos OS admite varias maneras de cargar información externa en la base de datos de configuración. Dado que se trata de un apéndice, no es exhaustivo y no ofrece una configuración predefinida y verificada en terreno. Aquí solo se proporciona un ejemplo. En el ejemplo, la interfaz NETCONF de Junos OS se utiliza para cargar información. En este ejemplo se utiliza específicamente el lenguaje Python 3 y la biblioteca Junos PyEZ creada y mantenida por Juniper Networks. Tenga en cuenta que PyEZ también puede usarse con Python 2,7 si es preferible.

Note

Consulte el día uno PyEZ libros: https://www.juniper.net/us/en/training/jnbooks/day-one/automation-series/junos-pyez-cookbook/.

En este ejemplo, se utiliza un dispositivo Juniper ficticio como destino de configuración. Sin embargo, el ejemplo debería funcionar en cualquiera de los Junos OS dispositivos que utilizan listas de prefijos del mismo modo. Nuestro requisito es actualizar la lista de prefijos IP presentes en la lista de prefijos basándose en el contenido de un archivo de texto. La secuencia de comandos que lo llevará a cabo se ejecuta desde un host remoto.

Aplicables

Para el dispositivo Junos OS:

Para el servidor remoto:

  • Tener instalado Python 3,5

  • (alternativamente, utilice Python 2 y ajuste la sintaxis según corresponda en el código a continuación)

  • Ha instalado Junos PyEZ (consulte: https://github.com/Juniper/py-Junos-eznc), por ejemplo, a través de:

  • N.ºpip install junos-eznc

Código de ejemplo

El siguiente código de Python 3 busca archivos *. txt en un directorio llamado prefix-list.d dentro del directorio principal de la propia secuencia de comandos. Cada uno de estos archivos representa una lista de prefijos para actualizar y debe contener prefijos, uno por línea, del que debería estar compuesto la lista de prefijos. Las líneas y líneas vacías que comienzan con el símbolo (#) se pasan por alto. El nombre del archivo (excluido el sufijo de extensión) se utiliza como nombre de la lista de prefijos.

Actualice las variables de configuración HOST, usuario y pase a la parte superior de la secuencia de comandos para que coincida con su configuración. Consulte los comentarios de la secuencia de comandos para obtener una explicación más detallada:

Es probable que este código no sea un corte y pegado en su propio sistema de administración de red, pero definitivamente debería empezar a trabajar y listo para realizar cambios automatizados de listas de prefijos.

El siguiente paso: Utilice el mismo mecanismo para filtrar los elementos del mismo nivel

Los desarrolladores están escribiendo software de una creatividad y los ingenieros de redes lo utilizan de una vez más.

Basándose en el trabajo descrito, no solo crea listas de prefijos para filtrar a los clientes, puede usar el mismo mecanismo para filtrar también sus homólogos; simplemente cree un ‘pseudo cliente’ en su sistema de administración de red, anote el como conjunto que debe anunciar el interlocutor y, a continuación, puede hacer referencia a la prefix-list en la Directiva de BGP de ese homólogo.

De esta forma, puede estar seguro de que sus clientes, así como sus colegas, tienen un grado de seguridad en los prefijos que se les permite anunciar.

Recursos adicionales

Ahora que ya dispone de una tabla de enrutamiento segura, el siguiente paso consiste en expresar los clientes y socios que asume su responsabilidad de disponer de una conexión a Internet más segura y estable.

Una forma de expresar esto es combinarse con MANRS (normas acordadas mutuamente para la seguridad del enrutamiento). MANRS es una iniciativa global, respaldada por la sociedad de Internet, que proporciona correcciones cruciales para reducir las amenazas de enrutamiento más comunes. Puede obtener más información en su sitio web en: https://www.manrs.org/.

A fin de que sus clientes anuncien información válida y utilizable, puede que tenga que ayudarles a corregir sus anuncios, registros de TIR o RPKI ROAs. Cuanto más redes se unan, mayor será la seguridad de Internet.

En’el Juniper TechLibrary, existe documentación excelente que puede servir de ayuda para:

Y estas preguntas frecuentes compiladas por los laboratorios de NLnet son muy útiles para temas específicos de RPKI: https://nlnetlabs.nl/projects/rpki/faq/.

Conclusión

Los autores esperan que la información proporcionada en este libro le ayude a empezar a diseñar y a implementar métodos para una tabla de enrutamiento segura y, igualmente, a una red más estable y confiable.

Es muy probable, y quizás incluso la voluntad de los autores, que las partes de este libro quedan obsoletas pronto debido a todo el trabajo que se está llevando a cabo para llegar a una tabla de enrutamiento más segura. Si los componentes de este libro se vuelven obsoletos, nos lograremos nuestro objetivo.

Es posible que haya observado que la implementación de la seguridad de enrutamiento puede consumir bastante tiempo. Sin embargo, esperamos que tomemos el tiempo para hacerlo, o incluso mejor que ayudemos a crear las herramientas para hacerlo, – ya hay muchas herramientas y scripts disponibles en fuentes como github, que puede usar para reducir el tiempo invertido. Y recuerde que todos tenemos el mismo objetivo, así que díganos si piensa que puede ayudarlo o tener sugerencias sobre cómo mejorar estas herramientas.

Si tiene ideas, sugerencias o comentarios acerca de cómo seguir desarrollando la seguridad de enrutamiento, siéntase libre para llegar a los autores (dayone@juniper.net). Al unir fuerzas y ayudar entre sí podemos hacer que Internet sea un lugar más seguro para todo.