Análisis_ASUS_RT

Anuncio
ASUS Tester Networking
ASUS RT-AC87U
Álvaro Fernández Rojas
Index
1
2
3
4
Introducción .............................................................................................................. 3
1.1
Unboxing ........................................................................................................... 4
1.2
Red doméstica .................................................................................................. 12
Firmware oficial (ASUSWRT)............................................................................... 14
2.1
Dumb Access Point .......................................................................................... 14
2.2
Router Principal ............................................................................................... 17
2.3
Otras funcionalidades ...................................................................................... 19
2.3.1
Media Server............................................................................................. 19
2.3.2
Download Master ..................................................................................... 19
Firmwares alternativos ........................................................................................... 21
3.1
ASUSWRT-Merlin .......................................................................................... 21
3.2
DD-WRT ......................................................................................................... 22
3.3
OpenWrt........................................................................................................... 23
3.3.1
Problemas identificados en OpenWRT .................................................... 23
3.3.2
Documentación en OpenWRT.................................................................. 26
3.3.3
Movistar FTTH (WAN+VOIP+IPTV) en OpenWRT ............................. 26
Conclusiones........................................................................................................... 28
2
1 Introducción
En este documento realizaré el análisis del ASUS RT-AC87U como participante del
ASUS Tester Networking organizado por RedesZone y ASUS:


