PING(8)

NOMBRE
ping: envía ICMP ECHO_REQUEST a los equipos de la red

SINOPSIS

ping [-aAbBdCDfhHLnOqrRUvV346] [-c cuenta] [-e identificador] [-F etiqueta de flujo] [-i intervalo] [-I interfaz] [-l precarga] [-m marca] [-M opción_pmtudisc] [-N opción_nodeinfo] [-w fecha_límite] [-W tiempo_de_espera] [-p patrón] [-Q tos] [-s tamaño_de_paquete] [-S sndbuf] [-t ttl] [-T marca de tiempo opción] [salto...] {destino}

DESCRIPCIÓN

ping utiliza el protocolo ICMP's datagrama ECHO_REQUEST obligatorio para obtener un ICMP ECHO_RESPONSE de otro equipo o puerta de enlace. Los datagramas ECHO_REQUEST (“pings”) tienen un encabezado IP e ICMP, seguido de una estructura timeval y un número aleatorio de “pad” bytes utilizados para completar el paquete.

ping funciona tanto con IPv4 como con IPv6. Sólo Se puede imponer de manera explícita uno de ellos mediante las opciones -4 o -6.

ping también puede enviar consultas de información de nodo IPv6 (RFC4620). Es posible que no se permitan saltos intermedios porque el enrutamiento de origen IPv6 está ya obsoleto (RFC5095).

OPCIONES

-3
    Precisión RTT (no redondea el tiempo del resultado).

-4
    Utilice únicamente IPv4.

-6
    Utilice únicamente IPv6.

-a
    Ping audible.

-A
    Ping adaptativo. El intervalo entre paquetes se adaptará al tiempo de ida y vuelta, de modo que efectivamente no haya más de un ping sin respuesta (o más, si está activada la precarga). El intervalo predeterminado es de 2 ms; para más información, consulte la opción -i. En redes con RTT bajo, este modo es prácticamente equivalente al modo de inundación.

-b
    Permite hacer ping a una dirección de multidifusión.

-B
    No permite que ping cambie la dirección de origen de las sondas de prueba. La dirección está vinculada a una seleccionada al inicio de ping.

-c cuenta
    Se detiene después de enviar cuenta paquetes ECHO_REQUEST. Con la opción fecha límite, ping espera cuenta paquetes ECHO_REPLY, hasta que expira el tiempo de espera.

-C
    Invoca a connect() syscall al crear el socket.

-d
    Establece la opción SO_DEBUG en el socket que se está utilizando. Esta opción de socket no es utilizada por el núcleo de Linux.

-D
    Muestra la marca de tiempo (hora Unix + microsegundos como en gettimeofday) antes de cada línea.

-e identificador
    Establece el campo de identificación de ECHO_REQUEST. El valor 0 implica el uso de socket sin formato (no compatible con socket de datagrama ICMP). El valor del campo se mostrará con la opción -v.

-f
    Ping de inundación. Por cada ECHO_REQUEST enviado se muestra un punto “.”, mientras que por cada ECHO_REPLY recibido se muestra un retroceso. Esto dará una inmediata visualización de la cantidad de paquetes que se están descartando. Si no se proporciona el intervalo, se define en cero y se generan los paquetes o bien tan rápido como regresan o bien cien veces por segundo, lo que sea mayor. Sólo el administrador puede usar esta opción con intervalo cero.

-F etiqueta de flujo
    Sólo IPv6. Asigna y establece una etiqueta de flujo de 20 bits (en hexadecimal) en paquetes de solicitud de eco. Si el valor es cero, el núcleo asigna una etiqueta de flujo aleatorio.

-h
    Muestra la ayuda.

-H
    Fuerza la resolución de nombres DNS para la salida. Útil para destino numérico, o la opción -f, que por defecto no se realiza. También puede ayudar a solucionar problemas de resolución DNS. Anule la opción -n definida previamente. Consulte también la variable de entorno IPUTILS_PING_PTR_LOOKUP.

-i intervalo
    Espera intervalo segundos entre el envío de cada paquete. Número real permitido con punto como separador decimal (independientemente de la configuración regional). Por defecto, espera normalmente un segundo entre cada paquete o no espera nada en modo inundación. Sólo el administrador puede establecer el intervalo en valores inferiores a 2 ms. El ping de transmisión y multidifusión tiene una limitación aún mayor para un usuario normal: el mínimo es de 1 segundo.

