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