ASUS Tester Networking: http://www.redeszone.net/2015/05/04/asus-testernetworking/
Participantes ASUS Tester: http://www.redeszone.net/2015/05/11/participantesasus-tester-networking/
A modo de introducción creo que es conveniente que me presente y os cuente algo
sobre mí. Mi nombre es Álvaro Fernández Rojas y tengo un Grado en Ingeniería
Informática por la UC3M (Universidad Carlos III de Madrid) y un Máster en Ingeniería
Informática a punto de finalizar (a falta del proyecto), también por la UC3M.
Recientemente he comenzado una beca en Airbus Defence and Space que también lleva
un Máster asociado, por lo que como comprenderéis voy algo pillado de tiempo, aunque
he intentado dar el máximo en las dos semanas de plazo de las que disponíamos para
realizar el análisis.
3
1.1 Unboxing
A continuación podéis encontrar algunas imágenes que hice del unboxing del router.
Como podréis observar ASUS ha cuidado hasta el último detalle, hasta en el embalaje.
De todas formas, os recuerdo que en RedesZone hay disponible un análisis del router
bastante completo, en el cual podéis encontrar muchas más imágenes:
http://www.redeszone.net/asus/rt-ac87u-ac2400/
4
5
6
7
8
9
10
11
1.2 Red doméstica
Con el fin de entender mejor las configuraciones descritas en los siguientes apartados,
es necesario conocer la distribución actual de mi red doméstica.
Como una imagen vale más que mil palabras a continuación podéis observar la
distribución de mi red doméstica:
12
En el salón podemos encontrar el router principal, un TP-Link Archer C7. Dicho router
tiene instalado OpenWRT en vez del firmware oficial de TP-Link y está configurado
con mi script de configuración de la fibra óptica de Movistar que podéis encontrar en el
foro de SeguridadWireless: http://foro.seguridadwireless.net/openwrt/(tutorial)movistar-ftth-con-openwrt/.
Sin embargo, se trata de una configuración distinta a la habitual, puesto que la LAN
(Local Area Network) está separada en dos subredes distintas, una para los dispositivos
habituales (PCs, tablets, smartphones…) y otra para Movistar TV, en la que sólo
encontramos los tres decodificadores de la IPTV. De esta forma evito que otros
dispositivos reciban el tráfico multicast de la IPTV y consigo minimizar el tráfico
multicast. Para llevar a cabo dicha configuración, he asignado la VLAN 1 a la LAN de
los PCs y la VLAN 4 a la LAN de los decodificadores, puesto que las VLANs 2, 3 y 6
son necesarias para el Triple Play de Movistar (IPTV, VOIP, WAN).
Mi casa dispone de una caja de telecomunicaciones donde se reparten cables a cada una
de las habitaciones de teléfono y televisión. Como había suficiente espacio decidí añadir
un switch gestionable (TP-Link SG108E) que reparte cables de red (UTP CAT 5E) a
cada una de las habitaciones en las que me interesa tener cable de red en lugar de WiFi.
Por tanto el Archer C7 está conectado al switch con la VLAN 1 como untagged y la
VLAN 4 como tagged.
Como podréis observar es muy importante que el switch sea gestionable, puesto que en
la cocina es necesario cambiar la VLAN por defecto a la 4 (untagged), ya que
únicamente hay un decodificador de Movistar TV. Sin embargo, en la habitación 2 es
necesario un router (ZyXEL P870HW-51a_v2) más que separe ambas VLANs de forma
que la Raspberry esté conectada a la VLAN 1 y el decodificador a la VLAN 4. Dicho
router tiene instalado OpenWRT y es más que suficiente para gestionar una Raspberry y
un decodificador que nunca van a funcionar al mismo tiempo, ya que están conectados a
la misma TV. El WiFi de este router es b/g, por lo que se encuentra desactivado.
Por último, en la habitación 1 no es necesario disponer de la VLAN 4, ya que no hay
ningún decodificador, por lo que una de las posibles configuración que podemos darle
al RT-AC87U es de Dumb AP en dicho punto. El router de esta habitación es un TPLink WDR4300 y proporciona un segundo punto de acceso WiFi para extender la
cobertura a toda la casa, así que en este caso sí es importante disponer de un router
potente. En esta habitación, además de tener conectados un ordenador de sobremesa y
un portátil, podemos encontrar un sobremesa con Ubuntu Server que sirve contenidos
por DLNA a diferentes dispositivos de la red como la Raspberry o la Smart TV de
Samsung, entre otras funciones.
13
2 Firmware oficial (ASUSWRT)
Yo siempre compro routers que tengan soporte OpenWrt debido a la gran variedad de
aplicaciones y utilidades que se les puede instalar, pero la verdad es que me ha
sorprendido el firmware de Asus, puesto que lleva incluidas multitud de funcionalidades
con las que muchos competidores directos no pueden ni soñar, puesto que ASUSWRT
está muy por encima, dado que salta a la vista que se ha invertido tiempo y mucho
esfuerzo en ofrecer un firmware completo, funcional y amigable al usuario.
2.1 Dumb Access Point
En esta configuración he sustituido el TL-WDR4300 por el RT-AC87U para evaluar el
rendimiento como Dumb AP (Punto de Acceso “Tonto” – se conoce como tal porque no
gestiona la red).
Esta es la configuración más sencilla de realizar con el firmware oficial, puesto que no
requiere ninguna configuración de VLANs ni de interfaces adicionales. Por esta misma
razón es muy útil para probar el rendimiento del WiFi sin que otros factores alteren el
resultado.
El proceso de configuración es bastante sencillo y apenas hay que configurar nada por
nuestra cuenta, puesto que nos lo va pidiendo todo el firmware oficial:
14
15
Como podemos observar en las pruebas expuestas a continuación, se ha alcanzado un
rendimiento de unos 670 Mbps para las pruebas realizadas mediante UDP y de casi 600
Mbps para las pruebas realizadas mediante TCP por WiFi en la banda de 5GHz, lo que
no está nada mal.
El equipo utilizado para realizar estas pruebas es un MacBook Pro Late 2013 15’’.
./iperf -c 192.168.1.8 -P 1 -i 5 -t 20
-----------------------------------------------------------Client connecting to 192.168.1.8, TCP port 5001
TCP window size: 129 KByte (default)
-----------------------------------------------------------[ 4] local 192.168.1.21 port 50197 connected with 192.168.1.8 port 5001
[ ID] Interval
Transfer
Bandwidth
[ 4] 0.0- 5.0 sec 257 MBytes 431 Mbits/sec
[ 4] 5.0-10.0 sec 374 MBytes 627 Mbits/sec
[ 4] 10.0-15.0 sec 375 MBytes 629 Mbits/sec
[ 4] 15.0-20.0 sec 374 MBytes 628 Mbits/sec
[ 4] 0.0-20.0 sec 1.35 GBytes 579 Mbits/sec
./iperf -c 192.168.1.8 -P 1 -i 5 -u -b 1300m -t 20
-----------------------------------------------------------Client connecting to 192.168.1.8, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 9.00 KByte (default)
-----------------------------------------------------------[ 4] local 192.168.1.21 port 55716 connected with 192.168.1.8 port 5001
[ ID] Interval
Transfer
Bandwidth
[ 4] 0.0- 5.0 sec 421 MBytes 706 Mbits/sec
[ 4] 5.0-10.0 sec 416 MBytes 697 Mbits/sec
[ 4] 10.0-15.0 sec 422 MBytes 708 Mbits/sec
[ 4] 0.0-20.0 sec 1.63 GBytes 702 Mbits/sec
[ 4] Sent 1193387 datagrams
[ 4] Server Report:
[ 4] 0.0-20.0 sec 1.59 GBytes 681 Mbits/sec 0.010 ms 34010/1193386 (2.8%)
[ 4] 0.0-20.0 sec 1 datagrams received out-of-order
16
2.2 Router Principal
En esta configuración he sustituido el TL-ArcherC7 por el RT-AC87U con el fin de
evaluar el rendimiento como router principal.
En este apartado he de decir que no he sido capaz de aprovechar el Triple Play de
Movistar con este router y el firmware oficial. En mi caso dispongo de la configuración
antigua de Imagenio, por lo que los manuales existentes en el foro de ADSLZone no me
valen, y no he podido configurarlo para que funcionara la IPTV. En cuanto a la VOIP,
no he tenido tiempo de probarla, y para mi es más importante la televisión, así que al
ver que no funcionaba la IPTV, he dejado la VOIP de lado.
En las siguientes imágenes podéis comprobar que el proceso de configuración del router
es bastante intuitivo y guiado.
17
Por último, si sólo tenemos contratado internet con Movistar y no necesitamos
configurar ni VOIP ni IPTV, el RT-AC87U es un gran router, puesto que tiene
hardware de sobra para soportar tanto la velocidad actual de la fibra de Movistar como
múltiples subidas que puedan producirse en el futuro.
Por el contrario, si queremos disfrutar del resto de servicios como VOIP o IPTV, aún
podemos utilizar éste router como secundario con el fin de obtener un gran rendimiento
WiFi y esperar a que ASUS haga compatible su firmware con dichos servicios.
18
2.3 Otras funcionalidades
2.3.1 Media Server
En el caso del media server lo probé con la idea de aprovechar la funcionalidad sobre la
compatibilidad con iTunes. Sin embargo, he de decir que me no es posible reproducir
ningún contenido desde iTunes, ya que aunque detecta algunas canciones no deja
reproducirlas.
Lo más probable es que el firmware tenga una versión obsoleta de forked-daapd que no
sea compatible con la última versión disponible de iTunes (suponiendo que usen forkeddaapd como media server).
En cualquier caso se agradecen las funcionalidades adicionales, ya que con el móvil y la
aplicación proporcionada por ASUS sí he sido capaz de acceder a dichos contenidos.
2.3.2 Download Master
La verdad es que me ha impresionado para bien el hecho de que ASUS haya integrado
en su firmware un gestor de descargas “universal”, puesto que es algo que se echa de
menos en casi todos los routers, ya que esta funcionalidad, junto con un sistema de
archivos en red tipo Samba o NFS y un gestor de contenidos multimedia tipo DLNA
convierten nuestro router en un mini NAS al que a muchas personas les puede resultar
más que suficiente.
19
En mi caso lo he probado muy por encima, pero debo decir que cumple su función
bastante bien.
20
3 Firmwares alternativos
3.1 ASUSWRT-Merlin
Este firmware es una modificación del firmware oficial creada a partir del código fuente
liberado por ASUS. Es muy importante remarcar la importancia de liberar el código
fuente del firmware de los routers con el fin de ayudar a usuarios expertos y darles la
posibilidad de realizar modificaciones si lo consideran necesario, y esto es algo que
muchos fabricantes aún no han entendido, por lo que he de felicitar a ASUS por el
esfuerzo que esto conlleva.
La verdad es que apenas he podido probar este firmware, pero si alguien quiere conocer
las funcionalidades extra que aporta sobre el firmware original, puede dirigirse a la
siguiente página: http://asuswrt.lostrealm.ca/features
Sin embargo, me gustaría resaltar que algunas de las funcionalidades introducidas en un
principio por este firmware alternativo han sido añadidas por ASUS al firmware oficial
posteriormente, por lo que hay que reconocer también la labor de los desarrolladores de
este firmware.
21
3.2 DD-WRT
Este firmware nació como una modificación del firmware oficial del Linksys WRT54G,
tal y como ha surgido el ASUSWRT-Merlin. DD-WRT dispone de acceso a
documentos y código fuente propietario de algunos fabricantes gracias a un acuerdo
NDA (Non Disclosure Agreement), lo que les facilita la implementación del soporte
para nuevos routers y funcionalidades. De esta forma no dependen de drivers open
source y el soporte de ciertas características como el WiFi es más completo.
En una de las páginas de ASUS aparece reflejado que el RT-AC87U está soportado en
DD-WRT: http://www.asus.com/us/site/routers/DD-WRT/. Sin embargo, después de
haberlo probado he de decir que el soporte a día de hoy está muy verde, ya que el WiFi
de 5GHz deja de funcionar en el momento en que se realizan cambios básicos en la
configuración del firewall y de las VLANs. Por otro lado, es bastante difícil configurar
las VLANs puesto que existe algún fallo y al mínimo cambio el router deja de
responder, siendo necesario borrar la configuración del mismo y empezar de cero.
Es importante destacar que DD-WRT utiliza los drivers del código fuente original de los
routers que soporta, por lo que realizar modificaciones al firmware no es nada sencillo y
el código está poco documentado y la curva de aprendizaje es bastante alta. Por tanto,
me es imposible intentar mejorar el soporte de este router para este firmware en un
tiempo razonable. Sin embargo, no creo que los desarrolladores oficiales de DD-WRT
tarden mucho en mejorarlo hasta alcanzar un grado de funcionalidad similar al firmware
oficial (hablando en términos de funcionamiento básico, obviamente DD-WRT dispone
de muchos añadidos que no están presentes en el firmware oficial).
22
3.3 OpenWrt
Al igual que DD-WRT, este firmware nació como una modificación del firmware
oficial del Linksys WRT54G. Sin embargo, a diferencia de DD-WRT, OpenWRT centra
sus esfuerzos en añadir funcionalidades siempre con la filosofía del open source,
llegando incluso a reimplementar drivers propietarios como open source si es necesario
y se da mucha importancia a hacer upstreaming a Linux (mandar todo lo incorporado en
el repositorio relacionado con el kernel al correspondiente maintainer en Linux).
Por otro lado, he de decir que llevo bastante tiempo realizando contribuciones a
OpenWRT en las que he añadido soporte para diferentes routers (en su mayoría de ISPs
españoles, como por ejemplo el Comtrend AR-5381u de Jazztel o el Comtrend WAP5813n de Movistar). Algunos de los routers para los que hemos añadido soporte en el
foro
de
SeguridadWireles
están
disponibles
en
este
hilo:
http://foro.seguridadwireless.net/openwrt/(indice)-hilos-relevantes-de-openwrt/.
Por
tanto, dada mi experiencia con OpenWRT sí puedo dedicar parte de mi tiempo a
mejorar el soporte del RT-AC87U.
3.3.1 Problemas identificados en OpenWRT





