¿Quieres entender la fragmentación IP? En esta guía detallada, discutiremos qué es la fragmentación IP, por qué es importante y qué tipo de problemas puede causar.
Cuando un host envía datos a través de una red, el tamaño de un paquete depende de lo que la red local pueda soportar. El tamaño máximo para el datagrama IP (paquete) está restringido por el enlace de datos de la red local. En el lenguaje de las redes, nos referimos a este tamaño máximo como la Unidad de Transmisión Máxima IP (MTU).
La MTU es el paquete de mayor tamaño en bytes que se puede transmitir a través del enlace de datos de una red. La MTU puede variar en diferentes redes, típicamente alrededor de 1500 bytes para redes proporcionadas a través de Ethernet. Dicho esto, la MTU puede variar dependiendo del tipo de Ethernet que se esté utilizando.
Los paquetes transmitidos desde una red que soporta una MTU pueden no ser compatibles con otra red. Si, por ejemplo, los paquetes necesitan ser enviados a través de Internet o a través de un túnel VPN encriptado, el tamaño de la MTU puede ser demasiado grande, lo que resulta en fragmentación y una transferencia de datos lenta.
En otros casos, los paquetes pueden necesitar ser enviados a través de una red con un Tamaño de Segmento Máximo (MSS) diferente. El MSS es el tamaño de segmento TCP más grande que se puede transmitir a través de una red. Cuando se cumple cualquiera de estos factores limitantes, se producirá la fragmentación IP.
Tabla de Contenido
¿Qué es la Fragmentación IP?
La fragmentación IP es el proceso de dividir los paquetes en trozos más pequeños, conocidos como fragmentos, para que puedan ser transmitidos a través de una red con una Unidad de Transmisión Máxima (MTU) o un Tamaño de Segmento Máximo (MSS) más pequeño que el del paquete original. Cuando un paquete se fragmenta, los fragmentos se transmiten a través de la red y se vuelven a ensamblar en su destino para reconstruir el paquete original.
El proceso de fragmentación IP generalmente tiene lugar en un router o switch, pero también puede ocurrir en una tarjeta de interfaz de red (si la tarjeta ha sido configurada para realizar la fragmentación). Durante el proceso de fragmentación, el paquete original se divide en múltiples fragmentos que cada uno contiene una copia del encabezado del datagrama IP original, con pequeñas modificaciones en algunos campos del encabezado. Estas modificaciones identifican el fragmento como parte del paquete original y permiten el reensamblaje cuando los fragmentos llegan a su destino.
Aunque la fragmentación IP es una solución ingeniosa para los problemas comunes de redes, puede resultar en efectos secundarios e inconvenientes no deseados. A continuación, veremos más de cerca cómo funciona la fragmentación IP y qué tipo de problemas causa.
IP-Fragmentación y Reensamblaje
La fragmentación IP es la división de un datagrama en varias partes que se pueden volver a juntar más tarde. Para la fragmentación IP y el reensamblaje, se utilizan campos del encabezado IP como la fuente, el destino, la identificación, la longitud total, y el desplazamiento del fragmento, junto con las banderas “Más Fragmentos” (MF) y “No Fragmentar” (DF).
La imagen a continuación muestra la ubicación de la cabecera IP:
- La Identificación es un campo de 16 bits y es un valor asignado por el remitente del datagrama IP. Se utiliza para ensamblar posteriormente los fragmentos del datagrama.
- El Desplazamiento del Fragmento es un campo de 13 bits que indica a qué lugar pertenece el fragmento en el datagrama IP original. Este valor siempre es múltiplo de ocho bytes.
- En la sección de banderas (señalador) del encabezado IP, hay tres bits para las banderas de control. Es importante destacar que el bit “No Fragmentar” (DF) juega un papel fundamental en la fragmentación, ya que determina si un paquete puede fragmentarse o no.
- Bit 0: Reservado y siempre se establece en 0.
- Bit 1: Es el bit DF (0: se puede fragmentar, 1: no se puede fragmentar).
- Bit 2: Es el bit MF (0: este es el último fragmento, 1: hay más fragmentos).
Ejemplo de la Fragmentación
Si sumas todas las longitudes de los fragmentos IP, el valor resultante será mayor que la longitud original del datagrama IP. La razón de este aumento es que se crearon encabezados IP adicionales, uno para cada fragmento después del primero.
Explicación de Fragmentación:
- El primer fragmento tiene un desplazamiento de 0, la longitud de este fragmento es de 1500 bytes; incluye 20 bytes para el encabezado IP original ligeramente modificado.
- El segundo fragmento tiene un desplazamiento de 185 (185 x 8 = 1480), lo que significa que la parte de datos de este fragmento comienza en el byte 1480 de la datagrama IP original. La longitud de este fragmento es de 1500 bytes; incluye un encabezado IP adicional creado para este fragmento.
- El tercer fragmento tiene un desplazamiento de 370 (370 x 8 = 2960), lo que significa que los datos de este fragmento comienzan en el byte 2960 de la datagrama IP original. La longitud de este fragmento es de 1500 bytes; incluye un encabezado IP adicional creado para este fragmento.
- El cuarto fragmento tiene un desplazamiento de 555 (555 x 8 = 4440), lo que significa que la parte de datos de este fragmento comienza en el byte 4440 de la datagrama IP original. La longitud de este fragmento es de 700 bytes; incluye un encabezado IP adicional creado para este fragmento.
- Fragmento 0-0:
- Longitud Total: 1500 bytes
- Identificador: 345
- DF: 0 (se puede fragmentar)
- MF: 1 (hay más fragmentos)
- Desplazamiento: 0
- Fragmento 0-1:
- Longitud Total: 1500 bytes
- Identificador: 345
- DF: 0 (se puede fragmentar)
- MF: 1 (hay más fragmentos)
- Desplazamiento: 185 (comienza en el byte 1480 de la datagrama original)
- Fragmento 0-2:
- Longitud Total: 1500 bytes
- Identificador: 345
- DF: 0 (se puede fragmentar)
- MF: 1 (hay más fragmentos)
- Desplazamiento: 370 (comienza en el byte 2960 de la datagrama original)
- Fragmento 0-3:
- Longitud Total: 700 bytes
- Identificador: 345
- DF: 0 (se puede fragmentar)
- MF: 0 (es el último fragmento)
- Desplazamiento: 555 (comienza en el byte 4440 de la datagrama original)
Solo cuando se recibe el último fragmento, se puede determinar el tamaño del datagrama IP original. El desplazamiento del fragmento en el último fragmento (555) proporciona el desplazamiento de los datos en el byte 4440 de la datagrama IP original. Si agregas los bytes de datos del último fragmento (680 = 700 – 20), obtienes 5120 bytes, que es la parte de datos de la datagrama IP original. Luego, al agregar 20 bytes para el encabezado IP, obtenemos el tamaño del datagrama IP original (4440 + 680 + 20 = 5140).
¿Qué Problemas Puede Causar la Fragmentación IP?
La fragmentación IP causa sobrecargas significativas que los routers no suelen estar diseñados para soportar. Durante la fragmentación IP, el router (o switch de red) debe crear fragmentos y luego volver a ensamblar esos fragmentos. Esto causa lentitud en la red al agotar los recursos del router.
Otro problema con la fragmentación IP es que si se pierde algún fragmento durante la transmisión, todo el proceso tiene que empezar de nuevo. El paquete original, que se descarta durante la fragmentación, debe volver a transmitirse, fragmentarse y volver a ensamblarse. Esto hace que el proceso de fragmentación sea ineficiente y que consuma muchos recursos. Por esta razón, los administradores de red evitan la fragmentación IP siempre que sea posible.
La fragmentación IP también puede causar la entrega desordenada de paquetes, lo que resulta en la necesidad de reordenar los paquetes. Esto es más común cuando solo se fragmentan algunos paquetes, o si se utilizan la agregación de enlaces u otras tecnologías de división de rutas. (La fragmentación IP puede causar problemas cuando se utiliza junto con las tecnologías de división de rutas porque el proceso de fragmentación puede resultar en que los paquetes se transmitan a través de diferentes rutas, lo que provoca que lleguen a su destino fuera de orden).
La entrega de paquetes fuera de orden y los fragmentos perdidos pueden causar otros problemas comunes. Como solo el primer fragmento contiene los encabezados de capa superior, la fragmentación puede causar problemas con el enrutamiento, la funcionalidad del firewall y la funcionalidad de NAT (Traducción de direcciones de red).
Aquí tienes un resumen de los problemas que puede causar la fragmentación IP:
- Sobrecarga en los routers: Cuando un router realiza fragmentación IP, debe crear y volver a ensamblar fragmentos, lo que puede consumir recursos y ralentizar la red.
- Transmisión ineficiente: Si se pierde algún fragmento durante la transmisión, el paquete original debe volver a transmitirse y fragmentarse de nuevo, lo que hace que el proceso sea muy ineficiente y que consuma muchos recursos.
- Entrega desordenada de paquetes: Si los paquetes se entregan fuera de orden, es posible que deban ser reordenados, lo que puede llevar mucho tiempo y requerir recursos adicionales.
- Problemas de enrutamiento y firewall: Debido a que solo el primer fragmento contiene los encabezados de capa superior, la fragmentación puede causar problemas con el enrutamiento y la funcionalidad del firewall.
- Problemas de NAT: La fragmentación puede causar problemas con la funcionalidad de NAT (Traducción de direcciones de red).
¿Por qué las Redes utilizan la Fragmentación IP si es Problemática?
Las redes utilizan la fragmentación IP como una forma de transmitir paquetes que son más grandes que la Unidad de Transmisión Máxima (MTU) de un router o switch intermedio.
Aunque la fragmentación IP puede ser problemática debido a las sobrecargas que crea y la posibilidad de fragmentos perdidos o fuera de orden, a menudo es necesaria para permitir que los paquetes se transmitan a través de redes con diferentes MTU.
Sin embargo, debido a los problemas que puede causar la fragmentación IP, generalmente se evita y se implementan soluciones alternativas para permitir que los datagramas IP se transmitan sin necesidad de fragmentación.
¿Cómo Evitan las Redes la Fragmentación IP?
Las redes intentan evitar la fragmentación IP de varias maneras. En primer lugar, se intercambian el tamaño de segmento máximo (MSS) y los mensajes del Protocolo de mensajes de control de Internet (ICMP) entre los extremos de la red. Esto permite la negociación del tamaño de trama máximo que se puede transmitir sin necesidad de fragmentación.
Aquí tienes un ejemplo del proceso: Cuando un host intenta enviar un paquete que es más grande que la MTU de un router intermedio, el router fragmentará y reenviará el paquete y también enviará un error ICMP “mensaje demasiado grande” al host. Esto informa al host de origen que debe utilizar una MTU más pequeña para los paquetes posteriores.
Los administradores de red también pueden intentar evitar la fragmentación IP reduciendo el tamaño de la MTU en una red. Aunque reducir (en lugar de aumentar) la MTU puede parecer contradictorio al principio, es efectivo al ayudar a evitar la necesidad de que los paquetes se fragmenten a medida que pasan a través de diferentes routers y switches. Esto puede mejorar la eficiencia y el rendimiento de la red.
Por otro lado, reducir demasiado la MTU puede tener consecuencias negativas, como reducir la capacidad general de la red y aumentar la sobrecarga causada por la transmisión de paquetes más pequeños. Como resultado, los administradores de red deben realizar un acto de equilibrio en el que consideren las compensaciones de ajustar la MTU frente al potencial de fragmentación IP.
¿Qué sucede si el Encabezado IP dice que no se debe Realizar la Fragmentación IP?
Si un datagrama incluye una bandera “No fragmentar” (DF) pero excede la MTU de la red local, entonces el router descartará el paquete al llegar. Si esto ocurre, el router enviará un mensaje al host informándole de que el paquete era demasiado grande para ser reenviado.
¿Qué es un Ataque de Fragmentación IP?
Un ataque de fragmentación IP es un tipo de ataque de denegación de servicio (DoS) que los ciberdelincuentes pueden explotar para cerrar un servidor.
Los hackers llevan a cabo ataques de fragmentación IP bombardeando la red de destino con paquetes IP que son deliberadamente demasiado grandes. Esto provoca que la red víctima fragmente y vuelva a ensamblar esos paquetes, lo que consume enormes cantidades de recursos y provoca que el servidor se bloquee.
A continuación, se incluyen los tipos más comunes de ataques de fragmentación IP:
- Ataque Teardrop (ataque de fragmentación TCP): Este ataque explota los mecanismos de reensamblaje TCP/IP manipulando los fragmentos IP para que se superpongan. Esto resulta en problemas de reensamblaje que provocan que el servidor se bloquee, lo que da lugar a una Denegación de Servicio (DoS).
- Ataque de inundación UDP e ICMP: El atacante inunda el servidor con muchos paquetes UDP o ICMP de gran tamaño. Esto sobrecarga el servidor, lo que provoca que se ralentice o se bloquee.
- Ataque Ping of Death: El atacante envía paquetes de eco ICMP (ping) de gran tamaño. Esto sobrecarga la red, lo que da lugar a una Denegación de Servicio (DOS). La mayoría de los sistemas modernos pueden mitigarlo con un firewall.
¿Puede una VPN ayudar a Prevenir los Ataques de Fragmentación IP?
Sí. Un servidor VPN se encuentra entre tú e Internet. Como resultado, una VPN puede ayudar absorbiendo cualquier ataque de fragmentación IP destinado a su red local.
Durante un ataque, un servidor VPN debería ser capaz de hacer frente. Sin embargo, si se ve abrumado (lo que lleva al servidor VPN a volverse muy lento), puede simplemente desconectarse de ese servidor y utilizar otro hasta que el ataque haya terminado. Como resultado, las VPN pueden ofrecer una protección eficaz contra los ataques DoS, incluidos los ataques de fragmentación IP.
¿Puede la Fragmentación IP afectar a la Velocidad de una VPN?
Aunque es bastante raro, es posible que los paquetes encriptados enviados por una VPN causen lentitud o problemas de conectividad. Por eso, algunas VPN ofrecen la opción de cambiar de protocolo o de elegir un tamaño de MTU más pequeño. Esto puede ayudar a resolver cualquier problema a medida que sus datos pasan a través de la red local o Internet.