Buscador

lunes, 31 de diciembre de 2012

Problemas de red :-\

Hola.

Últimamente notaba que la conexión a Internet iba lenta, y a veces incluso no iba.

Eran microcortes o cortes algunos de varios minutos.

Lo primero que pruebo es a reiniciar el router, resultado: el mismo.

Para las pruebas cuento con dos ordenadores, uno con Windows 2000 y otro con Linux Debian.

Además del router ADSL, tengo un AP de Belkin que además tiene 4 puertos LAN.



¿Qué pruebas puedo hacer?

La más básica es con PING.

"ping" no sólo nos dice si un equipo responde o no a nuestra petición, también cuanto tarda, y finalmente muestra una estadística con los resultados.

Fijándome en el porcentaje de paquete perdidos veo que pierde entre 11% y 13%. Eso es una burrada.

El muestreo lo he obtenido a lo largo de una hora.

Esos son los resultados de hacer "ping" desde un PC hacia el default gateway.

Haciendo la misma prueba a la vez desde otro PC hacia el mismo sitio y desde el mismo sitio, es decir conectados directamente al router ADSL me encuentro con otros resultados totalmente distintos.

0% de paquetes perdidos. :-\

Desde Windows 0% de paquetes perdidos.
Desde Linux Debian 12% de paquetes perdidos.

Hago las pruebas varias veces y el resultado siempre es el mismo.
Siempre obtengo el mismo porcentaje de error, lo cuál en principio descartaría que fuese un problema del cable.

Aunque por si acaso cambio el cable.
El mismo resultado, 12% de paquetes perdidos.

¿Será la tarjeta de red?
Se la cambio y lo mismo, 12% de paquetes perdidos.

Esto ya es mosqueante. :-|

Bueno, ni que decir tiene que ambos ordenadores están configurados exactamente igual, a excepción de la IP lógicamente.

¿Qué más puedo hacer?
Mirar la configuración del router. Y ahí encuentro algo curioso.

Antes de continuar el escenario es el siguiente:

  • El punto de acceso está conectado por cable ethernet a un puerto LAN del router ADSL.

  • El punto de acceso hace solo de punto de acceso, es decir no hace de router, para los equipos conectados es totalmente transparente, tanto para los que están conectados por Wi-Fi como los que están conectados por cable.

  • Y las pruebas de los PCs las he hecho tanto desde el AP como desde el router ADSL y siempre he obtenido el mismo resultado.
Sin embargo antes de mirar la configuración del router, desconecto el AP del router ADSL.
Vuelvo a hacer las pruebas y ¡Eureka! ¡Funciona!
Ni un solo paquete perdido en una hora.
Aunque a mi este resultado aunque satisfactorio es aún más mosqueante.

Vuelvo a conectarlo por si acaso fuera casualidad, pero no. Es desconectar el AP del router y no perder paquetes.

Lo primero que me viene a la cabeza es un conflicto de IP. Que dos dispositivos tengan la misma IP. Pero tampoco. Pero de lo que no hay duda es de que existe un comportamiento anómalo cuando conecto el AP al router.

Ahora si que voy a mirar la configuración del router.

Lo primero que miro es que la IP LAN del router y la IP WAN del AP son distintas, bien.

Compruebo que ambos equipos tienen el servidor DHCP desactivado ya que no lo uso. Los equipos están configurados con IP fija.

Y llego a un punto interesante, atentos:

List of IGMP Proxy Entries

interface groups Membres
br0 239.255.255.250 192.168.1.1
.. 224.0.0.2 192.168.1.1
.. 239.255.255.250 192.168.1.69
.. 239.255.255.250 192.168.1.59
Esto es muy extraño.

Las IPs en negrita se corresponden con el AP y el ordenador Linux, el ordenador con Windows no está en esa lista y es el que funciona perfectamente.

La tabla anterior muestra las IP que el router ha "descubierto" o al menos no se pueden añadir manualmente. Lo cuál me lleva a pensar que existen diferencias que no conozco en la configuración de red de los distintos equipos.

¿Pero cuál es esa diferencia?

Así, a priori, ni idea.
Vuelvo a conectar el AP en busca de algo relacionado con el protocolo IGMP.
Lo único que encuentro es que está habilitado el IGMP Snooping.
Por lo que he podido entender esta función se habilita para aprovechar mejor el ancho de banda en conexiones multicast, lo cuál no es mi caso. El multicast se da cuando hay un único emisor y un grupo de clientes conocidos accediendo a la vez.

Con lo cuál ya creo estar ante la solución, deshabilito el IGMP Snooping y arreglado... pues no.

Reinicio ambos dispositivos por si acaso... tampoco.

Workaround

Como solución provisional he desconectado el AP del router ADSL y utilizo el WiFi del propio router de Telefónica.

Y ahora en la lista de IGMP proxies ya solo aparece la IP LAN del router.

List of IGMP Proxy Entries


interface groups Membres
br0 239.255.255.250 192.168.1.1
.. 224.0.0.2 192.168.1.1

No hay mal que por bien no venga.
Ahora uso un cacharro menos, el AP de Belkin, aunque mis motivos tenía.
Y un cable menos claro.

Sin embargo quedan muchas preguntas en el aire:

¿Por qué al conectar el AP, el router añadía esta IP y la del ordenador con Linux al listado de IGMP Proxy?

¿Por qué no añadía también la máquina con Windows?

Y entonces se me encendió una bombillita que iluminaba un cartel en mi mente en el que se podía leer...

"Modo promiscuo"

Cuando una tarjeta de red está en modo promiscuo procesa todos los paquetes que circulan por su subred independientemente de que vayan dirigidos a ella.

Sé, que por defecto en Windows el modo promiscuo está deshabilitado, y si mal no recuerdo instalando el "Monitor de Red" se activa el modo promiscuo, más que nada porque si no, no puede hacer de monitor de red. Estoy hablando de Windows 2000 :D

Sin embargo en Linux, dependiendo de la distribución, de la versión del kernel, el modo promiscuo viene activado por defecto.

Puede ser que este factor sea concluyente para determinar porque solo funcionaba bien el ordenador con Windows 2000.

Y los que estaban en modo promiscuo, el AP y el ordenador con Linux, ¿Fuesen asignados como IGMP Proxy a petición del router?
Buff, demasiado retorcido, no sé si estoy en lo cierto.

Pero lo que si es cierto es que esa es la única diferencia que he encontrado entre el ordenador con Windows y el resto... sospechoso.

Recursos:
 
¡Feliz año 2013!

No hay comentarios: