Scroll to navigation

PING(8) iputils PING(8)

NOMBRE

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

SINOPSIS

ping [-aAbBdCDfhHLnOqrRUvV46] [-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

-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

Permitir hacer ping a una dirección de multidifusión.

-B

No permita 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 opción -f, que por defecto no lo realiza. Anula la opción -n previamente definida.

-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 diversos motivos dentro del núcleo, por ejemplo en el empleo de normas de enrutamiento para seleccionar un procesamiento saliente específico.

-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

Sólo salida numérica. No se intentará buscar los nombres de direcciones de equipo (sin resolución DNS inversa). Esto se hace por defecto para el destino numérico o la opción -f. Anula la opción -H previamente definida.

-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 el número de bytes de datos que se van a enviar. La cantidad por defecto es 56, que pasan a ser 64 bytes de datos ICMP cuando se combinan con los 8 bytes de los datos de la cabecera ICMP.

-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.

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 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.

iputils 20240117