Analisis de un traceroute a Alemania

Fecha: 8 al 11 de abril del 2020 (durante la cuarentena)

 

Escenario

 

Durante la cuarentena intercambiaba mensajes con mi amigo y colega Damián, que vive en Heidelberg (Alemania) para

 ver como estaba la situación acá y allá, etc...cuando (salvando las distancias) la manzana me golpeó la cabeza y se me

ocurrió pedirle la IP pública y seguir la traza, lo que me permitió trabajar en este laboratorio y tener algo que estudiar.

 

 

 

Dentro de los datos interesantes que obtuve al realizar esta prueba, fue caer en la cuenta de que estaba utilizando dos cables

(fibras ópticas) submarinas: una para llegar a New York, y otra para cruzar de oeste a este el Altlántico hasta llegar a Alemania.

Esto me llevó a sacar mis libros de QoS para buscar estimaciones de latencia por propagación en un medio físico (ver punto 5.).

 

También esta prueba me llevó a las clases de CCNA donde explicaba que una traza es engañosa, no siempre vemos por donde

realmente viaja el tráfico sino por donde vuelven los retornos de nuestro paquete “muerto” en tránsito (ver punto 7.).

 

Recordemos que una traza envía uno o varios paquetes ICMP (solicitud de eco en Windows) o UDP (traceroute Linux) con TTL=1,

luego TTL=2, TTL=3, etc, y cada router decrementa este valor cuando reenvía el paquete al próximo salto, y cada router que recibe

un paquete con TTL=1 debera descartarlo y enviar un mensaje ICMP de tiempo expirado en tránsito, con esto obtenemos la IP de

cada router que nos “mató el paquete”.

 

 

1.- Ejecución del traceroute:

 

La prueba la realicé desde una instalación “seria”, utilizando una conexión de internet “seria” y con una máquina Linux con una

versión UDP de traceroute, aquí sólo vemos los retornos ICMP de tiempo expirado en tránsito.

 

-          En los saltos 6, 13, 16 a 21 representados con * * * podemos suponer que el router “mata” el paquete  (por TTL) y no le interesa

o no tiene ordenes de avisarnos.

-          En el salto 5 vemos 3 routers que pueden ser balanceadores que envían las tres respuestas de paquete expirado realizando tal

vez balanceo tipo round robin (ver punto 8.)

-          En el salto 8 asumo que es el último equipo en Argentina y comienza el viaje por la fibra Sur-Norte, podemos ver la diferencia de

latencia luego de este salto. Tengamos en cuenta que hasta este equipo llegamos desde varios ISP diferentes y entramos también

en un “cuello de botella” de 1.6 Tbps (si, Tera).

-          En el salto 9 asumo que por la latencia llega al otro lado de la fibra mas adelante se realiza una estimación grosera de la misma.

-          En los saltos 12 a 14 asumo que es el cruce del Atlántico oeste-este y tenemos un salto ciego en el paquete 13.

-          En los saltos 14 a 22 ya nos encontramos en Alemania viajando desde Frankfurt a Heidelberg.

 

root@ernesto:~$ traceroute 176.199.208.104

traceroute to 176.199.208.104 (176.199.208.104), 30 hops max, 60 byte packets

 1  192.168.1.1 (192.168.17.1)  0.274 ms  0.286 ms  0.324 ms (mi propio gateway)

 2  host237.181-10-139.telecom.net.ar (181.10.139.237)  0.315 ms  0.301 ms  0.309 ms

 3  host65.186-108-25.telecom.net.ar (186.108.25.65)  1.284 ms  1.372 ms  1.423 ms

 4  host28.181-89-51.telecom.net.ar (181.89.51.28)  0.912 ms  0.815 ms  0.825 ms

 5  181.88.66.220  0.963 ms 181.88.66.66  1.088 ms 181.88.66.126  0.801 ms  (aquí vemos un posible balanceo de carga, ver en Wireshark

 6  * * *                                                                                                                                      que llegan en distinto orden según la latencia)

 7  host125.181-89-2.telecom.net.ar (181.89.2.125)  12.152 ms (aquí vemos un posible balanceo de carga)

     host63.181-96-120.telecom.net.ar (181.96.120.63)  6.240 ms  4.512 ms

 8  ae6.baires5.bai.seabone.net (185.70.203.32)  16.629 ms  16.601 ms  16.619 ms (TI Sparkle Seabone, Las Toninas, Argentina)

 9  ae25.ashburn2.ash.seabone.net (195.22.206.87)  181.072 ms (TI Sparkle Seabone, Ashburn, USA)(aquí vemos un posible balanceo de carga

     ae26.ashburn2.ash.seabone.net (195.22.206.103)  160.286 ms  156.616 ms        ver que es un paquete el primero y dos paquetes el segundo)

