felixblanco.es

  • Aumentar fuente
  • Fuente predeterminada
  • Disminuir fuente
Home Técnicas Informáticas La fonera y dd-wrt

La fonera y dd-wrt

foneraEste artículo, también es un proyecto a largo plazo, como resumen abstracto digamos que quiero poner sobre la mesa las capacidades que ofrece esta combinación de router barato y firmware libre con linux por debajo. Realmente es algo excepcional ya lo quieras como simple punto de acceso wifi, como router, como repetidor, como firewall, como servidor ssh o para gestionar calidad del servicio.

En un principio estos son los temas que vamos a explorar:

  • Análisis del hardware: fonera, fonera+ y fonera 2.0N
  • ¿Por qué dd-wrt frente al firmware original fon?
  • Instalación de dd-wrt en la fonera.
  • Análisis y ejemplos de las posibilidades de dd-wrt

Fonera y fonera+

Estos dos routers son prácticamente idénticos y comparten las siguientes caracteríscitcas (estos datos se ven directamente en la página de estado que genera el firmware dd-wrt funcionando sobre este router):

  • 16 Megabytes de memoria RAM.
  • 8 Megabytes de memoria FLASH.
  • Procesador Atheros AR2315 a 183 MHz.
  • Interface wifi con posibilidad de gestionar varias redes wifi simultáneamente.
  • 18 dBm de potencia de salida sin contar ganancia de la antena.

La fonera+ con respecto a la fonera se diferencia en lo siguiente:

  • La fonera+ tiene 2 interfaces ethernet (marcados con los textos computer e internet), uno para conectar este router a la salida a internet y otro para el lado de nuestra red local. La fonera sólo uno, pensado para conectarse a la salida a internet, aunque podemos darle cualquier uso....
  • La fonera+ es físicamente más grande que la fonera, siendo esta última más cucona por su pequeño tamaño.
  • La fonera+ se alimenta con 7.5V y 1A, mientras que la fonera lo hace con 5V y 2A. La fonera por su pequeño tamaño y su mayor consumo se calienta malamente.
  • La fonera valía (digo valía porque acabo de entrar en www.fon.com y ya no está a la venta) 19.95 y la fonera+ vale 29.95.

He tenido ocasión de probar ambos modelos y la verdad es que por consumo y prestaciones (tener dos ethernet es muy interesante) merece la pena la fonera+.

Fonera 2.0N

Este router, parece ser que compatible con redes wifi N, al igual que los anteriores es un router neutro pero añade la posibilidad de pinchar con usb un almacenamiento externo y tiene incorporado un switch de 4 puertos + 1 entrada adicional ethernet para pincharla al acceso a internet. En los próximos días recibiré uno de estos routers, en parte gracias a la cortesía de un desarrollador del firmware de fon, que se ha tomado la molestia de escribirme para recomendarme el producto y hablarme de tú a tú de su visión de la filosofía de fon.

Resulta interesante que mediante su almacenamiento externo podamos hacer descargas desde internet con diversos medios sin necesidad de tener encendido nuestro ordenador, que seguro que consume mucha más electricidad que este pequeño router.

Aquí debo decir que había dado por supuesto que la inexistencia de firmwares alternativos haría que no se pudiera usar el router en toda su potencia, pero el nuevo firmware desarrollado por fon con la idea de que cualquiera pueda incluir nuevas funcionalidades en el mismo es algo digno de evaluar y debo retractarme de mi valoración inicial, dado que realmente todavía no he probado el router.

En cualquier caso si queremos comprar un router neutro que incluya un switch de 4 puertos y con capacidades para wifi N, no existe en el mercado un router más barato y que además permita meterle un almacenamiento usb externo. Lo probaré y comentaré impresiones.

¿Por qué dd-wrt frente al firmware original fon en fonera o fonera+?

Por dos razones objetivas:

  1. Fon en cierto modo posée tu fonera si lo dejas con el firmware original. Ésta se baja actualizaciones, vamos a pensar bien, por supuesto te interesa tener tu router actualizado, pero a mi personalmente no me hace gracia que fon decida lo que debe llegar a mi casa a un cacharro que he pagado yo y con el ancho de banda que también mantengo.
  2. La razón más convincente: el firmware de fon no permite gestionar todas las posibilidades de este router, ni siquiera dejándote acceso ssh al mismo, corriendo como corre un linux por sus venas.

