Está en la página 1de 29

GUIA PARA CREACION DE REDES INALAMBRICAS COMUNITARIAS, COMO

PROYECTOS ACADEMICOS EN LA CIUDAD DE MEDELLIN.

Para más información sobre este proyecto visítenos en http://www.medellinlibre.co

Este trabajo es publicado bajo la licencia: Creative Commons Attribution-ShareAlike 3.0.

Para más detalles acerca de sus derechos para utilizar y redistribuir este trabajo

Diríjase a: http://creativecommons.org/licenses/by-sa/3.0/
TABLA DE CONTENIDO

1AGRADECIMIENTOS...........................................................................................................................4
2PROPOSITO DE LA GUIA.....................................................................................................................4
3REQUISITOS PREVIOS.........................................................................................................................4
4RECOMENDACIONES PREVIAS........................................................................................................5
4.1ETAPA DE PLANIFICACION Y DISEÑO DE LA RED....................................................................5

4.1.1RECONOCIMIENTO E INTEGRACIÓN CON LA COMUNIDAD...............................................5

4.1.2PLANIFICACIÓN Y DISEÑO DE LA RED – ASPECTOS TÉCNICOS -


....................................................................................................................................................................7

4.1.3FIRMWARE.......................................................................................................................................8

4.1.4PROTOCOLO DE ENRUTAMIENTO.............................................................................................8

4.1.5DIRECCIONAMIENTO Y VERSION IP.........................................................................................9

4.1.6HARDWARE (ROUTERS, ANTENAS Y SERVIDORES)..............................................................9

4.1.7PAQUETES ADICIONALES A INSTALAR JUNTO AL FIRMWARE........................................10

4.1.8RED CON SERVICIOS PROPIOS O RED PARA COMPARTIR INTERNET?...........................10

5MONTAJE E INSTALACIÓN DE LA RED.........................................................................................11


5.1 PREPARACIÓN DE LOS ENRUTADORES
..................................................................................................................................................................11

5.1.1CREACIÓN E INSTALACIÓN DEL FIRMWARE ALTERMESH


..................................................................................................................................................................12

5.1.1.1CREACIÓN DEL PERFIL DE FIRMWARE...............................................................................13

5.1.1.1.1CREACIÓN DE LA LLAVE SSH.............................................................................................15

5.1.1.2COCINANDO EL FIRMWARE...................................................................................................16

5.1.2INSTALACIÓN DEL FIRMWARE ALTERMESH........................................................................17

5.1.2.1INSTALACIÓN PARA ROUTERS CON EL FIRMWARE DE FÁBRICA................................17

5.1.2.2PARA ROUTERS CON OPENWRT U OTRO ALTERMESH INSTALADO............................18

5.2RECUPERANDO UN ROUTER MAL FLASHEADO.....................................................................19

5.3RECUPERACIÓN DEL ROUTER INGRESANDO EN MODO FAIL SAFE..................................19


5.3.1RECUPERACIÓN DEL ROUTER USANDO UN CABLE SERIAL............................................20

5.3.1.1MATERIALES..............................................................................................................................20

5.3.1.2PROCEDIMIENTO......................................................................................................................21

5.4INSTALACIÓN DE UN NODO........................................................................................................22

5.4.1DETECTANDO REDES AL ALCANCE DEL NODO...................................................................23

5.4.2COMPROBANDO LA CAPACIDAD DEL ENLACE (ANCHO DE BANDA)............................24

5.5VERIFICANDO LAS RUTAS CREADAS POR B.A.T.M.A.N. ADVANCED................................25

5.6INSTALACIÓN FISICA DEL NODO...............................................................................................26

5.6.1ALIMENTACION ELECTRICA....................................................................................................26

5.6.2INSTALACIÓN A INTEMPERIE...................................................................................................27

5.6.3FIJACIÓN DE LA ANTENA..........................................................................................................27

6ANEXOS...............................................................................................................................................28

6.1ANEXO 1 LISTAS DE DISTRIBUCIÓN DE REDES LIBRES.......................................................28

6.2ANEXO 2 VERSIONES MODIFICADAS DEL FIRMWARE OPENWRT.


..................................................................................................................................................................28
1 AGRADECIMIENTOS

Especial agradecimiento a todos los miembros del proyecto de la Red Inalámbrica


Comunitaria de Medellín - Medellín Libre -, por su compromiso, sus enseñanzas, su
acompañamiento y buena energía en todas las etapas del proyecto.

2 PROPOSITO DE LA GUIA

La siguiente guía se realiza con el fin de servir como apoyo para la realización de proyectos
de redes inalámbricas comunitarias en la ciudad de Medellín, logrando que estos proyectos
beneficien una comunidad determinada, por tanto contiene algunas recomendaciones que
van desde la relación con la comunidad, pasando por algunas aspectos económicos y
llegando hasta los requerimientos y procedimientos técnicos necesarios para hacer funcionar
la red.

La guía está publicada bajo una licencia de Creative Commons Attribution-ShareAlike 3.0.
Esto le permite a cualquier persona hacer copias e incluso venderlas con el fin de obtener
beneficios económicos, siempre y cuando la autoría sea atribuida correctamente a los
escritores y que todos los trabajos derivados se pongan a disposición bajo los mismos
términos. Todas las copias o trabajos derivados deben incluir un enlace visible a nuestro sito
Web, http://www.medellinlibre.co . Para más información acerca de estos términos vea el sitio
http://co.creativecommons.org/tipos-de-licencias.

3 REQUISITOS PREVIOS

La lectura de este documento requiere algunos conocimientos básicos de los sistemas