UART sólo funcional como bootconsole. El router no inicializa correctamente el
puerto serie una vez finalizada la consola de inicio:
o Upstream: https://dev.openwrt.org/changeset/45690
LEDs no definidos en el DTS del router:
o Upstream: https://dev.openwrt.org/changeset/45691
Imposible establecer comunicación con el router a través de Ethernet:
o Upstream: https://dev.openwrt.org/changeset/45692
Particiones de la NAND no detectadas correctamente, de forma que ciertas
características del firmware oficial no funcionaban al restaurar el firmware
oficial después de haber instalado OpenWRT:
o Upstream (hack temporal): https://dev.openwrt.org/changeset/45694
o Mis parches:
 http://patchwork.ozlabs.org/patch/473015/: permite invalidar y
sustituir el driver por defecto de las particiones de la NAND
desde el DTS.
 http://patchwork.ozlabs.org/patch/473018/: añade soporte para
cargar las particiones desde el DTS al driver bcm47xxpart.
 http://patchwork.ozlabs.org/patch/473017/: añade las particiones
al DTS del RT-AC87U.
o Este problema es algo más complicado y mi solución no ha sido aceptada
directamente por el responsable de bcm53xx en OpenWRT. No obstante,
se está estudiando y como medida provisional para no perder la partición
se ha añadido un hack temporal que será eliminado al conseguir una
solución válida para todas las partes implicadas.
WiFi de 2.4GHz no funcional ya que los drivers open source disponibles no
tienen soporte para el BCM4360.
o Este es un problema que viene de lejos, puesto que Broadcom no dedica
esfuerzo alguno al mantenimiento de un driver open source para el WiFi.
Por tanto, los únicos drivers existentes son b43 (bastante anticuado y
sólo soporta modo b/g) y brcmsmac (es más reciente y soporta el modo
23

N, pero no ha sido actualizado y no tiene soporte para los chipsets más
recientes).
o Si Broadcom dedicara más tiempo al mantenimiento de un driver open
source, muchos routers que disponen de chipsets de Broadcom ganarían
mucho atractivo para firmwares estilo OpenWRT que sólo utilizan
drivers y aplicaciones open source.
WiFi de 5GHz no funcional puesto que es necesario proporcionar el bootloader
y el firmware, entre otros archivos, al procesador independiente de Quantenna
que lo controla:
o Éste es el problema más importante de todos los que me he encontrado
hasta el momento, ya que para arreglarlo es necesario dedicarle bastante
esfuerzo.
o Para entender el alcance del problema es necesario conocer el hardware
del router:
o Como podemos observar en la imagen, 4 de los 5 puertos del router están
conectados directamente al switch principal del router (BCM53012). El
último puerto no está conectado directamente al switch principal del
router, sino que está conectado al switch secundario (RTL8211E) del
Quantenna. Esta configuración del hardware es precisamente la que
permite a ASUS ofrecer la posibilidad del Teaming Port con los puertos
1 y 2 de la LAN. Sin embargo, esta configuración tiene un
inconveniente, y es que si el Quantenna no funciona el puerto LAN 1
tampoco (tal y como está ahora mismo el soporte en OpenWrt).
o ¿Y por qué no funciona el Quantenna si tiene su propia flash y RAM?
¿No debería ser independiente? Pues no, no funciona porque la flash de
la que dispone es muy limitada y carga su bootloader y su firmware por
TFTP desde el BCM4709. Una vez que el BCM4709 completa el
24
arranque establece una dirección IP secundaria en el bridge de la LAN
(1.1.1.1/24) y arranca un servidor TFTP que contiene, entre otros, el
bootloader y el firmware para que el Quantenna arranque. Por último,
configura el GPIO 8 del BCM4709 como salida actuando de interruptor
del Quantenna, de modo que si la salida es positiva, arranca el
Quantenna y si es negativa lo apaga.
o Para implementar todo esto en OpenWRT dispongo de los siguientes
parches a modo de prueba de concepto, aunque serán necesarias
bastantes modificaciones para que sean aceptadas en el repositorio oficial
de OpenWRT:
 Override del puerto 5 del switch principal para permitir la