¿Hay alguna razón por la que mantener el firmware de fon?

Pues sí, por supuesto que la hay. La filosofía de compartir tu conexión con todos aquellos que también hayan decidido compartir la suya es una idea tan práctica como noble. La forma más sencilla de hacer esto, es con el firmware de fon, aunque por supuesto también se puede hacer configurando un Hotspot de Fon bajo dd-wrt, pero requiere tiempo y ciertos conocimientos más o menos técnicos.

¿Por qué no meto en el saco de dd-wrt a la fonera 2.0N?

Pues por la sencilla razón de que no la he probado todavía y la voy a probar en breve. Hablaremos de ello, seguramente merezca la pena iniciar otro artículo para desentramar sus secretos.

Instalación de dd-wrt en la fonera y fonera+

Vamos al grano, que es lo que interesa, se pueden instalar muchos firmwares en los routers aunque lo más extendido es preguntarse ¿qué hago? ¿instalo OpenWrt o dd-wrt? Pues muy sencillo, tú verás, openwrt es como gentoo, mientras que dd-wrt es como ubuntu. Si te gusta hacerte las cosas a medida, eres hábil y tienes tiempo OpenWrt es lo que necesitas, si eres impaciente y quieres que aquello esté chutando en media hora con todas las florituras e interfaces gráficos para configurar fácil, dd-wrt es lo que quieres.

En los próximos días continuaré con el desarrollo: abrir ssh, abrir redboot y flashear el router todo ello a través del cable ethernet (sin necesidad de cable serie).

Adelantar que la fonera+ viene con redboot activado desde ethernet, aunque sólo 2 segundos, lo cual facilita enormemente el proceso de flasheo, pues podemos saltarnos los pasos de "abrir ssh" y "abrir redboot".

Recuperar el firmware original (sin actualizaciones)

Si disponemos de una fonera que ya ha sido usada es seguro que habrá bajado actulizaciones y no podremos ejecutar los siguientes pasos. Por ello es necesario resetear el router a su configuración firmware original y mantenerlo aislado de internet en los siguientes pasos (para evitar que baje una actualización y la intente aplicar). Basta mantener pulsado el botón de reset (bajo el router) durante 40 segundos. Tras esto deberíamos tener una versión de firmware inferior o igual a 0.7.1 r2, para las cuáles este procedimiento es válido.

Apertura de ssh en la fonera

El objetivo que se presigue es precisamente la apertura de redboot, que es un pequeño sistema operativo presente en los routers que permite entrar en un modo consola muy básico, para entre otras cosas sirve para cargar un nuevo firmware. Para ello este es un paso previo, no obstante abrir ssh en un router es algo que de por sí es sumamente interesante, por las posibilidades que nos da para el acceso remotos, el tunelado, etc., aunque quisiéramos mantener el firmware de fon.

En la fonera+ los pasos son idénticos, pero para flashear el firmware no es necesario, dado que como hemos dicho, el redboot ya está abierto durante 2 segundos en la versión de fábrica del firm.

Primer paso, nos conectamos a MyPlace e inyectamos código para habilitar una regla en el firewall que permite el paso por el puerto 22. Los siguiente scripts están pensados para que la fonera tenga la dirección 192.168.10.1, que es la que tiene por defecto (nos pedirá usuario y contraseña, "root" y "admin" respectivamente).



Segundo paso, arrancar el dropbear, el demonio que estará pendiente de las peticiones ssh.



Tercer paso, hacer los cambios permanentes aunque reiniciemos la fonera y evitar que ésta se descargue actualizaciones mientras la tenemos conectada a internet para habilitar el redboot. El usuario y contraseña para entrar por ssh es "root" "admin" respectivamente.

vi /etc/firewall.user
#(descomentamos la siguientes reglas (curiosamente están ya metidas)
iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT
iptables - A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT

