Como lo prometido es deuda y porque más vale tarde que nunca, ya está disponible Meshias 0.1 “Resurrection”. Es la primera versión “estable” que sacamos. No pretendemos decir que no tenga bugs, pero lo hemos testeado y la funcionalidad básica está presente: ahora es el momento de que otros lo prueben y nos informen de los problemas que les surgen en sus configuraciones. Happy testing!
Archivar como 12 abril 2009
Meshias 0.1 Resurrection
abril 12, 2009Comunicación por socket UNIX funcionando
abril 9, 2009Pues el desarrollo del programa sigue su curso. Ya hemos completado la comunicación a través del socket unix. Ahora podemos ejecutar el demonio meshias en un terminal, y en otro distinto ejecutamos meshias-tools comunicamos con él interactivamente. Por ahora la comunicación es pobre pero es fácilmente ampliable. Por ahora nos muestra las estadísticas que se han producido, las limpia y mata al demonio, y dentro de poco también la tabla de rutas.
Se pueden crear varios clientes con distintas características y el demonio sea programado pensando en esa futuras características y poder pasar todo tipo de información. Dos clientes que nos gustaría implementar, además del básico de meshias-tools, sería un servidor web y un cliente con QT.
El servidor web podría estar hecho en python y podríamos verificar el estado del demonio desde cualquier ordenador con cualquier sistema operativo, incluso modificar parámetros propios del demonio meshias u otros, como el ESSID, ajenos a éste. De esta manera podríamos configurar sistemas sin teclado y ratón a través de la propia red, un ejemplo de ellos, son los mini-sistemas que tenemos para empezar a hacer pruebas que nos han subvencionado gracias a Pablo Neira. Placas bases pequeñas con procesador de bajo consumo (AMD Geode), memorias flash y tarjetas inalámbricas. Sería útil cargar en las memorias además del meshias, su interfaz web para poder configurarlo a través de un portátil con firefox.
El cliente QT sería una aplicación orientada al ordenador personal. En él, además de poder configurar parámetros, se podría visualizar la arquitectura de la red, que ordenadores existen en él, posibilidad de seguir explorando la red, eliminar enlaces permanentemente, ver el flujo de la red, etc. todo integrado para el escritorio KDE. Por supuesto se podría hacer para Gnome, pero tenemos más “amistad” con el de KDE.
Bueno esto ha sido todo por hoy, seguiremos avanzando para sacar meshias “resurrection”.
Nuevo logo, virtualbox
abril 7, 2009Hoy he enviado por fin la revisión 100 de meshias, y como ha contado Alejandro en el post anterior, ahora prácticamente todos los bugs conocidos han sido arreglados. He estado toda esta mañana trabajando en ello. La versión 0.1 cada vez está más cerca. Danigm no sólo nos ha cedido un espacio web y nos ha montado un wiki en él sino también se ha currado un nuevo logo, cuyas semejanzas con el todopoderoso FSM no hay que menospreciar. Personalmente me parece que está genial: 
El logo ya aparece en el wiki de meshias. En el wiki no sólo pondremos tutoriales e información para desarrolladores sino también muy pronto lo reorganizaremos para que enlace al blog, que enlace al sitio de launchpad, etc, en definitiva será un portal completo y fácil de usar que será la plataforma de entrada del proyecto en Internet.
Otra cosa de la que aun no he hablado en el blog es del nuevo método para testear Meshias que he implementado: usando máquinas virtuales que hagan de nodos de la red.
El sábado pasado estuve todo el dia configurando una máquina virtual con VirtualBox para que sirva de nodo en una red mesh virtual de sólo dos nodos (mi máquina física y la virtual), de manera que puedo usar tan solo un netbook de poca potencia como mi Acer Aspire One y usarlo para desarrollar meshias durante las vacaciones, desde el tren, desde la casa de la playa, cuando me vaya mañana a Madrid, etc.
En trunk/ hay un fichero con información para desarrolladores donde se cuenta cómo configurar el virtualbox, y he subido la imagen de la máquina virtual a los servidores de SUGUS para que quien quiera pueda probar este cómodo método para testear meshias.
Ahora el siguiente paso es usar más máquinas virtuales (por ahora sólo uso uno) y conseguir que ciertos nodos se vean entre ellos pero que no se vean todos entre todos, de manera que algunos nodos tengan que hacer de enrutadores forzosamente. Para eso Alejandro me ha sugerido usar Channel bonding / unión de interfaces, y mañana testearé eso. Si lo consigo, añadiré al tutorial cómo hacerlo. De todas formas lo ideal sería que VirtualBox permitiese decir qué máquinas ven a cuales otras, así que me he bajado el código de VirtualBox y voy a bichearlo a ver si consigo hacer un parche para conseguir eso. Sí, estoy loco por intentarlo, pero ese es el espíritu
.
Todos los bugs corregidos
abril 7, 2009Después de varios días solo corrigiendo bugs, por fin hemos conseguido hacer ping. Vale, esto que significa, pues que conectamos dos ordenadores a nivel de enlace, ya sea por cable o a través de wifi, y arrancamos meshias en ambos. Bien, ahora desde el ordenador A hacemos ping a la ip del ordenador B. Sabemos que esta justo al otro lado del cable o wifi pero esto no lo sabe el demonio así que capturas los ping y los va guardando en cola, mientras envía el paquete aodv RREQ (el de búsqueda de ruta). El ordenador B se da cuenta de que le ha llegado un petición de ruta para su IP y crea su respuesta correspondiente, o sea manda su RREP. Esto le llega al ordenador A, crea su entrada correspondiente en la tabla de rutas. Después de eso busca todos los paquetes que hemos ido guardando y lo enviamos sin que se pierda ni un solo paquete, es decir, responde a todas las peticiones de ping.
Además hemos comprado los dominios www.meshias.net que es el principal y meshias.com que redirige al anterior. Ahora mismo hay colgado un wiki que iremos llenando de contenido. Desde aquí dar las gracias danigm (su blog es: http://www.danigm.net/) también participante del concurso, que nos ha cedido su servidor personal para nosotros. El wiki obviamente no va a reemplazar este blog. Cada uno tiene su función, aquí publicaremos nuestras noticias del avance que va alcanzando el proyecto. El wiki contendrá manuales, más o menos actualizados, de como usar el proyecto, posibilidades de configuración, y todo lo que tenga más forma de HOWTO que de noticia.
Pues un saludo y seguro que vendremos con noticias muy pronto.
Jornadas de Conocimiento Libre en Sevilla
abril 5, 2009Las Jornadas de Conocimiento Libre se celebraron en la Universidad de Sevilla el pasado jueves y viernes. Vinieron ponentes muy interesantes, como Jorge cortell, inventor del concepto de suidad, y Harald, ex-arquitecto jefe de OpenMoko y mantenedor de iptables. El viernes se presentaron los proyectos que participan en el concurso de software libre en el premio local de Sevilla, entre ellos Meshias, y luego se dieron los premios. Mi enhorabuena a Danigm, Carmona y Virako por sus premios: a nosotros por meshias nos dieron un accésit y estamos muy agradecidos por ello.
El desarrollo de meshias sin embargo no termina aquí de ninguna manera. El domingo de resurrección, sacaremos la versión 0.1 final titulada “Resurrection” tal y como hemos prometido. Estuvimos unos meses sin hacer apenas nada de meshias y por eso es lógico que en el concurso local no sacásemos más que un accésit, pero el desarrollo de meshias como comprobaréis es frenético desde que lo retomamos hace como un mes y continuará así en el futuro. Para el premio nacional vamos a por todas.
Comunicación y socket unix
abril 1, 2009El proyecto ha dado un nuevo paso. Meshias además de generar respuestas de rutas ahora, además, es capaz de procesar e interpretar este tipo de paquete. Todavía no esta probado y pasaremos la tarde intentando que esto funcione. Si lo conseguimos os ofreceremos un ejemplo de uso próximamente. También lo haríamos cuando presentemos el proyecto dentro de las Jornadas sobre el Conocimiento Libre 2009 organizada desde nuestra escuela. Desde aquí dar las gracias a los organizadores por la maravillosa oportunidad que nos ofrecen.
Además de este nuevo paso queríamos mostraros la idea, que aun no implementada, pero que el código está preparado para ello y que esperemos incorporar lo más pronto posible, es la comunicación con el demonio a través de un socket unix. La idea básica es tener un programa, a parte del propio demonio, que se pueda ejecute dentro de la misma maquina y que se comunique con meshias para:
- Mirar estadísticas, en vez de tener un archivo log dificil de tratar hemos pensado que sería mejor que el programa nos mostrará una serie de estadísticas que de un vistazo pudieramos ver que falla dentro del programa.
- Ver las rutas actuales, así como añadir o eliminar algunas de ellas.
- Reiniciar, matar o parar el demonio.
- Ver las colas de espera de los paquetes.
- Modificar en tiempo de ejecución la configuración del demonio.
En un desborde de orignalidad a esta herramienta la hemos llamado meshias-tools. Aunque a primera vista es algo más dificil de implementar, a la hora de debugear el programa esperamos recuperar ese tiempo; ya que un programa de este calibre con tratamiento distribuido de información es mucho más costoso reparar fallos que uno normal. Cabe añadir otras ventajas como poder crear distintos clientes con menor o mayor funcionalidad, liberamos al demonio de tareas innecesarias ya que recaeran sobre el cliente con lo que no dejamos de atender paquetes, interactividad entre usuario y demonio, y un largo etc.
Podemos imaginarnos por ejemplo un cliente integrado en tu escritorio favorito (KDE / Gnome / Xfce) donde gráficamente te muestre algunas estadísticas, diagramas del esquema actual de la red, añadir rutas manualmente o busquedas proactivas de rutas específicas; todo ello gracias a dotar al demonio de una interactvidad fácilmente ampliable.