configuración con el SoC del Quantenna:
https://github.com/openwrtes/openwrt/commit/6a8b95d6a5a3de11ba8eb6f7c176f5aa411a40
69
 GPIO 8 exportado como un LED que por defecto está encendido
para que el Quantenna también arranque al completar el arranque
del BCM4709:
https://github.com/openwrtes/openwrt/commit/ecf04dd3cb9c71e0307b24b97561b0b8be83b
04d
 Nuevo paquete con el bootloader y el firmware del Quantenna
(extraído del código fuente proporcionado por ASUS):
https://github.com/openwrtes/openwrt/commit/3a704b393c50502fe8fa223ce117dbfef55d51
76
 Nuevo paquete con la librería y las utilidades necesarias para
configurar el Quantenna remotamente desde el BCM4709
(extraído del código fuente proporcionado por ASUS). Este
paquete también configura el servidor TFTP y añade la dirección
IP secundaria para comunicarse con el Quantenna.
https://github.com/openwrtes/openwrt/commit/9da5d09368cc694a4a0eaf66b7f3b825dc4aa1
65
 Añadido un nuevo profile para el ASUS RT-AC87U que incluye
los paquetes que acabo de mencionar:
https://github.com/openwrtes/openwrt/commit/0c5c8eb04dd3f3fae77795af5c0f8cf559ce6f5c
o Por último, cabe destacar que con esto no se puede configurar
directamente el WiFi de 5GHz con OpenWRT, pero establece la base
necesaria para que sea posible. La prioridad ahora mismo es conseguir
que acepten dicha base en el repositorio oficial y una vez que se consiga
ese objetivo veré cómo utilizar la librería proporcionada en el código
fuente para configurar el WiFi desde el BCM4709 (el problema es que
no existe documentación y hay que hacerlo mirando código del
proporcionado por ASUS o el presente en DD-WRT).
25
3.3.2 Documentación en OpenWRT
Toda la información anteriormente expuesta la he documentado también en la Wiki de
OpenWRT: http://wiki.openwrt.org/toh/asus/rt-ac87u
3.3.3 Movistar FTTH (WAN+VOIP+IPTV) en OpenWRT
Gracias al tiempo dedicado a mejorar el soporte del router en OpenWRT, he podido
compilar un firmware con todo lo necesario para hacer funcionar el Triple Play de la
fibra óptica de Movistar, añadiendo soporte para el ASUS RT-AC87U en la versión r19
de mi script de configuración disponible en el foro de SeguridadWireless:
http://foro.seguridadwireless.net/openwrt/(tutorial)-movistar-ftth-con-openwrt/
Gracias al control que ofrece OpenWRT sobre las VLANs he sido capaz de sustituir el
Archer C7 por el RT-AC87U como router principal, algo que no había sido capaz de
hacer con ninguno de los firmwares anteriormente expuestos.
26
27
4 Conclusiones
Personalmente creo que el RT-AC87U es un router muy potente y con muchas
posibilidades. Sin embargo, el hecho de no ser posible configurarlo para el Triple Play
de la fibra óptica de Movistar es un poco decepcionante para un router de semejantes
características. Aun así, no tengo ninguna duda en recomendar el router para todos
aquellos que no necesiten dicha funcionalidad, puesto que únicamente tengan
contratado internet, sin VOIP ni IPTV, o que quieran utilizarlo como punto de acceso
junto a otro router que sí les aporte dicha funcionalidad, ya que el rendimiento tanto por
cable como por WiFi es extremadamente bueno.
Por otro lado, con respecto al soporte en OpenWRT he de decir que no sólo es necesario
dedicar tiempo a las pruebas y al soporte de todas las funciones del router, sino que
conseguir que acepten dichas modificaciones en el repositorio oficial de OpenWRT
también requiere tiempo y esfuerzo. No obstante, aunque se haya cumplido el plazo
para realizar el análisis seguiré intentado mejorar el soporte en mi tiempo libre.
Es una verdadera lástima que Broadcom no dedique el tiempo que sí dedican otras
empresas como Qualcomm Atheros o Marvell a proporcionar drivers Open Source que
estén continuamente actualizados y dando soporte para el último hardware disponible,
ya que disponer de WiFi en firmwares como OpenWRT para este router lo convertiría
en un dispositivo con infinitas posibilidades.
Por último, espero que hayáis disfrutado con mi análisis del router y espero haber
cumplido vuestras expectativas. Sin embargo, si alguien tiene alguna sugerencia o duda
intentaré atenderla cuando disponga de tiempo.
28
Descargar