Blackhold

Nodos híbridos: en la web, en la mikrotik y en el BGP

Posted on setembre 21st, 2011 by Blackhold

Robo un poco de mi poco tiempo para hacer este post que espero que pueda permitir resolver muchísimas de las dudas que me llegan al mail y por IRC. Como sabéis ando super apretada de tiempo y muchas veces no puedo daros la mejor respuesta y el forward a este post a algunas os queda un poco corto, así que espero que con este ya podáis configurar los nodos híbridos con la configuración actual de la web de guifi, que a fecha de hoy y tras muchisimos mails de petición durante varios meses para la liberación del código de los híbridos en la web, aún sigue sin publicarse.
A este post quería ponerle el título “como engañar la web de guifi y montar un nodo híbrido”, pero me parecía poco correcto ya que los desarrolladores de la web, andan con menos tiempo aún. El porqué del engañar la web de guifi es porque usamos un dispositivo que no está preparado para estos y tras su creación en la web de guifi hace falta un poco de post-configuración tras descargar el unsolclick.
En este post voy a configurar dos supernodos con dos RB750 y dos nanostation M5, que son los que van a ir destinados para dar conectividad guifi al hackmeeting 2011 en A Coruña. No voy a entrar en detalles del porqué hacemos las cosas ni el porqué usar este tipo de dispositivos, ya que este post es un complemento de este otro.

Lo primero será ir a la página web de guifi y registrarnos si aún no lo has hecho.

Luego vamos a la url de mapas y marcamos nuestro nodo. Arriba, justo encima de “Iberian Peninsula”, podemos navegar hasta la zona donde queremos plantar nuestro nodo. Una vez encontrada la ubicación pulsamos sobre ella y nos sale un globo y pulsamos en “Add new node here”.


A continuación se abre una nueva página donde tenemos que rellenar alguna información:
- Nombre de la ubicación: Población calle y numero sin abreviaciones y sin comas.
- Nombre corto: Población abreviado, calle abreviado y numero.
- Tenemos que aceptar la licencia XOLN: Sí, lo he leído y aceptado
- Contactar: mail de contacto de la persona que lleva este nodo
- Zona: la zona donde nos encontramos, si hemos navegado por mapas ya nos pone la zona correcta, pero si no lo hemos hecho así tendremos que navegar hasta la subzona. No será posible asignar nodos en una zona dónde cuelgan de ella otras zonas.
- Descripción de la zona: Breve descripción de la zona, para identificar más esta ubicación, colegio, iglesia, ayuntamiento, etc.
- Elevación de la antena: altura de la antena respeto el suelo. La web de guifi ya tiene en cuenta la elevación geográfica del nodo.
- Opciones de ruta URL: esto es opcional, si queremos podemos poner una url personalizada al nodo para acceder de forma más rápida, por ejemplo en mi casa tengo blackhold1, así que accedo a mi supernodo por http://guifi.net/blackhold1. Importante antes de definir una url, que no esté usada por otra página o nodo.

Finalmente le das a guardar y ya tienes el nodo creado.

A continuación vamos a añadir los dispositivos:

Escogemos la opción por defecto “Dispositivo wireless, como un router, bridge, AP…” y añadir.

Nos sale una ventana como esta:

Tendremos que modificar algunos campos, como:

- nombre corto: aquí nos deja un nombre por defecto que en este caso sería CRNfalsa23Rd1, la nomenclatura que nos da la web a veces un poco criptográfica y los nodos híbridos que monto prefiero que se vea fácilmente de qué dispositivo estamos hablando, ya que una vez creados todos los dispositivos sea fácil identificarlos. En este caso estamos añadiendo la RB750, así que al nombre del dispositivo le pongo CRNfalsa23-RB750.
- Estado: por defecto te deja proyectado, pero si ya tienes los dispositivos encima de la mesa y ya tienes previsto colgarlo en pocos días, puedes ponerlo en construcción. Una vez esté operativo, por supuesto puedes ponerlo “Operativo”.
- Modelo de radio: Aquí empiezan las trampas, la rb750 está disponible, pero no tiene la configuración, así que escojemos un router similar a la RB750 pero que si esté configurado como es el Mikrotik, Routerboard 600.
- Firmware: Las RB que compramos ultimamente ya vienen con la ultima versión de routerOS, la 5.
- Dirección MAC del dispositivo: las RB750 por ejemplo vienen con 2 MAC, que se corresponden a las de la boca 1 y la boca 2, las bocas 3, 4 y 5 son esclavas de la boca 2.

