Я использую правила iptable для фильтрации и манипулирования пакетами на моем сервере Ubuntu. но я не могу понять таблицу Мэнгла.
Цитирование из этого учебника iptables :
Эта таблица должна, как мы уже отмечали, в основном использоваться для искажения пакетов. Другими словами, вы можете свободно использовать сопоставления mangle и т. Д., Которые можно использовать для изменения полей TOS (Тип обслуживания) и так далее.
Настоятельно рекомендуется не использовать эту таблицу для какой-либо фильтрации; и никакие DNAT, SNAT или Masquerading не будут работать в этой таблице.
Кто-нибудь может описать мне таблицу mangle и привести несколько примеров, чтобы понять, когда я должен ее использовать?
iptables(8)
man содержит всю необходимую информацию, включая несколько хороших примеров использования таблицы mangle.Ответы:
В дополнение к другим хорошим ответам, мне недавно пришлось использовать таблицу mangle, чтобы скорректировать несоответствия MTU (максимальная единица передачи), вызванные трафиком, передаваемым через PPPoE, PPP и ATM, каждый из которых добавляет издержки, которые уменьшают полезную нагрузку, доступную для IP. от обычных 1500 байтов кадра Ethernet.
Системы на каждом конце канала, как обычно, имеют свой MTU с обычным значением по умолчанию 1500, и поэтому они будут пытаться отправлять IP-кадры такого размера. Поскольку фактический доступный размер полезной нагрузки был меньше, это вызвало бы фрагментацию пакетов, за исключением того, что часто отправитель запрашивает, чтобы пакеты не были фрагментированы, и в результате они полностью удаляются.
В идеальном случае обнаружение MTU на пути позволило бы конечным точкам корректировать MTU по мере необходимости, но это обнаружение зависит от ICMP, и сети вне моего контроля часто настраивались на отбрасывание ICMP по соображениям безопасности.
Единственным выбором было использовать пакетное искажение в моем маршрутизаторе, чтобы изменить пакеты TCP SYN для уменьшения максимального размера сегмента на транспортном уровне:
Подобные вещи беспорядочные, и в идеале их следует избегать, но у меня не было других вариантов, и это решило проблему.
Надеюсь, что эти примеры помогут, а также справочная страница.
источник
Я недавно нашел хорошее объяснение здесь . Он в основном используется для установки определенных заголовков для IP-пакетов, чтобы повлиять на решение о маршрутизации, принятое в дальнейшем. Если таковая имеется, вариант TTL, вероятно, наиболее интересен:
Другие цели
TOS, MARK, SECMARK, CONNSECMARK
.источник
Как noob iptables, я бы сказал: таблица mangle позволяет изменять некоторые специальные записи в заголовке пакетов. (например: Тип сервиса, Время жизни) (также позволяет устанавливать специальные метки и метки контекста безопасности)
источник
Существует хорошее глубокое погружение , но не слишком трудно понять , учебник по IPTables здесь .
Мне очень помогли, так как это также ясно объясняет, как все части соединяются и взаимодействуют друг с другом.
источник