Soluciones Fallos Mitrastar (Batería, WIFI, DHCP...)

Theliel
Yo probé el VDSL
Soluciones Fallos Mitrastar (Batería, WIFI, DHCP...)

Sumario (Fix existentes actualmente)

 

  • -Problema de Batería de la B21, el problema de los ARP (Solucionado a partir de la b23)
  • -Problema de Batería y degradación WIFI por tráfico excesivo IGMP (Sólo usuarios con TV contratada)
  • -Activación del modo de bajo consumo para dispositivos portátiles
  • -Uso de banda de frecuencia de 40MHz en WIFI (Duplica la velocidad de enlace, hasta 300mbs)
  • -Bloqueo del tráfico DHCP de clientes/servidor hacia fuera del Router
  • -Cuelgues periódicos donde es necesario reiniciar el Router (Solucionado a partir de la b23)
  • -Como añadir equipos a la tabla ARP de forma estática para poder hacer WOL/WOW

 

 

Pese a las muchas quejas que tienen los usuarios ante este Router, he de decir que no es tan malo como aparenta, el principal problmea que tiene son los numeros bugs que tiene su software, y en segundo lugar su adaptador WIFI que podría ser mejor. Sobre lo segundo no podemos hacer mucho, sobre lo primero podemos ir aplicando pequeños "parches" (que iré añadiendo/poninedo en este post) para ir solucionando los problemas que van apareciendo, hasta que Mitrastar/Movistar lancen firmware que de una vez por todas vayan puliendo los fallos.

 

Antes que nada, recordar que todo lo que pasa en el mundo no es culpa del Mitrastar. Quiero decir con esto que porque alguien tenga un problema X no implica que el router tenga un problema. Así que intentemos separar por un lado lo que son fallos del router, por otro lado lo que nos gustaría que hiciese el router (que también pueden añadirse esas cosillas a la lista de abajo) y por último problemas del usuario o de otros dispositivos, que nada tiene que ver con el Router. Un problema se debe de poder replicar y verificar!! Si esto no sucede por lo general no es un problema del router, y es otra la causa. Decir "Problemas de Cuelges" es demasiado genérico, hay que ver cuando se cuelga, por qué... y si podemos replicarlo seguramente entonces podremos corregirlo.

 

Hace ya unas semanas que algunos de nosotros sabemos aplicar diferentes correcciones y modificaciones, pero hay que tener ciertos conocimientos, y además esas modificaciones no sobreviven a un reinicio. Ahora de forma "sencilla" podemos hacer las mismas modificaciones y que sobrevivan a los reinicios. El procedimiento es exactamente el mismo para cada "parche" que se quiera ir aplicando, simplemente se añade el "nuevo" a la "lista".

 

ATENCION: Está probado sobre la Firmware Pseudo-oficial B21, no he realizado ninguna prueba sobre la B14, ni en si el proceso se puede realizar ni tampoco si los fixes son funcionales. Por otro lado mucho cuidadito con añadir una coma o un caracter de más/menos, no me hago responsable de lo que cada uno haga. En el peor de los casos se debería de poder realizar un Reset y listo (En teoría), pero cada cual que asuma lo suyo. El proceso es sencillo

 