Una vez terminamos de damos a guardar y salir.

El siguiente paso es hacer lo mismo para cada uno de los dispositivos que vamos a añadir a la RB. La nomenclatura que suelo usar es:

- Nanostation M5: -NSM5
- Ubiquiti bullet 5GHz: -NB5
- Nanobridge M5: -NBR5
- Rocket M5: -ROCKET5
- Bullet 5: -BULL5

Esto a gusto del cheff.

AP CLIENTES VERSION ANTIGUA: Si vamos a añadir un AP, una antena que va a dar cobertura a clientes, para aquella antena tendremos que añadirle una segunda y añadirle un -I detrás. Por ejemplo tengo una rocket con una sectorial que da cobertura a clientes, pues añadiría otra rocket que se llamase CRNfalsa23-ROCKET5-I.

AP CLIENTES VERSION FINAL: Va avanzando el tiempo y también la fase de desarrollo, hablando con los desarrolladores pregunté como iban a plantear esta parte, así que finalmente parece que van a hacerlo de forma distinta de como lo comentaba en el párrafo anterior.
La idea será pedirle un rango de IP para clientes en la radio correspondiente a los clientes (mi recomendación es no destinar nunca la radio0 para dar cobertura a clientes, hacerlo a partir de radio1, ya que sino la web de guifi asigna IPs del supernodo a los nodos clientes que se conecten), se asigna este rango a la boca de la RB donde va a ir conectada la antena para cobertura a clientes y se le asigna la siguiente IP del rango de clientes a la antena. Por ejemplo la ip de rango de clientes empezaría por 10.x.x.1 (esta sería para la RB), la 10.x.x.2 (sería para la antena) y el resto de IPs para los clientes.
La problemática de este sistema es que tenemos que añadir un nodo cliente “falso” para reservar la IP para la antena.

En este caso no voy a añadir por el momento ninguna antena para dar cobertura a clientes, básicamente para simplificar un poco el post (que ya será suficientemente tocho) y la otra porque aún no hemos decidido como vamos a dar cobertura a los clientes.

Con esta configuración simple la cosa quedaría así:

A continuación editamos la RB750 pulsando al icono del lápiz, se nos abre la ventana de antes donde hemos añadido el dispositivo.

Vamos a la sección de radios wireless, desplegamos el “No hay radios”, escogemos “AP o AP con WDS” y Añadir nueva radio

A partir de aquí tenemos que tener en cuenta una cosa, quizás tenemos muchas ganas ya de permitir a los usuarios conectarse a nuestro supernodo, pero si ponemos el AP de clientes en este nodo nos vamos a encontrar que la web le va a dar IPs de nuestro supernodo a los clientes, así que lo que se recomienda es que esta primera radio se destine a un enlace con otro supernodo. Así que a ello vamos, a conectar el supernodo de la calle falsa 23 al supernodo de la calle nolose 69. Como véis para los nombres no soy muy buena, pero es una cosa puramente didáctica, una vez configurado en la web, vamos a pasar a un caso real.

SSID: ponemos el nombre de la wifi que va a conectar ambos supernodos, este paso también tendremos que hacerlo en el otro supernodo, en este caso el de la calle nolose 69.
Protocolo: N please!
Canal: Los canales altos se dejan para conexiones entre supernodos y los bajos para conexiones para los clientes
¿Se aceptan clientes?: al tratarse de un enlace entre dos supernodos, no, no se aceptan clientes.

Más abajo configuramos el tipo de antena que tiene este dispositivo.

Le damos a guardar y continuar modificando.

Ahora si vamos desplegando vemos que nos ha asignado un rango de IPs, pero para lo que queremos nos lo ha asignado demasiado grande, así que vamos a indicarle que sólo queremos ips para 6 hosts. Esto que definimos es única y exclusivamente para las IPs de las antenas que van a colgar con cable de la RB750.

Y le volvemos a dar a guardar y continuar modificando.

