Tráfico por un túnel EoIP

Fecha: 26 de marzo del 2024

 

Escenario

 

Este laboratorio es el primero de una saga donde se análiza tráfico EoIP (Ethernet Over IP), algo que me faltaba documentar.

En pruebas anteriores (allá por el 2018) vimos un escenario L2TP, este es algo similar y debemos agregar EoIP a la familia.

No analizamos aspectos de seguridad ni sus desventajas al utilizarlo sin ella, sólo analizamos a bajo nivel que sucede ahí dentro.

Vamos y vemos…

 

 

Este tipo de escenario puede ayudarnos “a zafar” en ocasiones donde debemos extender la LAN por internet (en contra de lo que se pregona en las clases de CCNA ya que extendemos el dominio de broadcast, pero la realidad a veces los exige).

 

 

1.- Generamos un ping de un equipo a otro:

 

Aquí van a ocurrir varias cosas a considerar:

 

1.1.- No se van a utilizar defaults gateways ya que ambos equipos se encuentran dentro de la misma LAN (o al menos eso creen).

1.2.- Se va a generar un ARP para encontrar la MAC del dueño de la IP destino.

1.3.- Se va a responder el ARP sin ningún tipo de inconveniente.

1.4.- En el durante, va a estar pasando tráfico spanning-tree de los switches involucrados en el escenario (no dibujados en el    

        layout) o de los mismos bridges que puentean (valga la redundancia) las LANs con el túnel EoIP.

 

C:\> ping 192.168.0.123 (desde 192.168.0.100)

 

Haciendo ping a 192.168.0.123 con 32 bytes de datos:

Respuesta desde 192.168.0.123: bytes=32 tiempo<1m TTL=128

Respuesta desde 192.168.0.123: bytes=32 tiempo<1m TTL=128

Respuesta desde 192.168.0.123: bytes=32 tiempo<1m TTL=128

 

 

2.- Análisis de tráfico:

 

 

 

 

Frame 4: 116 bytes on wire (928 bits), 116 bytes captured (928 bits)

Ethernet II, Src: 18:fd:74:03:b9:2a, Dst: 18:fd:74:03:b7:9a (capa 2 del modelo OSI)

    Destination: 18:fd:74:03:b7:9a

    Source: 18:fd:74:03:b9:2a

    Type: IPv4 (0x0800)

Internet Protocol Version 4, Src: 181.111.221.110, Dst: 181.10.139.236 (capa 3 del modelo OSI)

    0100 .... = Version: 4

    .... 0101 = Header Length: 20 bytes (5)

    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)

        0000 00.. = Differentiated Services Codepoint: Default (0)

        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)

    Total Length: 102

    Identification: 0x0401 (1025)

    000. .... = Flags: 0x0

        0... .... = Reserved bit: Not set

        .0.. .... = Don't fragment: Not set

        ..0. .... = More fragments: Not set

    ...0 0000 0000 0000 = Fragment Offset: 0

    Time to Live: 255

    Protocol: Generic Routing Encapsulation (47)

    Header Checksum: 0xe392 [validation disabled]

    Source Address: 181.111.221.110

    Destination Address: 181.10.139.236

Generic Routing Encapsulation (MIKROTIK EoIP) (aquí comenzaría el payload)

    Flags and Version: 0x2001

        0... .... .... .... = Checksum Bit: No

        .0.. .... .... .... = Routing Bit: No

        ..1. .... .... .... = Key Bit: Yes

        ...0 .... .... .... = Sequence Number Bit: No

        .... 0... .... .... = Strict Source Route Bit: No

        .... .000 .... .... = Recursion control: 0

        .... .... 0000 0... = Flags (Reserved): 0

        .... .... .... .001 = Version: Enhanced GRE (1)

    Protocol Type: MIKROTIK EoIP (0x6400)

    Key: 0x004a0000

Ethernet II, Src: e8:6a:64:dc:e2:f5, Dst: 00:23:cd:b0:08:89 (capa 2 del modelo OSI)

    Destination: 00:23:cd:b0:08:89

        Address: 00:23:cd:b0:08:89

        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)

        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)

    Source: e8:6a:64:dc:e2:f5

        Address: e8:6a:64:dc:e2:f5

        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)

        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)

    Type: IPv4 (0x0800)

