Nodos híbridos guifi.net
Posted on abril 9th, 2011 by Blackhold
Los que estáis por las listas, los chats, los foros, twitters, etc. relacionados con guifi.net fijo que estáis hartos de leer comentarios acerca de los nodos híbridos de guifi.
Este sistema de supernodo básicamente consiste en un nuevo tipo de instalación. Hasta el momento todos los supernodos de guifi estaban formados en sus inicios por routers linksys o mas adelante placas router board con radios mini-pci.
Estos sistemas tienen una “pega” o dificultad, que es la que tenemos que andar toqueteando pigtails, cables de cobre que comunican las antenas que ofrecen la conexión y las placas donde gestionamos todo el enrutamiento, normalmente con openwrt, dd-wrt o router OS, en cada conexión además había una pérdida de señal, además de que estas conexiones a veces son un poco delicadas.
El “nuevo” sistema consiste en un router (RB750 o similar) al que se le conectan antenas wifi que ya tienen las radios y las antenas emisoras de la señal en un solo dispositivo. Las antenas emisoras de señal van directamente soldadas a la placa de estos dispositivos, así que eliminamos los pigtails y al mismo tiempo la pérdida de señal en estas conexiones.
Con este sistema, podemos poner tantos equipos como ethernets independientes tengamos. Se puede ampliar a más conexiones mediante un switch; pero implica ciertos problemas por lo que seguramente quedará fuera de las configuraciones standar de guifi.net (se tiene que investigar la posibilidad de usar vlans en lugar de usar los nombres de las interfaces, recuerdo que el nombre wlanN se tiene en cuenta a la hora de hacer las gráficas de la antena).
La conexión entre estos dispositivos y el router, se hace mediante un cable RJ-45, manejable, fácil de grimpar, más protegido frente interferencias radioeléctricas, etc.
En este post voy a tratar de explicar la configuración básica de estos dispositivos para hacerlos funcionar concorde con la red inalámbrica, abierta, libre y neutral mas grande del mundo, guifi.net.
Esta explicación vale también para otros dispositivos similares como la RB1000 o la RB1100.
Mis agradecimientos a locke y a knoppix, que han tenido la paciencia enseñarme como funciona este dispositivo, a jmoles por la revisión del artículo :)
Voy a centrarme básicamente en la configuración de una RB750G, que es exactamente la misma que una RB750, la diferencia entre ellas está en la velocidad de proceso y la velocidad de los puertos ethernet. La RB750 utiliza un procesador de 400 Mhz y cinco ethernets de 100 Mbps mientras que la RB750G tiene una velocidad de 680MHZ y cinco bocas gigaethernet (1000 Mbps).
Para decidir qué router usaremos tendremos en cuenta dos factores. El primero que los equipos de radio que utilizamos en “teoría” pueden hacer radio-enlaces de más de 100 Mbps pero llevan un interfaz ethernet de 100 Mbps. Esta limitación se debe a las antenas que usaremos tan sólo pueden trabajar a 100Mbps ya que para que un cable de red de 1Gbps son necesarios los 8 cables del cable ethernet, pero estamos usando 4 para alimentar las antenas mediante POE, 4 cables se usan para la transferencia de datos y los 4 restantes para la alimentación, para ello tenemos unos adaptadores llamados POE que hacen esta división y normalmente vienen junto a la antena (en este caso estamos hablando de antenas tipo ubiquiti).
El segundo factor es que en un router el flujo de datos es analizado por el procesador. Un procesador más lento puede reducir la velocidad de transferencia aunque las interfaces sean muy rápidas.
Por tanto contra más velocidad de proceso mejor y si tenemos interfaces de 1Gbps tendremos resuelta la posible subida de velocidad de los equipos de enlace con incremento de coste reducido.
La diferencia de precio entre una y otra tampoco es muy elevada.
La RB750G es un dispositivo de la empresa mikrotik e internamente funciona con un sistema operativo de esta misma empresa llamado Router OS. Este sistema se gestiona con otro software propietario disponible sólo para windows que se llama winbox. Para los linuxeros, comentar que este programa funciona correctamente con las ultimas versiones de wine, en este segundo caso quizás perdemos algunas funcionalidades como arrastrar ficheros de configuración directamente a la interfaz del programa, pero esto se puede solucionar accediendo por ftp al router. La otra es que a veces la conexión por MAC no va muy fina, pero en las ultimas versiones apenas estoy teniendo problemas, todo es cuestión de tenerlo actualizado :)
De la misma forma que podemos actualizar el software de gestión del router, también podemos actualizar la versión del routerOS de la RB. Para ello tendremos que tener en cuenta que en estos dispositivos tenemos por una parte el firmware y por otra el sistema operativo RouterOS. Esta actualización se puede realizar fácilmente desde la propia interfaz de la winbox.
Vamos pues al lío! en este gráfico vemos la disposición de los dispositivos del supernodo BCNRossello208, en él intervienen 2 Ubiquiti Nanostation M5, una para connectar a Carmel, otra a JulesVerne5 y una Ubiquiti Bullet 5. Tenemos también la red de servidores. Todo esto va conectado al router mikrotik RB750G.
Nota: durante la configuración veremos que aparecen otros dos dispositivos una Ubiquiti NanoBridge M5 y un router Alix para conectar a la red mesh de Gracia Sense Fils. No nos centraremos con la configuración de estos dispositivos, esto mas adelante en otro post ;)
He marcado cada uno de los distintos tipos de enlace con un color distinto, el azul corresponde a enlaces punto a punto con otros supernodos, el verde a enlaces a nodos clientes (donde se conectarán puntos de terminación de red) y el rojo para los servidores.
A cada uno de este tipo de enlaces vamos a asignarle un rango de ips propio. Para ello tendremos que ir a la página web de guifi.net y añadir todos los dispositivos.
Agregar los dispositivos a la web de guifi:
Actualmente se está desarrollando el soporte de este tipo de supernodo en la web, por esto voy a comentar muy por encima esta configuración, ya que en este post nos centramos en la configuración del dispositivo con el sistema operativo RouterOS.
Primero de todo damos de alta todos los dispositivos, la rb, las nanos y la bullet, en el gráfico hay también añadidos los servidores. Esto se añade con el select que hay a bajo del listado de dispositivos. Los añadimos, les asignamos un nombre, la MAC y poco mas.
A continuación editamos el dispositivo que hemos definido como la RB750. Añadimos una radio, y 2 conexiones por cable (la tarjeta de red con el símbolo +). En este caso tengo definidas 2 /28 (una para las antenas, otra por la red de servidores) y una /27 (para los enlaces cliente).
Una cosa a tener en cuenta es saber en qué posición se halla el enlace, la radio0 es wlan1, la radio1 es wlan2, la radio2 es wlan3, etc. Esto afecta al momento de hacer gráficas del supernodo, el servidor de gráficas lee la location snmp de todos los dispositivos (que tiene que ser igual para todos los dispositivos del supernodo y llamarse igual al nombre del nodo en la web). Esto ya nos lo indica también el fichero de configuración “1solclick” de la rb en la web.
Tal como he dicho no me centro mucho en esta parte ya que puede cambiar mucho en los proximos días, pero el modelo que se va a seguir va a ser un rango de ips /29 para la rb y las antenas y luego una /27 para las conexiones a clientes.
Una vez configurado el supernodo, nos podremos descargar el fichero de configuración y nos lo dejará todo funcionando, de momento… :(
Configuración de la RB750:
Hasta el momento la gente que había configurado este tipo de dispositivos añadía todos los puertos al bridge, esto hacía que los paquetes arp pasasen de un lado a otro, generando un montón de tráfico innecesario, con el sistema que voy a contar a continuación, sólo pasa el tráfico referente a la subred especifica.
En los dos siguientes gráficos vemos la definición de ips del supernodo, si nos fijamos, tenemos una 172 para conectar las antenas (la 192 de los servidores también vendría a ser una 172), cada antena tiene su propio rango 172 (capa 2) y luego por encima (capa 3) definimos las ips 10.
En el primer esquema destacamos que cada uno de los dispositivos tiene su propio rango de ips 172. Estos van a servir de enlace “físico” entre el router y las antenas. Luego por encima ponemos las 10. Si nos fijamos en el esquema 2, las ips del rango 10.228.192.192/28 están vinculados al bridge lan/lan pero el bridge lan/lan no se asigna a ninguna boca, ya que si lo hiciésemos el tráfico que pasaría por el bridge sería todo y en este caso sólo nos interesa el trafico de este rango. Este bridge lo hacemos para poder acceder a las antenas (que en realidad no tienen ninguna ip 10 asignada, sólo una 172).
Vamos a ver la definición de ips en el la rb, quizás va a quedar un poco mas claro (ip > adresses):
Y esta es la configuración del bridge (el bridge wlan/lan no lo estamos usando para nada)
Nota: los valores marcados en gris están deshabilitados, así que es como si no estuviesen ;)
Una captura también de la pantalla “Interfaces”:
Una vez configuradas las ips en la rb, tendremos que configurar las ips en las antenas. Vamos a definir a cada una de las antenas la ip 172 que le corresponde, como netmask la 255.255.255.248 y como gateway la ip de la rb correspondiente al rango de subred para la que estamos configurando la antena. Los DNS nos van a dar igual, ya que desde las antenas no podremos hacer pings a las redes 10. Si ponéis un alias con la ip del rango 10 a la antena esto va a hacer que desde la red de servidores no se pueda acceder a la antena (y si tienes un servidor de gráficas, no vas a poder graficar la antena). Hablando de graficar, el location snmp tiene que ser el nombre del nodo y la comunidad public.
La antena la ponemos en modo bridge.
Con esta configuración estamos haciendo que la antena sea un elemento invisible y que no interviene en las comunicaciones, es simplemente un trozo mas de hilo ;)
Una vez configuradas las antenas, tenemos que configurar la rb para que podamos administrarlas, una cosa es que sea un elemento invisible pero la otra es que es un buen elemento para saber el estado de la señal o simplemente para hacer el enlace ;)
Para ello vamos a hacer un dst-nat de la ip 10 que le correspondria a la antena (que la tenemos definida en la rb agregada al bridge lan/lan), hacia la ip real 172 que tiene la antena. Esto se hace en ip > firewall, pestaña NAT.

