Qué es y para qué sirve el comando ping

Qué es y para qué sirve el comando ping

Oscar Espinosa

Muchas veces los usuarios nos podemos encontrar que no podemos acceder a un equipo de nuestra red, un sitio web, un recurso en la red, etc. Es por eso por lo que una herramienta muy útil para diagnosticar problemas de conexión es el llamado “ping”. En este artículo te vamos a explicar para qué sirve, cómo se puede utilizar y qué opciones tiene este comando tan importante para redes.

Qué es y cómo funciona el ping

Cuando ejecutamos una solicitud de PING, este envía un mensaje ICMP Echo Request al host de destino, y cuando el host de destino le responde, lo hace con un mensaje ICMP Echo Reply. A raíz de esa respuesta, se calcula el tiempo mínimo, medio y máximo de respuesta. En caso de no recibir respuesta en un tiempo predeterminado, nos llegará el mensaje de que no hay conexión con el host, la red es inalcanzable o que no se encuentra la ruta al host.

El comando ping nos permitirá saber si llegamos a un determinado destino de forma correcta, o si por el contrario, no podemos llegar a él. Imaginemos que estamos configurando una VPN para conectarnos de forma segura a nuestra red local, o estamos configurando una VPN Site-to-Site para intercomunicar diferentes sedes de empresas, en estos casos es crítico tener bien configurada la tabla de enrutamiento, de lo contrario, no podremos llegar hasta el destino. El comando ping es lo más fácil para saber si estamos llegando correctamente a nuestro destino, o si hay algún problema con la tabla de enrutamiento de nuestro ordenador o del router que ha establecido el túnel VPN.

Un detalle muy importante cuando estamos haciendo un ping, es que el equipo de destino también nos tiene que contestar al ping con un ICMP Echo Reply. Si el equipo remoto tiene un firewall que impide la llegada de los ICMP Echo Request, nunca podrá contestar a nuestra petición. Lo mismo ocurre si el equipo remoto tiene bloqueada la salida de ICMP Echo Reply, aunque el mensaje de «ping» le haya llegado correctamente, nunca podremos recibir su comunicación debido a que su firewall está bloqueando la «contestación» de este dispositivo.

En algunas ocasiones, podría darse el caso de que nosotros enviemos un ping correctamente a un destino, el destino lo reciba sin problemas, pero que luego nunca recibas la respuesta, esto es debido a las políticas de seguridad de ese equipo en concreto, aunque lo más normal es bloquear la entrada del ping (ICMP Echo Request) y no los «Reply».

Para qué nos puede servir lanzar un ping

Imaginemos que no tenemos acceso a un sitio web. Realizando un ping al servidor web, podremos saber si es un problema de que no hay conexión con el servidor, o se trata de otro tipo de problema. Otro ejemplo podría ser que no podemos imprimir en una impresora de red, para ello, si realizamos un ping sabremos si tenemos conexión por red con la impresora o no, es decir, si simplemente tenemos comunicación con ella o es una cuestión de drivers u otros problemas. Estos ejemplos valen para cualquier dispositivo de red, bien sea local o de Internet que disponga de una dirección IP, ya sea IP privada o pública.

El ping también es muy recomendable usarlo cuando tenemos problemas de conectividad o cortes de Internet, de esta forma, podrás saber si el problema lo tienes en la red local o en el servicio de Internet. Por ejemplo, si quieres descartar que tengas problemas con la red local doméstica, podrías hacer un ping a la puerta de enlace predeterminada de tu ordenador, que normalmente es el router que tienes en tu casa, de esta forma, si el ping funciona y la latencia es de menos de 10ms vía WiFi y de 1ms vía cable, podríamos afirmar que no hay problemas con la red local doméstica. En el caso de que quieras comprobar si es tu conexión a Internet, entonces podrías hacer un ping contra los DNS de Google o Cloudflare (8.8.8.8 y 1.1.1.1 respectivamente), de esta forma, si hay algún corte en la comunicación o una latencia demasiada alta, podríamos afirmar que tenemos un problema con nuestra conexión a Internet.

Otro uso muy habitual del uso del ping es comprobar la latencia de las redes inalámbricas WiFi, y si hay corte en la conexión inalámbrica. Por ejemplo, los sistemas WiFI Mesh nos permiten tener roaming WiFi entre nodos de forma transparente, nosotros podríamos ir con un ordenador portátil haciendo un ping infinito hacia la IP de nuestro router u otra IP externa de Internet, de esta forma, podremos ver el comportamiento de este roaming WiFi:

  • ¿Ha perdido muchos paquetes al cambiar de un nodo a otro?
  • ¿Ha perdido solamente un paquete al hacer el roaming?
  • ¿No hay perdido paquetes, pero la latencia ha aumentado?

Gracias al ping podremos obtener respuestas a todas estas preguntas en función de su comportamiento, lo más normal en una red Mesh es perder un paquete y que la latencia permanezca en unos niveles óptimos, sin embargo, en otras ocasiones podríamos tener que un mensaje ICMP tarde más de lo normal y tenga latencias de unos 200ms, pero luego en los siguientes mensajes se estabilice y la latencia de la conexión sea menos de 10ms que es lo normal.

Cómo usar el comando ping

Para usar el comando ping, debemos ejecutar la consola de “símbolo del sistema”, aunque este comando también está en sistemas operativos Linux y macOS. Una vez abierta la consola, simplemente deberemos escribir el comando ping, seguido de un espacio, y seguido de la dirección IP o sitio web que queremos consultar. Podéis ver el siguiente ejemplo:

En la foto de arriba podemos ver cómo responde el ping al sitio web Google.es, y a una dirección IP de la red local, concretamente la dirección IP privada que tiene nuestro router. En la respuesta podemos ver que nos muestra la siguiente información:

  • Bytes: Es el tamaño del paquete de datos enviado.
  • Tiempo: Es el tiempo que ha tardado en enviarlo y recibir respuesta del host de destino.
  • TTL: Es el tiempo de vida, en cada salto que da hasta llegar al host descuenta uno. Eso se hace para que el paquete no esté recorriendo la red infinitamente y se puedan descartar llegado el momento.
  • Paquetes: Nos muestra el número de paquetes enviados, recibidos y perdidos.
  • Tiempo aproximado de ida y vuelta en milisegundos: Nos sirve para saber cuánto tiempo ha tardado de media las cuatro peticiones de ping que ha realizado

Qué sucede si realizamos un ping a un sitio web o equipo que no es accesible

Como podéis ver en la imagen de debajo, nos muestra en cada uno de los cuatro intentos un mensaje de «tiempo de espera agotado para esta solicitud». Esto significa que no ha podido establecer contacto con el host de destino. Además, también podemos ver en la información de los paquetes, que envió cuatro paquetes, recibió cero paquetes y que, por tanto, hay cuatro paquetes perdidos.

Opciones del comando ping en Windows

Cuando usamos el comando ping, aparte de escribir en la consola de símbolo de sistema el comando ping y la dirección IP o nombre del servidor, podemos escribir una serie de opciones para modificar u obtener unos datos extra, para ello deberemos introducir el comando «ping» un espacio, y seguido una de las opciones que os indicamos debajo. Un ejemplo sería: ping -t 192.168.1.1

  • -t: Esta opción nos permite realizar un número ilimitado de pings al host de destino. Para detenerlo deberemos pulsar la combinación de teclas control + c.
  • -a: Esta opción nos permite resolver direcciones en nombres host, es decir, si introducimos esta opción seguido de una dirección IP, nos mostrará el nombre del servidor host de destino.
  • -n: Esta opción sirve para especificar el número de peticiones de ping que queremos hacer a un host. Para ello, deberemos introducir la opción -n, un espacio, seguido del número de peticiones que queremos realizar.
  • -l: Esta opción sirve para especificar el tamaño del búfer de la petición de ping que queremos hacer a un host. Para ello, deberemos introducir la opción -l, un espacio, seguido del tamaño de búfer que deseemos.
  • -f: Esta opción sirve para establecer la marca de no fragmentar en paquetes. Solo funciona con dirección IP IPv4.
  • -i: Esta opción sirve para especificar el tiempo de vida de la petición de ping. Para ello, deberemos introducir la opción -i, un espacio, seguido del tiempo de vida que deseemos.
  • -r: Esta opción sirve para registrar el máximo número de saltos que puede realizar la petición de ping. Para ello, deberemos introducir la opción -r, un espacio, seguido del número de saltos que deseemos. Solo funciona con direcciones IP IPv4.
  • -s: Esta opción sirve para registrar el tiempo de cada salto que realiza la petición de ping. Para ello, deberemos introducir la opción -s, un espacio, seguido del tiempo que queremos que tarde entre salto y salto. Solo funciona con direcciones IP IPv4.
  • -j: Esta opción sirve indicar a la petición de ping cual será el origen no estricto de la petición de ping hacia el host. Para ello, deberemos introducir la opción -j, un espacio, seguido del host de origen que deseemos. Solo funciona con direcciones IP IPv4.
  • -k: Esta opción sirve indicar a la petición de ping cual será el origen estricto de la petición de ping hacia el host. Para ello, deberemos introducir la opción -k, un espacio, seguido del host de origen que deseemos. Solo funciona con direcciones IP IPv4.
  • -w: Esta opción sirve indicar el tiempo de espera máximo en milisegundos en cada respuesta antes de dar fallo de conexión. Para ello, deberemos introducir la opción -w, un espacio, y el tiempo en milisegundos que deseemos.
  • -R: Esta opción sirve para usar un encabezado de enrutamiento y probar la ruta inversa. Solo funciona con direcciones IP IPv6.
  • -S: Esta opción sirve para indicar al comando ping, qué dirección de origen queremos usar para realizar el ping. Para ello, deberemos introducir la opción -s, un espacio, seguido de la dirección IP de origen.
  • -c: Esta opción sirve para el enrutamiento del identificador del compartimento.
  • -p: Esta opción nos sirve para realizar ping a un servidor virtualizado con Hyper-V.
  • -4: Esta opción nos sirve para forzar el uso de direcciones IP IPv4.
  • -6: Esta opción nos sirve para forzar el uso de direcciones IP IPv6.

Como hemos podido ver, gracias al comando ping podemos saber si tenemos conexión con un equipo de la red, sitio web, o equipo remoto. Para ello, solo tenemos que ejecutar el comando ping en una consola, y obtendremos datos de tiempo de respuesta y si tenemos conexión con el host de destino. Además, tenemos disponibles una serie de opciones que pueden llegar a sernos de mucha utilidad.