Evitar los cortes y cuelgues del Comtrend 536+. Script

#1
Actualizado 10.04.2007

Hola, este script os puede servir para evitar los cuelgues del Comtrend 536+ (el de Jazztel) con programas P2P. Usé el mismo método que se menciona para el DLink 604T/624T, es decir el programa Expect y después modifiqué el fichero router.txt con los siguientes parámetros. Mirad el post-it de Dlink aquí: http://www.adslzone.net/postt4439.html

También ayuda a mejorar la navegación cuando la tabla NAT está repleta, lo podeís verificar haciendo un ping a una ip antes y después de aplicar el parche y os dareís cuenta de la mejora en el tiempo de respuesta.

El resultado es que llevo dos semanas con el router funcionando sin problemas desde redes P2P con hasta 3800 fuentes y hasta 480 conexiones en momentos punta y bajando a todo trapo sin cuelgues. Anteriormente se me quedaba bloqueado a la hora, 2 horas de arrancar el bittorrent/emule/Lphant y no me quedaba más remedio que apagar el router y volver a arrancarlo de nuevo.

Lo ideal es que estos valores los pudiera introducir en un archivo del router que fijara estos valores al arrancar (como por ejemplo con el Zyxel 660HW-D1 con su fichero autoexec.net). si alguien sabe donde está este fichero se lo agradeceria.

El cambio de estos valores nos servirá para evitar que IP's de los P2P se queden enganchadas al buffer del router. Esta tabla está adaptada para el comtrend HG536+ y el proceso es idéntico al del Dlink 604/624 que se explica en el foro de Dlink y es el que me ha servido de guía para hacer lo mismo en el Comtrend. Mi agradecimiento a vaserkeno, la persona que realizó el script en el Dlink.

nombre del fichero: router.txt. Copiar el texto entre líneas punteadas (no copiar las lineas) en el bloc de notas y guardarlo con el nombre router.txt

Nota importante. Solo funciona con los firmwares de Jazztel, Comtrend originales y con el último firmware mixto de Asus y USR
----------------------------------------------------------------------------------

#!expect -f
set force_conservative 1 ;
if {$force_conservative} {
set send_slow {1 .010}
proc send {ignore arg} {
sleep .2
exp_send -s -- $arg
}
}
puts "\n"
spawn telnet la IP del router
expect "Login:*"
send -- "tu nombre de usuario en el router\r"
expect "Password:*"
send -- "la contraseña que usas para entrar en el router\r"
log_user 0
expect "Note" (esta linea no es necesaria si usas el firmware de ASUSR)
send -- "sh\r"
expect "#"
send_user "Mostrando los valores que tiene por defecto el router\n"
log_user 1
send -- "sysinfo\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_buckets\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/route/max_size\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_generic_timeout\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/tcp_keepalive_time\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/tcp_keepalive_probes\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_icmp_timeout\r"
expect "#"
send -- "cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_last_ack\r"
expect "#"
send_user "Escribiendo los nuevos valores en el router\n"
send -- "echo 8192 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max\r"
expect "#"
send -- "echo 50 > /proc/sys/net/ipv4/netfilter/ip_conntrack_generic_timeout\r"
expect "#"
send -- "echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close\r"
expect "#"
send -- "echo 120 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait\r"
expect "#"
send -- "echo 1200 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established\r"
expect "#"
send -- "echo 60 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait\r"
expect "#"
send -- "echo 120 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait\r"
expect "#"
send -- "echo 30 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout\r"
expect "#"
send -- "echo 30 > /proc/sys/net/ipv4/tcp_keepalive_time\r"
expect "#"
send -- "echo 9 > /proc/sys/net/ipv4/tcp_keepalive_probes\r"
expect "#"
send -- "echo 30 > /proc/sys/net/ipv4/netfilter/ip_conntrack_icmp_timeout\r"
expect "#"
send -- "echo 30 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_last_ack\r"
expect "#"
send_user "Proceso terminado, listo para P2P.\n"
sleep 1
send -- "exit"
puts "\n"
exit


------------------------------------------------------------------------------------

Nueva modificación 10.04.07 con valores más estables y mensajes de información durante el proceso. Resiste 13920 fuentes totales y 679 conexiones activas. Aumenta carga de CPU en un 3% más y el router gestiona más rápido las patadas a las IP's inactivas o caidas.

Versión firmware en el Comtrend HG536+: A101-304CTL-T01_R01.A2pB019b8.d16m

Usad el mismo método que en el Dlink pero cambiar el fichero router.txt del script del Dlink (está en el directorio /bin del programa script telnet V6) por este fichero.
Por supuesto, cuando se va la energía los valores se pierden al arrancar de nuevo el router o después de un reset. Sin embargo no se pierden después de un save/reboot.

los valores que determinan un mejor comportamiento del router es este:
send -- "echo 1200 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established\r" . Originalmente el router tiene este valor a 432000 segundos y las IP's se quedan enganchadas hasta que no realiza la comprobación por timeout al cabo de 5 días!!....perdida de tiempo y recursos innecesarios.

El otro valor es:
send -- "echo 8192 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max\r" . Su valor original en el firmware que uso está a 1800. Con este valor amplio el buffer de IP's hasta 8192 conexiones. A veces una misma IP puede tener varias conexiones, o sea que no significa que pueda contener 8192 sesiones con 8192 IP's diferentes.
El subir este valor a 8192 es porque el router permite hasta 8192 entradas en la tabla pero no tiene efectos reales si no damos patada a las IP's inactivas ya que la tabla se llenará igualmente. Es más importante echar a las IP's que no responden que ampliar esta tabla.

