Número TTL del túnel GRE

Número TTL del túnel GRE

Aquí está la configuración en el servidor A:

iface serverA_gre0 inet tunnel
        address 172.24.0.85
        mode gre
        endpoint x.x.x.x
        dstaddr 172.24.0.86
        netmask 255.255.255.252
        ttl 255

Configuración en el servidor B:

iface serverB_gre0 inet tunnel
        address 172.24.0.86
        mode gre
        endpoint x.x.x.x
        dstaddr 172.24.0.85
        netmask 255.255.255.252
        ttl 255

Sin "ttl 255":

traceroute to 172.24.0.86 (172.24.0.86), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  172.24.0.86  54.507 ms  62.888 ms  51.369 ms

Con "ttl 255":

traceroute to 172.24.0.86 (172.24.0.86), 30 hops max, 60 byte packets
 1  172.24.0.86  51.123 ms  51.733 ms  51.943 ms

¿Qué causa exactamente ese problema "*" cuando TTL 255 no existe?

Respuesta1

TTLrepresentaTiempo para vivir. Es un campo presente en el encabezado del paquete IP. El valor lo establece inicialmente el remitente, a menudo en 64, y cada enrutador lo reduce en uno. Cuando llega a 0 sin antes llegar al destino final, el enrutador descarta el paquete y envía un mensaje ICMP de tiempo excedido a la fuente original. Este procesamiento TTL es importante para evitar que los paquetes IP no enrutables se reenvíen para siempre en una red IP, consumiendo recursos.

Traceroute utiliza este comportamiento TTL para determinar qué saltos y cuántos saltos (enrutadores) hay en una ruta hacia un destino. Envía paquetes IP de sonda con pequeños TTL en secuencia: TTL=1, TTL=2, TTL=3. El primer enrutador descartará TTL=1, el primero reenviará TTL=2 y el segundo lo descartará, y así sucesivamente. Si traceroute recibe un mensaje de tiempo ICMP excedido de un enrutador, mostrará su dirección IP. Si la sonda expira, se muestra un asterisco.

Para volver al efecto que está viendo, se debe a cómo funciona el túnel GRE con respecto a TTL. Para los túneles GRE IPv4, el valor predeterminado es copiar el TTL del paquete tunelizado al paquete GRE IPv4. Esto puede ser anulado por la ttlopción como lo hizo usted. Extracto relevante del manual:

ttl N
hoplimit N

    set a fixed TTL (IPv4) or hoplimit (IPv6) N on tunneled
    packets. N is a number in the range 1--255. 0 is a special
    value meaning that packets inherit the TTL value. The default
    value for IPv4 tunnels is: inherit. The default value for IPv6
    tunnels is: 64.

Entonces, cuando use ttl 255, una sonda enviada por traceroute con TTL=1 se encapsulará en un paquete GRE IPv4 con TTL=255. Esto será reenviado por todos los enrutadores intermedios, llegará al punto final del túnel y será recibido y manejado por el destino final. Cuando no lo utiliza ttl 255, el valor predeterminado es ttl inherit. Esto significa que una sonda de traceroute con TTL=1 se encapsulará en un paquete GRE IPv4 con TTL=1. El primer enrutador lo eliminará. Sin embargo, es el paquete GRE el que se descarta y si el enrutador envía un tiempo ICMP excedido, se referirá al paquete encapsulante (GRE) y no a la sonda de ruta de seguimiento encapsulada. Por lo tanto, el proceso de traceroute no recibirá ningún error ICMP, la sonda expira y se muestra un asterisco (*). Cuando el TTL es lo suficientemente grande como para que el paquete encapsulado GRE llegue al punto final del túnel, finalmente la sonda también llega al destino final y se muestra su dirección IP.

Entonces, para concluir, realmente no tienes ningún problema, ¡pero las cosas funcionan exactamente como deberían!

información relacionada