Internet Protocol Version 4, Src: 192.168.0.100, Dst: 192.168.0.123 (capa 3 del modelo OSI)

    0100 .... = Version: 4

    .... 0101 = Header Length: 20 bytes (5)

    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)

        0000 00.. = Differentiated Services Codepoint: Default (0)

        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)

    Total Length: 60

    Identification: 0x17f5 (6133)

    000. .... = Flags: 0x0

        0... .... = Reserved bit: Not set

        .0.. .... = Don't fragment: Not set

        ..0. .... = More fragments: Not set

    ...0 0000 0000 0000 = Fragment Offset: 0

    Time to Live: 128

    Protocol: ICMP (1)

    Header Checksum: 0xa09c [validation disabled]

    [Header checksum status: Unverified]

    Source Address: 192.168.0.100

    Destination Address: 192.168.0.123

Internet Control Message Protocol (capa “3 y ½” del modelo OSI)

    Type: 8 (Echo (ping) request)

    Code: 0

    Checksum: 0x4d47 [correct]

    [Checksum Status: Good]

    Identifier (BE): 1 (0x0001)

    Identifier (LE): 256 (0x0100)

    Sequence Number (BE): 20 (0x0014)

    Sequence Number (LE): 5120 (0x1400)

    [Response frame: 11]

    Data (32 bytes): abcdefghijklmnopqrstuvwabcdefghi [Length: 32] (payload)

 

3.- Diferencias entre GRE y GRE (EoIP):

 

A la izquierda vemos una implementación GRE de Cisco y a la derecha la cabecera del EoIP de este lab.

 

 

4.- Que sucede en layer 3:

 

Ambos hosts se ven dentro del mismo segmento IP, sin gateway ni nada.

 

4.1.- En el host 192.168.0.100:

 

C:\>arp -a

 

Interfaz: 192.168.0.100 --- 0xf

  Dirección de Internet    Dirección física        Tipo

  192.168.0.123              00-23-cd-b0-08-89   dinámico

  192.168.0.255              ff-ff-ff-ff-ff-ff               estático

 

C:\>

 

4.2.- En el host 192.168.0.123:

 

C:\> arp -a

 

Interfaz: 192.168.0.123 --- 0xe

  Dirección de Internet   Dirección física         Tipo

  192.168.0.100             e8-6a-64-dc-e2-f5     dinámico

  192.168.0.255             ff-ff-ff-ff-ff-ff                estático

 

C:\>

 

 

5.- Que sucede en layer 2:

 

Aunque nos vamos un poco del tema principal, es bueno repasar como funcionan las cosas.

 

 

 

5.1.- El host 192.168.0.100 encapsula el ARP en un paquete IP y en una trama con origen MAC1 y destino BCST, calcula el CRC y la envía.

5.2.- El switch recibe la trama BCST, calcula el CRC y agenda la MAC1 en el port correspondiente.

5.3.- El switch reenvía una copia de la trama a cada port activo, incluyendo al router con MAC2.

5.4.- El router con MAC2 recibe la trama, calcula el CRC y genera un nuevo paquete IP/EoIP en una trama con su MAC3.

5.5.- El router encapsula el paquete IP en una trama con MAC3, calcula el CRC y envía una trama al router con MAC4.

5.6.- El router con MAC4 recibe la trama, calcula el CRC y decide reenviar el paquete IP por su otra interface MAC5.

5.7.- El router encapsula el paquete IP en una trama con MAC5, calcula el CRC y envía una trama al router con MAC6.

5.8.- El router con MAC6 recibe la trama, calcula el CRC y desencapsula el paquete IP/EoIP y reenvía la trama original con origen

        MAC1 y con destino MAC BCST por su interface MAC7.

5.9.- El switch recibe la trama BCST, calcula el CRC y agenda la MAC1 en el port correspondiente.

5.10.- El switch reenvía una copia de la trama a cada port activo, incluyendo al host con MAC8.

5.11.- El host 192.168.0.123 con MAC8 recibe la trama con origen MAC1, calcula el CRC y procesa el paquete IP/ARP.

 

 

