Foro
Buenas tardes Theliel,
Muchas gracias por la dedicación, el interés y (muy importante) el tiempo que dedicas a estos asuntos de redes, comunicaciones y TI, en general. Debo decir que debido a diversas cuestiones he tenido que estar alejado durante unos días.
Quiero decirte que, en cualquier caso, he instalado el firmware de Asuswrt-Merlin correspondiente al router Asus RT-AC5300 que estoy usando.
Me gustaría poder seguir tus pasos para intentar configurarlo, mediante scripts, para este tema. No sé si es necesario para ello una herramienta como Putty o similar.
Ante todo, me gustaría llegar a entender para qué se hace tal o cual comando.
Muy agradecido,
Buenas vieira
No puede faltar en ningún equipo que se precie el querido Putty para el acceso por consola, y por comodidad algo para SFTP, por ejemplo WinSCP
El resto es a mano:
https://github.com/RMerl/asuswrt-merlin.ng/wiki/User-scripts
Por ejemplo, usa el script wan-start que se ejecuta cada vez que se levanta la conexión, y podría tener este contenido:
[imagino que algún tipo de filtro no me deja escribir código shell, adjunto imagen]
Se puede usar una ruta más genérica y poner menos, se pueden poner las que sean nacesarias. Por otro lado eth4 depende del Router/modelo, puede incluso no llamarse ehtx. En este caso he asumido que eth4 es la interfaz física WAN
Con eso ya tienes todas las rutas, y puedes meter también las de VoIP. Si funciona correctamente, cada vez que se levante la conexión a Internet las rutas se crean. permisos a todos los .sh creados para ejecución y puedes ademas comprobarlo que se están creando.
Luego el servidor DNS y el option 240. Dando por sentado que se está usando dnsmasq, pues todo está en su documentación. Con RMerlin nos permite añadir bloques a archivos de configuración clave. Para ello, ejemplo de añadir al archivo de configración de dnsmasq (dnsmasq.conf):
/jffs/configs/dnsmasq.conf.add
Y añades el contenido que se agregará. Algo así, siempre usando los valores propios que tenga cada uno en su HGU:
dhcp-vendorclass=ial,[IAL]
dhcp-option=ial,240,loquesea
Y primo hermano para las DNS, que es el option 6.
El resto es pecata minuta... en el caso de que los frames de arriba llegasen con el TTL a 1, un par de reglas en iptables para sobreescribir el TTL de los paquetes. Puedes crear en
/jffs/scripts/firewall-start
Y añadir ahí todas las reglas iptables que quieras, por si hiciese falta por cualquier cosa, desde como digo sobreescribir el TTL(en la tabla mangle), permitir solo el ping de la red del HGU, reglas de filtrado...
IGMP Snooping/Proxy simplemente se habilitan desde la GUI, aunque se puede configurar aun mejor completamente el cliente en su archivo de configuración. Si sobreescribes el archivo en /jffs/configs/loquesea.conf sobreescribe el original. No te puedo decir cual es el archivo de configuración de memoria pq cada modelo usa un demonio para IGMP diferente. Puede ser mcpd.conf o no.
Saludos.
- vieira10-10-2025Yo probé el VDSL
Por cierto Theliel,
Quiero retomar lo que me apuntaste en tu mensaje anterior: Configurar en modo Bridge real el Router Smart WiFi 6 Go triple vlan [config. avanzada] | Comunidad Movistar de fecha 3/10/2025.
El archivo del script wan-start ¿tiene que tener extensión?. Del estilo wan-start.sh
Los scripts han de ir en la carpeta /jffs/scripts/. He leído en la página de Github de Merlin que para que un comando funcione correctamente, el archivo /jffs/scripts/movistar.sh debe tener permisos de ejecución asignados. Si no los tiene, el sistema no podrá ejecutarlo. Para otorgar estos permisos, se utiliza el comando chmod +x /jffs/scripts/movistar.sh. Una vez con permisos de ejecución, el script puede ser lanzado directamente con el comando sh seguido de la ruta del archivo.
Es decir, y siguiendo lo que me propusiste sobre la ejecución de una secuencia de scripts, por mantener una granularidad y, si falla algo, revisar scripts individualmente y no uno que tenga todos los comandos, podría crear el siguiente script en el router mediante SSH:
nano /jffs/scripts/wan-starty escribir el siguiente contenido:
#!/bin/sh # Espera 4 segundos sleep 4 # Ejecuta el script movistar.sh sh /jffs/scripts/movistar.shTengo que asegurarme de que cualquier script que cree esté guardado en el directorio/jffs/scripts/ y tenga permisos de ejecución establecidos usando el comando chmod a+rx/jffs/scripts/*. Esto permite que el sistema ejecute el script y garantiza que los comentarios se conserven para referencia futura.
Inicialmente el script movistar.sh podría contener lo siguiente:
#!/bin/sh # Tabla de enrutamiento TVIP route add -net 172.16.0.0 gw 192.168.1.1 netmask 255.240.0.0 eth0Theliel, entiendo que dentro del script movistar.sh, también podría poner la tabla de enrutamiento correspondiente a la VoIP, tal cual aparece en la siguiente captura del HGU.
HGU Routing TablePara ello, no sé si debería incorporar estas 3 líneas más así:
# Tabla de enrutamiento para VoIP route add -net 10.31.180.115 gw 192.168.1.1 netmask 255.255.255.255 eth0 route add -net 10.31.255.128 gw 192.168.1.1 netmask 255.255.255.224 eth0 route add -net 172.24.244.36 gw 192.168.1.1 netmask 255.255.255.255 eth0Ahora, tendría que ir a crear /jffs/configs/dnsmasq.conf.add. No sé qué parametros.
Saludos,
- vieira10-10-2025Yo probé el VDSL
Hola Theliel,
En efecto, he hecho 2 tracert a IPs de la tabla de enrutamiento y el resultado fue el siguiente:
C:\Windows\System32>tracert 172.23.96.0 Traza a 172.23.96.0 sobre caminos de 30 saltos como máximo. 1 <1 ms <1 ms <1 ms RT-AC5300-8710 [192.168.50.1] 2 <1 ms <1 ms <1 ms 192.168.1.1 3 3 ms 6 ms 3 ms 10.64.0.1 4 2 ms 2 ms 2 ms 172.23.197.49 5 11 ms 11 ms 11 ms 25.red-81-41-234.staticip.rima-tde.net [81.41.234.25] 6 * * * Tiempo de espera agotado para esta solicitud. 7 11 ms 11 ms 11 ms 172.23.58.117 8 * * * Tiempo de espera agotado para esta solicitud. C:\Windows\System32>tracert 172.26.23.0 Traza a 172.26.23.0 sobre caminos de 30 saltos como máximo. 1 <1 ms <1 ms <1 ms RT-AC5300-8710 [192.168.50.1] 2 <1 ms <1 ms <1 ms 192.168.1.1 3 15 ms 61 ms 3 ms 10.64.0.1 4 5 ms 16 ms 30 ms 172.23.197.49 5 11 ms 11 ms 12 ms 25.red-81-41-234.staticip.rima-tde.net [81.41.234.25] 6 * * * Tiempo de espera agotado para esta solicitud. 7 12 ms 11 ms 11 ms 192.168.198.186 8 * * * Tiempo de espera agotado para esta solicitud. - Theliel10-10-2025Yo probé el VDSL
Si miras al hacer el tracer, lo envía por el HGU, 1.1, es correcto. En 1.1 da error porque la red a la uqe intentas acceder no existe o no está disponible, el HGU no sabe que hcer con ella pq no está en su tabla de rutas. Recuerda que simplemente hemos trampeado la ruta para no poner unas cuantas. Pero en el intervalo usado caen muchas muchas otras redes. Si pruenas con un tracert a cualquiera de las rutas reales del HGU, te debería de salir no solo la respuesta de 1.1, sino de ahí al gateway de esa ruta en el HGU (10....)
- vieira09-10-2025Yo probé el VDSL
Hola de nuevo Theliel,
Eliminé el enrutamiento realizado en el router mediante la WebGUI. Ejecuté directamente en el router (Putty), el comando:
route add -net 172.16.0.0 gw 192.168.1.1 netmask 255.240.0.0 eth0He ejecutado el comando tracert en el terminal de mi PC a una IP del rango:
C:\Windows\System32>tracert 172.23.0.0 Traza a 172.23.0.0 sobre caminos de 30 saltos como máximo. 1 <1 ms <1 ms <1 ms RT-AC5300-8710 [192.168.50.1] 2 192.168.1.1 informes: Red de destino inaccesible. Traza completa.Lo único que aparece es que el destino es 192.168.1.1 y la red de destino no es accesible. También he ejecutado route mediante SSH en el router:
admin@RT-AC5300-8710:/jffs/scripts# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 80.58.61.254 192.168.144.1 255.255.255.255 UGH 1 0 0 ppp0 80.58.61.250 192.168.144.1 255.255.255.255 UGH 1 0 0 ppp0 192.168.144.1 * 255.255.255.255 UH 0 0 0 ppp0 192.168.50.0 * 255.255.255.0 U 0 0 0 br0 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 172.16.0.0 192.168.1.1 255.240.0.0 UG 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 192.168.144.1 0.0.0.0 UG 0 0 0 ppp0Como ves, sólo aparece identificada la IP 172.16.0.0 (¿no sé si tiene que ser así?).
¿Qué te parece todo? Saludos.
- Theliel08-10-2025Yo probé el VDSL
Buenas vieira
De eso se trata, de aprender. Si uno sigue un "Guía Burro" como las llama mi hermano muchas veces que me dice: "Eí, esto no me funciona necesito esto lo otro... mándame una guía burro para mi..." jajajaja. El porblema es que eso te obliga estar dependiendo siempre de terceros, y que si algo no funciona... pues te aguantas.
Exactamente, la máscara que tenías antes hubiese podido cubrir el rango por extensión si hubiesen estado antes ambas en la misma red, pero no lo estaban. Una de las redes era de la 20 a la 23, y la otra red era de la 24 a la 27. Para que ambas caigan dentro del mismo intervalo, se tiene que abrir hasta la /12, que efectivamente cubre desde el 0 al 15, del 16 al 31... etc etc etc. y ese bloque del 16 al 31 si existe.
En el comando que se usa para añadir una ruta estática en linux, route, se debe de especificar siempre tanto la red como la máscara. En el script que puse, por facilidad de lectura, se usa por separado el parámetro net y el parámetro netmask. Por tanto, no deberías de usar el indicador de mascara de red dentro de net si vas a usar el parámetro netmask, dado que es redundante y podría de echo darte error. En el caso de "route" generalmente sí permite especificar directamente en el parametro net la máscara, pero entonces no uses netmask
Dicho de otro modo:
Opcion1: route add -net 172.16.0.0 gw 192.168.1.1 netmask 255.240.0.0 eth0
Opcion2: route add -net 172.16.0.0/12 gw 192.168.1.1 eth0Las dos son equivalentes, el /12 significa exactamente: Máscara de subred: 255.240.0.0
De todos modos te recomiendo siempre por facilidad y probar, no crear de primeras si no quieres el script hasta que no estés seguro que los comandos osn correctos. Puedes acceder por SSH y meter los comandos directamente tu y ver que pasa. Puedes meter una ruta, y con "route" sin parámetros te debería de devolver la tabla de rutas completas. Si pones algo mal la shell te dirá que está mal o te dará un error. Si crees que lo has hecho bien, puedes probar con un tracert desde tu pc a cualquier IP de dicho rango, si la ruta está colocada bien, el tracert debería de mostrar que pasa a tu Router, de tu Router al HGU y de ahí a donde sea (aunque de error, pero pasa al HGU). Si estuviese mal, pasaría a tu Router y de tu Router a Internet
- vieira08-10-2025Yo probé el VDSL
De nuevo gracias Theliel,
No voy a esconder que me resulta duro de entender y aprender. Estoy intentando afinar, y el rango final va a tener que ser más amplio. Para cubrir el rango de direcciones IP desde 172.23.0.0 hasta 172.26.255.255, se necesita una máscara de subred que defina una superred que incluya todos estas direcciones. El rango abarca desde el octeto 23 hasta el 26 en el tercer octeto, lo que requiere una máscara que permita esta extensión.
La dirección 172.23.0.0/24 representa una subred que cubre desde 172.23.0.0 hasta 172.23.255.255. Para incluir también 172.24.0.0 a 172.25.255.255 y 172.26.0.0 a 172.26.255.255, se debe expandir el rango.
Según tablas que he estado consultando sobre IP Subnet, el rango ha de ser muy extenso, tal como aparece más abajo:
CIDR IP rango (red - broadcast) Másc. subred Núm. de IPs 172.16.0.0/12 172.16.0.0 - 172.31.255.255 255.240.0.0 1048576 ¿Qué tal ahora? Si esta vez estuviera en lo cierto, para añadir la ruta, según el comando:
route add -net DESTINO gw 192.168.1.1 netmask MASCARA INTERFAZ
debería escribir lo siguiente:
route add -net 172.16.0.0/12 gw 192.168.1.1 netmask 255.240.0.0 eth0
Saludos y muchas gracias,
- Theliel08-10-2025Yo probé el VDSL
Buenas vieira
Sí, puede ser eth0 :), como te digo internamente puede ser cualquiera, incluso no tendría que ser obligatoriamente ethx.
Respecto a la máscara, no puede ser /14. Si fuese /14 serían dos bloques los necesarios:
172.20.0.1 - 172.23.255.254
172.24.0.1 - 172.27.255.254Tú no puedes poner "el punto inicial", tu especificas la red dentro de dicho rango, el rango lo especifica la máscara. Para /14 significa que hay 14 bits que especifican la red y otros 18 para especificar el host. Si una IPv4 son 4 octetos:
11111111 11111100 00000000 00000000 -> 255.252.0.0
Es decir, tienes disponibles para el primer octeto 256 redes (de 0 a 255), para el segundo octeto tienes disponibles 4 veces menos, porque usas 2 bits para host, 2^6 = 64 posibles redes entre 0-255. Es decir, una red cada 4. Por eso par una máscara de /14 y la IP 172.23.0.0, lo que obtienes es el intervalo citado, 172.20.0.1 - 172.23.255.254. El primer bloque sería 172.0.0.1 - 172.3.255.254. Va de 4 en 4.Saludos.
- vieira07-10-2025Yo probé el VDSL
Buenos días Theliel,
En primer lugar, he habilitado en el Asus la partición JFFS:
ASUS_Admon-Sistema_JFFS
En segundo lugar, he averiguado, según tu mensaje, la interfaz correspondiente al puerto WAN del router. Después de acceder al router mediante Putty, he ejecutado el comando que me indicaste: nvram show | grep ifname, y el resultado fue el siguiente:
SpoilerASUSWRT-Merlin RT-AC5300 386.14_2
admin@RT-AC5300-8710:/tmp/home/root# nvram show | grep ifname
printer_ifname=usb
wan0_gw_ifname=ppp0
br0_ifnames=vlan1
wan1_pppoe_ifname=
sta_phy_ifnames=eth1 eth2 eth3
bsd_ifnames_x=eth2 eth3
wl0.5_ifname=wl0.5
wan0_ifname=eth0
sdn_ifnames=
wl0_ifname=eth1
wan0_pppoe_ifname=ppp0
wl0_vifnames=wl0.1 wl0.2 wl0.3 wl0.4
wl1_vifnames=wl1.1 wl1.2 wl1.3
wan1_ifname=
wl2_vifnames=wl2.1 wl2.2 wl2.3
wl1_ifname=eth2
dpsta_all_ifnames=eth1 eth2 eth3
dpsta_ifnames=
wl0.1_ifname=wl0.1
wl1.1_ifname=wl1.1
wl2.1_ifname=wl2.1
br0_ifname=br0
wl2_ifname=eth3
bsd_ifnames=eth1 eth2 eth3
lan_ifnames=vlan1 eth1 eth2 eth3
wan_ifnames=eth0
wl0.2_ifname=wl0.2
wl1.2_ifname=wl1.2
wl_ifnames=eth1 eth2 eth3
wl2.2_ifname=wl2.2
eth_ifnames=vlan2
ethsw_ifnames=
lan_ifname=br0
wl_vifnames=wl2.1 wl2.2 wl2.3
wl_ifname=eth3
wl0.3_ifname=wl0.3
wl1.3_ifname=wl1.3
wl2.3_ifname=wl2.3
acs_ifnames=
wl0.4_ifname=wl0.4
wl1.4_ifname=wl1.4
wl2.4_ifname=wl2.4
size: 86758 bytes (44314 left)
sta_ifnames=eth1 eth2 eth3Veo que el puerto WAN del router aparece identificado con la interfaz eth0:wan0_ifname=eth0
En tercer lugar, tal como acertadamente planteaste a la hora de crear las rutas en tu último mensaje:
"Otra igualmente válida, dado que la red para IPTV usada es una IP privada y en principio jamás vamos a usar dicha red, se podría incluso condensar en una sola ruta, ampliando la máscara de subred. La máscara de subred es lo que especifica de una IP que parte se destina a hosts, y que parte se destina a redes. En tu caso se podría calcular la máscara de subred que cubra desde 172.23.0.0 hasta 172.26.255.255"
he decidido leer en páginas sobre redes, intentar aprender algo, y hacer uso de alguna calculadora para máscaras de subred, y el resultado que he obtenido es el siguiente. No sé si he sido un buen alumno.
Rango de IPs Inicial Final IP 172.23.0.0 172.26.255.255 Redes contiguas 172.23 172.24 172.25 172.26 Nº de IPs requeridas 4 * 65.536 = 262.144 direcciones El resultado obtenido me dice que la subred 255.252.0.0 puede acomodar esas direcciones en un bloque de /14 (o 14 bits) [255.252.0.0/14].
No sé si es correcto o si me he equivocado de cabo a rabo con la información que recabé en distintas webs.
Si fuese este el resultado (o el que tú seguro que sabes), no sé cómo habría que escribirlo para usar una única ruta del tipo "route add -net DESTINO gw 192.168.1.1 netmask MASCARA INTERFAZ", si tengo 4 IPs de TV que enrutar.
Muchas gracias por tu paciencia y tu tiempo. - Técnico-Movistar06-10-2025Responsable Técnico
Hola vieira
Agradecemos a Theliel por su aporte en esta consulta.
Desde el soporte de Movistar, no tenemos manuales para este tipo de configuraciones, dejamos el hilo abierto para que un usuario de nuestra comunidad te pueda ayudar con más información.
Un saludo.
David. - Theliel06-10-2025Yo probé el VDSL
Buenas vieira
El script "wan-start" como aparece en la documentación de Merlin, no se crea por defecto, el usuario puede si quiere crearlo, y lo que hace es ejecutar lo que aparezca en él cuando se levanta la conexión PPPoE. Como ese hay otros que se lanzan en determinados momentos. Para el caso, es el sitio adecuado para añadir la ejecución de un script independiente. Se podría poner todo en ése mismo? Sí, pero por granularidad y orden mejor en uno a parte
De ahí a crear otro con otro nombre que se llame en el anterior, y el contenido que se quiera hacer. Lo que puse es algo genérico que se puede coger al pie de la letra o no, para facilitar la tarea de que cada uno ponga sus propias rutas. No es necesario y puede simplificarse si se quiere usando directamente los comandos shell para añadir rutas:
.route add -net DESTINO gw 192.168.1.1 netmask MASCARA INTERFAZ
Donde destino y máscara depende de cada ruta, la puerta de enlace damos por sentado que siempre será 192.168.1.1, y la interfaz dependerá de cada Router. Cuantas de estas son necesarias? Pues depende, si hacemos un calco del HGU pues varias, en tu captura salen 4 para IPTV. Otra igualmente válida, dado que la red para IPTV usada es una IP privada y en principio jamás vamos a usar dicha red, se podría incluso condensar en una sola ruta, ampliando la máscara de subred. La máscara de subred es lo que especifica de una IP que parte se destina a hosts, y que parte se destina a redes. En tu caso se podría calcular la máscara de subred que cubra desde 172.23.0.0 hasta 172.26.255.255En lo que respecta a la interfaz física, no, no es WAN. WAN es el término genérico que usamos en muchas ocasiones para referirnos realmente a diferentes cosas.
Por un lado, solemos llamar al puerto Ethernet físico del Router dedicado a la conexión con Internet u a otra red, como el puerto WAN.Pero también solemos llamar interfaces WAN a interfaces virtuales o lógicas que se suelen levantar sobre el puerto WAN.
Los puertos internamente no se suelen llamar WAN, LAN1, LAN2, LAN3... es el fabricante el que en la firmware del Router los enumera como estime, y estos a la vez los representa de forma externa con un nombre amigable, como LAN1, LAN2, WAN... pero internamente no suelen ser nombrados así.En Asus, posiblemente puedas ver un listado bastante amplio de todas las interfaces físicas con:
nvram show | grep ifnameLa interfaz WAN será posiblemente el ifname WAN... o puede existir más de uno si el Router tiene más de una interfaz a la que llame WAN.
Saludos.
- vieira04-10-2025Yo probé el VDSL
Hola Theliel,
¡Ufff! Me siento abrumado. Es que esta es la primera vez que intento operar con comandos el Asus, y me sorprende la facilidad con la que ves estos temas (benditos conocimientos). La verdad es que necesitaría ir haciendo las cosas como si fuese un niño de "6 años" (ya paso bien de los 60). De momento he conseguido acceder con Putty al router:
Putty-Asus
Ya se, ya se, es un muy pequeño paso. He estado mirando el enlace https://github.com/RMerl/asuswrt-merlin.ng/wiki/User-scripts#wan-event. Pero, no me ha quedado claro si los scripts han de guardarse en un archivo o si se ejecutan directamente, ...
De momento, como ves, me he quedado en rvieira@RT-AC5300-8710:/tmp/home/root#
Por ejemplo, en tu captura de pantalla empiezas por el preceptivo [#!/bin/sh], luego el comando [sleep 4], que me imagino que indica una espera, y después mandas crear un archivo conteniendo unos comandos en un subdirectorio específico [sh /jffs/scripts/movistar.sh].
Los comandos que vienes a continuación ¿se refieren a los especificados en la tabla de enrutamiento que aparece en el HGU y qué inserté en el Asus en la sección LAN-Ruta? (adjunto captura).
ASUS LAN-Ruta
Donde, p.ej., TVIP_DEST podría ser "172.26.80.0", TVIP_GATEWAY_ROUTER="192.168.1.1" (es la IP del HGU) y donde TVIP_MASK es la máscara de red "255..255.248.0". Después de estas especificaciones vas añadiendo cada ruta, tal como:
route add -net $TVIP_DEST gw TVIP_GATEWAY_ROUTER netmask TVIP_MASK eth4.
Según la siguiente captura del Asus, yo tendría que poner WAN en vez de eth4 (adjunto captura).
ASUS ports
Para cotejar que las tablas de enrutamiento para IPTV de HGU y ASUS coinciden, adjunto esta captura de la tabla de enrutamiento del HGU:
HGU Movistar Routing Table
¿Voy bien orientado? Gracias,
Por cierto, ahora la señal de TV, a través de los Descos, se congela cada ciertos segundos, permanece congelada y al cabo de un tiempo arranca y vuelve a congelarse.