Olsrd es un daemon que implementa el protocolo de enrutamiento dinámico OLSR, pensado específicamente para conexones inalámbricas. El mismo permite generar rutas dinámicas, las cuáles se actualizan constantemente dependiendo de la calidad de enlace entre nodos.
Esto permite que agregar y quitar fácilmente nodos de la red y que esto no perjudique el funcionamiento global del sistema, mientras que tampoco es necesario configurar a mano las reglas de ruteo.
De esta forma también asegura que todos los nodos tengan una ruta para poder enviar información entre sí, concentrándo el tráfico donde existe mejor calidad de enlace.
Primero es necesario instalar todos los paquetes. Suponiendo que utilicen alguna distro basada en debian la órden a ejecutar es la siguiente:
apt-get install olsrd olsrd-plugins dnsmasq
ipkg install olsrd olsrd-mod-nameservice
Luego de instalados los paquetes necesarios procederemos a la configuración de los mismos.
No es muy difíci; configurar correctamente y dejar funcionando Olsrd. Sólo es necesario localizar el archivo de configuración /etc/olsrd/olsrd.conf o /etc/olsrd.conf y agregar lo siguiente:
Interface "wlan0"
o Interface "eth0"
Luego se procede a configurar el plugin olsrd_nameservice.so.0.3 donde hay que agregar lo siguiente:
PlParam "name" "Nombre-de-mi-nodo"
Luego de agregado nuestro nodo y sus servicios disponibles procederemos a agregar nuestro prefijo el cual es global para toda la red.
#PlParam "IP-dentro-de-mi-red" "www.nombre-de-mi-nodo"
#PlParam "IP-dentro-de-mi-red" "ftp.nombre-de-mi-nodo"
PlParam "suffix" ".mvdl"
Luego de agregados los hostnames se procede a agregar las rutas de estos para que se propaguen hacia los demás nodos.
En la sección Hna4 se agregan las rutas a las IP de nuestros host en nuestra red interna de la forma: IP-de-destino Espacio Máscara-de-subred
Ejemplo:
0.0.0.0 0.0.0.0 #Este sería la puerta de enlace por defecto.
192.168.1.1 255.255.255.0
Por último si se desea se puede modificar el valor de Debug Level a 1 o más para ver que está haciendo nuestro daemon en ejecución.
Finalizada la configuración se procede a ejecutar el daemon como usuario root o si esta disponible con sudo para ello:
$ olsrd desde el usuario root o
$ sudo olsrd si disponemos de dicha herramienta.
Para que nuestro sistema utilice dnsmasq para hacer las resoluciones DNS, sólo hay q agregar al archivo /etc/resolv.conf la siguiente linea al principio del archivo:
nameserver 127.0.0.1
Finalizada dicha configuracion se procede a ejecutar el daemon tambien como usuiario root o con sudo para ello
$ dnsmasq -addn-hosts=/var/run/hosts_olsrd desde el usuario root o
$ sudo dnsmasq -addn-hosts=/var/run/hosts_olsrd si disponemos de dicha herramienta.
-addn-hosts=/var/run/hosts_olsr. Esto significa que la tabla estática de nombres será el archivo /var/run/hosts_olsr el cual es generado dinámicamente por el daemon olsrd.
Observación: se notó que el dicho archivo es leído por el daemon dnsmasq sólo al inicio, dnsmasq ignora las actualizaciones posteriores de este archivo.
Esto plantea la necesidad de que este se reinicie de alguna forma para retomar los cambios, una manera de solucionar esto es con los parches al plugin nameservice del OLSRd del equipo de desarrollo.