Cambiar la IP dinámica sin tener que apagar el router y otras opciones

Automatizar las funciones del router nos ahorrará tiempo a la hora de realizar diversos ajustes. A continuación os explicamos como automatizar el control de algunas funciones del router utilizando el acceso a su configuración en modo Telnet y alguna utilidad de automatización, que en este caso será el programa Telnet Scripting Tool o TST, de uso libre y fácil de obtener en Internet. Lo explicaremos con cierto detalle ya que esta es una herramienta con múltiples usos y es necesario comprenderla para sacarle el máximo provecho.

Zyxel 660H

Sabemos que los modems, routers y otros dispositivos de red aceptan ser configurados accediendo a ellos con Telnet y, una vez dentro de la consola del router, ejecutando comandos que se ingresan como si estuviéramos en una consola de comandos DOS, y que el router interpreta y ejecuta. Va a ser imprescindible que nuestro router tenga esta funcionalidad, como la mayoría de los routers.

Por otra parte el TST utiliza el protocolo Telnet para acceder al router y una vez que ha accedido al mismo ejecuta automática y secuencialmente uno o varios comandos que nosotros ingresaremos en un archivo llamado script.

Necesario

1- Un modem o router o dispositivo que, como la mayoria de ellos, acepte ser configurado por medio de la utilidad Telnet.

2- Conocer la dirección IP de acceso a la configuración del router. En la mayoría de los routers esta IP es 192.168.1.1, como en los Zyxel, y será ésta la que usaremos en el ejemplo, pero si nuestro router usa otra, habrá que usar esa otra. La IP formará parte de nuestro script.

3- Conocer el usuario y la password de acceso al router. En el caso de los Zyxel, la password por omisión es 1234 y no se utiliza usuario para ingresar por Telnet. La password también forma parte del script para que el TST obtenga acceso al router.

4- La aplicación Telnet Scripting Tool

5- El script que va a ser ejecutado por el TST conteniendo los comandos que queremos que se ejecuten.

-EL SCRIPT

En nuestro ejemplo del final, este script se llamará tst_s.txt y es un simple archivo de texto plano creado con el Notepad o cualquier otro editor de texto. Comienza con la IP de acceso a la configuración del router y a continuación habrá instrucciones de dos tipos: SEND para enviar texto al router y WAIT para esperar cierto texto de respuesta del router antes de continuar. El m, que representa la tecla Enter, y las comillas tienen que quedar tal cual figuran.

Donde dice ras> en la mayoría de los casos va a quedar así, ya que ese es el “prompt” que suele mostrar el router en su línea de comandos indicando que está listo para recibir el próximo comando; pero si alguien tiene algo diferente, se reemplaza. Ese prompt es el que se ve si entramos por Telnet y vamos al menú 24.8 en los modelos que cuando se entra por Telnet se llega a un menú. En otros modelos de Zyxel y en la mayoría de los routers, al ingresar por Telnet se accede directamente a una línea de comandos y vemos este prompt directamente, por lo tanto, no se utilizan en estos casos las pulsaciones necesarias para llegar a ella, ni tampoco al finalizar el script para regresar.

El script debe estar guardado en la misma carpeta que el TST.exe, y se agrega como un parámetro del TST con la siguiente sintaxis tst.exe /r:tst_s.txt

Incluimos al final un ejemplo con comandos para cambiar rápidamente la IP de la conexión, pero los comandos que se pueden incluir en el script pueden ser cualquiera que acepte el router o dispositivo, como si los estuviéramos escribiendo con el teclado en su línea de comandos, y de hecho esta es la forma de testearlos antes de incluirlos en el script.

La salvedad que debemos hacer se refiere a los comandos que pudieran detener la misma sesión de Telnet que se está ejecutando. Por ejemplo, si vamos a incluir un comando que reinicia el router, este comando no puede estar en el medio del script, sino al final, ya que después de eso ya no existe una sesión de Telnet donde seguir ejecutando comandos.

-EJECUCION

Finalmente, creamos un acceso directo al TST.exe utilizando el botón secundario del mouse. Luego editamos el acceso directo recién creado, para lo cual también utilizamos el botón secundario sobre él y elegimos la opción Propiedades y en el campo Destino, que contiene la ruta al TST.exe, agregamos al final el texto /r:tst_s.txt. Si nuestro script tiene un nombre diferente, lo escribimos después del /r:

Para ejecutar el conjunto, simplemente hacemos doble click sobre el acceso directo que acabamos de crear y modificar. El acceso directo ejecutará el TST que a su vez ejecuta un script. El script inicia una sesión Telnet al router, pone la password, sale al modo comandos, usa los comandos que contiene y sale del modo Telnet, todo esto de manera automática.