10  upc.ashburn2.ash.seabone.net (195.22.206.57)  164.212 ms  153.313 ms  161.325 ms  (posible redirect dentro de la misma subred)

11  us-was03a-rd1-ae-11-0.aorta.net (84.116.130.166)  245.578 ms  244.860 ms  250.587 ms (Liberty Global Infrastructure, Washington, DC, USA)

12  us-nyc01b-rd2-ae-5-0.aorta.net (84.116.146.141)  251.676 ms  251.677 ms  248.087 ms (Liberty Global Infrastructure, New York, NY, USA)

13  * * *   (cruce Atlántico Oeste-Este)

14  de-fra04d-rc1-ae-56-0.aorta.net (84.116.132.5)  245.928 ms  248.784 ms  248.438 ms (Liberty Global Infrastructure, Frankfurt, Germany)

15  84.116.191.222 (84.116.191.222)  247.836 ms  248.408 ms  248.035 ms  (Liberty Global Infrastructure, Frankfurt, Germany)

16  * * *

17  * * *

18  * * *

19  * * *

20  * * *

21  * * *

22  * ip-176-199-208-104.hsi06.unitymediagroup.de (176.199.208.104)  352.484 ms * (Unity Media Group/Vodaphone ,Heidelberg, Germany)

root@ernesto:~$

 

 

2.- Análisis con Wireshark

 

Como se mencionaba antes, en estas capturas vemos el aviso de los paquetes “muertos” en tránsito, que generalmente son tres

por cada salto, para facilitar la lectura diferenciamos el orden de llegada con el número de salto X_Y donde X es el salto e Y el orden

de llegada en inclusive con distintos colores para discriminar mejor. Suerte !

 

 

 Salto        Orden de llegada en Wireshark

 |              |

#1            1 0.000000000    192.168.1.1            192.168.1.243   ICMP        70    Time-to-live exceeded

                 2 0.000028449    192.168.1.1            192.168.1.243   ICMP        70    Time-to-live exceeded

                 3 0.000072869    192.168.1.1            192.168.1.243   ICMP        70    Time-to-live exceeded

#2            4 0.000102245    181.10.139.237     192.168.1.243   ICMP        70    Time-to-live exceeded

                 5 0.000109497    181.10.139.237     192.168.1.243   ICMP        70    Time-to-live exceeded

                 6 0.000116825    181.10.139.237     192.168.1.243   ICMP        70    Time-to-live exceeded

#4            7 0.000745658    181.89.51.28          192.168.1.243   ICMP     110    Time-to-live exceeded

                 8 0.000749346    181.89.51.28          192.168.1.243   ICMP     110    Time-to-live exceeded

                 9 0.000769074    181.89.51.28          192.168.1.243   ICMP     110    Time-to-live exceeded

#5_1     10 0.000914623    181.88.66.220        192.168.1.243   ICMP     110    Time-to-live exceeded (posible balanceo de carga)

#3          11 0.001098574    186.108.25.65        192.168.1.243   ICMP        70    Time-to-live exceeded

               12 0.001193342    186.108.25.65        192.168.1.243   ICMP        70    Time-to-live exceeded

               13 0.001250758    186.108.25.65        192.168.1.243   ICMP        70    Time-to-live exceeded