1º. Acceso a la interfaz Web del Mitrastar (http://192.168.1.1/cgi-bin/main.html por defecto), usuario/contraseña: supervisor/zyad1234

 

2º. Realizamos un backup de nuestros ajustes: Maintenance -> Backup/Restore -> Backup

 

3º. Editamos el cfg de configuración con un editor de texto (a poder ser notepad++ o cualquier otro que respete los saltos de linea unix/linux

 

4º. Buscamos la cadena: "</Autoexec>"

 

5º. Añadimos/modificamos dicha línea parar crear nuestro bloque, que tendrá este formato:

 

<Autoexec> 	<Entry
/> </Autoexec>

6º- Entre esas dos líneas se irán incluyendo los "fixes" que queramos, una línea nueva por cada uno. Los "fixes" no serán más que la ejecución de ciertos comandos/herramientas que permitan solucionarlos (vemos dos ejemplos luego)

 

7º. Cuando se haya modificado a voluntad, guardamos, volvemos a la interfaz web, restauramos nuestro nuevo cfg y listo, los cambios se estarán aplicando desde el primer momento.

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

 

Batería (Problerma con los ARP):

 

Para empezar, vamos a añadir la solución definitiva para el consumo de batería que sufre la B21. La B14 tiene sus problemas, pero con la B21 se solucionan en gran medida. Repito de nuevo, esto es para la B21, y el fallo que tiene el router de bombardear con paquetes ARP a todos los clientes conectados. Esto hace que los dispositivos portátiles no entren en sueño profundo y la batería sufre enormemente. Hay quienes lo acusan más y otros menos, pero el problema es real (hablamos de un consumo de más de un 20-30% fácilmente)

 

El problema viene a que algún módulo de red o el kernel del router no respeta el parámetro mcast_solicit, establecido a 3 por defecto, así que se fuerza mcast_solicit a cero. Traducido esto en una instrucción que puede ejecutarse en la Shell:

 

sysctl -w net.ipv4.neigh.br0.mcast_solicit=0

Si queremos transportar ese "fix" a nuestro cfg, nuestro bloque quedaría de la siguiente forma:

 

<Autoexec> 	<Entry
arp_fix="sysctl -w net.ipv4.neigh.br0.mcast_solicit=0" />
</Autoexec>

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

 

Bateria (Reducir el tiempo de Query en IGMP Proxy):

 

Pese a que en un principio achaqué el problema de la batería exclusivamente al problema de los ARP anteriormente mencionado, lo cierto es que los resultados de la comunidad han sido variados, mientras unos reafirmaban que todo estaba perfecto, otros que aunque había mejorado mucho aun estaba lejos del consumo que tenían antes. Al final resultó existir un segundo problema importante en el consumo de batería, pero este SOLO AFECTA a quellos que tienen contratada igualmente la Televisión con Movistar. Es decir, que aquellos que no tienen dicho servicio contratado no les afecta en nada, y explica efectivamente el motivo por el cual a algunos usuarios el problema de los ARP no solucionaba completamente el problema.

 

En este ocasión el responsable es un seteo "incorrecto" (aunque sería mejor decir inadecuado) en el archivo de configuración que carga Movistar, con lo que en teoría podría ser solucionado POR ELLOS, sin que Mitrastar tenga mucho que aportar aquí.

 

Para que la TV funcione correctamente, el Mitrastar requiere tener habilitada una función llamada IGMP Proxy (no confundir con IGMP Snooping). En función de los servicios contratados, Movistar realiza la telecarga con la configuración específica de cada usuario, y habilita IGMP Proxy si tenemos habilitada la televisión. Las opciones de IGMP Proxy no pueden configurarse a través de la interfaz Web, ni siquiera habilitarlo o deshabilitarlo, los ajustes quedan especificados en el archivo de configuración que manda Movistar por remoto... y por supuesto dichos ajustes se reflejan en la copia de los ajustes que siempre podemos realizar.

 

Cuando IGMP Proxy está en funcionamiento, el Router emite a la red por Broadcast (en realidad lo hace por Multicast, pero a todos) un Query (pregunta) para conocer los grupos Multicast a los que pertenece cada uno de los equipos de la red, y estos a su vez como es natural responden a dicha petición... y lo hacen también por Multicast (llega a todos). Este funcionamiento es normal, el problema es que estos Querys se realizan de forma demasiado frecuentes, y esto es lo que no es normal. Por defecto el Mitrastar, el archivo de configuración que carga Movistar, está configurado para que el Router lance estos Query cada 10 Segundos!! Esto es una barbaridad, porque si a eso le sumamos las respuestas de TODOS los dispositivos de la red, se está generando en la red un flujo constante de tráfico IGMP, que es Multicast y llega a todos!! Con lo que de nuevo tenemos el mismo problema que con los ARP... los dispositivos portátiles no pueden entrar en sueño profundo.

 

Para hacernos una idea, el tiempo que define el estándar IGMP como "normal" se establece por defecto en los 125segundos. Esto significaría que el Mitrastar estaría usando un tiempo 12 veces menor. Ya no se trata sólo de ahorrar ancho de banda en la red, que a fin de cuentas los recursos WIFI son limitados y estos paquetes tienen que llegar igualmente a dispositivos portátiles, sino que impide que nadie "duerma".

 

Por suerte la solución en este caso es sencilla, tan sólo debemos de modificar el tiempo prefijado de 10 segundos a otro que nos guste más, por ejemplo 125, que como me han asegurado los compañeros es más que suficiente. Tan sólo debemos editar nuestro archivo de configuración. Como siempre, realizar una copia de seguridad de este y al editarlo tener cuidado de no tocar nada más que lo necesario. En este ocasión buscaremos por:

 

<IGMPproxy

Encontraremos rápidamente un bloque como el siguiente:

 

 

<IGMPproxy> 	<Entry Enabled="Yes" Robustness="2" QueryInterval="10"
QueryResInterval="9" LastMemQueryInterval="10" StartQueryInterval="10"
StartQueryCount="2" MaxGroups="16" UnsolicitedReportInterval="1"
SSMEnable="true" ProxyVersion="IGMPv2" />
</IGMPproxy>

El valor mágico a modificar es eefctivamente: QueryInterval="10"

 

Cambiando el valor por 125 tendríamos suficiente, en mi caso, el bloque quedaría de la siguiente forma (el bloque puede ser diferente dependiendo del usuario y su configuración, lo importante es modificar el QueryInterval):

 

<IGMPproxy> 	<Entry Enabled="Yes" Robustness="2" QueryInterval="125"
QueryResInterval="9" LastMemQueryInterval="10" StartQueryInterval="10"
StartQueryCount="2" MaxGroups="16" UnsolicitedReportInterval="1"
SSMEnable="true" ProxyVersion="IGMPv2" />
</IGMPproxy>

Como siempre, guardar, volver a cargar la nueva configuración y listo. Cuando reinicie todo funcionará exactamente igual, con la salvedad de que ahora el Router no preguntará cada 10 segundos, sino lo hará cada 125 segundos, una gran diferencia que ahorrará a dispositivos tipo teléfonos/tablets bastantes puntos porcentuales de batería durante los tiempos de reposo.

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

 

Batería (Activar el modo PowerSafe para dispositivos portátiles):

 

Las extensiones WMM de WIFI, entre otras muchas, poseen una especificación llamada APSD. APSD permite que el punto de acceso (en este caso el router) mantener al dispositivo asociado que lo solicite/permita en un estado de menor consumo.

 

Como vimos en el fix anterior, los dispositivos logran ahorrar muchísima batería cuando entran en estados llamados de sueño profundo. En el caso anterior cuando reciben paquetes de datos constantes por WIFI impide que estos entren en sueño profundo, haciendo que la batería se agote a un ritmo enorme. APSD viene a intentar lograr que el tráfico que llega a los dispositivos cuando están en reposo, sea más... "ordenado" y "pausado", para despertar lo menos posible al dispositivo. Para esto lo que hace el router es que una vez un dispositivo le informa que está en reposo, en vez de enviarle al instante todo el tráfico que vaya dirigido a él, lo almacena en un buffer que no manda hasta que este está lleno.

 

Visto desde un punto de vista práctico... si nos mandan un WhatsApp en vez de mandarnos al instante dicho WhatsApp, si el buffer tiene el tamaño de 3 WhatsApp por ejemplo, nos mandaría los 3 de golpe, en vez de uno en uno. Con esto se logra que el móvil esté mucho más tiempo en reposo con lo que aumenta aun más el ahorro de energía. La contraindicación básicamente es que hay una mayor latencia en la recepción de los datos, a lo mejor pasa de ser inmediato a ser 2-3 segundos... o lo que sea. Normalmente esto no es un problema porque precisamente si la pantalla está apagada es que no estamos generando de forma activa tráfico.

 

Esta opicón dependiendo del Router viene habilitada o no por defecto, aunque la mayoría la soportan, y prácticamente el 100% de todos los dispositivos móviles. Debería de ahorrar un buen % de batería sobre todo por la noche. Este router no tiene en la interfaz Web una opción para habilitar o deshabilitarla, pero existe como opción interna en el archivo de configuración, con lo que NO HAY QUE AÑADIRLO EN NUESTRO BLOQUE DE FIX.

 

En este caso en concreto, editamos el archivo de configuración y buscamos por: "<Entry0 SSID"

(sin las comillas). Si miramos bien estaremos en las opciones de configuración de nuestro WIFI, concretamente en la sección WLan -> Entry0. Lo que tenemos que hacer es añadir un parámetro nuevo:

 

APSDCapable="1"

 

Si originalmente tenemos esto:

 

<Entry0 SSID="NUESTROSSID" HideSSID="0"

Lo modificaremos con la entrada anterior:

 

<Entry0 SSID="NUESTROSSID" HideSSID="0" APSDCapable="1"

 

También deberemos por asegurarnos, establecer el parámetro WMM que está en el mismo bloque de cero (en caso de estar a cero) a 1.  (sustituir el 0 -> 1)

 

De este modo los dispositivos móviles deberían de lograr ahorrar aun más batería cuando están por WIFI. Originariamente puse buscar otra cadena, pero por lo que he visto diferentes cargas telemáticas de la B21 tienen diferencias entre unos y otros, y en algunos no se encontraba la cadena que se buscaba antes. En teoría se debería de poder añadir el nuevo parámetro en cualquier lugar del bloque citado, dentro de Entry0

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

 

Uso de la Banda de frecuencia de 40Mhz de WIFI (Duplica la velocidad):

 

En las especificaciones 802.11n, se permite la anchura de 40MHz para mejorar la transmisión de datos, logrando literalmente a doblar la velocidad que se obtiene usando la anchura estándar de los 20MHz. A dái de hoy prácticamente cualquier router o dispositivo permite trabajar en esta frecuencia, logrando como es natural una velocidad mucho mayor. Pasamos de tener básicamente enlaces de 144mbs a tener 300mbs, que es una gran diferencia.

 

Nuestro querido Mitrastar permite el uso de los 40Mhz estableciendo una opción en la interfaz web llamada "Channel Width", que permite establecerlo en 20Mhz (fijo) o en Auto (20/40). El problema está en que un fallo del Driver provoca que si se establece en Auto (y por tanto poder tener enlaces de 300mbs) funcionará TAN SOLO hasta que se reinicie. Una vez que se reinicie por le motivo que sea el router, este dejará de usar la banda de 40MHz, siendo necesario para volver activarla poner de nuevo dicha opción en 20Mhz, reiniciar, y ponerla otra vez en Auto... y volverá a funcionar otra vez sólo el tiempo que dure sin reiniciar.

 

Aquí lo que se ha hecho es usando nuestro bloque de "fixes" forzar que cada vez que se reinicie el router este funcione en la banda de 20/40. Pero hay que tener en cuenta dos cosas:

 

a) El fix SOLO FUNCIONA si en la interfaz web se configura como 20MHz, si se configura como Auto, el fix NO FUNCIONARÁ. Así que antes/después de poner el fix, asegurarse que Channel Width está en 20MHz. Esto se debe a que si el router se reinicia estando configurado como 20/40 la interfaz WIFI se configura mal haciendo imposible su uso.

 

b) Es necesario especificar el canal que tengamos cada uno. Si usamos el 5, poner el 5 en el fix. Yo tengo puesto 13, así que por eso pone 13, pero que cada uno use el suyo. El procedimiento es el mismo, nuestro fix sería en este caso:

 

wifi_fix="/userfs/bin/iwpriv ra0 set HtBw=1; /userfs/bin/iwpriv ra0 set Channel=13"

 

 

Si lo quisiésemos añadir al primero de la batería, el bloque quedaría:

 

