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.