#5_ 3    14 0.001659189    181.88.66.126        192.168.1.243   ICMP     110     Time-to-live exceeded (posible balanceo de carga)

#5_ 2    15 0.001936135    181.88.66.66          192.168.1.243   ICMP     110     Time-to-live exceeded (posible balanceo de carga)

#7_2     16 0.175200212    181.96.120.63        192.168.1.243   ICMP     110     Time-to-live exceeded

#7_3     17 0.176921685    181.96.120.63        192.168.1.243   ICMP     110     Time-to-live exceeded

#7_1     18 0.182826901    181.89.2.125          192.168.1.243   ICMP     110     Time-to-live exceeded

#8          19 0.187302950    185.70.203.32        192.168.1.243   ICMP        70    Time-to-live exceeded (Las Toninas, Argentina)

               20 0.187324372    185.70.203.32        192.168.1.243   ICMP        70    Time-to-live exceeded                   (posible balanceo de carga)

               21 0.187327618    185.70.203.32        192.168.1.243   ICMP        70    Time-to-live exceeded                                         |

#9_1     22 0.351786319    195.22.206.87        192.168.1.243   ICMP        70    Time-to-live exceeded (Ashburn, VA, USA, primer paquete)

#10       23 0.369515565    195.22.206.57         192.168.1.243   ICMP        70    Time-to-live exceeded

#9_2     24 0.372804244    195.22.206.103      192.168.1.243   ICMP        70    Time-to-live exceeded (Ashburn, VA, USA, segundo paquete)

#9_3     25 0.376463801    195.22.206.103      192.168.1.243   ICMP        70    Time-to-live exceeded (Ashburn, VA, USA, tercer paquete)

#10       26 0.377533594    195.22.206.57         192.168.1.243   ICMP        70    Time-to-live exceeded

#10       27 0.380407233    195.22.206.57         192.168.1.243   ICMP        70    Time-to-live exceeded

#11_1  28 0.461108171    84.116.130.166      192.168.1.243   ICMP     182     Time-to-live exceeded

#11_2  29 0.461793273    84.116.130.166      192.168.1.243   ICMP     182     Time-to-live exceeded

#12_1  30 0.464359567    84.116.146.141      192.168.1.243   ICMP     182     Time-to-live exceeded (New York, USA, primer paquete)

#11_3  31 0.466841908    84.116.130.166      192.168.1.243   ICMP     182     Time-to-live exceeded

#12_2  32 0.467935240    84.116.146.141      192.168.1.243   ICMP     182     Time-to-live exceeded (New York, USA, segundo paquete)

#12_3  33 0.467942766    84.116.146.141      192.168.1.243   ICMP     182     Time-to-live exceeded (New York, USA, tercer paquete)

#14       34 0.618793842    84.116.132.5           192.168.1.243   ICMP     182     Time-to-live exceeded (posiblemente Frankfurt, Germany)

               35 0.625308164    84.116.132.5          192.168.1.243   ICMP     182     Time-to-live exceeded

               36 0.626032212    84.116.132.5          192.168.1.243   ICMP     182     Time-to-live exceeded

#15        37 0.628275096    84.116.191.222     192.168.1.243   ICMP     182     Time-to-live exceeded (posiblemente Frankfurt, Germany)

               38 0.709633050    84.116.191.222     192.168.1.243   ICMP     182     Time-to-live exceeded

               39 0.709925777    84.116.191.222     192.168.1.243   ICMP     182     Time-to-live exceeded

#22       40 6.073930196    176.199.208.104   192.168.1.243   ICMP     102     Port unreachable (Heidelberg, Germany)

     |

En este último salto vemos que el mensaje ICMP es diferente, ya que es el target y no soporta el traceroute vía UDP.

 

3.- Detalle de los paquetes involucrados en la fibra sur-norte:

 

El paquete 1 está como referencia de tiempo, el último salto en Argentina es el 2, los paquetes 3 y 4 ya son equipos en USA.

 

 

4.- Detalle de los paquetes involucrados en la fibra oeste-este:

 

