Resulta sencillo que un ratón tenga cabeza,
basta con alargar la mano y dejar que las ideas fluyan a través de ella.

Su visita a esta página es a la vez una invitación y una provocación
A continuación les presento una serie de pequeñas muestras de mis capacidades en el campo del diseño gráfico, la fotografía, la programación y el desarrollo web. Todavía quedan muchas cosas que mostrar y demostrar pero valga para ellas este adelanto.

Invitación a mostrar.
Provocación para demostrar.
fecha de hoy: 21(Thu) - August - 2008
Ping y traceroute al descubierto en Linux

 

ping y tracerout al descubierto en linux (1)

Existen dos herramientas de diagnóstico para verificar conexiones de red en linux que por su simplicidad casi nunca se les da el merecido respeto que merecen: ping y traceroute.

¿Ping? ¿Cómo el sonar de los barcos cuando buscan submarinos?

Exacto. O como el sonar de los delfines. O como el de los murciélagos. El funcionamiento es el mismo; una señal que espera encontrar un sitio donde rebotar para indicar que ahí delante hay algo.

O dicho de una manera mas "científica", ping es una herramienta del sistema operativo que permite verificar la conexión entre dos host dentro de una red. Su método consiste en enviar paquetes de peticiones de eco ICMP a una dirección IP determinada y aguardar y recibir las respuestas ICMP de dicha dirección.

Si podemos hacer ping a un host entonces tenemos acceso por red a ese host y podemos establecer conexiones ftp, http, etc.

Bueno, eso era cierto antaño, cuando los cánones de seguridad en la red no eran tan estrictos como ahora. En estos momentos el no poder hacer ping a un host remoto no implica que no podamos abrir una conexión ftp o http. En la actualidad existen servidores con complejos sistemas de filtrados de paquetes y firewalls que rechazan los paquetes ICMP.

No obstante, ping sigue siendo una herramienta indispensable.

Imaginemos que acabamos de montar una pequeña red doméstica. Tenemos un host cuya dirección IP es 192.168.10.1 y otro host con dirección 192.168.10.2. Para verificar que la conexión a la red es correcta bastaría hacer un ping desde el primero al segundo de esta manera:

ping 192.168.10.2

y obtendríamos un resultado similar a este...

[root@hostt root]# ping 192.168.10.2
PING 192.168.10.2 (192.168.10.2) from 192.168.10.1 : 56(84) bytes of data.
64 bytes from 192.168.10.2: icmp_seq=0 ttl=255 time=335 usec
64 bytes from 192.168.10.2: icmp_seq=1 ttl=255 time=347 usec
64 bytes from 192.168.10.2: icmp_seq=2 ttl=255 time=332 usec
64 bytes from 192.168.10.2: icmp_seq=3 ttl=255 time=333 usec
64 bytes from 192.168.10.2: icmp_seq=4 ttl=255 time=351 usec
64 bytes from 192.168.10.2: icmp_seq=5 ttl=255 time=361 usec
64 bytes from 192.168.10.2: icmp_seq=6 ttl=255 time=334 usec
64 bytes from 192.168.10.2: icmp_seq=7 ttl=255 time=332 usec

--- 192.168.10.2 ping statistics ---
8 packets transmitted, 8 packets received, 0% packet loss
round-trip min/avg/max = 0.332/0.340/0.361 ms

Utilizariamos ctrl+c para detener el proceso.

Con el uso sencillo de ping sobre la dirección IP de un host remoto obtenemos una información que podemos traducir como que cada paquete de 64 bytes desde 192.168.10.2 tarda un tiempo determinado en llegar (en este caso unos 0.3 milisegundos de media). Igualmente obtenemos al final unas estadísticas que nos indican cuantos paquetes hemos transmitido, cuantos han llegado a su destino, el porcentaje de paquetes perdidos, el tiempo de llegada del paquete mas rápido, el tiempo media de transmisión de paquetes y el tiempo de transmisión del paquete mas lento.

¿Y eso es todo?

No. Ping es mucho mas que esto.

La herramienta ping dispone de una serie de comandos que se pueden utilizar conjuntamente para averiguar mas información sobre el estado y las capacidades de la conexión de red de un host.

Comando Descripción
-c num

Detiene el comando ping después de que se hayan enviado el número de paquetes especificado por num.

ping -c 10 192.168.10.2
enviaría 10 paquetes a la dirección IP 192.168.10.2

-d Establece la opción SO_DEBUG en el socket en uso
-f Produce un envío masivo de pings. Envía paquetes a la misma velocidad que regresan o cien veces por segundo (lo que sea mas rápido). El uso indebido de este comando puede resultar muy peligroso.
-i tiempo_espera

Espera los segundos indicados por tiempo_espera entre el envío de cada paquete. Por defecto se espera 1 segundo entre el envío de paquetes.

ping -i 2 192.168.1.2
enviaría paquetes a la dirección IP 192.168.10.2 con un intervalo de 2 segundos entre cada paquete.

-l dispositivo Establece la interfaz de salida
-l precarga Envía paquetes lo mas rápido posible antes de volver a su estado normal.
-n No se realiza ningún intento de buscar nombres de host, permitiéndo exclusivamente salida numérica.
-p num_relleno

Permite especificar hasta un máximo de 16 bytes de relleno para cada paquete que se envía. El número de bytes de relleno viene indicado por num_relleno. Es especialmente útil para detectar problemas de red relaccionados con datos.

ping -p ff 192.168.1.2
enviaría paquetes que se rellenarían con unos.

-q Salida muda. Esta opción mostraría exclusivamente las lineas de resumen al comenzar y terminar eliminando la información sorrespondiente al envío de cada paquete.
-r No hace caso a las tablas de encaminamiento y envía los paquetes directamente a un ordenador conectado a la misma red. Si el ordenador destino del ping no está en la misma red se devuelve un error.
-R Establece la opción de registro de ruta. Esta opción nos muestra el buffer de ruta de todos los paquetes devueltos, es decir, el camino seguido por el paquete desde el host origen al host destino.
-s tamaño_paquete

Esta opción permite especifiar el número de bytes de datos que se van a enviar en el paquete y que vendría determinado por tamaño_paquete (mal pensados :)).

ping -s 1024 192.168.10.2
enviaría paquetes de 1024 bytes al host indicado

-v Aumenta la longitud de información en pantalla de los resultados obtenidos.

Un uso correcto de la herramienta ping sería probar primero en el ordenador local para comprobar que la interfaz de red funciona perfectamente. A continuación se probarían host y puertas cada vez mas lejos posibles. Los tiempos invertidos en la transmisión y recepción de paquetes se computan y permite establecer medias de tiempo de trasnmisión averiguando así en que lugares de la red se producen mayores retardos. Igualmente se comprueban si existen paquetes duplicados o perdidas de datos.

Hasta aquí (de una manera resumida) el funcionamiento de ping. Veamos en la siguiente sección el uso de traceroute.

Acceso a traceroute al descubierto en linux. 2ª parte >>

Si deseas ampliar la información sobre el tema, si tienes alguna duda, o simplemente si tienes otras ideas o sugerencias no dudes en ponerte en contacto conmigo.

Gracias.
Luis Álvarez

 
La cabeza del Ratón


'nuevomilenio' es una idea de Luis Álvarez
'CSI/dilvish666' es propiedad intelectual


CSI/dilvish666 - A Coruña
nuevomilenio@retemail.es