Yggdrasil, la implementación que permite crear redes IPv6 llega su versión 0.5

yggdrasi

Yggdrasil es un nuevo esquema de enrutamiento compacto experimental

Hace algunos meses compartimos aquí en el blog una publicación sobre Yggdrasil la cual es una implementación en etapa inicial de una red IPv6 separada sobre la red global habitual y que estÔ totalmente encriptada de un extremo a otro. Es liviano, auto organizable, compatible con múltiples plataformas y permite que prÔcticamente cualquier aplicación compatible con IPv6 se comunique de forma segura con otros nodos de Yggdrasil.

El motivo de hablar sobre ello, es que hace poco se dio a conocer el lanzamiento de la nueva versión de Yggdrasil 0.5, la cual llega a implementar bastantes mejoras y sobre todo a cubrir los problemas de diseño que fueron identificados en la anterior versión 0.4.

¿Qué hay de nuevo en Yggdrasil 0.5?

En la publicación de blog de Yggdrasil 0.5, se menciona que se abordaron diversos problemas que fueron detectados en los diferentes componentes individuales de esta implementación, ya que por ejemplo ahora se ofrece un nuevo esquema de enrutamiento, que no es compatible con versiones anteriores (los nodos con Yggdrasil 0.5 no pueden comunicarse con hosts basados ​​en Yggdrasil 0.4), pero resuelve la mayorĆ­a de los problemas de estabilidad y escalabilidad que estaban presentes en la rama 0.4, y TambiĆ©n reduce significativamente el consumo de memoria y reduce el trĆ”fico en ausencia de actividad de la red.

Se menciona que la nueva implementación utiliza una estructura probabilística de filtro Bloom para rastrear enlaces y nodos. La tabla hash distribuida (DHT) ya no se utiliza para intercambiar información de enrutamiento y vincular claves públicas en una red de Ôrbol.

Para mantener la coherencia local y reducir la dependencia de las rutas a los nodos raíz, los nodos ahora comunican por separado información sobre cada enlace, que se rastrea en las estructuras CRDT. En lugar del enrutamiento de origen, se utiliza el enrutamiento codicioso (las solicitudes se envían al vecino mÔs cercano).

Los formatos utilizados para la negociación de conexiones y la multidifusión se han rediseñado para una mejor extensibilidad. El código de procesamiento de conexión se ha rediseñado para realizar un seguimiento mÔs confiable del estado de los pares. Proporciona un seguimiento independiente de los intervalos entre reconexiones para cada par configurado.

Para detectar fallas, en lugar de enviar periódicamente solicitudes de mantenimiento de actividad separadas, se utilizan mensajes que confirman la recepción del trÔfico, lo que le permite deshacerse del trÔfico durante la inactividad de la red (lo que, por ejemplo, reduce el consumo de energía en dispositivos móviles debido a la exclusión del trÔfico). en modo inactivo).

Por la parte de las características nuevas, se destaca que se agregó la capacidad de autenticar conexiones con pares usando una contraseña. La contraseña se especifica mediante el parÔmetro «password=». Se menciona que esto no permite el aislamiento de la red: los nodos aún pueden comunicarse con el resto de la red si lo desean, y la accesibilidad sigue siendo transitiva. Esto hace que sea mÔs fÔcil restringir quién puede conectarse automÔticamente dentro de una subred o configurar un nodo público sin permitir conexiones de todos los que lo encuentren.

Otro de los cambios que se destaca de la nueva versión, es que se agregó la capacidad de utilizar el protocolo QUIC basado en UDP para interactuar con pares. Para usar QUIC, debe especificar el esquema URI quic:// en las directivas Listen y Peers, pero la compatibilidad con QUIC aún no estÔ tan bien probada como TCP y TLS.

Ademas de ello se agregó la opción PrivateKeyPath, que permite almacenar la clave privada en formato PEM, por separado del archivo de configuración principal. Para exportar la clave a un archivo separado, puede utilizar la opción «-exportkey».

Finalmente si estƔs interesado en poder conocer mƔs al respecto sobre este nuevo lanzamiento, puedes consultar los detalles en el siguiente enlace.

¿Cómo instalar Yggdrasil?

Para los interesados en poder utilizar esta implementación, deben saber que Yggdrasil se encuentra dentro de algunos de los repositorios de las diferentes distribuciones de Linux.

Por ejemplo en Debian, Ubuntu y derivados de estos, se puede instalar Yggdrasil con solo teclear el siguiente comando:

sudo apt-get install yggdrasil

Hecho esto, ahora solo debemos habilitar los servicios con:

sudo systemctl enable yggdrasil
sudo systemctl start yggdrasil

Para el caso de distribuciones basadas en RHEL y Fedora, basta con teclear lo siguiente:

dnf copr enable neilalexander/yggdrasil-go
dnf install yggdrasil

En cuanto a la configuración e implementación, debido a que el tema es un poco mÔs extenso, te invito a que visites el siguiente link donde podrÔs encontrar toda la información al respecto. El enlace es este.