Espero que os ayude, a mi me ha funcionado y si hay algún post que haga referencia a esta solución, moderador, borra mi mensaje.

Saludos[/i]
 
#4
No tienes que meter ningun firmware, usa el mismo método que se menciona para el DLink 604T/624T, siguiendo las instruciones que te pone aquí: http://www.adslzone.net/postt4439.html y descargas el script con el link que te pone.

Cuando has hecho eso lee bien el post de Victek te pone todas las instruciones con lo que tienes que hacer para cambiar el archivo router.txt


Por cierto creo que no funciona con el firmware original de Telefonica por lo menos para mi. No se por que.

[/i]
 
#6
MoiPal dijo:
ah!
instalo esto expectsetup.exe, luego tengo q cambiar lo que hay del router.txt por lo q pone, para el comtrend, es asi?

y ejecutar esto dlinkemule, no?
Efectivamente, tal como lo has mencionado es la forma correcta. También puedes guardar el texto entre lineas con el nombre router.txt y sobreescribir el archivo que tienes creado para el Dlink.
 
#8
:D , pues parece bien hecho...pero algo falla.. y eso que falla debe ser que en los servicios de la LAN no debes tener activado el SSH.
Vamos a hacer la siguiente prueba:
abre un sesión de DOS (Símbolo de sistema)

c:> telnet 192.168.1.1
te responderá con BCM96348....
Login: entra el login
password: entra el password
después de lo que te aparece teclea sh (y pulsa enter)
si te aparece el signo # entonces el ssh está activado, aprovecha y teclea

cat /proc/sys/net/ipv4/route/max_size

te debe responder 2048 (creo), si te responde "not found" entonces debes arreglar entrando por http://192.168.1.1 y yendo a services activa el SSH.

Prueba y me comentas a ver que tal. Una pregunta; Tu router es el de Jazztel o es el de telefónica?.

Saludos
 
#10
MoiPal dijo:
es un hg536+ de jazztel y conexion jazztel 20 mb y firmware netcom.
Con este firmware no lo he probado, supongo que será el estándar de Comtrend. Mientras le voy a poner este firmware a un router que tengo por ahí para probar.

Es el N8BW versión r05 o versión r01?
Que hay de la primera prueba?
Te funciona entrando a mano las líneas?
 
#12
ayuda

hola a todos mirar cuando intento activar el dlinkemule me dice el corta fuegos (se bloqueo el acceso a la red para TELNET.EXE por que otro proceso modifico la memoria)
El proceso escribio en la memoria SLAVEDRV.EXE sabeis por que lo hace ,la primera vez me lo hizo muy bien pero cuando resetee el ordenador empezo todo gracias por todo :(
 
#13
Bueno al final si que me funciona, era el firmware del netcom, tenia el NB8W-A101-306NCM-C01_R05.bin y le metido este despues: CT536B-A101-302JAZ-C03_R03.bin , al final del escript me dice: "que disfrutes de los p2p" algo asin, aparte el script va mas rapido.
 
#14
Pues parece que con el firmware de netcomm NB8W-A101-306NCM-C01_R05.bin no funciona, aunque este en el router habilitada la opcion SSH para Lan :oops: . Entro por telnet como dice Victek y parece que no esta habilitada el SSH.
Vaya faena, si algien sabe como solucionarlo que lo diga.
 
#15
El script no funciona, ademas de que se llena la tabla de NAT con una facilidad pasmosa.

Apr 4 14:33:50 192.168.2.1 kernel: dst cache overflow
Apr 4 14:34:15 192.168.2.1 last message repeated 4 times
Apr 4 14:35:17 192.168.2.1 last message repeated 5 times
Apr 4 14:36:11 192.168.2.1 last message repeated 4 times
Apr 4 14:37:11 192.168.2.1 last message repeated 2 times
Apr 4 14:37:11 192.168.2.1 kernel: MASQUERADE: No route: Rusty's brain broke!
 
#16
ediazrod dijo:
El script no funciona, ademas de que se llena la tabla de NAT con una facilidad pasmosa.

Apr 4 14:33:50 192.168.2.1 kernel: dst cache overflow
Apr 4 14:34:15 192.168.2.1 last message repeated 4 times
Apr 4 14:35:17 192.168.2.1 last message repeated 5 times
Apr 4 14:36:11 192.168.2.1 last message repeated 4 times
Apr 4 14:37:11 192.168.2.1 last message repeated 2 times
Apr 4 14:37:11 192.168.2.1 kernel: MASQUERADE: No route: Rusty's brain broke!
¿que firmware tienes instalado?.. si es el de Netcom estoy intentanfo adaptar el srcript para este nuevo firmware...pero no tiene servidor ssh y este es el problema real... no queda otro remedio que volver a los firmwares originales de Jazztel o el de Comtrend.

Y .. si, la tabla se llena tan rápidamente en proporción a el número máximo de conexiones que fijes en el programa P2P.. ya sabes, o bajas el número de conexiones o se te va a bloquear.

Saludos
 
#18
Por favor:
¿Cuál es el firmware mixto de USR y ASUS? ¿Es el CT536-1.bin de la web de flashfm? ¿Es este firm mejor que los de jazztel (ya he leído que los netcomm son mejores)?

Saludos
 
#20
CT-536+

Hola!

Mi pregunta es si todoe sto vale con el comtrend

CT-536+ A101-221JAZ-C01_R02.A2pB017l.d15h

Pq a mi tb se me enciende la luz de alarm cada dos por tres.

Y la red inalambrica tb se cae aun mas q la directa.
 
Arriba