<Autoexec> 	<Entry
arp_fix="sysctl -w net.ipv4.neigh.br0.mcast_solicit=0"
wifi_fix="/userfs/bin/iwpriv ra0 set HtBw=1; /userfs/bin/iwpriv ra0 set Channel=13" />
</Autoexec>

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

 

Bloqueo del tráfico DHCP del router

 

Otro problema que ha surgido a algún compañero ya, @ManuelTT@taker59 entre otros, es que el router bloquea por sistema todo el tráfico DHCP que circula por él que no genere él. Esto normalmente no importa, pero si queremos que sea otro dispositivo de nuestra red quien haga de servidor DHCP, nos encontraremos que ningún dispositivo conectado al Mitrastar puede obtener el lease.

 

El problema en esta ocasión es algo más complejo, pero es real. El router cuando levanta la interfaz WAN crea un filtrado que impide este tipo de tráfico. Solucionar este bloque es muy sencillo, simplemente se elimina la regla que lo bloquea y solucionado. El problema en este caso es que dicho bloqueo se realiza no al iniciar el router que es cuando se ejecutan nuestros "fixes", sino que se realiza de forma dinámica una vez se establece la conexión WAN. Sin modificar la firmware y sin las herramientas para poder ejecutar instrucciones que se disparen ante ciertos sucesos (es posible que sí se pueda, pero no tengo ganas de trabajar más en ello), la mejor opción que se me ocurre es crear en este caso un cronjob, una tarea que se repite cíclicamente cada X, siendo X el tiempo que queramos, de este modo se puede hacer que se ejecute una instrucción que sea eliminar las reglas que causan el problema cada X, con lo que se pude solventar el problema de que la regla se aplica después de levantar WAN. Lo ideal es que la tarea sólo se ejecutase una vez, pero como esto es imposible, hay que hacer que sea indefinido.

 

Si establecemos un tiempo pequeño, la ventaja es que el tráfico DHCP empezará a circular tan pronto como se ejecute la 1º vez la regla (si ya se ha levantado la instrucción), pero en contra se ejecutará más veces la instrucción (aunque esto no es un problema). Si se usa un tiempo más grande se ejecutará menos veces, pero el tráfico no circulará hasta que se ejecuta por primera vez. Así que por comodidad yo he preferido usar un minuto. Debería de ser tiempo suficiente para que al ejecutarse la regla ya exista y se elimine. No es lo más ortodoxo, pero funciona bien. Eso quiere decir que un minuto después de que se ejecute el cron, la regla que bloquea DHCP sería eliminada, y todo funcionaría bien

 

El bloqueo es una regla ebtable, y se eliminaría así por Shell:

 

ebtables -D FORWARD -p ipv4 --ip-proto 17 --ip-source-port 67:68 -j DROP

 

La creación de cron en este router es un poco... cogida con pinzas. Tenemos que programar el cron igualmente por nuestro archivo de configuración. El archivo de crontab es la sintaxis estándar, la línea para programarlo sería algo así:

 

 

* * * * * ebtables -D FORWARD -p ipv4 --ip-proto 17 --ip-source-port 67:68 -j DROP

 

Eso programaría una tarea cron para que se ejecutase cada minuto. El problema es que el router ya usa para otra cuestión un cron, que cuando se ejecuta si detecta algún otro lo cierra, así que tenemos más bien que añadir este otro a parte, pero el cron que ejecuta el router para otras tareas tb ejecutará este. Por una limitación de la firmware, es necesario escribir el fix en dos líneas, si se pusiese en una sola el router cascaría, así que... MUCHO OJO. El fix completo quedaría así:

 

 

dhcp_fix="mkdir /etc/crontabs"
dhcp_fix2="echo '* * * * * ebtables -D FORWARD -p ipv4 --ip-proto 17 --ip-source-port 67:68 -j DROP' &gt; /etc/crontabs/admin"

 

 

 

De nuevo traducido esto en nuestro archivo cfg (y por ejemplo con el fix de la batería (ARP) incluido también), quedaría de la siguiente forma:

 

<Autoexec> 	<Entry
arp_fix="sysctl -w net.ipv4.neigh.br0.mcast_solicit=0"
dhcp_fix="mkdir /etc/crontabs"
dhcp_fix2="echo '* * * * * ebtables -D FORWARD -p ipv4 --ip-proto 17 --ip-source-port 67:68 -j DROP' &gt; /etc/crontabs/admin" />
</Autoexec>

 

Hay que tener en cuenta que aunque la B23+ continúa usando dicha regla, debido a cambios internos no se pude usar el usuario admin (no existe), con lo que sería necesario añadir el crontab directamente al que el sistema crea para sus propias necesidades. Se puede hacer, básicamente en vez de crear el archivo "admin" se adjuntaría como línea nueva al archivo "1234" de la misma ubicación, pero no he probado aun los tiempos. Si primero se ejecuta nuestro fix, el archivo es muy posible que no exista aun, así que tendría que comprobar si cuando el sistema crea el suyo lo adjunta al que nosotros crearíamos o lo sustituiría... se tendría que ver.

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

 

Bloqueos del Router

 

Algunos usuarios han experimentado que llega un momento en el que el router "muere". la conectividad es correcta, todo parece funcionar en teoría, pero... no hay internet, nada funciona. El problema se soluciona como es natural reiniciando el router. Esto se ha observado al menos en la versión B21, no se sabe bien si estaba presente antes, o si está presente en versiones posteriores

 

El problema no afecta a todos, de echo aunque sabemos por qué ocurre, no sabemos que lo dispara, o que provoca esta situación. Por lo general, quienes lo sufren, suelen padecerlo cada 3-5 días de uso, tras los cuales se ven obligados a reiniciar el Router. Otros como digo no les afecta en absoluto, con lo que estos fix no serían para ellos

 

El problema aparece porque el Router agota la RAM. Este ejecuta varias instancias de un proceso crítico llamado cfg_manager, que gestiona muchas partes del Router y servicios. Por alguna razón que desconocemos, el consumo de RAM de este proceso y sus instancias empieza a aumentar sin parar la RAM necesaria. El aumento no es sustancial, pero es más o menos contínuo... el Router cuenta con 128MB de RAM y después de arrancado tiene libre unos 80-90MB, lo cual no está nada mal. Agotar toda esta memoria al proceso con el problema (además del consumo que hacen otros procesos, servicios, archivos... ) lleva su tiempo, no es algo que suceda (al menos no lo hemos visto) en minutos, pero a lo largo de 3-5 días, sí. Cuando el Router se queda sin RAM... se congela.

 

No podemos deshabilitar/suprimir el proceso porque es crítico, si lo hacemos se perdería seguro el acceso a la interfaz web y posiblemente otros servicios. Si matásemos el proceso y todas las instancias, la RAM se recupera, pero... no es una opción. Otra opción sería reiniciarlo. Esta opción aun creo que sería posible... el problema no radica tanto en finalizar el proceso y arrancarlo de nuevo, esto es fácil, el problema es que cuando se inicia de nuevo, el propio proceso reinicia muchos servicios, entre ello la ejecución misma de los comandos que introducimos, con lo que en cuanto se ejecutase (hay que ejecutarlo dos veces), no se ejecutaría la segunda vez, y el cron encargado para reiniciar el proceso cada X no funcionaría...

 

Debido a esto, por ahora, la única "solución" que si es sencilla, sería cortar por lo sano. Sino podemos reiniciar el proceso problemático, podemos reiniciar completamente el Router. Es un mal menor, ya que podemos hacerlo al menos de modo programado, por ejemplo una vez al día por la noche, o una vez cada 3 días a las 5 de la mañana.... tiene la desventaja no obstante que mientras se reinicia, cualquier conexión que tuviésemos en ese momento se iría al trasto, pero aun así creo que es mucho mejor poder controlar esos reinicios, a no que se bloquee cuando dios le dio a entender.

 