Ahora vamos a la sección de conexiones por cable para conectar los dispositivos a la RB750 y pulsamos el enchufe rojo en la imagen marcado en verde.

Nos aparece un menú desplegable con las distintas antenas que queremos conectar, vamos a pulsar “create” para todas, excepto las que tienen una -I detrás (las que son para clientes) y entre una y otra le damos a “Guardar y continuar modificando”. Veremos como la web les va asignando IP. Si vemos que la web no le da IP, pero igualmente sale vinculada, es porque la web le ha dado eth0 a la radio y tenemos que ponerle Lan en “Interfaz remota”.

El siguiente paso es ya conectar los 2 supernodos, estos mismos pasos que hemos hecho aquí, los hacemos por el otro supernodo, en este caso CRNnolose69 y una vez hecho volvemos a nuestro supernodo, el de la calle falsa 23, a radio y wds.

Pulsamos las antenitas marcadas en verde y se abre una nueva ventana:

Una vez seleccionado pulsamos a “Elegir dispositivo y volver al formulario principal” y nos vuelve a la página anterior, pero asignando unas ips 172. A partir de aquí empieza el juego ;)

La web nos asigna una /30, es decir 2 hosts para hacer el enlace wds, pero en realidad, nosotros necesitamos 4 hosts, así que vamos a decirle que necesitamos una /29, pero posiblemente la web nos diga que el /29 que estamos pidiendo ya se esté usando para otro, así que tendremos que buscar un /29 de la 172 libre y asignarlo.

/!\ la web tiene un bug y si asignas un /29 y te dice que está ocupado te crea un enlace fantasma que sólo los que tienen acceso a la BBDD pueden borrar. Así que lo mejor es pedir primero un /30, guardamos y continuamos modificando y luego buscamos el rango disponible.
/!\ para asignar un /29 son precisos permisos de guifi-admin.

El porque necesitamos 4 hosts es porque vamos a crear una red con la rb de falsa23, la nanostation M5 de falsa23, la rb de nolose69 y la nanostation M5 de nolose69. Para cualquier duda porque lo hacemos así, mirate el post de nodos híbridos que hice hace un tiempo.

Como podéis ver, la web sólo nos asigna las ips para las 2 RB, así que las ips de las nanostation M5, nos las tendremos que “inventar” (Se recomienda usar para las nanostation la IP que nos asigna la web en la RB a la que conectamos la antena +2 -el default gw de la antena será la IP de la RB-). Si tenemos dudas de qué ips usar, os recomiendo usar esta calculadora ip via web. Nos fijamos en “Host Min” y “Host Max”.

En la web, posterior a éste post, se añadió esta herramienta para que nos ofrezca rangos disponibles correlativos:

http://guifi.net/es/guifi/menu/ip/networksearch

Hasta aquí tenemos configurado en la web 2 supernodos, conectados entre si con dos nanostation M5. Pero en uno de los supernodos queremos añadir servidores. Así que vamos a la sección de conexiones por cable y le pedimos a la web un rango de IPs.

Luego le asignamos la IP de la misma forma que le hemos asignado las IPs a las antenas, pero en lugar de crear un dispositivo wifi en la página del nodo, le decimos que queremos crear un servidor.

Si queremos añadir una radio para clientes, vamos a añadir una radio en la sección de radios, seguimos los pasos de creación de la radio (essid, permite clientes, etc.) y en la misma radio le pedimos un rango de ips 10.0.0.0 para los clientes (atención en la misma sección de radio). Para asignar la IP a la antena que dará cobertura a los clientes, podemos crear un nodo “fantasma” para reservar la IP o usamos la ultima IP del rango de clientes (la antena que dará cobertura a los clientes tendrá una ip como si fuese un nodo cliente colgando de nuestro supernodo, pero en modo de red “bridge”).

Ahora el siguiente paso es descargar los ficheros de configuración de la RB750 y de la nanostation M5. El fichero de configuración para las NM5 tampoco está disponible, pero lo que tenemos que hacer es decirle a la web momentáneamente que se trata de una nanostation 5. Importante luego dejarlo como Nanostation M5 ya que sino nos va a dar problemas con las gráficas, ya que la interfaz de red de las nanostation 5 es eth0 y el de las nanostation M5 es ar0.