-I interfaz
    interfaz es una dirección, un nombre de interfaz o un nombre VRF. Si interfaz es una dirección, establece la dirección de origen en la dirección de interfaz especificada. Si interfaz es un nombre de interfaz, establecerá la interfaz de origen en la interfaz especificada. Si interfaz es un nombre VRF, cada paquete se enruta utilizando la tabla de enrutamiento correspondiente; en este caso, la opción -I se puede repetir para especificar una dirección de origen. NOTA: Para IPv6, al hacer ping a una dirección de alcance local de enlace, se puede utilizar la especificación de enlace (mediante '%tación Aq en destino, o mediante esta opción), pero ya no es necesario.

-l precarga
    Si se define precarga, ping envía dicha cantidad de paquetes que no esperan respuesta. Sólo el administrador puede seleccionar precargar más de 3.

-L
    Suprime el loopback de paquetes de multidifusión. Esta marca solo se aplica si el destino del ping es una dirección de multidifusión.

-m marca
    Emplea marca para etiquetar los paquetes que salen. Esto es útil por varias razones dentro del núcleo, como usar políticas de enrutamiento para seleccionar un procesamiento de salida específico. Se requiere la capacidad CAP_NET_ADMIN o CAP_NET_RAW (desde Linux 5.17), consulte socket(7).

-M opción_pmtudisc
    Seleccione la estrategia de descubrimiento de ruta MTU. opción_pmtudisc puede ser do (establece el indicador DF pero sujeto a comprobaciones PMTU por parte del núcleo, se rechazarán los paquetes demasiado grandes), want (realizar descubrimiento PMTU, fragmentar localmente cuando el tamaño del paquete es grande), probe (establece el indicador DF y omite las comprobaciones PMTU, útil para sondear), o dont (no configura el indicador DF).

-N opción_nodeinfo
    Sólo IPv6. Envía consultas de información de nodo IPv6 (RFC4620), en lugar de solicitud de eco. Se requiere la capacidad CAP_NET_RAW.

    help
        Muestra ayuda para soporte de NI.

    nombre
        Consultas de nombres de nodos.

    ipv6
        Consultas de direcciones IPv6. Hay varios indicadores específicos para IPv6.

        ipv6-global
            Solicitaa direcciones IPv6 de alcance global.

        ipv6-sitelocal
            Solicita direcciones locales IPv6.

        ipv6-linklocal
            Solicita direcciones locales de enlace IPv6.

        ipv6-all
            Solicita direcciones IPv6 en otras interfaces.

    ipv4
        Consultas de direcciones IPv4. Hay un indicador específico de IPv4.

        ipv4-all
            Solicitar direcciones IPv4 en otras interfaces.

    subject-ipv6=dirección ipv6
        Dirección de asunto IPv6.

    subject-ipv4=ipv4addr
        Dirección de asunto IPv4.

    nombre-sujeto=nombre de nodo
        Nombre del tema. Si contiene más de un punto, se asume el nombre de dominio completo.

    subject-fqdn=nombre de nodo
        Nombre del asunto. Siempre se asume un nombre de dominio completo.

-n
    Únicamente salida numérica. No se intentará buscar nombres simbólicos para direcciones de host (no hay resolución DNS inversa). Este es el valor predeterminado para el destino numérico o la opción -f. Anule la opción -H definida previamente. Consulte también la variable de entorno IPUTILS_PING_PTR_LOOKUP.

-O
    Informa de la respuesta ICMP ECHO pendiente antes de enviar el siguiente paquete. Esto es útil junto con la marca de tiempo -D para registrar la salida en un archivo de diagnóstico y buscar las respuestas que no hayan llegado.

-p patrón
    Puede definir hasta 16 bytes de “relleno” para completar el paquete que envía. Esto es útil para diagnosticar problemas que depende de los datos en una red. Por ejemplo, -p ff hará que el paquete enviado se llene con unos.

-q
    Salida muda. No se muestra ninguna información excepto las líneas de resumen al comenzar y al terminar.

-Q tos
    Establece bits relacionados con la calidad del servicio en datagramas ICMP. tos puede ser decimal (solo ping) o un número hexadecimal.

    En RFC2474, estos campos se interpretan como servicios diferenciados (DS) de 8 bits, que constan de: bits 0-1 (los 2 bits más bajos) de datos separados y bits 2-7 (los 6 bits más altos) de punto de código de servicios diferenciados (DSCP). . Según los RFC2481 y RFC3168, los bits 0-1 se utilizan para ECN.

    Históricamente (RFC1349, actualizado por RFC2474), estos se interpretaban del siguiente modo: el bit 0 (bit más bajo) estaba reservado (actualmente redefinido como control de congestión), 1-4 eran para el tipo de servicio y los bits 5-7 (bits más altos) para indicar la precedencia.

-r
    Omite las tablas de enrutamiento habituales y envía directamente a un equipo en una interfaz adjunta. Si el equipo no está en una red conectada directamente, se devuelve un error. Esta opción se puede usar para hacer ping a un equipo local a través de una interfaz que no tiene ruta a través de ella, siempre que también se use la opción -I.

-R
    ping solamente. Registra la ruta. Incluye la opción RECORD_ROUTE en el paquete ECHO_REQUEST y muestra el búfer de ruta en los paquetes devueltos. Observe que el encabezado IP sólo puede contener nueve de estas rutas. Muchos equipos ignoran o descartan esta opción.

-s tamaño de paquete
    Especifica la cantidad de bytes de datos que se enviarán. El valor predeterminado es 56, que se traduce en 64 bytes de datos ICMP cuando se combina con los 8 bytes de datos de encabezado ICMP. El valor máximo permitido es 65507 para IPv4 (65467 cuando -R o -T o saltos intermedios) o 65527 para IPv6, pero la mayoría de los sistemas lo limitan a un número menor basado en algún valor de ese sistema.

-S sndbuf
    Configura el socket sndbuf. Si no se define, se selecciona un sólo paquete para almacenar en el buffer.

-t ttl
    ping solamente. Establece el tiempo vida de IP.

-T opción de marca de tiempo
    Establece opciones especiales de marca de tiempo de IP. opción de marca de tiempo puede ser tsonly (solo marcas de tiempo), tsandaddr (marcas de tiempo y direcciones) o tsprespec equipo1 [equipo2 [equipo3 [equipo4]]] (saltos de marca de tiempo predefinidos).

-U
    Imprime el tiempo de latencia completo entre usuario y usuario (el comportamiento anterior). Normalmente ping muestra el tiempo de ida y vuelta de la red, que puede ser diferente f.e. debido a errores de DNS.

-v
    Salida detallada. No elimina las respuestas DUP al hacer ping a la dirección de multidifusión.

-V
    Muestra la versión del programa y termina.

-w fecha límite
    Especifique un tiempo de espera, en segundos, antes de que ping finalice su ejecución independientemente de cuántos paquetes se hayan enviado o recibido. En este caso, ping no se detiene después de enviar el paquete cuenta, espera a que expire fecha límite o hasta que recibe respuesta de las sondas cuenta o alguna notificación de error de la red.

-W tiempo de espera
    Tiempo de espera de respuesta, en segundos. La opción afecta solo al tiempo de espera en ausencia de respuestas; de lo contrario, ping espera dos RTT. Número real permitido con punto como separador decimal (independientemente de la configuración regional). 0 significa tiempo de espera infinito.

Cuando se utilice ping para identificar errores, primero se debe ejecutar en el equipo local para verificar que la interfaz de red local esté activa y funcionando. Luego deberá ejecutarse “ping” en equipos y puertas de enlace cada vez más distantes. Se calculan los tiempos de ida y vuelta y las estadísticas de pérdida de paquetes. Si se reciben paquetes duplicados, no se incluyen en el cálculo de pérdida, aunque el tiempo de ida y vuelta de estos paquetes se utiliza para calcular los números de tiempo de ida y vuelta mínimo/promedio/máximo/mdev.

Desviación estándar de la población (mdev), promedio de la distancia entre cada RTT de ping y el RTT promedio. Cuanto mayor es mdev, más variable es el RTT (con el tiempo). Con una alta variabilidad de RTT, tendrá problemas de velocidad con las transferencias masivas (tomarán más tiempo de lo estrictamente necesario, ya que la variabilidad hará que el remitente espere los ACK) y tendrá una calidad de VoIP mediocre o mala. .

Se mostraráun breve resumen cuando se ha enviado (y recibido) la cantidad definida de paquetes o si el programa finaliza con un SIGINT.. Con las señal SIGQUIT, se pueden obtener estadísticas actualizadas más resumidas sin finalizar el proceso.

La finalidad de este programa es el de ser utilizado en la comprobación, medición y mantenimiento de redes. Debido a la sobrecarga de la red que supone su uso, no resulta muy adecuado usar ping durante las operaciones normales o en scripts automáticos.

ENTORNO

La variable de entorno IPUTILS_PING_PTR_LOOKUP definida a 0 deshabilita la resolución DNS inversa (búsqueda PTR) por defecto. Se sobrescribirá con la opción -H o -n.

ESTADO DE SALIDA

Si ping no recibe ningún paquete de respuesta, finalizará con el código 1. Si se especifican un paquete cuenta y límite de tiempo, y se reciben menos de cuenta paquetes cuando finaliza el tiempo de espera, también saldrá con el código 1. En caso de otro error, sale con el código 2. Si todo sale bien, finaliza con el código 0. Esto hace que se pueda saber si un equipo está vivo o no mediante el código de salida.

ENLACE IPV6-DESTINOS LOCALES

Para IPv6, cuando la dirección de destino tiene un alcance de enlace local y ping utiliza sockets de datagramas ICMP, se debe definir la interfaz de salida. Cuando ping utiliza raw sockets, no es estrictamente necesario especificar la interfaz de salida, pero debería hacerse para evitar ambigüedades cuando podrían confundirse múltiples interfaces de salida.

Hay dos formas de definir la interfaz de salida:

• mediante el símbolo %
    La dirección de destino tiene el prefijo % y el nombre de la interfaz de salida o ifindex, por ejemplo:

    ping fe80::5054:ff:fe70:67bc%eth0

    ping fe80::5054:ff:fe70:67bc%2

• mediante la opción -I
    Cuando se utilizan sockets de datagramas ICMP, este método es compatible con las siguientes versiones del núcleo: 5.17, 5.15.19, 5.10.96, 5.4.176, 4.19.228, 4.14.265. No es compatible con musl libc.

DETALLES DE LOS PAQUETES ICMP

Un encabezado IP sin ninguna opción tiene 20 bytes. Un paquete ICMP ECHO_REQUEST contiene 8 bytes adicionales de encabezado ICMP seguidos de una cantidad arbitraria de datos. Cuando se proporciona un tamaño_de_paquete, se referirá al tamaño de estos datos adicionales (el valor predeterminado es 56). Por lo tanto, la cantidad de datos recibidos dentro de un paquete IP de tipo ICMP ECHO_REPLY siempre será 8 bytes mayor que el espacio de datos solicitado (por el encabezado ICMP).

Si los datos ocupan al menos el tamaño de struct timeval ping emplea los bytes iniciales de este espacio para incluir una marca de tiempo que se usará en el cálculo de los tiempos de ida y vuelta. Si el espacio de datos es más corto, no se dan tiempos de ida y vuelta.

PAQUETES DUPLICADOS Y DAÑADOS

ping informará de los paquetes duplicados y dañados. Nunca debe de aparecer ningún paquete duplicado. Éstos aparecen por retransmisiones inapropiadas a nivel de conexión. Los paquetes duplicados pueden aparecer en muchas situaciones y rara vez (por no decir nunca) son buena señal, aunque la aparición de unos pocos duplicados no ha de considerarse siempre una señal de alarma.

Los paquetes dañados constituyen obviamente una causa de alarma y normalmente indican que hay hardware dañado en alguna lugar de la ruta seguida por el paquete ping, bien sea en la red o en los equipos.

COLISIONES DE IDENTIFICACIÓN

A diferencia de TCP y UDP, que utilizan el puerto para identificar de forma única al destinatario para entregar los datos, ICMP utiliza el campo de identificador (ID) para dicha identificación. Por lo tanto, si en el mismo equipo, al mismo tiempo, dos procesos de ping utilizan el mismo ID, la respuesta de eco puede entregarse a un destinatario equivocado. Este es un problema conocido debido al tamaño limitado del campo ID de 16 bits. Esa es una limitación original del protocolo que no es posible solucionar salvo que se codifique una identificación en la carga útil del paquete de ping. ping mostrará el error DIRECCIÓN DIFERENTE y la pérdida de paquetes saldrá con valor negativo.

ping usa PID para obtener un número único. El valor predeterminado de /proc/sys/kernel/pid_max es 32768. Si se utiliza mucho ping y con pid_max superior a 65535, es probable que se produzcan colisiones.

PRUEBAS CON DIFERENTES PATRONES DE DATOS

La capa de red nunca debe tratar los paquetes de manera diferente dependiendo del contenido de la porción de datos. Desafortunadamente, se sabe que los problemas dependientes de los datos se cuelan en las redes y suelen pasar desapercibidos durante mucho tiempo. En muchos casos, el patrón particular que tendrá problemas es algo que no tiene suficientes “transiciones”, por ejemplo todos unos o todos ceros, o un patrón similar como por ejemplo casi todos zeros. NO es necesariamente es suficiente definir un patrón de datos de todos ceros (por ejemplo) en la línea de órdenes porque el patrón que es de interés está en el nivel de enlace de datos y la relación entre lo que se teclea y lo que realmente transmiten los controladores puede ser complicada.

Esto significa que si existe un problema relacionado con los datos puede ser necesario hacer muchas pruebas para detectarlo. Con suerte, se encontrará un archivo que, o bien no se puede transmitir por la red, o que tarda mucho más en enviarse que otros archivos de tamaño similar. En ese caso, deberia examinarse este archivo en busca de patrones repetidos que se pueden comprobar con la opción -p.

DETALLES DEL TTL

El valor TTL de un paquete IP representa el número máximo de routers IP que un paquete puede atravesar antes de ser deshechado. En el trabajo diario, lo normal es que cada router en internet reste exactamente uno del campo TTL.

El campo TTL para paquetes TCP puede tener varios valores. El valor máximo posible es de 255. Un valor inicial recomendado sería el 64. Para obtener más información, consulte la sección TCP/Interfaz de nivel inferior de RFC9293.

ping muestra el valor TTL del paquete que recibe. Cuando un sistema remoto recibe un paquete ping, tiene tres posibles opciones para actuar sobre el campo TTL en su respuesta:

    • No cambiarlo; esto es lo que hacían los sistemas Berkeley Unix antes del lanzamiento de 4.3BSD Tahoe. En este caso, el valor TTL en el paquete recibido será 255 menos el número de routers en el viaje de ida y vuelta.

    • Configurado en 255; esto es asi en los sistemas Berkeley Unix actuales. En este caso, el valor TTL en el paquete recibido será 255 menos el número de routers en la ruta desde el sistema remoto hasta el equipo que hace ping.

    • Cambiarlo por cualquier otro valor. Algunas máquinas usan el mismo valor para los paquetes ICMP que el que usan para los paquetes TCP, por ejemplo 30 ó 60. Otros puede que usen valores totalmente inesperados.

ERRORES

    • Muchos ordenadores y puertas de acceso ignoran la opción RECORD_ROUTE.

    • La longitud máxima de la cabecera IP resulta demasiado pequeña para opciones como RECORD_ROUTE puedan resultar completamente útiles. Sin embargo, no hay mucho que se pueda hacer sobre esto.

    • No suele ser recomendable inundar la red con ping. De manera especial, sólo deberían inundarse direcciones de multidifusión baj condiciones muy controladas.

VÉASE TAMBIÉN

ip(8), ss(8).

HISTORIAL

La orden ping apareció en 4.3BSD.

La versión descrita aquí es su descendiente específico para Linux.

A partir de la versión s20150815, el binario ping6 ya NO EXISTE como tal, sino que se ha fusionado con ping. Si se crea un enlace simbólico llamado ping6 que apunte a ping tendrá la misma funcionalidad que antes.

SEGURIDAD

ping requiere que se ejecute la capacidad CAP_NET_RAW 1) Si el programa se usa para consultas sin eco (ver opción -N) o cuando el campo de identificación está definido en 0 para ECHO_REQUEST (ver -e). 2) Si el kernel no soporta sockets de datagramas ICMP. 3) Si el usuario no tiene permiso para crear un socket de eco ICMP. El programa se puede utilizar como set-uid root.

DISPONIBILIDAD

ping es parte del paquete iputils.

TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Antonio Aneiros <aneiros@ctv.es> y Marcos Fouces <marcos@debian.org>

Esta traducción es documentación libre; lea la GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.

Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.