Sep 22

En esta ocasión voy a explicar el funcionamiento del comando traceroute (tracert para los usuarios windows) una utilidad presente en casi todos los sistemas operativos que permite seguir y trazar el camino que sigue un paquete por las redes desde un punto de origen a uno de destino. Este comando es igual de útil para redes de área local (LAN) como para redes de área global o internet (WAN) .

Traceroute y los valores TTL

Traceroute y los valores TTL

Como se ha introducido antes, traceroute es un comando que permite desde una máquina A realizar un seguimiento de los paquetes que nos comunican con otra máquina B identificando, asimismo los puntos intermedios por los que pasan los paquetes. Es bastante frecuente oír expresiones como «Pasa por internet», «Se transmite por la nube» o el más antiguo «Está en el ciberespacio» que no son más que eufemismos que abstraen e intentan ocultar que las comunicaciones entre ordenadores siguen un entramado medido de rutas que encaminan las comunicaciones entre dos ordenadores a través de routers, concentradores, servidores …  Los paquetes que nos comunican con otras máquinas siguen unos caminos medibles, predecibles y auditables que pueden ser estáticos o variar en función de parámetros como: carga del sistema, intereses políticos o empresariales, filtrados por protocolo…

¿Cómo funciona el comando traceroute?

El comando traceroute  se basa en un punto técnico tan simple como eficaz. Usando el parámetro TTL(Time To Live) de los paquetes UDP o ICMP y manipulándolo de forma que es capaz de averiguar el camino que estos paquetes siguen por la red. Normalmente el valor del parámetro TTL es decrementado en una unidad en cada uno de los puntos por los que pasa nuestro paquete. En un primer momento se envía un paquete con el valor del campo TTL = 1, valor que se decrementa en el primer punto de comunicación, generalmente en el router de nuestra casa, y para el cual se establece el valor 0 en este caso el router descartará el paquete y al emisor del mismo le devolverá un mensaje de error ICMP como el siguiente «Time to live exceeded in transit» el comando traceroute continuará enviando paquetes cada vez con un valor mayor hasta que le responda la máquina de destino de la traza o se alcance el número máximo de saltos, que por defecto es 30.

Cada vez que un paquete es descartado porque su valor TTL llega a 0 el enrutador que lo detecta está obligado por el protocolo a enviar un mensaje advirtiendo de que no se ha alcanzado el destino esperado. De esta forma se recupera en primera instancia su IP  y el valor del tiempo en el cual el paquete llega a nuestro sistema. Si a ello se le añade el uso por parte del comando nslookup podremos obtener información a mayores de la máquina que nos retorna el paquete porque su TTL ha llegado a cero.

Fallos en resultados ¿Qué son esos asteriscos?

En algunas ocasiones veremos que en la pantalla aparecen asteriscos en ligar de la información que deseamos. Esto sucede cuando los encaminadores que se corresponden con el salto indicado no responden con un mensaje indicando que el paquete ha sido descartado. En estos casos podemos ver un mensaje como el siguiente «Tiempo de espera agotado para esta solicitud». Esto puede deberse a tres motivos:

  1. Que por un exceso de celo en la seguridad los encaminadores no retornen un mensaje de error en los paquetes perdidos
  2. Que por un ahorro de tráfico los encaminadores no retornen un mensaje de error en los paquetes perdidos.
  3. Que no se pueda establecer una conexión entre el punto de origen y el punto de destino elegido.

Diferencias entre windows y GNU/Linux

En muchas webs aparecerá que la única diferencia entre ambos sistemas operativos es que mientras windows usa el comando tracert los sistemas GNU/Linux usan el comando traceroute. Pero una diferencia que es necesaria tener en cuenta es que las pruebas que hagamos con el comando tracert de Windows usa paquetes ICMP por defecto mientras que el comando Traceroute de GNU/Linux usa paquetes UDP. Esto puede dar lugar a que ante dos comandos similares como «tracert google.es» y «traceroute google.es» obtengamos resultados diferentes. Si se quiere obtener resultados similares (Que normalmente serán los mismos) en GNU/Linux se puede forzar el uso de paquetes ICMP mediante el parámetro.