El proceso sería igual (muy similar) al visto en el bloque anterior. Se trata de programar una tarea cron que se ejecute a una determinada fecha/hora, y esa tarea en este caso será: Reiniciar Router. Aquí, cada cual debe de ver cual es la mejor hora/fecha para el reinicio, así que la siguiente línea quedará pendiente para cada cual la modifique según crea. El cron para esto sería el siguiente:

 

 

0 3 */2 * * /sbin/reboot

 

Es necesario entender mínimamente como funciona, puesto que cada cual deberá de modificar los números que aparecen en función de sus necesidades. Nosotros nos interesa tan solo día hora y minuto, así que nos centramos en las tres primeros columnas, en el caso que yo he puesto: 0 3 */2

 

-La primera columna especifica el minuto, se pude poner cualquier valor entre 0 y 59. El * sería cada minuto, cosa que no queremos

-La segunda columna especifica la hora, con lo que pude usarse cualquier valor entre 0 y 23.

-La tercera el día, y este tiene truco. Podemos especificar un valor entre 1-31, pero eso no nos serviría porque el router se reiniciaría sólo un día concreto al mes. En cambio si usamos la sintaxis que aparece "*/2", implica que estamos seleccionado los días pares del mes. si usásemos "*/3" estaríamos indicando que se ejecutase cada 3 días... y así sucesivamente.

 