El paquete 1 está como referencia de tiempo, el 2 es el salto en NYC y el 3 en Frankfurt, aunque hubo un salto ciego entre ambos.

 

 

5.- Estimación de la longitud de la fibra submarina:

 

Basado en el libro Cisco QoS Exam Certification Guide, entre los paquetes 10 y 11 vemos una diiferencia de latencia de 170 mseg,

lo que podria llevar a hacer el siguiente cálculo (insisto que grosero) de la estimación de km de fibra recorrido entre Argentina y USA.

No podemos hacer la misma estimación entre USA y Europa ya que tenemos ciertos saltos “ciegos” como el salto 13.

 

 

Pero también deberíamos tener en cuenta los siguientes factores:

 

-          Serialization delay (fixed) (el tiempo que demora en convertirse paralelo/serie o serie/paralelo)

-          Propagation delay (fixed) (el largo de la fibra siempre es el mismo)

-          Queuing delay (variable)  (depende del volúmen de tráfico)

-          Forwarding/processing delay (variable)  (depende del volúmen de tráfico)

-          Shaping delay (variable)  (depende del volúmen de tráfico)

-          Network delay (variable)  (depende del volúmen de tráfico)

 

6.- Detalle de la fibra Sparkle Seabone:

 

 

Este tramo de fibra es entre Las Toninas (Buenos Aires) y Ashburn (cerca de Washington), con escalas en Brasil

y Puerto Rico, pueden llegar a ser bifurcaciónes en layer 1 (una cruzada) o 2 (switching), es difícil de determinar.

 

 

Fuente: https://www.tisparkle.com/

 

7.- Como una traza puede llegar a ser “engañosa”:

 

El primer caso es el ideal, los routers que nos matan el paquete nos avisan por el mismo camino donde llegó:

 

C:\>tracert 84.0.0.1

Traza a la dirección 84.0.0.1 sobre un máximo de 30 saltos:

 

1    11 ms     9 ms        8 ms  180.0.0.1 (TTL 64)

2    17 ms    14 ms    15 ms  200.0.0.1 (TTL 63)

3    18 ms    20 ms    16 ms  200.69.0.1 (TTL 62)

4    20 ms    21 ms    19 ms  84.60.0.1 (TTL 61)

 

El segundo caso, el router del segundo salto recibe nuestro paquete, lo mata y avisa por ICMP, pero tiene

una mejor métrica para llegar a nuestra red a través del router inferior y utiliza la interface 190.0.0.1 que es

la mas cercana (en métrica) al destino (red A):

 

 

C:\>tracert 84.0.0.1

Traza a la dirección 84.0.0.1 sobre un máximo de 30 saltos:

 

1    11 ms     9 ms        8 ms  180.0.0.1 (TTL 64)

2    17 ms    14 ms    15 ms  190.0.0.1 (TTL 62) (vemos hay un TTL de menos porque pasan por el router inferior)

3    18 ms    20 ms    16 ms  200.69.0.1 (TTL 61)

4    20 ms    21 ms    19 ms  84.60.0.1 (TTL 60)

 

El segundo caso, tanto el router del segundo salto como el del tercer salto reciben nuestro paquete, lo matan

y avisan por ICMP, pero tienen una mejor métrica para llegar a nuestra red a través del router inferior y utilizan

la interface 190.0.0.1 y 200.45.0.1 que son las mas cercanas (en métrica) al destino (red A):

 

C:\>tracert 84.0.0.1

Traza a la dirección 84.0.0.1 sobre un máximo de 30 saltos:

 

1    11 ms     9 ms        8 ms  180.0.0.1 (TTL 64)

2    17 ms    14 ms    15 ms  190.0.0.1 (TTL 62) (vemos hay un TTL de menos porque pasan por el router inferior)

3    18 ms    20 ms    16 ms  200.45.0.1 (TTL 62) (aquí el TTL es el esperado)

4    20 ms    21 ms    19 ms  84.60.0.1 (TTL 61) (aquí el TTL es el esperado)

 

8.- Acerca de los supuestos balanceadores:

 