Con esto ya podremos administrar las antenas. Haciendo el dst-nat de esta forma estamos dejando salir todos los puertos de la antena a guifi, de esta forma se permite que el snmp de la antena llegue hasta el servidor de gráficas, haciendo que grafique la antena y no la rb ;)
Ahora ya sólo faltará definir el enrutamiento, BGP u OSPF. Ahora mismo lo tengo configurado como OSPF, pero la cosa que se tiene que tener en cuenta es en Routing > OSPF > networks, tener publicadas todas las redes que intervienen en este supernodo (a excepción en este caso de la 192.168.1.0/24, que les asignamos directamente ips 10 a las máquinas en un interfaz virtual -alias-).
La prueba final pues, es mirar que tenemos rutas en IP > Routes y que podemos hacer ping a ips de guifi y de guifi hacer ping a las ips de los dispositivos y de los clientes que cuelgan del AP (la bullet), que recuerdo trabajan en su propio rango 10.
Actualización:
Tras días jugueteando con este dispositivo comentar que falta un pequeño paso. Antes comentaba que las antenas no podían hacer ping a las ips 10, pero si hacemos un nat a la red 172 si será posible y las peticiones que vengan de las antenas en realidad vendrán de la rb, al igual con las ADSL de casa, que todos los equipos que estén detrás del NAT salen a internet con la misma ip.
Para ello tendremos que ir a ip > firewall > nat y añadir una nueva regla:

Para la 192 vamos a hacer lo mismo.

Con esto vamos a poder poner como default gw la ip 192 de la rb o si ya tenemos una salida a internet en casa, podemos añadir una ruta para que las ips del rango 10 vayan por la ip 192 de la rb:
# route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.19
De esta forma para salir a guifi simplemente tendremos que llamar a una ip con el rango 10 :)