-SCRIPT PARA CAMBIAR IP RÁPIDAMENTE.

Por algún motivo, como “cambio de identidad” frente a algún servidor de descargas directas que nos obliga a esperar cierto tiempo para proceder a la siguiente descarga, es necesario cambiar de IP si no podemos esperar lo requerido.

Para quienes su ISP les suministra una IP dinámica y usan un modem configurado como router, también llamado modo multipuesto, que se encarga de establecer la sesión PPPoE, el procedimiento más común para cambiar la IP es reiniciar el router, el cual al final de los procesos de inicio y resincronización del ADSL, termina estableciendo una nueva sesión PPPoE con una nueva IP. Para evitar los procesos de reinicio y resincronización, podemos valernos de un comando que cierra la sesión PPPoE y de la habilidad del router para iniciar inmediatamente una nueva.

En el caso de los Zyxel, el comando es poe drop poe0 que cierra la sesión PPPoE actual. Por otra parte, en la configuración del router tenemos activada la opción de mantener permanentemente activa la sesión PPPoE, por lo que el router se encargará de establecer inmediatamente una nueva. En los Zyxel esta opción se llama “Nailed Up connection”. Si el servidor PPPoE al que nos conectamos está adecuadamente configurado, este proceso demora una fracción de segundo.

Cuando reiniciamos el router o forzamos la resincronización del ADSL, este tiempo puede ser sustancialmente mayor, debido a que la sesión PPPoE anterior no se cerró adecuadamente, sino que fue arrastrada por le pérdida del ADSL, por lo que el servidor PPPoE no tomó nota de que la sesión fue cerrada y esperará cierto tiempo de “timeout” antes de “darnos por perdidos”, cerrarla por su propia cuenta y permitir al mismo usuario establecer una nueva sesión.

Las utilidades de descarga automatizada de archivos como USDownloader, JDownloader y similares, siempre incluyen la posibilidad de ejecutar una rutina de cambio de IP entre descarga y descarga, por lo que en nuestro caso utilizaremos el TST con el script correspondiente.

Como resumen: Ejecutamos el TST que con su script inicia una sesión Telnet en el router, sale a la línea de comandos de la consola del router, ejecuta un comando que cierra la sesión PPPoE y sale de Telnet. El router, al tener seteada la opción de Nailed Up, inicia una nueva sesión PPPoE obteniendo una nueva IP.

Contenido del Script

Para esta función va a depender de la combinación de dos factores: Por un lado la efectividad del comando poe drop poe0, ya que no en todos lados resulta efectivo, por lo que siempre es preferible probarlo ingresándolo por teclado en la línea de comandos de una sesión de Telnet. En caso de no resultar efectivo porque no se cambia la IP, usaremos el comando wan adsl reset, que obligará al router a resincronizar el ADSL y posteriormente iniciar una nueva sesión PPPoE con una nueva IP. Esta última situación es más común en España, mientras que la primera es más común en Latinoamérica.

Por otro lado hay firmwares que al iniciar la sesión Telnet nos llevan directamente a la línea de comandos, como mencionábamos antes, por lo que se evitan las pulsaciones necesarias para navegar hacia y desde ella. Es el caso de los nuevos firmwares oficiales de Zyxel como en los P660HW-D1 y P660HW-T1v2. Con los firmwares de Telefónica, el acceso por Telnet presenta un menú.

Sugerido para Latinoamérica y Telnet con menú

192.168.1.1

WAIT “Password:”

SEND “contraseñam”

SEND “24m”

SEND “8m”

WAIT “ras>”

SEND “poe drop poe0m”

WAIT “ras>”

SEND “em”

SEND “99m”

Quedaría como en la siguiente imagen:

Es posible que en España el comando poe drop poe0 no funcione, por lo que, si ese es nuestro caso, utilizaremos el comando wan adsl reset para reiniciar completamente el ADSL, con lo que esa línea se reemplazará por SEND “wan adsl resetm”

Sugerido para España y Telnet sin menú

192.168.1.1

WAIT “Password:”

SEND “contraseñam”

WAIT “ras>”

SEND “wan adsl resetm”

WAIT “ras>”

SEND “em” Lo haríamos como en la siguiente captura:

En resumen si el router es de Telefónica España sería igual que el script de Latinoamérica pero cambiando el comando por “wan adsl reset” y si el router es original estando en Latinoamérica el mismo que el script de España pero poniendo “poe drop poe0m”

Otros scripts

Por último solo me queda comentar que se pueden hacer muchas cosas, como apagar o encender el WIFI. La cuestión consiste en encontrar el comando adecuado. El script del WIFI y otros que pudieran aparecer en el futuro los podéis encontrar aquí.