operativo GNU/Linux y sus comandos, esto se debe a que la filosofía de trabajo en las redes
libres implica el uso de software libre para su implementación, para ellos sugerimos iniciar
con el uso del sistema operativo Ubuntu, dado que este es una distribución de fácil
comprensión y utilización, ideal para iniciarse en el uso de los sistemas operativos
GNU/Linux. Se recomienda apoyarse en las diferentes listas de distribución de software libre,
por ejemplo https://lists.ubuntu.com/mailman/listinfo/Ubuntu-co allí puede encontrar el apoyo de
la comunidad de Ubuntu Colombia para resolver todas las inquietudes que aparezcan
mientras recorre el largo camino de aprendizaje de los sistemas operativos GNU/Linux. De
igual forma se requieren algunos conocimientos sobre redes, protocolos de enrutamiento y
comunicaciones inalámbricas. Son necesarios algunos conocimientos sobre el firmware
OpenWRT por lo que es importante comenzar a leer sus manuales y foros antes que
cualquier otra cosa. https://openwrt.org/ otra recomendación importante es adherirse a las
listas de distribución de comunidades con experiencia en el tema de redes libres, en el anexo
1 se ofrecerá un listado de algunas comunidades que pueden ayudar mucho en el desarrollo
del proyecto.

4 RECOMENDACIONES PREVIAS

Desde nuestra experiencia en la construcción de este tipo de proyectos, obtenida obviamente


desde lo realizado en la ciudad de Medellín y orientados hacia el desarrollo de prácticas
sociales en la facultad de Ingeniería de la Universidad de Antioquia; creemos que esta guía
puede ser de utilidad, para cualquier persona o comunidad, que pretenda iniciar proyectos de
redes Comunitarias en la ciudad.

Para su aplicación en otras ciudades o en otras instituciones, el lector debe realizar las
modificaciones, adaptaciones y adiciones que considere necesarias, siempre y cuando se
respeten las condiciones de licencia y derechos de autor estipulados en el inicio del
documento.

El documento se desarrollará con un orden que permite mantener una organización


cronológica y consecutiva, lo cual facilita la organización y control en cada una de las etapas
de desarrollo del proyecto, estas etapas son: Planificación y diseño, montaje e
instalación.

Cada una de las etapas tiene unos subprocesos que intentaremos describir de la mejor
manera posible. Iniciamos con la etapa de Planificación y diseño, en la que sugerimos unos
pasos a seguir, unas herramientas que se pueden utilizar y unos conceptos que se debe
tener o adquirir.

4.1 ETAPA DE PLANIFICACION Y DISEÑO DE LA RED

4.1.1 RECONOCIMIENTO E INTEGRACIÓN CON LA COMUNIDAD

En la primera etapa de este tipo de proyectos recomendamos, primero que todo definir
la comunidad en la que se desea trabajar, teniendo en cuenta que se facilite la
posibilidad de acercase a la comunidad, sobreponiéndose a problemas de orden social,
político y/o económico. Esto es muchísimo más sencillo si se conoce o se es parte de
la comunidad en la que se quiere crear la red libre. En caso contrario, es decir si se va a
trabajar en una comunidad que no se conoce, es posible encontrar apoyo en
organizaciones no gubernamentales que estén realizando trabajos comunitarios y que
se convierten en aliados a la hora de comenzar el desarrollo de este tipo de proyectos;
es entonces una buena idea hacerse a una base de datos de las ONG, Fundaciones o
corporaciones que están trabajando en la ciudad.
Antes de seleccionar la comunidad se debe estar seguro que esta posee problemas de
brecha digital o de conectividad, esto facilitara despertar su interés en el proyecto,
situación clave para lograr que sea sostenible en el tiempo.
Es factible encontrarse con comunidades en las que un porcentaje muy bajo posee un
computador y entre este pequeño grupo solo unos cuantos pueden contar con una
conexión a internet. Es por eso que el proyecto se debe acompañar de actividades de
capacitación y donación de equipos, así se lograra crear un proyecto integro, que hace
frente a la mayoría de los problemas tecnológicos que pueda tener la comunidad.
Aquí continua siendo clave el apoyo de las ONG, los colegios y otras instituciones que
puedan facilitar sus instalaciones, tanto para ser parte activa de la red (instalación de
nodos), como para contar con espacios en los que se puedan dar las capacitaciones.
Para este momento se debe tener más que claro, el objetivo del proyecto, así como la
manera como este se va a desarrollar, esto con el fin de iniciar la presentación del
mismo a la comunidad, esta será la manera de invitarlos a ser parte de él, tanto desde
la asistencia a los talleres de capacitación como en la participación en montaje,
mantenimiento y cuidado de los nodos. Los talleres tienen como único objetivo
acompañar a la comunidad en el uso de la red, mostrar la importancia del uso del
software libre. Vale la pena recordar que se debe hacer uso de herramientas de
software libre en todas las etapas del proyecto, de esa manera nos mantenemos del
lado de la legalidad, además que actuamos en concordancia con el manifiesto de las
redes libres1.
Por si acaso sirviera de punto de partida para otros proyectos, vamos a contar un poco
el proceso que debimos seguir para lograr que la comunidad se sintiera parte del
proyecto:
Inicialmente, logramos contactar con la fundación Solidaridad y Compromiso, junto a
ellos pudimos confirmar que:
◦ En la comunidad no existían ya proyectos similares.
◦ Existía una necesidad que se podía suplir total o parcialmente con la ejecución
del proyecto.
◦ Que había disposición de colaboración por parte de la fundación.
Ya confirmadas estas situaciones, planificamos junto a la fundación la primer reunión
con la comunidad, en esta reunión llegaron algunos líderes comunitarios y otras
personas que hacen parte de otros proyectos de la fundación, aquí les pudimos explicar
de que se trataba el proyecto, así como concretar un día y horario para iniciar los
primeros talleres, estos primeros talleres tenían como objetivo, mostrar de manera
teórica los temas de software libre y redes libres, mientras que paralelamente
1 http://redeslibres.org/es/manifiesto-de-las-redes-libres
comenzamos a planificar y diseñar la red. En estas personas nos apoyamos para la
difusión del proyecto en el resto de la comunidad.
Digamos que en lo descrito anteriormente está el 80 o 90% de actividades previas a la
parte técnica y de implementación de la red.

4.1.2 PLANIFICACIÓN Y DISEÑO DE LA RED – ASPECTOS


TÉCNICOS -