Posiblemente exista un balanceo de carga tipo round-robin, o balanceo por paquete, o sea un paquete por cada

enlace, y las respuestas nos lleguen a destiempo, tal como lo indica la siguiente figura.

Puede que en el router de la derecha los paquetes lleguen por ambos enlaces pero se respondan por sólo uno,

esto podria ser balanceo por destino, que es un determinado destino siempre se alcanza por un mismo enlace.

 

Los paquetes se pintaron de diferentes colores para distinguirse unos de otros.

 

 

9.- Detalle del redirect en los saltos 9 y 10:

 

Cuando analizamos la traza determinamos lo siguiente:

 

9  ae25.ashburn2.ash.seabone.net (195.22.206.87)  181.072 ms (TI Sparkle Seabone, Ashburn, USA)(aquí vemos un posible balanceo de carga

     ae26.ashburn2.ash.seabone.net (195.22.206.103)  160.286 ms  156.616 ms        ver que es un paquete el primero y dos paquetes el segundo)

10  upc.ashburn2.ash.seabone.net (195.22.206.57)  164.212 ms  153.313 ms  161.325 ms   (posible redirect dentro de la misma subred)

 

Podemos observar que todos los equipos supuestamente están en la misma subred tratándose de una dirección clase C:

 

195.22.206.87

195.22.206.103

195.22.206.57

 

Entonces podemos verificar con un ping  con TTL 14 (salto 9) a estas tres IP, y si el salto 10 está en la misma subred se trata de un redirect.

Lo curioso es que si bien lo alcanzamos con el mismo valor TTL, es diferente el valor durante la respuesta del salto 10 (TTL 54 contra TTL 51)

por lo que su tabla de enrutamiento para alcanzar nuestra IP (y por lo tanto la red) de origen es diferente a los equipos del salto 9.

 

root@ernesto:~$ ping 195.22.206.87 -t 14

PING 195.22.206.87 (195.22.206.87) 56(84) bytes of data.

64 bytes from 195.22.206.87: icmp_seq=1 ttl=54 time=160 ms

64 bytes from 195.22.206.87: icmp_seq=2 ttl=54 time=160 ms

64 bytes from 195.22.206.87: icmp_seq=3 ttl=54 time=160 ms

 

root@ernesto:~$ ping 195.22.206.103 -t 14

PING 195.22.206.103 (195.22.206.103) 56(84) bytes of data.

64 bytes from 195.22.206.103: icmp_seq=1 ttl=54 time=159 ms

64 bytes from 195.22.206.103: icmp_seq=2 ttl=54 time=159 ms

64 bytes from 195.22.206.103: icmp_seq=3 ttl=54 time=159 ms

 

root@ernesto:~$ ping 195.22.206.57 -t 14

PING 195.22.206.57 (195.22.206.57) 56(84) bytes of data.

64 bytes from 195.22.206.57: icmp_seq=1 ttl=51 time=161 ms

64 bytes from 195.22.206.57: icmp_seq=2 ttl=51 time=162 ms

64 bytes from 195.22.206.57: icmp_seq=3 ttl=51 time=161 ms

 

10.- Material utilizado para entender todo esto:

 

Sobre la historia de los cables submarinos                                       Sobre como se propaga el tráfico en grandes distancias.

y el nodo de internet en Frankfurt.

 

https://www.vilarrasa.com.ar/biblioteca_archivos/image081.jpg                                                                     Descripción: Descripción: Descripción: Descripción: Descripción: Descripción: Descripción: Descripción: Descripción: Descripción: Descripción: Descripción: Cisco QOS Exam Certification Guide (IP Telephony Self-Study), 2nd Edition

 

Net Matters, 30 stories from telegraph cables to data glasses    Cisco QOS Exam Certification Guide, 2nd Edition

ISBN: 978-3-89809-144-2                                                                    ISBN-10: 1-58720-124-0

 

Casi todos los caminos conducen a Frankfurt, el core de internet

en Frankfurt en 2006, del libro Net Matters.

 

 

(2020) Your route is my route

Rosario, Argentina