traceroute -I google.es

Y si se desea profundizar un poco más en el análisis se puede emplear un comando más complejo como este:

[sudo] traceroute -I -m 255 google.com -q 5

Con el parámetro -m se establece que se intentará realizar hasta 255 saltos hasta que se encuentre el destino o se descarte la comunicación. el parámetro -q indica que se intentará hasta 5 veces la comunicación con cada nodo intermedio

Una alternativa a traceroute en linux es el comando mtr, que ofrece más infomrmación complementaria que traceroute. A los curiosos les invito a que prueben el siguiente comando:

mtr –no-dns –report google.es

Share

Tagged with:
Ene 22

Es frecuente que la mayor parte de los usuarios tengan mal seleccionado el canal en el que su router emite su señal wifi. Normalmente poca gente se fija  en el canal en el que emite su router o punto de acceso, como mucho, la mayor parte de los usuarios  llegan a configurar usuario y contraseña.

En los bloques de viviendas en los cuales abundan las señales wifi, ciertos canales están saturados. El usuario suele percibir las consecuencias de la saturación del canal que emplea por lentitud y cortes en su red inalámbrica. Si desde nuestros ordenadores podemos ver muchas redes wifi, lo más probable es que en esa zona los canales 11, 6 y 1 estén tremendamente saturados, estos canales son estadísticamente los más usados. ¿Cuál es el motivo? Pues porque son los que vienen preconfigurados la mayor parte de los routers y puntos de acceso.

Realmente los tripletes de canales (1,6,11) (2,7,12) y (3,8,13) son las tripletes de canales ideales puesto que estos canales no se solapan entre si. En resumen, si tenemos 3 redes y una está en el canal 1 otra en el 6 y otra en el 11 estas nunca se interferirán, lo mismo sucede con las otros 2 tripletes. Al final de este documento daré la explicación técnica del motivo por el que sucede esto.

captura NetStumbler (Click para amplicar)

Lo cierto es que para seleccionar el canal ideal, lo primero que debemos hacer es listar las redes que hay en nuestra zona y de los canales que estas redes usan. Por ejemplo, para esta tarea podemos usar el programa NetStumbler. Este nos mostrará una precisa lista de todas las redes de la zona y de los canales que emplean las mismas (Ver foto). En algunas ocasiones comprobaremos que una red usa 2 canales a la vez, esto sucede si usa el protocolo 802.11n.

Conocido ya el número de redes de la zona y sus canales haremos lo siguiente:

  1. Si hay pocas redes wifi en la zona seleccionaremos un canal separado al menos 5 canales de diferencia (o la máxima separación posible) para que las redes no se solapen. si están usado el canal 1, 3 y 5 nosotros seleccionaremos por ejemplo el 10 o mayor.
  2. Si existen muchas redes en la zona seleccionaremos en la que exista un canal libre non menos concentración de redes en los canales adyacentes.

¿Por qué no usar la función del router «selección automática de canal»?

Si dejamos que el router seleccione de forma automática la red y en la zona en la que vivimos hay numerosas redes, este entrará en un ciclo de cambio decanal que nos desconectará cada poco tiempo o,  directamente,  no nos permitirá conectarnos.

Por último daré la explicación de los 5 canales de separación. El estándar IEEE 802.11 usa en nuestro caso la frecuencia 2.4 GHz. Esta frecuencia se subdivide en canales separados por 5 MHz. que van desde el 1 hasta el 14, en Europa solo usamos el rango del 1 al 13. El problema  es que cada canal necesita 22MHz como ancho de banda y provoca solapamiento con los canales adyacentes. Si dividimos 22/5  nos da como resultado 4’4canales de ancho, esto significa que cada canal necesita 2’2 canales  «Por cada lado de su frecuencia origen» para emitir. Así pues, para evitar las interferencias al 100% deberemos tener una separación entre un canal empleado y otro de al menos 5 unidades, aunque lo cierto es que una separación entre 3 y 4 canales será suficiente y tendremos pocas interferencias.

 

Share

preload preload preload