Lo primero que haremos pues será conectar la RB750 a nuestro ordenador por el puerto 2 de la RB y nos asignamos a nuestro ordenador una ip del rango 192.168.88.0/24, teniendo en cuenta que la ip por defecto de la rb es la 192.168.88.1.

Para acceder a la RB necesitaremos el winbox, un programa de gestión del routerOS, es para windows, pero con el wine es posible hacerlo funcionar. Para descargarlo lo podemos hacer por internet en la web de mikrotik o accediendo por http a la ip de la RB, ahí hay un vínculo para descargarlo.

Una vez descargado lo ejecutamos y le decimos que queremos conectar a la 192.168.88.1, con el usuario admin y sin password.

Si estás en GNU/Linux y no acaba nunca de cargar la configuración, posiblemente te falte instalar el paquete lib32nss-mdns.

La primera vez que entramos nos dice de resetear la configuración, pero esto también nos resetea la ip de administración por defecto y la única forma que tenemos de acceder es mediante la MAC (en el winbox, en “Connect to:” en lugar de ponerle la IP podemos pulsar el botón “…” y nos salen las MAC de dispositivos mikrotik que detecta. Algunas veces me he encontrado que el winbox sobre sistemas GNU/Linux, esto no acaba de funcionar correctamente, así que lo que recomiendo es ir a IP > Adresses y añadir una ip 192.168.1.19 en el ether1.

Una vez añadida la IP en el ether1, con la configuración por defecto tenemos que borrar las configuraciones por defecto de IP > Firewall > Filter rules y IP > Firewall > Nat, lo borramos todo sin miedo.

También borraremos la configuración de DHCP en IP > DHCP Server.

Para borrar es tan simple como seleccionar lo que queremos borrar y pulsar el botón con el símbolo “-” o directamente pulsamos la R, remove en inglés.

Para meterle ya el fichero de configuración unsolclick de guifi, ya sólo faltará un paso, que será ir a Interfaces y cambiar los nombres de los interfaces. El ether1-gateway a ether1, el ether2 a wlan1, el ether3-slave a wlan2, y así sucesivamente. Tal como he dicho al principio del post, las interfaces, 3, 4 y 5, están como esclavas de la ether2, así que tendremos que indicarle que no sean esclavas, esto lo definimos dando doble click sobre la interfaz que queremos modificar, General > Master Port y lo ponemos a none.

Recomendación, ir añadiendo comentarios de lo que es cada boca y que va a tener conectado.

Con todo esto hecho, accedemos a la RB por el puerto 1 y la ip 192.168.1.19, ip que le pongo a todas las RB que configuro, una pequeña marca de la casa :P Esto lo hago porque quizás puedes tener una RB aparcada unos días, no te acuerdas qué ips tenía y tener siempre unas ips por defecto te permite acceder a los dispositivos sin tener que resetearlos cada vez que quieres hacer algo con ellos. Si uno no tiene la ip esta en la ether1, pues quiere decir que es una RB virgen.

Una vez dentro, vamos a ip > adresses y eliminamos la IP 192.168.88.1.

Ahora ya sólo faltará cargar el unsolclick de la web de guifi y hacer 4 cambios. Para cargarlo, vamos a New Terminal y pegamos tal cual el chorro de texto.

Esto nos dejará configuradas la IP del supernodo (tanto la principal, como la de la red de servidores), la configuración BGP, el SNMP y un par de reglas de NAT en firewall.

A continuación os dejo capturas de pantalla de una RB con una configuración muy similar a la que he ido usando para hacer el post al configurar el supernodo en la web de guifi.

Los dos supernodos que entran en acción a partir de ahora són:

http://guifi.net/hm11
http://guifi.net/hm11-2

Las capturas son las de hm11-2, que es el que tiene un servidor proxy y una red con otros ordenadores colgando del puerto ether1.


Panel de login de winbox: te permite guardar ips, usuarios y contraseñas de las mikrotik


IP > adresses: cada IP va a la interfaz que trabaja con esta subred.


Interfaces: importante que las bocas donde hay las antenas correspondan con el fichero de configuración. Buscar por ejemplo wlan1 en el fichero de configuración.


En bridge creamos un nuevo bridge que se llame lan/lan, el wlan/lan no tiene sentido en un nodo híbrido


Routing > BGP > Instances: Instancia BGP de nuestro router, el AS corresponde al numero de dispositivo en la web.


Routing > BGP > Peers: Los peers son las conexiones BGP con otros supernodos


IP > Routes: Las rutas dinámicas en nuestra red, en este caso sólo hay 2 supernodos, pero esta tabla es mucho más grande cuando la red es más grande! :)