5.12.- El host 192.168.0.123 responde el ARP en un paquete IP y en una trama con origen MAC8 y destino MAC1.

5.13.- El switch recibe la trama desde MAC8, calcula el CRC y agenda la MAC8 en el port correspondiente.

5.14.- El switch reenvía la trama al port donde agendó la MAC1.

5.15.- El router con la MAC7 recibe la trama con origen MAC8 y destino MAC1 y la reencapsula en un paquete IP/EoIP.

5.16.- El router envía el paquete IP/EoIP en una trama con origen MAC6 y destino MAC5, calcula el CRC y la envía.

5.17.- El router con MAC5 recibe la trama, calcula el CRC y decide reenviar el paquete IP/EoIP en una trama con su MAC5.

5.18.- El router encapsula el paquete IP en una trama con origen MAC5 y destino MAC3, calcula el CRC y la envía.

5.19.- El router con MAC3 recibe la trama, calcula el CRC y desencapsula el paquete IP/EoIP y reenvía la trama original con origen

          MAC8 y con destino MAC1 por su interface MAC2.

5.20.- El switch recibe la trama desde MAC8, calcula el CRC y agenda la MAC8 en el port correspondiente.

5.21.- El switch reenvía la trama al port donde agendó la MAC1.

5.22.- El host 192.168.0.100 con MAC1 recibe la trama con origen MAC8, calcula el CRC y procesa el paquete IP/ARP.

 

 

5.23.- El host 192.168.0.100 genera un ICMP/Echo y lo encapsula en un paquete IP/ICMP en una trama con MAC1 calcula

          el CRC y la envía al host con MAC8.

5.24.- El switch recibe la trama desde MAC1, calcula el CRC y reenvía la trama al port donde agendó la MAC1.

5.25.- El router con MAC2 recibe la trama, calcula el CRC y genera un nuevo paquete IP/EoIP en una trama con su MAC3.

5.26.- El router encapsula el paquete IP en una trama con MAC3, calcula el CRC y envía una trama al router con MAC4.

5.27.- El router con MAC4 recibe la trama, calcula el CRC y decide reenviar el paquete IP por su otra interface MAC5.

5.28.- El router encapsula el paquete IP en una trama con MAC5, calcula el CRC y envía una trama al router con MAC6.

5.29.- El router con MAC6 recibe la trama, calcula el CRC y desencapsula el paquete IP/EoIP y reenvía la trama original

          por su interface MAC7.

5.30.- El router calcula el CRC y envía la trama original con origen MAC1 y destino MAC8.

5.31.- El host 192.168.0.123 con MAC8 recibe la trama con origen MAC1, calcula el CRC y procesa el paquete IP/ICMP/Echo.

 

 

5.32.- El host 192.168.0.123 responde el Ping/ICMP en un paquete IP/ICMP/Reply y en una trama con origen MAC8 y destino MAC1.

5.33.- El switch recibe la trama desde MAC8, calcula el CRC reenvía la trama al port donde agendó la MAC1.

5.34.- El router con la MAC7 recibe la trama con origen MAC8 y destino MAC1 y la reencapsula en un paquete IP/EoIP.

5.35.- El router envía el paquete IP/EoIP en una trama con origen MAC6 y destino MAC5, calcula el CRC y la envía.

5.36.- El router con MAC5 recibe la trama, calcula el CRC y decide reenviar el paquete IP/EoIP en una trama con su MAC5.

5.37.- El router encapsula el paquete IP en una trama con origen MAC5 y destino MAC3, calcula el CRC y la envía.

5.38.- El router con MAC3 recibe la trama, calcula el CRC y desencapsula el paquete IP/EoIP y reenvía la trama original con origen

          MAC8 y con destino MAC1 por su interface MAC2.

5.39.- El switch recibe la trama desde MAC8, calcula el CRC y reenvía la trama al port donde agendó la MAC1.

5.40.- El host 192.168.0.100 con MAC1 recibe la trama con origen MAC8, calcula el CRC y procesa el paquete IP/ICMP/Reply.

 

Se repiten los pasos 5.23 a 5.40 por 3 pings más (la prueba son 4 pings por default).

 

 

 

(2024) Rebel packets open tunnels to freedom

Rosario, Argentina