Hacemos que el demonio ssh arranque el sólo con el arranque de la fonera:

mv /etc/init.d/dropbear /etc/init.d/S50dropbear

Por último evitar actualizaciones

vi /bin/thinclient
(comentamos la siguiente línea que es la última del fichero)
#/tmp/.thinclient.sh
(y añadimos al final este código)

#.- Don't let FON 'automagically' update 'our' router

if [ -s /tmp/.thinclient.sh ]; 
then

for f in /tmp/thin* ; do
:
done
if [ -f "$f" ]; then
if [ $(md5sum /tmp/.thinclient.sh |
cut -d ' ' -f 1) != $(md5sum `ls $f` | cut -d ' ' -f 1) ] ; then

cp /tmp/.thinclient.sh
/tmp/thinclient-$(date '+%Y%m%d-%H%M')

fi
else
cp /tmp/.thinclient.sh
/tmp/thinclient-$(date '+%Y%m%d-%H%M')

fi
fi

Hacemos un reboot y comprobamos que podemos entrar por ssh, desde MyPlace

Habilitar redboot

Las instrucciones completas para habilitar redboot se encuentran aquí, una fantástica recopilación que sólo tiene un pequeño error relacionado con los mtd, fácilmente identificable haciendo un ls a la hora de encontrarnos con una respuesta del sistema inesperada al introducir uno de los comandos sugeridos. Para iniciar este proceso, estamos conectados a MyPlace y en sesión de ssh contra la fonera y conectamos el ethernet de la fonera a una conexión de internet (puede que haya que configurar la fonera con direccionamiento estático, a mi al menos no me tiraba el DHCP), pues tendremos que descargarnos algo desde la misma. La fonera necesita que la conexión a internet esté disponible cuando arranca, en caso contrario no va a funcionar, así que la reiniciamos con el cable ethernet ya metido. La secuencia de comandos a introducir vía el terminal ssh de la fonera son los siguientes:

root@OpenWrt:~# cd /tmp
root@OpenWrt:~# wget http://fonera.info/camicia/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
Connecting to fonera.info[62.81.199.144]:80
openwrt-ar531x-2.4-v 100% |*************************************|   512 KB    00:00 ETA:00 ETA
root@OpenWrt:~# md5sum openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
38109a348942c00f633eacbf423691b5  openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
root@OpenWrt:~# mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
Unlocking vmlinux.bin.l7 ...
Erasing vmlinux.bin.l7 ...
Writing from openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma to vmlinux.bin.l7 ...  [w]
root@OpenWrt:~# sync; reboot

Indicar que el comando mtd -e ... tarda un rato.

root@OpenWrt:~# cd /tmp
root@OpenWrt:~# cp /dev/mtd/5 /tmp/mtd5
root@OpenWrt:~# cp /dev/mtd/6 /tmp/mtd6
root@OpenWrt:~# wget http://fonera.info/camicia/out.hexConnecting to fonera.info[62.81.199.144]:80
out.hex              100% |*************************************|  4096       00:00 ETA:-- ETA
root@OpenWet:~# md5sum out.hex
d5a5ee5817da231684c6198801b5cb1f  out.hex

Y por último:

root@OpenWrt:~#mtd erase "FIS directory"
Unlocking FIS directory ...
Erasing FIS directory ...
root@OpenWrt:~#cat mtd5 >/dev/mtd/5
root@OpenWrt:~#cat out.hex >/dev/mtd/6
root@OpenWrt:~#sync
root@OpenWrt:~#md5sum out.hex /dev/mtd/6 mtd5 /dev/mtd/5
d5a5ee5817da231684c6198801b5cb1f  out.hex
d5a5ee5817da231684c6198801b5cb1f  /dev/mtd/6
2d5c82c2a7785e65640199987000cee5  mtd5    
2d5c82c2a7785e65640199987000cee5  /dev/mtd/5

Al resetear tendremos habierto 10 segundos el redboot en la ip 192.168.1.254, puerto 9000.

Flashear dd-wrt vía ethernet