En los temas técnicos existen varios aspectos a tener en cuenta, posiblemente por
nuestra falta de experiencia en el tema, algunos de estos se nos quedaron por fuera,
sin embargo queda abierta la posibilidad de modificar la guía de acuerdo a lo que otras
experiencias nos entreguen y que otras comunidades puedan y quieran aportar.
En los temas técnicos existen varios aspectos a tener en cuenta, posiblemente por
nuestra falta de experiencia en el tema, algunos de estos se nos quedaron por fuera,
sin embargo queda abierta la posibilidad de modificar la guía de acuerdo a lo que otras
experiencias nos entreguen y que otras comunidades puedan y quieran aportar.
Los principales aspectos que se identifican como necesarios en la etapa previa a la
implementación de la red y que van a permitir tener menos inconvenientes en las
etapas posteriores a la planificación son:
◦ Firmware.
◦ Protocolo de enrutamiento.
◦ Direccionamiento y versión de IP.
◦ Hardware (routers, antenas y servidores).
◦ Paquetes adicionales a instalar junto al firmware.
◦ Red con servicios propios o red para compartir Internet
4.1.3 FIRMWARE

Como la mayoría de los proyectos este es uno que requiere un alto compromiso en el
tema de investigación y capacitación, dado que muchos de los temas que
obligatoriamente se tienen que conocer para poder desarrollar el proyecto, serán
nuevos, otros posiblemente no existan tal cual se imaginan. Específicamente en el tema
del firmware que se debe usar en el enrutador, se debe decir que OpenWRT es la base
de todos, de él se desprenden una gran cantidad de firmwares, que se han
desarrollado para suplir necesidades específicas de cada comunidad, existen por tanto
características importantes de cada firmware, la primordial es que hardware soporta,
dado que no todos los firmware se compilan con soporte para todo el hardware, este es
un aspecto trascendental en la etapa de planificación, aquí se debe decidir si priorizar el
firmware o el hardware, es decir si se elige primero un firmware y luego encontrar un
hardware que se adapte a él o si se elige el hardware y luego encontrar un firmware
que se pueda instalar.
Para este momento el lector se preguntará ¿Cuál es la necesidad de cambiar el
firmware del dispositivo?, las respuestas pueden ser muchas y dependerán del punto
de vista de quien este respondiendo, nosotros podemos decir, que el gran problema con
los firmware propietarios es que subutilizan el hardware, limitando una cantidad de
configuraciones y opciones de uso, además que tampoco cuentan con ciertas
herramientas, vitales para los proyectos de redes libres.
Depende entonces de la capacidad de investigación de las personas que están al frente
del proyecto, lograr identificar el firmware correcto o inclusive en caso de ser necesario,
trabajar sobre el desarrollo de uno propio.

4.1.4 PROTOCOLO DE ENRUTAMIENTO

El tema del protocolo de enrutamiento es algo complejo, ya que existen muchos


