Распространено неправильное понимание того, что существует нет фрагментации IPv6, поскольку заголовок IPv6 не имеет поля смещения фрагмента, как у IPv4;однако, это не совсем точно.IPv6 не позволяет маршрутизаторам фрагментировать пакеты;однако конечные узлы могут вставлять заголовок фрагментации IPv6 1 .
Поскольку RFC 5722 заявляет 2 , одна из проблем с фрагментацией заключается в том, чточто это имеет тенденцию создавать дыры в безопасности.В конце 1990-х годов было несколько известных атак на Windows 95, которые использовали перекрывающиеся фрагменты IPv4 3 ;Более того, внутренняя фрагментация пакетов сопряжена с риском записи в кремний интернет-маршрутизатора из-за длинного списка проблем, которые необходимо решить.Одна из самых больших проблем заключается в том, что перекрывающиеся фрагменты, помещенные в буфер в маршрутизаторе (ожидающие повторной сборки), могут потенциально привести к уязвимости безопасности на этом устройстве, если они будут неправильно обработаны.Конечным результатом является то, что большинство реализаций маршрутизатора проталкивают пакеты, требующие фрагментации программного обеспечения;это не масштабируется на больших скоростях.
Другая проблема заключается в том, что если вы собираете фрагменты, вы должны буферизовать их в течение некоторого периода времени, пока остальные не будут получены.Кто-то может использовать эту динамику и отправлять очень большое количество незаконченных фрагментов IP;вынуждая рассматриваемое устройство тратить много ресурсов в ожидании возможности повторной сборки.Интеллектуальные реализации ограничивают количество ожидающих фрагментов, чтобы предотвратить отказ в обслуживании;однако ограничение количества неисполненных фрагментов может на законных основаниях повлиять на число допустимых фрагментов, которые могут быть повторно собраны.
Короче говоря, существует слишком много проблем, чтобы маршрутизатор мог обрабатывать фрагментацию.Если пакеты IPv6 требуют фрагментации, реализация хостов должна быть достаточно умной, чтобы использовать Обнаружение MTU TCP Path .Это также подразумевает, что несколько сообщений ICMPv6 должны быть разрешены сквозным образом;Интересно, что многие администраторы брандмауэра IPv4 блокируют ICMP для защиты от враждебного сетевого сопоставления (а затем наивно блокируют все ICMPv6), не понимая, что блокировка всех ICMPv6 ломает вещи тонкими способами 4 .
END-NOTES: См. Раздел 4.5 спецификации протокола Интернета , версия 6 (IPv6)
С RFC 5722: Обработка перекрывающихся фрагментов IPv6 :
Обычно используемые брандмауэры используют алгоритм, указанный в [RFC1858], чтобы отсеивать вредоносные пакеты, которые пытаются перезаписать части транспорта-слойный заголовок для обхода проверок входящих соединений.[RFC1858] предотвращает атаку перекрывающихся фрагментов по протоколу верхнего уровня (в данном случае TCP), рекомендуя отбрасывать пакеты со смещением фрагмента 1.
Хотя это хорошо работает для фрагментов IPv4, оно не будет работать дляФрагменты IPv6.Это связано с тем, что фрагментируемая часть пакета IPv6 может содержать заголовки расширений перед заголовком TCP, что делает эту проверку менее эффективной.
См. Атака слезы (википедия)
См. RFC 4890: Рекомендации по фильтрации сообщений ICMPv6 в брандмауэрах