14 votos

¿Existe una utilidad equivalente a la tracepath de Linux para OS X?

Estoy tratando de determinar el camino MTU desde mi Mac a varios sitios, y no puedo encontrar una utilidad incorporada para lograrlo.

En Linux, usaría una utilidad como tracepath pero me pregunto si hay algún tipo de equivalente disponible para OS X.

17voto

user36155 Puntos 36

Puedes usar el estándar ping que el Mac OSX viene con para encontrar el pmtu.

ping -D -s <size> <host> debería hacer el truco. Tenga en cuenta que el tamaño es sólo el tamaño de la carga útil de los datagramas de la ICMP. Para ver el MTU IP, necesita añadir 8 bytes de la cabecera ICMP y 20 bytes de la cabecera IP (así, por ejemplo, para enviar un paquete IP de 1500 bytes de longitud, necesita especificar el tamaño como 1472). Tenga en cuenta, -D es importante aquí, ya que pone la bandera de Dont-Fragment.

También puedes usar ping -D -g <minsize> -G <maxsize> -h <sizeincr> <host> para hacer un barrido de ping. Esto hace un ping a tu anfitrión con paquetes que empiezan desde minsize hasta maxsize en sizeincr incrementos. De nuevo, la misma regla se aplica a sus tamaños - estos son sólo para la carga útil de ICMP (por lo que necesita añadir 28 Bytes al tamaño especificado aquí para el tamaño completo de IP MTU).

Lo que estás buscando es un mensaje inalcanzable de la ICMP con un subtipo de "Se necesita fragmentación pero no se debe fragmentar". La dirección IP del remitente del mensaje ICMP anterior es el host o router que tiene su MTU ajustado a un tamaño menor que el de su paquete, en el enlace que usaría para reenviar su paquete más hacia el destino.

Tenga en cuenta también que a veces (mal configurados) los cortafuegos o los filtros de tráfico bloquean todos los mensajes ICMP y en tal caso, simplemente no se ve ninguna respuesta. Para probar qué host dejó caer el paquete, podría ejecutar un traceroute a su destino y luego hacer ping repetidamente a cada salto en el camino con '-D' y un tamaño o un barrido para descubrir la MTU local del enlace al que está conectado ese salto. Será el enlace entre el último host que puedas hacer ping y el primer host que no puedas que tendrá una MTU más pequeña.

De nuevo, todo esto está sujeto a que los enrutadores manejen la ICMP, lo cual podría no ser así.

El protocolo PMTUD (Path MTU Discovery) funciona de la misma manera. Utiliza paquetes TCP con la bandera DF puesta. Los puntos finales de las sesiones TCP acuerdan su MSS (Maximum Segment Size, que es MTU menos IP y cabeceras TCP, 40B) - eligen el menor de los valores MSS anunciados por cada host en el apretón de manos TCP. Luego envían todo el tráfico con las banderas DF encendidas, y esperan a que el ICMP sea inalcanzable o a que el TCP sea ACK. El último significa que la PMTU es suficiente, el primero significa que necesitan dejar el MSS.

¡Espero que eso ayude!

4voto

Tony Williams Puntos 4903

traceroute está disponible en el Mac. Traceroute es en realidad una versión más destacada de tracepath .

man traceroute le dará los detalles pero traceroute <host> hace lo mismo que tracepath <host> .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X