La forma de entrar al interfaz de flasheo de la fonera es mediante telnet al puerto 9000 e IP en la que la fonera escucha nada más arrancar (pocos segundos después de recibir alimientación). Esta IP es 192.168.1.254.  Una vez determinada, podemos utilizar putty como aplicación para el telnet y tras ello proceder como sigue:

  1. Necesitamos que en el ordenador desde el que conectamos directamente a la fonera con un cable ethernet (sin routers ni switches por el medio para evitar problemas) tenga un servidor de trivial ftp, algo sencillo de encontrar googleando. En el directorio del trivial ftp pondremos el fichero para flashear.
  2. Encendemos la fonera y en cuanto veamos que hay respuesta de la misma (se enciende el led ethernet y responde a ping (puede ser útil mantener un ping abierto para comprobar la respuesta), conectamos a la IP de la fonera y puerto 9000 mediante algún cliente telnet. Ojo que en la fonera +, tal como viene de fábrica sólo hay un margen de 2 segundos en los que se puede hacer esto.
  3. Especificamos la IP de la fonera y la IP del servidor de trivial ftp con este comando: ip_address -l 192.168.1.254/24 -h 192.168.1.11. Ojo, si cambiamos la IP de la fonera a otra distinta de la que hemos utilizado para entrar en el redboot (puerto 9000) perderemos la conexión. Como se ve la opción -l (local) especifica la ip del bicho y -h (host) la del equipo con trivial ftp
  4. Iniciamos el proceso de flasheo: fis init
  5. Cargamos la imagen del firmware en memoria ram: load -r -v -b 0x80041000 linux.bin
  6. Flasheamos (tarda al menos 20 minutos, no interrumpir ni tocar nada): fis create linux
  7. Configurar las opciones de arranque (que hará a partir de ahora la fonera cuando reciba alimentación): fconfig -d.A continuación se muestra lo que debemos introducir tras el fconfig -d:
fconfig -d
enter the bootscript:
fis load -l linux
exec
Boot script timeout (1000ms resolution): 10
Use BOOTP for network configuration: false
Gateway IP address:
Local IP address: 192.168.1.254
Local IP address mask: 255.255.255.0
Default server IP address:
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> reset

 

Acabo de probar el proceso completo con una fonera que voy a pasarle a un amiguete para que la utilice como repetidor de su propia wifi en una casa con mucho pasillo y todo perfecto, si alguien detecta algún problema que no dude en preguntar. Saludos.

Última actualización el Miércoles, 15 de Septiembre de 2010 12:18  
Comentarios (2)
2 Miércoles, 19 de Mayo de 2010 09:52
Pues hoy mismo no es posible instalar dd-wrt en foneras 2.0n. Si entras aquí:
http://www.dd-wrt.com/site/support/router-database
y pones "fonera" para buscar verás que la 2.0n aparece como wip (work in progress), todavía no está desarrollado.
Lo mejor que puedes hacer es instalar el firmware 2.3.6 DEV de fon para seguir teniendo acceso ssh y disponer de la versión más estable. Por otro lado también puedes instalar el torrent versión 1.92. Visita el foro en habla inglesa y encontrarás muchos más recursos interesante que en el foro español:
boards.fon.com

Saludos.
1 Martes, 18 de Mayo de 2010 15:41
Hola mi fonera es la 2.0n. puedo entrar con ssh pero no se como flasherala y ponerle dd-wrt. Me puedes ayudar?

Agregue su comentario

Tu Nombre:
Comentario:
  Imagen, conteniendo la palabra secreta
Palabra Secreta:

Comentarios, categoría: "Informáticas"

15 Viernes, 30 de Diciembre de 2011 16:47
Monzisez
No estaría mal que terminaras el post, lo necesito bastante urgente, ahora mismo lo utilizo desde Ubuntu con modeswitch pero no estaría demás poder utilizarlo en la fonera ;)
14 Miércoles, 12 de Octubre de 2011 20:50
Félix
Gracias Daniel por tu sugerencia, no prometo que pueda meterme con ello ahora, estoy picado con varias historias y tengo la pila de cosas pendientes hasta arriba. Un saludo, me alegro de saber de ti.