protocolos que ofrecen distintas ventajas y se debe tener buen criterio para seleccionar
el mejor. En nuestro caso optamos por basarnos en la experiencia de otras
comunidades, en las que se puede observar una alta preferencia por el uso de
B.A.T.M.A.N. (Better Approach To Mobile Ad-hoc Networking 2 ya que este es un
protocolo libre, es decir su código fuente es público y es posible aportar a su desarrollo,
existe una gran comunidad detrás de él, lo cual permite que evolucione bastante bien,
desde nuestra experiencia recomendamos utilizar la última versión que es batman-adv
el cual tiene como principal característica que el ruteo se hace en la capa 2 3 del modelo
OSI.
2http://www.open-mesh.org/projects/open-mesh/wiki
4.1.5 DIRECCIONAMIENTO Y VERSION IP

Una buena elección del direccionamiento IP permitirá un crecimiento importante de la


red, esto se debe tener claro en la etapa de planificación, así como también se debe
decidir la versión del protocolo IP a utilizar, es decir IPV4 o IPV6. De este tema no hay
mucho que hablar más que leer las buenas prácticas en la planificación de redes IP y
como siempre conocer la experiencia de otras comunidades.

4.1.6 HARDWARE (ROUTERS, ANTENAS Y SERVIDORES)

Como ya comentamos en el apartado de firmware, la elección del Hardware va de la


mano con la elección del firmware, hablando claro en la parte de los enrutadores son
muchos los aspectos a tener en cuenta en este apartado, por ejemplo el tema
económico, es decir, optar por elegir primero que todo el hardware, porque se acomoda
a las finanzas establecidas para el desarrollo del proyecto, entonces luego se debe
encontrar el firmware ideal para ese dispositivo. Otro aspecto fundamental es el de las
frecuencias en las que trabaja el dispositivo, está la posibilidad de utilizar equipos
multibanda o equipos monobanda, otros equipos ofrecen conectividad 3g, o la opción
de conectar un dongle wifi o un disco duro USB, en todo caso lo importante es
garantizar que el router comprado sea soportado por alguna versión de OpenWRT o
alguno de sus derivados.
Otro de los aspectos importantes a considerar en el tema del hardware es el de las
antenas, estas pueden ser omnidireccionales o direccionales, dependerá del uso que se
le quiera dar al equipo y de las posibilidades que el mismo ofrezca, una antena
omnidireccional será más utilizada para aplicaciones de difusión y cobertura periférica
en rangos de 100 mts redondos aproximadamente, algunas veces puede ser mas, todo
depende de los obstáculos que encuentre la señal entre equipo emisor y equipo
receptor. Mientras que la antena directiva es ideal para conexiones de larga distancia
en los que se quiera enlazar nodos que se encuentran alejados geográficamente,
permitiendo por ejemplo unir proyectos de redes comunitarios en diferentes locaciones
de la ciudad.
Finalmente el tema de los servidores, que pueden o no ser necesarios, todo depende
de si se quiere tener servicios propios al interior de la red, o si se quiere monitorizar
diferentes aspectos de la red, con aplicativos como wifidog o pandora o cualquier otro.
Existen muchos servicios que pueden requerir la instalación de un servidor, es por eso
que se debe planificar adecuadamente las necesidades de la red desde un principio, y
así saber si se requieren o no servidores y que características deben tener.

3http://www.open-mesh.org/projects/batman-adv/wiki/Wiki
4.1.7 PAQUETES ADICIONALES A INSTALAR JUNTO AL
FIRMWARE

Sobre los paquetes4 de openWRT se puede decir que prácticamente existe uno para
cada cosa que se quiera hacer, entonces una primera tarea sería definir las
necesidades que se tienen en la red, para luego encontrar un paquete que haga lo que
se necesita, por ejemplo, para la formación de la red mesh se necesita el paquete
kmod-batman-adv, esa información se encuentra en
http://wiki.openwrt.org/inbox/mesh.batman y así mismo está disponible toda la información
de los paquetes en la página de openwrt, es cuestión de saber buscar. Otra forma es
leyendo los paquetes disponibles desde un openwrt genérico y configurado con LuCi5,
en la interfaz web en la sección de software hay un listado de todos los paquetes
disponibles con una pequeña descripción de lo que hacen, tal como se puede observar
en la imagen a continuación.

Gráfica 1: Paquetes disponibles en OpenWRT

Más adelante se hablara de algunas versiones de firmware que ya traen configurados


los paquetes necesarios para el montaje de la red MESH.

4http://wiki.openwrt.org/doc/packages

5http://wiki.openwrt.org/doc/howto/luci.essentials
4.1.8 RED CON SERVICIOS PROPIOS O RED PARA COMPARTIR
INTERNET?

Este es un tema de suma importancia en la etapa de planificación, de aquí depende la


decisión de adquirir un hardware para prestar servicios o no, que servicios se
instalaran, que características debe tener el hardware para soportar estos servicios. Lo
mismo sucede con el tema de si se compartirá internet o no, muchas comunidades (y
Medellín Libre se incluye en ella) recomiendan la existencia de servicios propios al
interior de la red, pues son estos los que constituyen la esencia del proyecto para evitar
que se terminen convirtiendo en un simple modelo de internet gratis. En las redes libres
se pueden prestar servicios como:
◦ Voz IP
◦ Email
◦ Páginas Web
◦ Servidores FTP
◦ Servidores de chat
◦ Foros
◦ Juegos
◦ Bibliotecas Digitales
◦ Wikipedia Offline
y prácticamente cualquier servicios que se encuentre en internet.

5 MONTAJE E INSTALACIÓN DE LA RED

En este capítulo se expondrán los procedimientos utilizados para montar la red libre del
proyecto Medellín Libre, estos en ningún momento representan un estándar o
pretenden exponer que existe una única forma de llevar a buen puerto un proyecto de
redes libres, sin embargo al ser un buena opción y con la ayuda de la experiencia vivida
por los integrantes del proyecto, puede facilitar la labor de otros grupos o personas
interesados en crear proyectos de redes libres.

5.1 PREPARACIÓN DE LOS ENRUTADORES

Para esta etapa ya se deben haber elegido los equipos a utilizar, de igual forma que el
firmware con el que se va a trabajar. Para este tema el lector se pudo apoyar en el
cápitulo anterior de la guía, en el caso del proyecto de Medellín Libre por ejemplo, nos
decantamos por elegir un firmware y luego encontrar los equipos que se adaptaran a
ese firmware. Elegimos usar el firmware Altermesh 6 desarrollado por la comunidad
Altermundi, encontramos interesante este firmware porque como se puede leer en su
página7 se pretende impulsar la creación de redes inalámbricas libres, de bajo
presupuesto, [7]“intentando lograr el máximo resultado con un mínimo de recursos”,
además que reduce la complejidad de la instalación y operación de la red y sus
dispositivos, convirtiéndose en una red conocida como 0-conf, es decir de cero
configuración en donde el usuario que se quiere sumar a la red, únicamente debe
cambiar el firmware, para lo cual puede seguir sencillos manuales creados por las
diferentes comunidades.
Los equipos elegidos para el proyecto de Medellín Libre son los Tplink mr3220 v1.1,
este equipo ofrece la posibilidad de agregar un adaptador wifi USB, para crear una red
de tipo infraestructura.

Gráfica 2: Router TpLink


MR3220

5.1.1 CREACIÓN E INSTALACIÓN DEL FIRMWARE ALTERMESH

La creación de una red mesh, implica además de cambiar el firmware del enrutador, la
instalación de una cantidad de paquetes que posibilitan la formación de la red mesh y
el manejo de los paquetes de enrutamiento. Una gran ventaja que ofrece Altermesh es
la posibilidad de crear un firmware personalizado y con estos paquetes ya
configurados y listos para iniciar una red mesh. A continuación describimos el
procedimiento realizado por nosotros para la creación de un firmware y la instalación
de este en los equipos.

6http://docs.altermundi.net/AlterMesh/

7http://docs.altermundi.net/RedesMiniMaxi/
Para poder crear un firmware en el chef 8 de Altermesh, lo primero que se debe hacer
es registrarse en la página, luego se crea una red y finalmente se comienzan a crear
los perfiles de red, hemos creado la red Medellin Libre 9 con dos perfiles. A
continuación veremos cómo crear un perfil con lo necesario para el montaje de la red.

5.1.1.1 CREACIÓN DEL PERFIL DE FIRMWARE

Gráfica 3: Opción para crear perfil de firmware

Haciendo clic en la opción crear perfil de firmware, se puede escoger la red a la que
está asociado el firmware (en nuestro perfil podemos además crear varias redes), así
como el nombre que este tendrá, además una pequeña descripción. Una de las
opciones más importantes que se tienen sirve para definir en que otro firmware se
basara este nuevo perfil y finalmente la clave ssh 10 para acceder al enrutador.
Para tener claridad sobre que perfil puede ser utilizado como muestra, es
recomendable adherirse a la lista 11 de ayuda del firmware, por este medio se puede
consultar al “dueño” de cada firmware que tiene configurado y verificar que sirve para
el proyecto que se quiere ejecutar. En MedellinLlibre hemos basado nuestro firmware
en el llamado AlterMesh-gw_33815, en este encontramos configurados los paquetes
de B.A.T.M.A.N., NoDogSplash, y otros tantos que son requeridos para el
funcionamiento de la red mesh, haciendo clic en el icono creación avanzada, se
pueden observar los paquetes que se instalaran previo a la compilación del firmware,

8https://chef.mesh.altermundi.net/

9https://chef.mesh.altermundi.net/network/medellinlibre

10http://www.gb.nrao.edu/pubcomputing/redhatELWS4/RH-DOCS/rhel-rg-es-4/ch-ssh.html

11https://listas.altermundi.net/cgi-bin/mailman/listinfo/altermesh
así como la configuración de algunos de los archivos mas importantes.

Gráfica 4: Iniciando a crear el perfil

Si no se hace una creación avanzada, se creara un firmware como una copia exacta
del que se ha elegido como muestra, en nuestro caso hicimos una creación
avanzada para poder editar los siguientes archivos:
/etc/dnsmasq.conf
Este archivo maneja las consultas DNS de la red, dado que la red que montamos
inicialmente no cuenta con acceso a internet, pero si con servicios propios,
necesitamos tener un servidor DNS que resuelva las peticiones que realicen los
clientes de la red, agregamos dos líneas a este archivo:
address=/#/10.254.92.204
dhcp-option=lan,6,10.254.92.165,10.254.92.204
Con la primera línea logramos que todas las respuestas a las peticiones DNS tengan
como dirección destino la 10.254.92.204 que corresponde al servidor en el que
tenemos montados los servicios, allí hay una página web que lista los servicios que
se han ido instalando en la red.
La segunda opción permite forzar los servidores DNS para los clientes que se
conectan a la red y adquieren su IP por DHCP.
/etc/nodogsplash/htdocs/splash.html
NoDogSplash es un programa que facilita una página que se abre en cuanto un
cliente se conecta a la red y realizar una petición HTTP, en este caso se debió
modificar el nombre de la red y el contenido de la página.
/etc/config/batmesh
Batmesh contiene las configuraciones para realizar el enlace de la red mesh, en este
archivo se configuran los SSID de la red y los canales en los que va a trabajar cada
SSID.
Se deben tener cuidado en saber lo que se está editando, cualquier archivo mal
modificado puede degradar el funcionamiento de la red.
Ya seleccionados los paquetes a instalar y editados los archivos pertinentes, solo
basta con crear la llave ssh, para poder realizar login en el router, el siguiente
apartado muestra el procedimiento correcto para esto.

5.1.1.1.1 CREACIÓN DE LA LLAVE SSH

Gráfica 5: Opción para crear llave SSH.

La creación de la llave pública SSH sirve primero que todo para automatizar el
acceso a los equipos sin necesidad de configurar la misma contraseña en cada uno
de ellos, además de esto entrega un nivel de seguridad mediano, dado que
únicamente quien tenga la clave SSH, podrá acceder los equipos.

Para la creación de la clave SSH, se requiere contar con un sistema Linux y desde
una terminal ejecutar el comando ssh-keygen dar [enter] para que guarde la key donde
sugiere (/home/user/.ssh/id_rsa) ese archivo id_rsa es la clave privada, la clave pública
queda en el archivo id_rsa.pub. E l contenido de ese archivo .pub, es el que se tiene
que agregar en el chef. Por ejemplo, en la misma terminal ejecutar:
$cat ~/.ssh/id_rsa.pub

Obteniendo como resultado, una cadena como la siguiente:


ssh-rsa AAAAB3NzaC1yc2EA.......Ylj9mWOrk/s3Aj fercho@Fercho

Es una sola linea de texto, muy larga. La cual se debe copiar y pegar en el chef.
Luego de esto bastaría con hacer $ ssh root@ip.del.router para establecer una conexión
SSH hacia el router.
5.1.1.2 COCINANDO EL FIRMWARE

Ya con todos los archivos configurados, los paquetes seleccionados y la llave SSH
creada, solo basta con hacer clic en crear y así queda creado un perfil de un
firmware que luego se podrá “cocinar”, este término hacer referencia a la acción de
compilar el firmware con las configuraciones que se han determinado.

Para esto hacemos clic en el botón de cocinar

Gráfica 6: Opción para cocinar un firmware.

Luego de esto se deben seleccionar los dispositivos para los que se quiere “cocinar”
el firmware:

Gráfica 7: Opción para elegir hardware.

Este proceso tarde de 10 a 15 minutos, despumes de esto, estará disponible el


firmware para su descarga. Para ver los archivos disponibles para la descarga, se
debe hacer clic en el botón descargar firmware, allí se observan todos los archivos
disponibles, según el dispositivo al que le corresponde y el tipo de instalación. El
proceso de instalación se explica en el siguiente capítulo.
5.1.2 INSTALACIÓN DEL FIRMWARE ALTERMESH

5.1.2.1 INSTALACIÓN PARA ROUTERS CON EL FIRMWARE DE


FÁBRICA

A continuación se muestra el proceso realizado en un router TP-Link, el proceso será


similar para otros dispositivos que permitan la actualización desde su interfaz de
administración web.
El acceso a la interfaz web se realiza mediante la siguiente dirección desde nuestro
navegador web http://192.168.0.1/
Aqui nos pedirá usuario y contraseña. Si no hemos modificado los valores por defecto
estos serán:
usuario: admin
clave: admin
Una vez dentro de la interfaz administrativa, iremos a la opción System Tools ->
Firmware Upgrade.

Gráfica 8: Opción para cambiar firmware de fábrica.

Pulsando Browse se puede seleccionar el firmware que se va a instalar, que


previamente debió haber sido descargado. Dentro de los archivos que aparecen
disponibles para descarga se debe seleccionar el archivo cuyo nombre termine en
-factory.bin; quizá sea necesario renombrar el archivo descargado antes de intentar
instalarlo con el fin de que el nombre quede más corto. Finalmente se pulsa el botón
Upgrade. El router recibirá el nuevo firmware y lo instalará. Es necesario esperar a
que complete el proceso sin interrumpir la conexión, ni apagar o desconectar de la
alimentación eléctrica el router o el computador desde el que se está haciendo la
instalación.
Una vez concluida la instalación, el router se reiniciará (se observara que todas las
luces parpadean) y así concluye este proceso.

5.1.2.2 PARA ROUTERS CON OPENWRT U OTRO ALTERMESH


INSTALADO

Existen varios El proceso de actualizar o cambiar un firmware openWRT (recordar que


altermesh es un openWRT personalizado) lo primero que se debe hacer es iniciar el
router en modo failsafe12 (a prueba de fallos), para esto se deben seguir estos pasos:
Al encender el router esperar a que comience a flashear el led de sys, en ese
momento pulsar el botón frontal -el QSS- hasta que el led de sys parpadee con
rapidez, esta es la indicación que el router ya se encuentra iniciado en modo a prueba
de fallas o fail safe.

Para acceder al router se necesita configurar la red manualmente, con 192.168.1.2/24


y el resto en blanco.
Luego hacer telnet a 192.168.1.1, que es la dirección por defecto del router en modo a
prueba de fallas. Después de lograr establecer la conexión, desde la consola de telnet
ejecutar los siguientes comandos:

• mount_root ; /etc/init.d/dropbear start ; passwd

Ingresar una contraseña (por ejemplo '1234')

Luego regresar a una consola del computador sobre el que se está


trabajando y copiar desde ahí el firmware nuevo (en este ejemplo llamado
firmware.bin):

• scp firmware.bin root@192.168.1.1:/tmp

Pide la contraseña que es la misma escrita anteriormente ('1234')


Regresar a la consola de la sesión telnet, y ejecutar:
• sysupgrade -n /tmp/firmware.bin

12 http://wiki.openwrt.org/toh/tp-link/tl-mr3420#failsafe
5.2 RECUPERANDO UN ROUTER MAL FLASHEADO

Algunas veces el proceso de instalación del firmware openWRT o altermesh no es


exitoso y como resultado se obtiene un router no funcional, este estado en el que queda
el router después de problemas flasheando se conoce como “brickeado”, este tipo de
problemas son muy comunes cuando se están alterando las configuraciones de fábrica
de cualquier dispositivo. Específicamente en el caso de los enrutadores y sobre todo de
los TpLink que son los utilizados para la construcción de esta guía, se identificaron dos
tipos diferentes de estados, el primero se da cuando cometemos un error configurando
el router y este no inicia o no funciona bien, pero el router permite acceder al modo
“failsafe” ya que el sistema operativo o firmware se encuentra en buen estado aunque
con alguno(s) archivo(s) de configuración mal parametrizado(s), con lo que es posible
realizar la recuperación desde allí, el segundo estado es un poco más complejo, sucede
cuando se comete un error de flasheo y el firmware no se monta correctamente, en este
estado el router no permite iniciar el modo “fail safe” y solo se enciende el led de PWR.
Para recuperar de este estado es necesario conectarse al puerto serial del router. En
este apartado se tratan ambos procedimientos.

5.3 RECUPERACIÓN DEL ROUTER INGRESANDO EN MODO FAIL SAFE

El siguiente procedimiento fue realizado en un router TpLink mr3220 y puede ser útil
para casi todos los routers TpLink e incluso para otras marcas y modelos, en todo
caso la parte más compleja es el ingreso al modo “fail safe” para ello se puede
consultar la página del equipo especifico que se quiere recuperar. En el caso del
mr3220 el ingreso al modo seguro se realizad así:
Al encender el router esperar a que comience a flashear el led de sys, en ese
momento pulsar el botón frontal -el QSS- hasta que el led de sys parpadee con
rapidez, esta es la indicación que el router ya se encuentra iniciado en modo a prueba
de fallas o fail safe.

Para acceder al router configuramos nuestra red manualmente, con 192.168.1.2/24 y


el resto en blanco.
Luego hacemos telnet a 192.168.1.1, que es la dirección por defecto del router en
modo a prueba de fallas.
Luego de lograr establecer la conexión, desde la consola de telnet ejecutamos los
siguientes comandos:
mount_root
firstboot
reboot -f

Estos comandos recuperan la última configuración que funcionó en el router, si al


iniciar el router continua con problemas, se vuelve a ingresar al modo “fail safe” y se
ejecutan estos otros comandos:
mtd -r erase rootfs_data
reboot -f

Estos comandos recuperan la configuración básica de openWRT, es decir que


eliminan cualquier personalización que hubiéramos realizado sobre el router.

Si después de iniciar continua con problemas, aún tenemos una última opción
rm -r /overlay/*
reboot -f

5.3.1 RECUPERACIÓN DEL ROUTER USANDO UN CABLE SERIAL.

5.3.1.1 MATERIALES

• Puerto JTAG de 4 pines para la board

Gráfica 9: Pines para conectar puerto JTAG Gráfica 10: Puerto JTAG 4 pines

• Cable USB-Serial prolific PL2303

Gráfica 11: Cable USB-Serial con puerto JTAG

• Soldadura de estaño
• Cable de red
5.3.1.2 PROCEDIMIENTO

Establecer una conexión serial entre el router y el PC, por ejemplo desde un sistema
operativo Ubuntu, se puede realizar con el cliente PuTTY como herramienta de
conexión. Las reglas de la conexión son las siguientes:

Gráfica 12: Configuración para conexión serial.

• Tener lista la ventan de PuTTY para dar clic en open.


• Conectar la punta del cable que va al router, luego conectar el puerto USB al
PC, encender el router y hacer clic en open. Al momento del router encender se
observan unas letras en la ventana de la conexión establecida con PuTTY
• Al iniciar el router muestra todos sus leds encendidos, luego en un momento
aparece un solo led encendido, en ese instante se debe escribir en la ventana
de PuTTY “tpl” sin las comillas, este comando es para detener la carga del
router y entrar en una consola de depuración.
• En el computador se debe establecer la dirección de red manual, así:
192.168.1.27 (debe ser esta dirección). El PC debe tener instalado un servidor
TFTP, para este caso se recomienda tftpgui 13.
• Iniciar servidor TFTP, el comando es
sudo python tftpgui.py

• Clic en setup

13https://code.google.com/p/tftpgui/
Gráfica 13: Setup de tftpgui

• La primera opción define la carpeta en la que el router va a buscar el firmware


que se le va a cargar. Este firmware debe ser el original de fábrica y se puede
descargar desde la página oficial de TpLink14 este firmware se debe renombrar
code.bin y ubicarlos en la ruta indicada en la primera opción.
• Luego desde la ventana de PuTTY ejecutar los siguientes comandos:
• Para cargar el firmware
tftpboot 0x81000000 code.bin

• Luego se deben borrar las posiciones de memoria donde va a quedar


guardado el firmware
erase 0x9f020000 +0x3c0000

• Copiar el firmware en los sectores de memoria borrados


cp.b 0x81000000 0x9f020000 0x3c0000

• Cuando la imagen este copiada aparecerá la palabra DONE, entonces


ejecutamos el comando
bootm 0x9f020000

Se reiniciara el router y al iniciar tendremos nuevamente el firmware de


fábrica TpLink.

5.4 INSTALACIÓN DE UN NODO

La instalación de un nodo se divide en 2 partes, la parte física y la parte lógica, en la


parte física se busca realizar una instalación estéticamente aceptable y que proteja los
equipos y cableado tanto de fallas de la red eléctrica como de fenómenos naturales.

14http://www.tp-link.com/co/products/details/?categoryid=&model=TL-MR3220#down
Para la parte de la instalación lógica se busca garantizar la conectividad entre los
nodos y optimizar el ancho de banda de los enlaces. Se sugiere realizar el siguiente
procedimiento:
Nota: Los comandos que se presentaran a continuación son útiles a la hora de instalar un
nodo, para por ejemplo verificar que el nuevo nodo “vea” o tenga enlace con algún otro nodo
de la red mesh, analizar la cantidad de redes que hay en el punto de instalación y en que
canal están transmitiendo, esta información sirve para decidir por ejemplo en canal poner a
trabajar nuestros equipos. De igual forma existen de creado el enlace entre dos nodos, hay
algunos comandos que nos sirven para por ejemplo identificar las rutas creadas por la red, el
ancho de banda existente en los enlaces entre los nodos, etc.

5.4.1 DETECTANDO REDES AL ALCANCE DEL NODO

Vamos a ver los comandos útiles para detectar las redes que hay al alcance del nodo
y la calidad con que estas son detectadas.
El comando iw es un comando que se utiliza para la configuración de interfaces
inalámbricas en linux. Para comenzar a usarlo primero debemos saber que interfaces
tenemos disponibles en el enrutador, en linux los dispositivos inalámbricos
normalmente se identifican con el prefijo wlan y un número que depende de la
cantidad de dispositivos instalados en el enrutador, el cual inicia en 0. El comando
ifconfig permite la visualización de estos dispositivos.

Gráfica 14: Salida del comando ifconfig

En la gráfica anterior se observa que la salida del comando ifconfig entrega dos
dispositivos inalámbricos, en el caso del firmware que estamos utilizando (altermesh)
el dispositivo wlan0 se utiliza para las conexiones en modo infraestructura y el wlan0-1
para las conexiones en modo Ad-hoc, el establecimiento de la red Mesh se realiza con
el dispositivo wlan0-1, por tal motivo los comandos que continúan, se ejecutaran todos
sobre este dispositivo.
Para ver las redes que están al alcance del nodo se usa el siguiente comando
iw wlan0-1 scan

Luego en la salida obtenida encontrar la red con el SSID que nos interesa. Con este
comando estamos buscando contrastar la potencia de señal recibida con la
sensibilidad del router que está conformando el nodo, esta información sirve para
determinar si el enlace es factible y el ancho de banda con el que se puede establecer.
Ya establecido el enlace otro comando que nos permite observar la potencia que
estamos recibiendo es:
iw wlan0-1 station dump

Gráfica 15: Salida del comando iw station dump

Este comando además entrega un estimado del ancho de banda que se tiene en el
enlace.

5.4.2 COMPROBANDO LA CAPACIDAD DEL ENLACE (ANCHO DE


BANDA)

Una utilidad que viene instalada por defecto en el firmware altermesh, pero que igual
podemos desinstalar y reemplazar por cualquier otra en el proceso de cocinar el
firmware en el chef, es iperf 15 . Iperf es una aplicación que mide el ancho de banda y
funciona en modo cliente servidor. Esto quiere decir que para realizar una prueba de
iperf debemos tener uno de los dos nodos en modo servidor, esto se logra con el
comando
iperf -s

15http://openmaniak.com/iperf.php
Gráfica 16 Salida del comando iperf -s

Luego en el otro extremo ejecutamos el cliente con el comando:


iperf -c ip.del.servidor -i1 -t20

En la parte que dice ip del servidor, se debe reemplazar por la ip del dispositivo en el
que se ejecutó el comando iperf -s, -i es un parámetro que define el intervalo de
tiempo en el que se enviara un paquete y el parámetro -t determina la cantidad de
paquetes a enviar.

Gráfica 17 Resultado del comando iperf.

En la anterior gráfica se observa la salida del comando iperf, tanto del lado del cliente
(derecha) como del lado del servidor (izquierda).
Bueno ya con esto tenemos suficiente información como para instalar los nodos de la
red mesh.

5.5 VERIFICANDO LAS RUTAS CREADAS POR B.A.T.M.A.N.


ADVANCED

Ya en un capitulo anterior hablamos del protocolo de enrutamiento B.A.T.M.A.N. Y de


la manera como esté administra las posibles rutas para que un paquete llegue de un
extremo a otro. A continuación vamos a ver cómo podemos verificar el funcionamiento
de este protocolo.

BATCTL16 es un comando que además de permitir la configuración de batman-adv,


entrega información útil para verificar el funcionamiento del mismo. Específicamente
hemos utilizado este comando para verificar que registros de rutas tiene cada router,
debemos recordar que en Batman- advanced, cada router tiene información
únicamente de su próximo salto hacia cualquier ruta. En todo caso si escribimos batctl
en la terminal del router (es decir después de habernos conectado por ssh)
recibiremos un pequeño manual del comando y sus opciones.

16http://downloads.open-mesh.org/batman/manpages/batctl.8.html
Los siguientes comandos han sido de mucha utilidad en el desarrollo del proyecto,
aunque somos conscientes que pueden existir muchos otros que hagan la misma
tarea de una mejor manera.

Batctl if: Este comando sirve para cual es la interfaz del router que se está utilizando
para la generación de la red mesh.

Gráfica 18 Salida del comando batctl if

Batctl o el parámetro o, hace parte del listado de parámetros incluidos en las tablas de
depuración de batman-adv, este parámetro muestra los nodos de los cuales tiene
información el dispositivo conectado, y cuáles son los posibles saltos en el envío de
paquetes hacia ese nodo.

Gráfica 19 Salida comando batctl o

5.6 INSTALACIÓN FISICA DEL NODO

En el tema de la instalación física del nodo, como dijimos en un capitulo anterior se


debe tener en cuenta las condiciones de instalación, sobre todo en dos temas, el de la
alimentación eléctrica y el de la protección contra la humedad, la lluvia, el polvo etc.

5.6.1 ALIMENTACION ELECTRICA

Existen básicamente dos formas de alimentar el router, la primera es a través de la


fuente de voltaje que trae de fábrica, esta es fácil de realizar cuando se tiene cerca un
punto del cual se pueda tomar la alimentación. Este por ahora ha sido el caso con el
que nos hemos encontrado, por tanto únicamente hemos tenido que utilizar un cable
duplex #14 con el cual acercamos lo más posible el punto de alimentación al router.
Como recomendación adicional a este punto, debemos indicar que se debe hacer todo
lo posible por contar con un buen sistema de puesta a tierra.
La segunda forma de alimentación es el sistema de PoE (del inglés Power over
Ethernet), dado que este sistema no ha sido utilizado hasta el momento en el
proyecto, no existe experiencia para describir una guía para este procedimiento. Sin
embargo en internet se pueden encontrar muchas guías de fácil comprensión y
aplicación.
5.6.2 INSTALACIÓN A INTEMPERIE

En algunos casos la instalación del nodo requiere tener el router expuesto a las
inclemencias del clima y fenómenos naturales, por lo que es recomendable protegerlo
con una caja para intemperie. La instalación de esta caja queda más o menos como
se muestra en la siguiente fotografía.

Gráfica 20 Instalación de caja


para intemperie.

5.6.3 FIJACIÓN DE LA ANTENA

Gráfica 21 Instalación de la antena.

La experiencia adquirida en la instalación de los diferentes nodos, tanto fallidos como


finales, nos permite recomendar al lector de esta guía prestar suma atención a la
instalación final de la antena, la cual no se debe realizar sino hasta después de
asegurar el enlace con los demás nodos desde el punto final de instalación. Otro
aspecto que se se debe tener en cuenta, tiene que ver con la inclinación de las
antenas cuando se quieren enlazar nodos que se encuentren en alturas
significativamente diferentes. Sobre todo las antenas de 15dbi por ejemplo, tienen un
plano muy cerrado que no permite que la señal se capte de manera óptima en
terrenos inferiores. Muchas veces los enlaces a distancias inferiores a 300 mts, se
pueden hacer con las antenas de fábrica de los routers, siempre y cuando se cuente
con una buena línea de vista y libre de obstáculos. Estas antenas tienen un plano un
poco mas amplio y presentan menos inconvenientes en enlaces inclinados.
6 ANEXOS.

6.1 ANEXO 1 LISTAS DE DISTRIBUCIÓN DE REDES LIBRES

Las listas de distribución de correo son herramientas que posibilitan el envío de un mensaje
de correo a varias direcciones que están adheridas a la lista, sin necesidad de incluir una a
una de las direcciones deseadas. La ventaja de las listas de distribución es que agrupan a
personas con intereses comunes en algún tema específico, por lo que se convierten en
espacios que ayudan a solventar problemas sobre un tema específico, a continuación se
proponen algunas de las tantas listas de distribución que existen sobre el tema de redes
libres.
1. http://groups.google.com/group/medellin-libre
2. https://listas.altermundi.net/cgi-bin/mailman/options/altermesh
3. http://wiki.buenosaireslibre.org/ListasDeCorreo
4. http://lugro.org.ar/mailman/options/lugro-mesh/
5. https://listas.altermundi.net/cgi-bin/mailman/listinfo/redeslibres
6. https://lists.riseup.net/www/info/bogota-mesh

6.2 ANEXO 2 VERSIONES MODIFICADAS DEL FIRMWARE OPENWRT.

En el tema de los firmwares ya se mencionó que cada comunidad tiene sus propias
necesidades, por lo que algunas comunidades intentan crear su propio firmware que
les facilite la creación de los proyectos de redes libres, a continuación se listan solo
algunos de los firmware que han sido desarrollados por comunidades de redes libres y
que facilitan enormemente la tarea de la creación de las redes Mesh.
1. OpenWRT: El origen de la mayoría de los firmwares.
http://wiki.openwrt.org/es/doc/howto/user.beginner
2. Altermesh: Desarrollado por la comunidad Altermundi, una de sus principales
ventajas es ser 0-conf, otra que ofrece un “chef” con el que se puede cocinar un
firmware personalizado.
http://docs.altermundi.net/AlterMesh
3. MedellinLibre: Instalando este firmware en un enrutador, se puede unir a la red
MedellinLibre en caso tal que este en el rango de cobertura. Firmware
desarrollado con el chef de altermundi.
https://chef.mesh.altermundi.net/ls/medellinlibre/r36139/Final/ar71xx/
4. Nightwing: Firmware creado por la comunidad LugroMesh, es 0-conf y tiene buena
documentación.
http://nightwing.lugro-mesh.org.ar/
5. Obelisco: Firmware desarrollado por Buenos Aires Libre.
http://wiki.buenosaireslibre.org/Obelisco

También podría gustarte