Pregunta ¿Qué es la tabla mangle en iptables?


Estoy usando reglas de iptable para filtrar y manipular paquetes en mi servidor Ubuntu. pero no puedo entender la mesa mangle.

Citando de este tutorial de iptables:

Esta tabla debería, como ya hemos señalado, utilizarse principalmente para la manipulación de paquetes. En otras palabras, puede utilizar libremente las coincidencias de etc. que se podrían usar para cambiar los campos TOS (Tipo de servicio) y así sucesivamente.

Se recomienda encarecidamente que no utilice esta tabla para ningún filtrado; ni tampoco funcionará DNAT, SNAT o enmascaramiento en esta tabla.

¿Alguien puede describirme la tabla de mangle y proporcionar algunos ejemplos para entender cuándo debo usarla?


21
2018-01-14 04:49


origen


los iptables(8) La página de manual tiene toda la información que desea, incluidos varios ejemplos agradables del uso de la tabla mangle. - Michael Hampton♦


Respuestas:


Además de las otras buenas respuestas, recientemente tuve que usar la tabla de modificaciones para ajustar las discrepancias de MTU (unidad de transmisión máxima) causadas por el tráfico que se traía a través de PPPoE, PPP y ATM, cada uno de los cuales agrega una sobrecarga que reduce la carga útil disponible para IP a partir de los 1500 bytes habituales de una trama Ethernet.

Los sistemas en cada extremo de la tubería, como es normal, tendrían su MTU con el valor predeterminado regular de 1500 y, por lo tanto, tratarían de enviar tramas de IP tan grandes. Dado que el tamaño real de la carga útil disponible era más pequeño, esto habría provocado la fragmentación de paquetes, excepto que a menudo el remitente solicitará que los paquetes no se fragmenten, y como tal, terminarán por eliminarse por completo.

En un mundo ideal, el descubrimiento de MTU de ruta hubiera permitido a los puntos finales ajustar su MTU según sea necesario, pero este descubrimiento depende de ICMP, y las redes fuera de mi control a menudo se configuraron para abandonar ICMP por razones de seguridad.

La única opción era usar la manipulación de paquetes en mi enrutador para modificar los paquetes TCP SYN para reducir el tamaño máximo del segmento en la capa de transporte:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452

Este tipo de cosas son desordenadas e idealmente deberían evitarse, pero no tenía otras opciones y esto resolvió el problema.

Espero que estos ejemplos ayuden, así como la página de manual.


18
2018-01-15 17:40





Recientemente encontré una buena explicación aquí. Básicamente, se utiliza para establecer encabezados específicos para que los paquetes IP afecten la decisión de enrutamiento tomada más adelante. En su caso, la opción TTL es probablemente la más interesante:

El objetivo TTL se usa para cambiar el campo TTL (Time To Live) del   paquete. Podríamos decirle a los paquetes que solo tengan un TTL específico y así sucesivamente.   Una buena razón para esto podría ser que no queremos entregarnos   A los curiosos proveedores de servicios de Internet. Algunos servicios de internet   A los proveedores no les gustan los usuarios que ejecutan varias computadoras en una sola   conexión, y hay algunos proveedores de servicios de Internet conocidos por   busque un único host que genere diferentes valores TTL, y tome esto   como uno de los muchos signos de múltiples computadoras conectadas a una sola   conexión.

Los otros objetivos son TOS, MARK, SECMARK, CONNSECMARK.


19
2018-01-14 05:08



Mangle también se usa en QOS para manejar el marcado de paquetes o en la distribución de carga de datos para distribuir paquetes a diferentes rutas. - TomTom


Como un ipob noob, diría: La tabla mangle permite modificar algunas entradas especiales en el encabezado de paquetes. (tales como: Tipo de Servicio, Time To Live) (También permite establecer marcas especiales y marcas de contexto de seguridad)


7
2018-05-05 08:25





Hay un buen tutorial de inmersión profunda pero no demasiado difícil de entender en iptables aquí.

La tabla mangle se usa para alterar los encabezados IP del paquete de varias maneras. Por ejemplo, puede ajustar el valor TTL (Tiempo de vida) de un paquete, ya sea alargando o acortando el número de saltos de red válidos que el paquete puede sostener. Otras cabeceras de IP pueden ser alteradas de manera similar.

Esta tabla también puede colocar una "marca" interna del kernel en el paquete para   Procesamiento posterior en otras tablas y por otras herramientas de red. Esta   La marca no toca el paquete real, pero agrega la marca al   Representación del paquete del núcleo.

Me ayudó mucho, ya que también explica claramente cómo todas las partes encajan y se relacionan entre sí.


1
2018-06-27 10:03