Motivación

Tenemos en casa una cobertura inalámbrica muy maja que nos da acceso a guifi.net (o a internet), pero siempre hay algún recoveco de la casa donde la señal Wifi llega muy baja. Una habitación alejada, la buhardilla, la caseta del perro, etc. ¿Sería posible hacer llegar allí la cobertura inalámbrica sin tener que tirar cable? Sí que se puede.

Requisitos: OpenWRT

El tutorial se basa en la configuración personal realizada sobre un router TP-LINK WR740N (unos 15 euros), al que le hemos puesto el último firmware OpenWRT. Tal vez funcione con otros firmwares y con otro hardware, pero este tutorial no los cubre.

El firmware OpenWRT utilizado es la ultimísima versión de OpenWRT, attitude adjustment, actualmente en fase beta pero que funciona perfectamente.

A modo de referencia, decir que el firmware OpenWRT que tenemos que flashear es el que corresponde a la arquitectura ar71xx, de la versión correspondiente a nuestro router WR740N (normalmente la v4 a no ser que el router sea muy antiguo), para particiones squashfs, y si vamos a flashearlo de cero, que es lo que os recomiendo, la versión factory. Si cumplís esos requisitos, el archivo que deberíais bajaros se parecera a éste: http://downloads.openwrt.org/attitude_adjustment/12.09-beta/ar71xx/generic/openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-factory.bin

Lo que vamos a conseguir

Al router le vamos a aplicar una configuración en la cual, sin tener que enlazarlo por cable a la red casera (únicamente por wifi), se conectará como cliente a nuestra red wifi principal, y repetirá esa señal a otras ubicaciones de la casa donde no llegaba. Es decir, modo repetidor. El servidor DHCP seguirá estando en el router principal, pero el SSID del nuevo router será diferente.

La receta

Partimos de la base que ya tenemos el router configurado a la última versión de OpenWRT. Lo primero que haremos será entrar al router y enlazarlo como cliente a nuestra red Wifi principal. Es conveniente también cambiarle la constraseña de root. Os pongo unos pantallazos de guía ya que todo esto se puede realizar desde el interfaz web.

Sin explicarlo muy en detalle, vamos a la seccion Network, Wifi, y para nuestra radio0 hacemos un scan para ver las señales disponibles. Cuando veamos la señal de nuestra red pulsamos el botón Join Network, ponemos la contraseña de acceso al wifi casero y le damos a guardar. Ya tenemos el router conectado como cliente a nuestra red.

Adicionalmente (última captura), yo configuraría la red local (los 4 puertos ethernet del router) con un segmento de red diferente del de la red principal, para que no entre en conflicto. Por ejemplo, si nuestra red principal es la 192.168.1.0/24 y el router tiene la IP 192.168.1.1, a nuestro router repetidor lo pondremos en la red 192.168.2.0/24, con la IP 192.168.2.1. Esa IP podremos accederla si conectamos un cable al switch de 4 puertos del router.

Seguidamente, entramos al router por SSH e instalamos el paquete relayd:

ssh root@192.168.1.1
root@192.168.1.1's password:

BusyBox v1.19.4 (2012-08-19 15:43:58 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 ATTITUDE ADJUSTMENT (Bleeding Edge, r33210)
 -----------------------------------------------------
  * 1/4 oz Vodka      Pour all ingredients into mixing
  * 1/4 oz Gin        tin with ice, strain into glass.
  * 1/4 oz Amaretto
  * 1/4 oz Triple sec
  * 1/4 oz Peach schnapps
  * 1/4 oz Sour mix
  * 1 splash Cranberry juice
 -----------------------------------------------------
root@OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/Packages.gz.
Inflating http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/attitude_adjustment.
root@OpenWrt:~# opkg install relayd
Installing relayd (2011-10-24-4e8f1fa4ca2b176500362843a9e57ea5abd4b7a3) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/relayd_2011-10-24-4e8f1fa4ca2b176500362843a9e57ea5abd4b7a3_ar71xx.ipk.
Configuring relayd.
root@OpenWrt:~#

Una vez instalado, lo habilitamos en el arranque:

root@OpenWrt:~# /etc/init.d/relayd enable

Ahora viene el paso más delicado, y que deberemos hacer en línea de comandos. Estableceremos un doble modo de funcionamiento inalámbrico, uno como cliente a nuestro AP (ya está configurado), y otro como AP para los clientes de este nuevo router. Para ello, utilizaremos el DHCP del router principal, de manera que las IP's que asignará nuestro nuevo router serán de la misma subred que el router principal.

Veamos cómo hacerlo.

1. Editamos el archivo /etc/config/wireless

Este archivo lo tenemos casi configurado con la config inalámbrica en modo cliente que hemos aplicado vía web, sólo nos falta añadir al final del archivo unas líneas que indiquen que el router también funciona en modo wifi AP:

config wifi-iface
        option device 'radio0'
        option mode 'ap'
        option ssid 'nuevo-router-casero'
        option encryption 'psk2'
        option key 'micontraseñamuysecreta'
        option network 'lan'

En este caso hemos creado una nueva sección de wifi en modo AP, donde los clientes deberán conectar con seguiridad WPA2/PSK, cuyo SSID sera nuevo-router-casero, y la contraseña será micontraseñamuysecreta. Todo esto último se puede cambiar al gusto.

2. Editamos el archivo /etc/config/network

En este archivo debemos añadir la configuración necesaria para que se haga relay de tráfico de un interfaz a otro. Añadimos al final estas líneas:

config interface 'stabridge'
        option 'proto' 'relay'
        option 'network' 'lan wwan'

3. Editamos el archivo /etc/config/dchp

El dhcp que vamos a utilizar es el del router principal, así que en este archivo lo que haremos será deshabilitarlo todo. El archivo se ha de quedar así:

config dhcp lan
        option interface        lan
        option start    100
        option limit    150
        option leasetime        12h
        option ignore 1

config dhcp wan
        option interface        wan
        option ignore   1

Y ya está, si todo ha ido bien reiniciamos el router, lo ponemos en la ubicación que habíamos pensado y todos los clientes que conecten al nuevo SSID tendrán conexión con mucha mejor señal que antes.


comments powered by Disqus