PING(8) iputils PING(8) NOMBRE ping: envia 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 opcion_pmtudisc] [-N opcion_nodeinfo] [-w fecha_limite] [-W tiempo_de_espera] [-p patron] [-Q tos] [-s tamano_de_paquete] [-S sndbuf] [-t ttl] [-T marca de tiempo opcion] [salto...] {destino} DESCRIPCION 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 numero aleatorio de "pad" bytes utilizados para completar el paquete. ping funciona tanto con IPv4 como con IPv6. Solo Se puede imponer de manera explicita uno de ellos mediante las opciones -4 o -6. ping tambien puede enviar consultas de informacion de nodo IPv6 (RFC4620). Es posible que no se permitan saltos intermedios porque el enrutamiento de origen IPv6 esta ya obsoleto (RFC5095). OPCIONES -3 Precision RTT (no redondea el tiempo del resultado). -4 Utilice unicamente IPv4. -6 Utilice unicamente IPv6. -a Ping audible. -A Ping adaptativo. El intervalo entre paquetes se adaptara al tiempo de ida y vuelta, de modo que efectivamente no haya mas de un ping sin respuesta (o mas, si esta activada la precarga). El intervalo predeterminado es de 2 ms; para mas informacion, consulte la opcion -i. En redes con RTT bajo, este modo es practicamente equivalente al modo de inundacion. -b Permite hacer ping a una direccion de multidifusion. -B No permite que ping cambie la direccion de origen de las sondas de prueba. La direccion esta vinculada a una seleccionada al inicio de ping. -c cuenta Se detiene despues de enviar cuenta paquetes ECHO_REQUEST. Con la opcion fecha limite, 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 opcion SO_DEBUG en el socket que se esta utilizando. Esta opcion de socket no es utilizada por el nucleo de Linux. -D Muestra la marca de tiempo (hora Unix + microsegundos como en gettimeofday) antes de cada linea. -e identificador Establece el campo de identificacion 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 mostrara con la opcion -v. -f Ping de inundacion. Por cada ECHO_REQUEST enviado se muestra un punto ".", mientras que por cada ECHO_REPLY recibido se muestra un retroceso. Esto dara una inmediata visualizacion de la cantidad de paquetes que se estan descartando. Si no se proporciona el intervalo, se define en cero y se generan los paquetes o bien tan rapido como regresan o bien cien veces por segundo, lo que sea mayor. Solo el administrador puede usar esta opcion con intervalo cero. -F etiqueta de flujo Solo 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 nucleo asigna una etiqueta de flujo aleatorio. -h Muestra la ayuda. -H Fuerza la resolucion de nombres DNS para la salida. Util para destino numerico, o la opcion -f, que por defecto no se realiza. Tambien puede ayudar a solucionar problemas de resolucion DNS. Anule la opcion -n definida previamente. Consulte tambien la variable de entorno IPUTILS_PING_PTR_LOOKUP. -i intervalo Espera intervalo segundos entre el envio de cada paquete. Numero real permitido con punto como separador decimal (independientemente de la configuracion regional). Por defecto, espera normalmente un segundo entre cada paquete o no espera nada en modo inundacion. Solo el administrador puede establecer el intervalo en valores inferiores a 2 ms. El ping de transmision y multidifusion tiene una limitacion aun mayor para un usuario normal: el minimo es de 1 segundo. -I interfaz interfaz es una direccion, un nombre de interfaz o un nombre VRF. Si interfaz es una direccion, establece la direccion de origen en la direccion de interfaz especificada. Si interfaz es un nombre de interfaz, establecera 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 opcion -I se puede repetir para especificar una direccion de origen. NOTA: Para IPv6, al hacer ping a una direccion de alcance local de enlace, se puede utilizar la especificacion de enlace (mediante '%tacion Aq en destino, o mediante esta opcion), pero ya no es necesario. -l precarga Si se define precarga, ping envia dicha cantidad de paquetes que no esperan respuesta. Solo el administrador puede seleccionar precargar mas de 3. -L Suprime el loopback de paquetes de multidifusion. Esta marca solo se aplica si el destino del ping es una direccion de multidifusion. -m marca Emplea marca para etiquetar los paquetes que salen. Esto es util por varias razones dentro del nucleo, como usar politicas de enrutamiento para seleccionar un procesamiento de salida especifico. Se requiere la capacidad CAP_NET_ADMIN o CAP_NET_RAW (desde Linux 5.17), consulte socket(7). -M opcion_pmtudisc Seleccione la estrategia de descubrimiento de ruta MTU. opcion_pmtudisc puede ser do (establece el indicador DF pero sujeto a comprobaciones PMTU por parte del nucleo, se rechazaran los paquetes demasiado grandes), want (realizar descubrimiento PMTU, fragmentar localmente cuando el tamano del paquete es grande), probe (establece el indicador DF y omite las comprobaciones PMTU, util para sondear), o dont (no configura el indicador DF). -N opcion_nodeinfo Solo IPv6. Envia consultas de informacion 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 especificos 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 especifico de IPv4. ipv4-all Solicitar direcciones IPv4 en otras interfaces. subject-ipv6=direccion ipv6 Direccion de asunto IPv6. subject-ipv4=ipv4addr Direccion de asunto IPv4. nombre-sujeto=nombre de nodo Nombre del tema. Si contiene mas 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 Unicamente salida numerica. No se intentara buscar nombres simbolicos para direcciones de host (no hay resolucion DNS inversa). Este es el valor predeterminado para el destino numerico o la opcion -f. Anule la opcion -H definida previamente. Consulte tambien la variable de entorno IPUTILS_PING_PTR_LOOKUP. -O Informa de la respuesta ICMP ECHO pendiente antes de enviar el siguiente paquete. Esto es util junto con la marca de tiempo -D para registrar la salida en un archivo de diagnostico y buscar las respuestas que no hayan llegado. -p patron Puede definir hasta 16 bytes de "relleno" para completar el paquete que envia. Esto es util para diagnosticar problemas que depende de los datos en una red. Por ejemplo, -p ff hara que el paquete enviado se llene con unos. -q Salida muda. No se muestra ninguna informacion excepto las lineas 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 numero hexadecimal. En RFC2474, estos campos se interpretan como servicios diferenciados (DS) de 8 bits, que constan de: bits 0-1 (los 2 bits mas bajos) de datos separados y bits 2-7 (los 6 bits mas altos) de punto de codigo de servicios diferenciados (DSCP). . Segun los RFC2481 y RFC3168, los bits 0-1 se utilizan para ECN. Historicamente (RFC1349, actualizado por RFC2474), estos se interpretaban del siguiente modo: el bit 0 (bit mas bajo) estaba reservado (actualmente redefinido como control de congestion), 1-4 eran para el tipo de servicio y los bits 5-7 (bits mas altos) para indicar la precedencia. -r Omite las tablas de enrutamiento habituales y envia directamente a un equipo en una interfaz adjunta. Si el equipo no esta en una red conectada directamente, se devuelve un error. Esta opcion se puede usar para hacer ping a un equipo local a traves de una interfaz que no tiene ruta a traves de ella, siempre que tambien se use la opcion -I. -R ping solamente. Registra la ruta. Incluye la opcion RECORD_ROUTE en el paquete ECHO_REQUEST y muestra el bufer de ruta en los paquetes devueltos. Observe que el encabezado IP solo puede contener nueve de estas rutas. Muchos equipos ignoran o descartan esta opcion. -s tamano de paquete Especifica la cantidad de bytes de datos que se enviaran. 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 maximo permitido es 65507 para IPv4 (65467 cuando -R o -T o saltos intermedios) o 65527 para IPv6, pero la mayoria de los sistemas lo limitan a un numero menor basado en algun valor de ese sistema. -S sndbuf Configura el socket sndbuf. Si no se define, se selecciona un solo paquete para almacenar en el buffer. -t ttl ping solamente. Establece el tiempo vida de IP. -T opcion de marca de tiempo Establece opciones especiales de marca de tiempo de IP. opcion 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 direccion de multidifusion. -V Muestra la version del programa y termina. -w fecha limite Especifique un tiempo de espera, en segundos, antes de que ping finalice su ejecucion independientemente de cuantos paquetes se hayan enviado o recibido. En este caso, ping no se detiene despues de enviar el paquete cuenta, espera a que expire fecha limite o hasta que recibe respuesta de las sondas cuenta o alguna notificacion de error de la red. -W tiempo de espera Tiempo de espera de respuesta, en segundos. La opcion afecta solo al tiempo de espera en ausencia de respuestas; de lo contrario, ping espera dos RTT. Numero real permitido con punto como separador decimal (independientemente de la configuracion 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 este activa y funcionando. Luego debera ejecutarse "ping" en equipos y puertas de enlace cada vez mas distantes. Se calculan los tiempos de ida y vuelta y las estadisticas de perdida de paquetes. Si se reciben paquetes duplicados, no se incluyen en el calculo de perdida, aunque el tiempo de ida y vuelta de estos paquetes se utiliza para calcular los numeros de tiempo de ida y vuelta minimo/promedio/maximo/mdev. Desviacion estandar de la poblacion (mdev), promedio de la distancia entre cada RTT de ping y el RTT promedio. Cuanto mayor es mdev, mas variable es el RTT (con el tiempo). Con una alta variabilidad de RTT, tendra problemas de velocidad con las transferencias masivas (tomaran mas tiempo de lo estrictamente necesario, ya que la variabilidad hara que el remitente espere los ACK) y tendra una calidad de VoIP mediocre o mala. . Se mostraraun breve resumen cuando se ha enviado (y recibido) la cantidad definida de paquetes o si el programa finaliza con un SIGINT.. Con las senal SIGQUIT, se pueden obtener estadisticas actualizadas mas resumidas sin finalizar el proceso. La finalidad de este programa es el de ser utilizado en la comprobacion, medicion 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 automaticos. ENTORNO La variable de entorno IPUTILS_PING_PTR_LOOKUP establecida en 0 deshabilita la resolucion DNS inversa (busqueda PTR) de manera predeterminada. Sera anulada por la opcion -H o -n. .SH "EXIT STATUS" Si ping no recibe ningun paquete de respuesta, finalizara con el codigo 1. Si se especifican un paquete cuenta y limite de tiempo, y se reciben menos de cuenta paquetes cuando finaliza el tiempo de espera, tambien saldra con el codigo 1. En caso de otro error, sale con el codigo 2. Si todo sale bien, finaliza con el codigo 0. Esto hace que se pueda saber si un equipo esta vivo o no mediante el codigo de salida. ENLACE IPV6-DESTINOS LOCALES Para IPv6, cuando la direccion 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 deberia hacerse para evitar ambiguedades cuando podrian confundirse multiples interfaces de salida. Hay dos formas de definir la interfaz de salida: o mediante el simbolo % La direccion 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 o mediante la opcion -I Cuando se utilizan sockets de datagramas ICMP, este metodo es compatible con las siguientes versiones del nucleo: 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 opcion 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 tamano_de_paquete, se referira al tamano 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 sera 8 bytes mayor que el espacio de datos solicitado (por el encabezado ICMP). Si los datos ocupan al menos el tamano de struct timeval ping emplea los bytes iniciales de este espacio para incluir una marca de tiempo que se usara en el calculo de los tiempos de ida y vuelta. Si el espacio de datos es mas corto, no se dan tiempos de ida y vuelta. PAQUETES DUPLICADOS Y DANADOS ping informara de los paquetes duplicados y danados. Nunca debe de aparecer ningun paquete duplicado. Estos aparecen por retransmisiones inapropiadas a nivel de conexion. Los paquetes duplicados pueden aparecer en muchas situaciones y rara vez (por no decir nunca) son buena senal, aunque la aparicion de unos pocos duplicados no ha de considerarse siempre una senal de alarma. Los paquetes danados constituyen obviamente una causa de alarma y normalmente indican que hay hardware danado en alguna lugar de la ruta seguida por el paquete ping, bien sea en la red o en los equipos. COLISIONES DE IDENTIFICACION A diferencia de TCP y UDP, que utilizan el puerto para identificar de forma unica al destinatario para entregar los datos, ICMP utiliza el campo de identificador (ID) para dicha identificacion. 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 tamano limitado del campo ID de 16 bits. Esa es una limitacion original del protocolo que no es posible solucionar salvo que se codifique una identificacion en la carga util del paquete de ping. ping mostrara el error DIRECCION DIFERENTE y la perdida de paquetes saldra con valor negativo. ping usa PID para obtener un numero unico. 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 porcion 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 patron particular que tendra problemas es algo que no tiene suficientes "transiciones", por ejemplo todos unos o todos ceros, o un patron similar como por ejemplo casi todos zeros. NO es necesariamente es suficiente definir un patron de datos de todos ceros (por ejemplo) en la linea de ordenes porque el patron que es de interes esta en el nivel de enlace de datos y la relacion 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 encontrara un archivo que, o bien no se puede transmitir por la red, o que tarda mucho mas en enviarse que otros archivos de tamano similar. En ese caso, deberia examinarse este archivo en busca de patrones repetidos que se pueden comprobar con la opcion -p. DETALLES DEL TTL El valor TTL de un paquete IP representa el numero maximo 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 maximo posible es de 255. Un valor inicial recomendado seria el 64. Para obtener mas informacion, consulte la seccion 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: o No cambiarlo; esto es lo que hacian los sistemas Berkeley Unix antes del lanzamiento de 4.3BSD Tahoe. En este caso, el valor TTL en el paquete recibido sera 255 menos el numero de routers en el viaje de ida y vuelta. o Configurado en 255; esto es asi en los sistemas Berkeley Unix actuales. En este caso, el valor TTL en el paquete recibido sera 255 menos el numero de routers en la ruta desde el sistema remoto hasta el equipo que hace ping. o Cambiarlo por cualquier otro valor. Algunas maquinas usan el mismo valor para los paquetes ICMP que el que usan para los paquetes TCP, por ejemplo 30 o 60. Otros puede que usen valores totalmente inesperados. ERRORES o Muchos ordenadores y puertas de acceso ignoran la opcion RECORD_ROUTE. o La longitud maxima de la cabecera IP resulta demasiado pequena para opciones como RECORD_ROUTE puedan resultar completamente utiles. Sin embargo, no hay mucho que se pueda hacer sobre esto. o No suele ser recomendable inundar la red con ping. De manera especial, solo deberian inundarse direcciones de multidifusion baj condiciones muy controladas. VEASE TAMBIEN ip(8), ss(8). HISTORIAL La orden ping aparecio en 4.3BSD. La version descrita aqui es su descendiente especifico para Linux. A partir de la version s20150815, el binario ping6 ya NO EXISTE como tal, sino que se ha fusionado con ping. Si se crea un enlace simbolico llamado ping6 que apunte a ping tendra 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 opcion -N) o cuando el campo de identificacion esta 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. TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Antonio Aneiros y Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . iputils 20240905 PING(8)