IP > Firewall > NAT: Nuestra antena en realidad no tiene una IP 10.0.0.0, sino una 172, pero si alguien pide la IP 10 que corresponde a la antena, la RB le hace un “forward” o hablando correctamente, un “destination nat”.

Es recomendable desactivar el DHCP Server, así los clientes que se quieran conectar no tendrán otra que coger la configuración de la web (darse de alta, dar de alta su nodo, etc.). Además la conexión entre antenas de guifi se hace de tejado a tejado, no de tejado a dispositivo móvil, ya que una conexión mala, penaliza a todas las demás, al hacer trabajar mucho más la antena para hacerle llegar la señal correctamente.


Configuración SNMP: para hacer que nuestro supernodo grafique.


System > Users: routerOS permite tener varios usuarios con distintos niveles de permisos

Ahora ya sólo faltará ver la configuración de una de las 2 Nanostation M5, ahora mismo conectadas entre ellas con un enlace AP-WDS.

Aunque nos de muchísimas ganas, el fichero de configuración que nos da la web de guifi no nos sirve para la configuración de nodos híbridos, pero si nos vale para saber alguna información como el nombre del nodo, la configuración snmp y poca cosa mas :P El resto es todo artesanía! tampoco recomiendo usar el fichero de configuración de la nanostation5 en una nanostationM5 en clientes, alguna vez me he encontrado que la antena ha empezado a funcionar de forma extraña.


Pantalla MAIN de la nanostationM5, con una estación conectada.


Configuración WIRELESS, en modo Access Point WDS (ambas estan en esta posición y con las mac intercambiadas). El SSID a usar lo cogemos del fichero de configuración de la RB750

El SSID y la frecuencia que usamos sólo se tendrían que tocar en laboratorio, es decir, que podamos acceder a ellas físicamente o que haya una persona en cada lado (si es que no te quieres pegar unos cuantos viajecitos). Una opción si estás administrando la red solo o con gente que no tiene ni idea de como entrar a una antena, es poner una como AP-WDS y la otra como Station-WDS. Los enlaces entre supernodos mejor no dejarlos nunca como Access Point, ya que podría ir algun listillo y conectarse a ella, aunque sólo podría llegar a hacer algo si se pusiese una IP del supernodo o de las 172 disponibles.


Configuración LAN, en modo bridge. La ip de gw es la IP 172 de la RB a la que está conectada. El DNS es el del servidor de la zona.

En advanced no tocamos nada.


A partir de aquí es cuando entra el fichero de configuración de la nanostation 5, configuramos el SNMP, el acceso HTTP a la antena y el NTP.


Configuración del sistema: Cambiamos el device name, que es lo que va a aparecer cuando hacemos un scan o un mtr y cambiamos el usuario, por defecto es root/guifi. En esta pantalla también podemos cargar un fichero de configuración (si es que hay alguno), descargar el que tenemos (recomendable) y actualizar el firmware.

Hablando de ficheros de configuración, para la RB750 también es posible descargarlo, incluso también es recomendable una vez tenemos una configuración que sabemos que funciona. Vamos a Files > Backup y se genera el fichero. Para descargarlo, nos conectamos por FTP a la RB y lo descargamos.

Y a partir de aquí, una vez funciona todo ya vamos a cargar el material.

Nota: para conectarnos a la RB estamos usando la ip 192.168.1.19, pero simplemente configurando la IP no podemos acceder a las IP 10. Para ello tenemos 2 opciones, o configurar la ruta por defecto a la 192.168.1.19 o añadir una ruta estática para indicarle que todas las ip 10 las vaya a buscar a la 192.168.1.19:

# route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.19

Para cualquier duda o aclaración, dejar un comentario.

Muchas gracias.

This entry was posted on dimecres, setembre 21st, 2011 at 15:00 and is filed under Guifi.net. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

« »