Es decir, en el caso de ejemplo estaríamos programando el reinicio a las 3:00 de la mañana (AM) de los días pares (que en la práctica sería cada 2 días exceptuando los finales de meses de 31 día que se ejecutaría al tercero. Si quisiésemos que se ejecutase cada 3 días a las 5 de la mañana y 15 minutos, por ejemplo:

 

15 5 */3 * * /sbin/reboot

 

Pues si cogemos todo eso, creamos el archivo necesario y todo lo demás, el fix completo quedaría del siguiente modo, tomando los valores del primer ejemplo:

 

 

bloqueo_fix="mkdir /etc/crontabs"
bloqueo_fix2="echo '0 3 */2 * * /sbin/reboot' &gt; /etc/crontabs/admin"

 

NOTA: Si por un casual se necesitase un segundo cron (por ejemplo por usar el fix de DHCP), sería posible, pero el segundo cron debería de ser añadido al archivo existente, no sobreescrito. Es decir, usar >> en vez de >. Es decir

 

&gt;&gt;

en vez de

&gt;

--------------------------------------------------​------------------

 

Añadir equipos a la tabla ARP de forma estática

 

Como ya son muchos los que lo han pedido y preguntado, no veo motivo de no añadirlo aquí. Ya se había hablado en el hilo, pero es verdad que sepultado entre otros cientos de post.

 

Una función bastante habitual, es hacer uso de Wake On Lan, es decir, poder encender de forma remota nuestro equipo. Esto requiere como es natural tener configurado el equipo, que este esté conectado por cable al Router, que la bíos esté configurada para tal efecto... y evidentemente un programa que podemos instalar en el Móvil, o en otro PC o incluso a través de una web, para mandar las señales necesarias al equipo para que este se inicie. Esto no es algo nuevo, WOL se lleva usando desde tiempos inmemorables.

 

WOL no suele dar problemas, una vez se configura bien el equipo no hay mucho más que hacer. Pero tenemos una variante, Wake On WAN (WOW), que es poder realizar lo mismo, pero desde fuera de la red, es decir, desde Internet. La utilidad es evidente, poder apagar el equipo, irnos a cualquier lado, y si necesitamos acceder a él poder arrancarlo desde donde estemos para poder acceder luego de forma remota.

 

El problema con WOW, es que WOL se fundamenta en poder enviar a una dirección física específica (Una MAC) un paquete específico, pero desde Internet esto no lo podemos hacer. Desde Internet, podemos crear una redirección de puertos en el Router para que al llegar a él, este los reenvíe a su vez al equipo que sea, y ojo, funciona perfectamente, pero para que eso sea posible el Router por lo general debe de conocer quien/que equipo, posee esa IP. Como el equipo está apagado, no tiene asignada ninguna IP, así que el Router tiene que buscar en la tabla ARP para ver al menos si tiene registrada dicha dirección MAC. El problema es que la tabla ARP es dinámica, se va rellenando en función de los equipos que se van conectado o desconectando, y después de cierto tiempo, si un equipo se ha ido de la red, la tabla ARP elimina el registro del equipo que ya no está.

 

Esto hace que dependiendo del funcionamiento del Router y de la propia aplicación que se use para poder realizar WOL/WOW, sea a veces un infierno. Una solución es por ejemplo el reenvío de puertos en Broadcast, otra que el Router permita cierto tránsito especial de tráfico... pero nada puede garantizarse, como digo es muy dependiente de cada Router y de cada aplicación que se use. Hay Routers que simplemente con crear el DHCP estático pertinente es capaz, otros funcionan bien simplemente usando la dirección de broadcast 255.255.255.255.. como digo es muy dependiente.

 

Existe no obstante una solución "global" a esto, en el caso de que el usuario no logre configurar el equipo o la aplicación. Crear manualmente un registro estático en la tabla ARP del Router. De este modo la tabla ARP siempre contendrá IP/MAC del equipo que queremos despertar, y junto al mapeo de puertos correspondiente, nos aseguramos que el tráfico especial qeu se manda para iniciar el equipo, llegue.

 

Algunos Routers permiten realizar esto en la propia interfaz, aunque son los menos. La mayoría que lo permiten se pude realizar por scripts. El Mitrastar como es normal no lo permite por la interfaz web, y en teoría tampoco podemos usar Scripts, pero... sí podemos hacerlo gracias digamos a la "puerta trasera" que he ido usando para aplicar los diferentes fix. Se pueden aplicar fix, y se pueden crear igualmente entradas ARP estáticas.

 

En Linux, un registro ARP estático se añade del siguiente modo, los datos de la IP/MAC son inventados:

 

 

arp -s 192.168.1.55 aa:bb:cc:dd:00:11

 

Así, que si usamos exactamente el mismo procedimiento que en el resto de "correcciones", podríamos hacer algo así:

 

arp_mod="/sbin/arp -s 192.168.1.55 aa:bb:cc:dd:00:11"

 

Si quisiésemos añadir más de un equipo, tan sólo tendríamos que añadir una línea adicional por cada equipo, cambiando el nombre de la etiqueta

 

arp_mod="/sbin/arp -s 192.168.1.55 aa:bb:cc:dd:00:11"
arp2_mod="/sbin/arp -s 192.168.1.56 aa:bb:cc:dd:00:12"

 

Con esto, el Router nada más iniciar, crearía las entradas pertinentes en su tabla ARP, permitiendo poder hacer WOW sin problema.

 

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

 

A medida de que vayan saliendo otros problemas QUE REALMENTE SEAN problemas del router Y que puedan ser solucionados mediante la aplicación de estos pequeños... "fixes", no veo la razón por la cual no seguir añadiendo otros. Por supuesto estos "fixes" no tienen porqué necesitarlos todos, por ejemplo el problema de DHCP no es un problema si no usamos un servidor DHCP diferente.

 

Por supuesto el potencial de esto no se limita a realizar fixes, sino a poder realizar ajustes avanzados o concretos, ya sean filtrados, rutas... un poco lo que se quiera.



Por privado solo asuntos privados, para lo demás la comunidad."El conocimiento nace del desacuerdo"
Mensaje 1 de 991
84.774 Visitas
990 RESPUESTAS 990
Theliel
Yo probé el VDSL

@Randolf como te digo es cfg_manager que agota totalmente la RAM. El router funciona y tu conexión a inet también si finalizas cfg_manager (todas sus instancias) y la RAM vuelve toda, si cascase dejarían de funcioanr algunas cosas, pero no habría problema. El bloqueo es porque la RAM se esfuma del todo, la ramfs necesita espacio para funcionar el router y... KO

 

voy a jugar un buen rato con el mío y cfg_manager a ver si soy capaz primero de finalizarlo correctamente y restaurarlo, así al menos tendríamos un primer posible fix. Y si llega a ser posible, intentar aislar el problema dentro de cfg_manager. Coincide también con que la B14 no parecía tener este problema, y de las pocas cosas que se actualizaron fueron precisamente el binario de cfg_manager, a ver que encuentro, aunque no prometo nada 😉



Por privado solo asuntos privados, para lo demás la comunidad."El conocimiento nace del desacuerdo"
Mensaje 351 de 991
1.944 Visitas
ekol
Yo probé el VDSL

Confrimar que trás el downgrade de B21 a B14, los problemas de reinicios y cuelgues han desaparecido completamente, previamente como comentaís era casi diario el reinicio o cuelgue y en el mejor de los casos pasados unos días.

 

La pasada semana, antes de cambiar por un AC87U, el Mitrastar con P2P incluido pudo aguantar la semana entera sin problema.

 

Un saludo y agradecer el trabajo que haceís por la comunidad.

Mensaje 352 de 991
1.921 Visitas
Jordycf
Yo probé el VDSL

Pues nada, aquí andamos para intentar también ayudar en todo lo posible con este router.

 

Lo primero quiero agradecer a @Theliel su labor desinteresada para resolver las dudas y problemas que van surgiendo. No es fácil encontrar gente así.

 

Confirmar con todos (incluido él) el "capado" de los fix de más de 139 carácteres. Ya me cargué un Mitrastar al creer que el fix estaba bien, y al ser más largo de 139 carácteres bloquearse.

 

Si se meten los comandos en diferentes fix del modo:

 

fix1="......"

fix2="......"

fix3="......"

...

 

De momento no he encontrado ningún tipo de limitación, y todo ha ido correcto.

 

Ahora estoy con Wireshark monitorizando si hay paquetes que se pierden o si las conexiones que quiero realmente las está bloqueando. Y me surge una nueva duda...

 

Hay veces que a traves del puerto UDP 3250 (source port) se conecta a una IP a través de un destination port... que muchas veces es distinto al 3250 este que he hablado antes.

 

Me imagino que con algun fix "iptable" podré filtrar estos puestos de destino, pero que son? ese puerto es al que me conecto en la IP de destino o es de mi propio router?

 

Si mi IP es 1.2.3.4 puerto 3250 y los datos de destino son IP 6.7.8.9 puerto 9899 me estoy conectando desde mi puerto UDP 3250 hasta el puerto 9899 de la ip de destino?

 

Puedo bloquear, cuando mi puerto sea el UDP 3250 para que solo me conecte a través de el a otras IPs con puertos 3250?

 

pd.: Los puertos que he puesto son un ejemplo cualquiera.

Mensaje 353 de 991
1.864 Visitas
Theliel
Yo probé el VDSL

Buenas @Jordycf, si te sirve de consuelo, como dije, me costó unos cuantos ATBR (borrar la nvram) dar con el número exacto, desconozco el motivo... quizás un desbordamiento de buffer... pero bueno, en principio tenemos suficiente a menos que se quiera escribir sentencias muy largas

 

Sobre puertos:

 

Cuando te conectas a un servicio externo, estos servicios suelen estar identificados por el puerto entrante que usan. Así por ejemplo las conexiones realizadas hacia el 80/TCP son casi siempre trafico HTTP, porque el puerto 80 es el puerto asignado por la IANA para ello:

 

http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml

 

Eso no significa que no pueda usarse el puerto 80 para otros servicios, ni tampoco que no pueda ponerse a la escucha un servidor web en otro puerto. Son estándares, pero no es una obligación.

 

Pero hablamos de los puertos de entrada, puertos en un dispositivo asociados a un servicio: 80 HTTP, 443 HTTPS, 21 FTP... pero al margen de estos puertos, el tráfico IP usa puertos para realizar conexiones (existen protocolos que no funcionan con puertos), tanto por parte del origen como por parte del destino.

 

Los puertos no son una asociación. El tráfico para que llegue al puerto 80 de un servidor web no tiene por qué salir por el puerto 80 del cliente. El OS/aplicación del equipo cliente es el que selecciona un puerto de un pool de puertos disponibles (que no se esté usando, que no esté reservado, que..) de forma aleatoria o pseudoaleatoria, y abre la conexión por dicho puerto, con total independencia de cual es el puerto de destinom que a fin de cuenta es el que define el servicio. Efectivamente el equipo recibirá a su vez el trafico generado de la conversción con el servidor por ese mismo puerto por regla general, pero es que el equipo cliente no tiene asociado dicho puerto a un servicio, sino que para él es un mero canal establecido.

 

Esto quiere decir que da igual que el puerto de origen sea el 3250 y no vaya al 3250 del servidor, de echo lo raro es que fuese así, lo normal es que ambos sean diferentes. Desde el punto de vista de un "cliente", lo que importa es el puerto de destino, no por el puerto que se manda, con lo que normalmente esto no se controla. Para un servidor es al reves, lo qeu importa es el puerto por el que entran las conexiones, por que son esos puertos a los que se asocian los diferentes servicios.

 

Cuando ves en Wiresharl una conexión, pongamos de ejemplo el siguiente paquete

 

192.168.1.2:3250 -> 8.8.8.8:53

 

Significa que tu equipo con la IP 192.168.1.2 está enviando un paquete a través de su puerto 3250/udp a la dirección de destino 8.8.8.8 y hacia el puerto 53/udp de dicho servidor (es decir, el servicio de DNS). Tú, desde Wireshark, no ves al router. Es decir, tú no mandas al router dicho paquete al puerto 53, tu le dices al router que quieres enviar un paquete a los servidores de google al puerto 53, y que realizas la conexión a través del puerto 3250. El router es un mero intermediario, los puertos al final efectivos y reales son tu 3250 y el 53, que son los que realmente importan.

 

Si el origen es 1.2.3.4 puerto 3250 y el destino 6.7.8.9 puerto 9899, efectivamente, te conectas desde el 3250 tuyo al 9899 externo

 

Puedes bloquear cualquier puerto, saliente, entrante... pero lo que dices creo que como digo no tiene mucho sentido, bloquear un puerto saliente de un equipo solo tiene sentido por lo general cuando se quiere restringir tráfico muy concreto por motivos muy concretos



Por privado solo asuntos privados, para lo demás la comunidad."El conocimiento nace del desacuerdo"
Mensaje 354 de 991
1.846 Visitas
Jordycf
Yo probé el VDSL

Gracias @Theliel por la explicación. Lo he entendido perfecto. Te explico lo que vi en el Wireshark y me dices si tiene o no sentido.

 

Estuve monitorizando el trafico que había navegando por páginas web (todo normal) conectandome a otros PC de mi red (normal también) y por último estuve fijandome en el tráfico que genera el jugar a la consola una partida p2p.

 

Cuando desde mi consola me conecto a otro usuario, en todos los casos el puerto 3074 es el usado en mi caso. Siempre. No hay ni una sola vez de las que haya monitorizado este tráfico en el que el "source port" sea otro que no sea el 3074 UDP. Sin embargo, el "destination port" si que cambia. Algunas veces también es el 3074 (quizás la mitad de las veces en las que conecto con alguien el destination port es el 3074), pero otras veces no es ese puerto, dándome cuenta que los problemas de conexión entre los dos (lag, delay etc) se dan cuando el puerto de destino es diferente al 3074.

 

No sé que sentido tiene, pero se me ocurrió que podía filtrar mediante una regla las ip´s de los rivales con los que no conecte a través del puerto de destino 3074, y comprobar así que resultado da. Bueno, si que se me ocurre que pueda darse algún tipo de problemas ya que para las consolas se suele desbloquar el puerto 3074, pero no ningún otro de los que he visto en destino, y al no estar abiertos puede que esté  causando estos problemas.

 

Ya digo que con las pruebas que he hecho monitorizando el tráfico, conectando la consola al PC mediante cable, y el PC por wifi, cuando el puerto de destino es 3074 la respuesta es excelente en todos los casos, pero cuando no es ese puerto, la respuesta no es la misma, a veces sigue siendo buena, y otras directamenet mala.

 

También decir que durante estas conexiones, la consola no realiza ninguna otra conexión a ninguna otra IP que no sea la de mi adversario. Parece que bloquea todo el resto de tráfico para que no haya lag o retardo durante las partidas...

 

Bueno. A ver que puedo sacar en claro.

 

Gracias por seguir permitiendome aprender de estos temas que tanto me gustan.

Mensaje 355 de 991
1.837 Visitas
Técnico.Global-Movistar
Moderador Global Técnico

Hola @Jordycf :

 

Perdón por la espera.

 

Como ya tenemos tus datos de anteriores consultas, procedemos a mover tu consulta a soporte técnico.


En el momento que uno de mis compañeros pueda, se pondrá en contacto contigo para gestionar tu caso.

Un saludo, Miguel.A. Gato guiño



Si necesitas soporte técnico en averías de Móvil, Fijo, Movistar+ o Internet Fijo (cobre o fibra), puedes acceder a nuestro apartado de Soporte Técnico o rellenar este formulario. También puedes contactar con nosotros llamando al 1002.

 Si necesitas contratar Fibra Ópticacomprobar tu cobertura Adsl y Fibrao ver información sobre la instalación de la fibra visita nuestra página ADSL y Fibra en movistar.es 

Solución aceptada.png
Mensaje 356 de 991
1.826 Visitas
madralphw
Yo probé el VDSL

Buenas tardes,

 

He visto el post sobre el router y bueno no me importa aportar otro punto de vista, de momento no he añadido ningún fix ya que ni lo uso con wifi y tampoco como router principal, lo he dejado como un "pequeño y caluroso" adaptador ATA para el teléfono. Básicamente he dejado una conexión wan con ip estática y la lan con dhcp (por si conecto algo extra). He modificado el provider para que use esta configuración en vez de la de voz (esta la he deshabilitado). Nat deshabilitado en la WAN y el firewall también.

Pues con esta configuración, es curioso, pero no hay filtro en el bridge:

 

# ebtables -L
Bridge table: filter

Bridge chain: INPUT, entries: 0, policy: ACCEPT

Bridge chain: FORWARD, entries: 0, policy: ACCEPT

Bridge chain: OUTPUT, entries: 0, policy: ACCEPT

 

Pero está en FORWARD:

 

# iptables -L FORWARD -n -v
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 TCPMSS tcp -- * eth0.3285 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU
0 0 DROP udp -- !br+ !br+ 0.0.0.0/0 0.0.0.0/0 udp dpt:68  <=== Aquí está para !br 
0 0 DOS_FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 Parental_Ctrl all -- br+ * 0.0.0.0/0 0.0.0.0/0
0 0 UPNP_PRE all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ADDRMAP_FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ipfilter_chain all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 url_filter_chain tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80
0 0 app_filter_chain tcp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 app_filter_chain udp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 PORT_FORWARDING all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 DEFAULT_SERVER all -- * * 0.0.0.0/0 0.0.0.0/0

 

He visto algo curioso, que yo tengo una carga de < 4 (Esto debería ser <1 para lo que hace... mucha cpu consume), a pesar de tener deshabilitado el tr69, siguen los procesos corriendo, bueno.. 

 

 

# free
total used free shared buffers
Mem: 125672 47840 77832 0 3192
Swap: 0 0 0
Total: 125672 47840 77832

# top

Mem: 47996K used, 77676K free, 0K shrd, 3192K buff, 19324K cached
Load average: 3.69, 3.69, 3.64 (State: S=sleeping R=running, W=waiting)

PID USER STATUS RSS PPID %CPU %MEM COMMAND
112 1234 R 1892 1 0.9 1.5 cfg_manager
25676 1234 R 348 24559 0.6 0.2 top
118 1234 S 1892 117 0.1 1.5 cfg_manager
3972 1234 S < 5380 1 0.0 4.2 icf.exe
4006 1234 S < 5380 3972 0.0 4.2 icf.exe
4007 1234 S < 5380 4006 0.0 4.2 icf.exe
117 1234 S 1892 112 0.0 1.5 cfg_manager
3974 1234 S < 1860 1 0.0 1.4 voiceApp
4026 1234 S < 1860 3993 0.0 1.4 voiceApp
3994 1234 S < 1860 3993 0.0 1.4 voiceApp
4023 1234 S < 1860 3993 0.0 1.4 voiceApp
3993 1234 S < 1860 3974 0.0 1.4 voiceApp
4025 1234 S < 1860 3993 0.0 1.4 voiceApp
4024 1234 S < 1860 3993 0.0 1.4 voiceApp
1549 1234 S 1420 1 0.0 1.1 tr69
2453 1234 S 1420 2451 0.0 1.1 tr69
2451 1234 S 1420 1549 0.0 1.1 tr69
3982 1234 S < 1112 3981 0.0 0.8 mm.exe
4022 1234 S < 1112 3981 0.0 0.8 mm.exe
3973 1234 S < 1112 1 0.0 0.8 mm.exe
3981 1234 S < 1112 3973 0.0 0.8 mm.exe
3983 1234 S < 1112 3981 0.0 0.8 mm.exe

....

 

Según está a mi me hace servicio, voy a ver si se tuesta, porque desde que lo tengo no lo he tenido mucho tiempo encendido, sin reiniciarlo para hacer cambios en la configuración.

 

Un fichero que crece poco a poco por el registro del voip es el /var/log/messages.

 

¿ Por cierto en el dialplan falta algo no ?

(0[1-57-9]x@|06[0-689]@|10[0-2689]x@|1[2-9]xx@|50[0-8]xxxxxx@|5[19]xxxxxxx@|590xxxxxx@|7[1-4]xxxxxxx@|116xxx@|118xx@|112@)

He visto en el log de messages que carga "Nov 18 15:48:58 MitraStar user.warn kernel: prefix '6/7/8/9' and digits are 9" que es lo que veo que falta en el dialplan.

 

 

Saludos 😉 

Mensaje 357 de 991
1.813 Visitas
Theliel
Yo probé el VDSL

Buenas @Jordycf.

 

Como digo, una aplicación puede configurarse para usar el puerto que quiera como origen como destino, pero en general nadie preestablece el puerto de origen, porque da un poco igual. La mayoría de juegos usan puertos concretos para poder "hablar" entre ellos, generalmente UDP que tienen menos sobrecarta, y a veces más de uno. La inmensa mayoría de las veces, sobre todo a día de hoy, no es bueno ponerse a abrir puertos, es mucho más efectivo habilitar en el router upnp (que por defecto en el Mitrastar no viene habilitado) para que haga él el trabajo de forma automática.

 

Quitando esto, que te dé problemas cuando te conectas a otros por un puerto diferente que no sea el tuyo de origen... no tiene en principio mucho sentido. El juego debe de permitir un rango de puertos en los cuales funciona, a lo mejor lo que te sucede es que el juego requiere un rango y tu tienese establecido un puerto abierto tan solo (por poner una posible causa). Pero como digo en principio da igual, si el juego está preparado para usar un rango, pues un rango, informáticamente hablando no hay un problema con que el puerto de origen sea diferente al de destino, no es un "cable" que conecte sólo uno a otro de igual numeración ni mucho menos.

 

Buenas @madralphw

 

Las únicas reglas que he llegado a ver por defecto en el bridge son el bloqueo DHCP que hace, que se establecen por lo genral cuando se levanta la interfaz WAN por PPPoE, pero es posible que en algunas configuraciones concretas no aparezca.

 

Por lo que se ve también te afecta el problema de RAM de cfg_manager, demasiada RAM consumida e irá en aumento, un día cascará y necesitarás reiniciar indistintamente. Sobre el uso de CPU si veo bien está precisamente siendo consumida por cfg_manager, y sabe dios en que.

 

Por defecto no hay problema en el dialplan que vienen preconfigurado con Movistar, pero dices que has cambiado el proveedor, igual te has dejado algo. Ahora mismo no tengo delante el Mitra, pero lo miro luego si quieres, en esta vida todo es posible. Prueba sino en modificarlo



Por privado solo asuntos privados, para lo demás la comunidad."El conocimiento nace del desacuerdo"
Mensaje 358 de 991
1.792 Visitas
barcelones
Más integrado que la RDSI

muchas gracias theliel.al fin lo he conseguido y nada a ver como se comporta ahora..muchas gracias tio!!  

 

ya teneis un nuevo cachorro entere vosotros!!!!

Mensaje 359 de 991
1.778 Visitas
madralphw
Yo probé el VDSL

 

Buenas @Theliel,

 

Para los cuelgues, en mi caso con poner un script que haga un reboot nocturno, voy arreglado... pero para eso prefiero comprar un adaptador de ATA más estable... a este paso no se libra ni la ONT por sustituir... que por cierto se calienta lo suyo. Pero ya que tenga 3-4 procesos consumiendo cpu, me parece excesivo, a pesar de que parezca que tiene 4 cores.

Sobre el dialplan, me gustaría modificarlo, pero no he visto que en la cadena de la configuración falta las llamadas habituales, que si se carga por otro lado que está camuflado. Yo creo que si añado otra proveedor seré capaz de reenviar llamadas utilizando algún prefijo para encaminar las llamadas. De momento está según viene configurado, ya que el primer día que añadí otro proveedor, con un dial plan sencillo de (200|@) que no hice funcionar en ese momento, pues al hacer llamadas externas por movistar salía número oculto y tuve que restaurar a valores de fábrica el router para arreglarlo.

 

Saludos 😉

 

 

 

Mensaje 360 de 991
1.778 Visitas
Theliel
Yo probé el VDSL

Ummm @madralphw no se podía configurar el dial desde la propia configuración??? juraría que lo he visto en algún lado



Por privado solo asuntos privados, para lo demás la comunidad."El conocimiento nace del desacuerdo"
Mensaje 361 de 991
1.755 Visitas
Jordycf
Yo probé el VDSL

Pues seguimos avanzando.

 

Explico un poco el tema de los puertos y que es lo que he hecho y que resultado me ha dado.

 

Digamos que mi teoría sobre el puerto de destino no la he explicado bien, y creo que si que puede tener influencia en el tema lag, o el retraso que es tan temido por los jugadores. Estos problemas los leo constantemente por todos lados (yo mismo lo sufro a veces) y puede que aquí pueda estar la cuestión.

 

Cuando tú quieres jugar con una consola o con un PC a un juego en línea, normalmente los fabricantes de consolas o los propios juegos te piden que abras una serie de puertos en el router hacia la IP de la máquina que vayas a utilizar para jugar. Supongamos que tengo una consola en la que me recomiendan abrir el puerto 3074. Esto, hay varias maneras de hacerlo. Puedes abrir el puerto para esa IP (Port Fowarding) puedes desmitalizar la IP de la máquina donde juegas (DMZ), puedes usar UPnP (como recomendó @Thelielen su post anterior) y alguna forma más.

 

Pero el hacerlo de una manera u otra creo que puede tener influencia en la conexión entre jugadores en partidas p2p. Por qué? Pongámonos en el caso de que yo uso UPnP y mi rival (en una partida p2p) tiene abiertos los puertos recomendados por el fabricante de la consola mediante Port Fowarding (puerto 3074 UDP y TCP; 80 UDP y 53 TCP). Si a través de Wireshark yo analizo mi conexión a este rival, y me conecto desde mi puerto 3074 hasta el puerto de destino 5023, mi rival al no tener abierto este puerto 5023 puede estar causando el problema de conexión. No sé si me explico bien, pero esto es lo que llevo observando dos días. Cada vez que me conecto a alguien con puerto de origen y destino 3074, el juego funciona sin problemas (entiendo que este puerto con cualquiera de los metodos de apertura de puertos está siempre abierto sea cual sea mi rival), pero cuando conecto a un puerto de destino diferente (normalmente aparecen rangos 5000-5999), el juego hay bastantes veces que tiene lag o retardo en la conexión, entendiendo así que mi rival usa Port Fowarding y que ese puerto de destino no lo tiene abierto.

 

Ayer incluí una regla medienate Shell que funcionó bien. Le pedí bloquear al router el trafico a la IP de la consola, cuando el puerto origen era el 3074 UDP y el puerto de destino estaba en el rango 5000-5999.

 

iptables -I FORWARD -s 192.168.1.150 -p udp --sport 3074 --dport 5000-5999 -j DROP

 

No sé si es correcta porque no pude monitorizar la conexión el rato que estuve en casa, pero en las 5 partidas que pude hacer, no tuve en ninguna de ellas problemas. Si noté que tardaba más en conectar con alguien pero supongo que será normal por el nuevo requisito que le impuse.

Mensaje 362 de 991
1.731 Visitas
madralphw
Yo probé el VDSL

Hola @Theliel,

 

Estar está, pero parece estar capado, no muestra el dialplan para fijos/moviles (6-9x). En Sip en la parte de provider, al editar, abajo del todo.

Saludos 😉 

 

Mensaje 363 de 991
1.724 Visitas
madralphw
Yo probé el VDSL

Hola @Jordycf,

 

Puedes poner una regla previa con -j LOG y así puedes en el log (messages) o ejecutando dmesg, puedes ver si hay paquetes que lleguen que coinciden a esa regla. Lo que pasa que si la insertas con -I, sería así:

 

iptables -I FORWARD -s 192.168.1.150 -p udp --sport 3074 --dport 5000-5999 -j DROP

iptables -I FORWARD -s 192.168.1.150 -p udp --sport 3074 --dport 5000-5999 -j LOG

 

Saludos 😉 

Mensaje 364 de 991
1.720 Visitas
Jordycf
Yo probé el VDSL

Gracias @madralphw en cuanto llegue a casa hoy insertaré un LOG a ver si está bien realizado. Lo he hecho tal cual sale en Wireshark:

 

Source ip: 192.168.1.150; Destination ip: (la del oponente); Source port: 3074 (siempre es la misma); Destination port: (varia, la mitad de las veces 3074 la otra mitad un puerto entre 5000:5999 que es la que he bloqueado.)

 

Aunque parece ser que algo hace puesto que como digo se ha incrementado bastante el tiempo durante el que la consola busca oponentes.Digamos que antes, al no filtrar oponentes el "casting" era más rápido, y ahora al bloquear esto pues tarda algo más.

Mensaje 365 de 991
1.693 Visitas
madralphw
Yo probé el VDSL

Hola @Jordycf,

 

Cuango hagas el listado pon la opción -n ya que si intenta resolver por dns una ip privada tardará...  ejem: iptables -L -n -v

Un saludo ;-9 

Mensaje 366 de 991
1.683 Visitas
Theliel
Yo probé el VDSL

@Jordycf piensa que la configuración por defecto de todos los juegos es esa, es el juego quien cuando realiza la conexión debería de probar a realizarla hacia todos los puertos del juego si usa mas de uno. Es decir, si el juego requiere para la conexión los puertos 5 y 6, cuando tu te conectas a otro cliente el juego debería de probarlo a hacer tanto por el 5 como por el 6, el propio diseño de juego lo tendría que hacer así. Otra cosa es que el juego esté bugeado, pero el problema lo tendrían TODOS!! no sólo algunos usuarios.

 

La forma más rápida de ver por donde pasan los paquetes por las reglas es como te ha comentando @madralphw, ni siquiera usar la segunda para registrarlo, usa directamente v para listar:

 

ipables -nvL

La primera/segunda columna te mostrará el número de paquetes/bytes que han pasado por dicha regla, con lo que es fácil ver si se está aplicando o no

 

 

@madralphw, pero has probado añadir y modificar tu el dialplan?? has probado hacerlo desde el archivo de configuración?? No recuerdo a ver visto ningún bloqueo o limitación en ese sentido



Por privado solo asuntos privados, para lo demás la comunidad."El conocimiento nace del desacuerdo"
Mensaje 367 de 991
1.662 Visitas
madralphw
Yo probé el VDSL

Hola @Theliel,

 

Sí, lo modifiqué sólo para que las extensiones 20x fueran para el otro provider y lo el efecto secundario que obtuve fue que las llamadas a fjios/móviles salieran con número oculto (A saber porqué.. ) 

Probaré este fin de semana con tranquilidad, que el fijo tiene cierto uso para recibir llamadas y tiene que estar disponible. Pero casi prefiero sustituirlo por otro equipo si hay que andar reinciando cada poco.

bb

Pues ha subido unos megas el consumo de ram:

Ayer:

total used free shared buffers
Mem: 125672 47840 77832 0 3192

Hoy:

# uptime
15:48:12 up 1 day, 1 min, load average: 3.55, 3.58, 3.61

# free
total used free shared buffers
Mem: 125672 51624 74048 0 4092b

 

Ya van tres ficheros de messages:

 

# ls -last
0 drwxrwxrwx 10 1234 root 0 Nov 19 15:50 ..
104 -rw------- 1 1234 root 106169 Nov 19 15:50 messages
0 drwxrwxrwx 3 1234 root 0 Nov 19 09:01 .
128 -rw------- 1 1234 root 129052 Nov 19 09:00 messages.0
128 -rw------- 1 1234 root 129079 Nov 18 23:39 messages.1

 

 

Saludos 😉 

Mensaje 368 de 991
1.643 Visitas
Theliel
Yo probé el VDSL

@madralphw, a ver si miro los dial, en realidad no es algo que me sea costoso ir probándolo en el propio mitrastar porque aunq no lo tengo conectado a la línea si le tengo puenteada la conexión y puedo usarlo como ATA, a ver si "robo" uno de los fijos y pruebo.

 

Soluciones drástricas a las congelaciones sí... siempre sepuede programar por cron un reinicio cada 4-5 días, pero es demasiado drástrico. Estoy intentado lograr lo mismo pero solo reiniciando cfg_manager. Detenerlo y voler a levantarlo es sencillo, pero me está dando problemas a la hora de anidar en el mismo cron más de una instrucción que por alguna razón no lo hace bien... También tengo que comprar el cfg_manager de la B14 con el actual, desensamblarlo y ver si hicieron muchos cambios o puede mas o menos tracearse el problema.

 

La solución del reinicio completo es que durante unos 30-40 segundos te quedas muerto, la ventaja de hacerlo sólo con cfg_manager es que exceptuando el acceso a la interfaz web del router y alguan cosilla más, no se interrumpe nada, y además es mucho más rápido. A ver si es posible...

 

Los fichos no son problemas, el tamaño máximo establecido es de 128KB y tienen una rotación de 3, en cuanto estén los 3, el próximo sustituye al más viejo, con lo que ese aspecto si sé que está controlado



Por privado solo asuntos privados, para lo demás la comunidad."El conocimiento nace del desacuerdo"
Mensaje 369 de 991
1.637 Visitas
Jordycf
Yo probé el VDSL

Pues las pruebas de ayer no han tenido mucho éxito. Al parecer por la regla que puse no pasan paquetes.

 

Os pongo aquí la tabla que me aparece en Wireshark (entendiendo que en Destination me aparece la IP de mi rival).

 

Esta línea es la que quiero dejar pasar a traves del fix iptables:

 

SourceDestinationProtocolLengthInfo
192.168.1.150xx.xx.xxx.xxUDP214Source port: 3074  Destination port: 3074

 

Y esta sería una de las que quiero bloquear (realmente quiero bloquear el rango de puertos 5000:5999)

 

SourceDestinationProtocolLengthInfo
192.168.1.150yy.yy.yyy.yyUDP214Source port: 3074  Destination port: 5023

 

el fix "iptables -I FORWARD -s 192.168.1.150 -p udp --sport 3074 --dport 5000-5999 -j DROP" me muestra que no pasan paquetes por él. Por lo tanto entiendo que no está bloqueando nada puesto que la regla está mal puesta...

Mensaje 370 de 991
1.579 Visitas
djbill
Yo probé el VDSL

Según me consta han entregado una versión B22 que soluciona problemas, lo que no tengo claro es si está en proceso de certificación o ya en FOA; a ver si nos hacemos con ella...

 

Un saludo.

 

Mensaje 371 de 991
1.571 Visitas
Theliel
Yo probé el VDSL

@Jordycf prueba con una de estas:

 

iptables -I FORWARD -s 192.168.1.150 -p udp --sport 3074 --dport 5000:5999 -j DROP

ptables -I FORWARD -s 192.168.1.150 -p udp --sport 3074 --match multiport --dport 5000:5999 -j DROP

Yo siempre he usado la segunda, aunque en algunas ocasiones la 1º también puede funcionar. Luego en u rato lo compruebo  y te digo

 

@djbill excelente noticia, a ver si es posible que alguien nos confirme el estado de ella y le podemos echar el guante pronto.



Por privado solo asuntos privados, para lo demás la comunidad."El conocimiento nace del desacuerdo"
Mensaje 372 de 991
1.533 Visitas
Jordycf
Yo probé el VDSL

@Theliel este código que te adjunto no va. Me da mensaje "iptables v1.3.8 multiport expection an option"

 

iptables -I FORWARD -s 192.168.1.150 -p udp --sport 3074 --match multiport --dport 5000:5999 -j DROP

 

Mensaje 373 de 991
1.515 Visitas
Theliel
Yo probé el VDSL

@Jordycf lapsus calami, lo siento, falta la s en port: (no es dport, es dports

 

iptables -I FORWARD -s 192.168.1.150 -p udp --sport 3074 -m multiport --dports 5000:5999 -j DROP

 

Edito:

 

@Jordycf te puedo confirmar que funciona perfectamente, aun así como te digo dudo mucho que cambie algo, como tu mismo dijiste antes te pareció que funcionaba perfectamente pero no se estaba aplicando:

 

# iptables -nvL FORWARD
Chain FORWARD (policy ACCEPT 851 packets, 208K bytes)
 pkts bytes target     prot opt in     out     source               destination
   44  2252 TCPMSS     tcp  --  *      eth0.3285  0.0.0.0/0            0.0.0.0/0           tcp flags:0x06/0x02 TCPMSS clamp to PMTU
   10   280 DROP       udp  --  *      *       192.168.1.200        0.0.0.0/0           udp spt:3074 multiport dports 5000:5999


nping --udp -g 3074 -p 5999 -e eth1 8.8.8.8

Starting Nping at 2015-11-20 16:35 Hora estßndar romance
SENT (0.1780s) UDP 192.168.1.200:3074 > 8.8.8.8:5999 ttl=64 id=3230 iplen=28
SENT (1.2620s) UDP 192.168.1.200:3074 > 8.8.8.8:5999 ttl=64 id=3230 iplen=28
SENT (2.2640s) UDP 192.168.1.200:3074 > 8.8.8.8:5999 ttl=64 id=3230 iplen=28
SENT (3.2660s) UDP 192.168.1.200:3074 > 8.8.8.8:5999 ttl=64 id=3230 iplen=28
SENT (4.2680s) UDP 192.168.1.200:3074 > 8.8.8.8:5999 ttl=64 id=3230 iplen=28


Por privado solo asuntos privados, para lo demás la comunidad."El conocimiento nace del desacuerdo"
Mensaje 374 de 991
1.503 Visitas
MiguelMC
Más integrado que la RDSI

 

@Theliel En mi caso el bloqueo se produce también del 4º al 5º día, he podido observar que horas antes del bloqueo el router "pierde" la IP(mirando en la pestaña status del router) aunque continuo teniendo conexión a internet y en la pestaña WAN el botón da la opción de "Conectar" en lugar de "Conectado" pero obviamente no "reconecta" al poco tiempo el router se bloquea y en mi caso en algunas ocaciones se reinicia solo.

 

Gracias por tu interés.

Mensaje 375 de 991
1.409 Visitas