Каковы преимущества удаления фрагментации из IPv6? - PullRequest
7 голосов
/ 06 июня 2011

Я работал над проектом, который включает разработку приложения с использованием сокетов Java. Однако, читая некоторые основы и новую парадигму IPv6, которая побудила меня задать следующий вопрос,

Каковы преимущества удаления фрагментации из IPv6?

Было бы полезно, если бы кто-то дал мне понять, почему?

Я исследовал Интернет, но не нашел никакого полезного описания.

Ответы [ 3 ]

13 голосов
/ 06 июня 2011

Распространено неправильное понимание того, что существует нет фрагментации 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:
  1. См. Раздел 4.5 спецификации протокола Интернета , версия 6 (IPv6)

  2. С RFC 5722: Обработка перекрывающихся фрагментов IPv6 :

    Обычно используемые брандмауэры используют алгоритм, указанный в [RFC1858], чтобы отсеивать вредоносные пакеты, которые пытаются перезаписать части транспорта-слойный заголовок для обхода проверок входящих соединений.[RFC1858] предотвращает атаку перекрывающихся фрагментов по протоколу верхнего уровня (в данном случае TCP), рекомендуя отбрасывать пакеты со смещением фрагмента 1.
    Хотя это хорошо работает для фрагментов IPv4, оно не будет работать дляФрагменты IPv6.Это связано с тем, что фрагментируемая часть пакета IPv6 может содержать заголовки расширений перед заголовком TCP, что делает эту проверку менее эффективной.

  3. См. Атака слезы (википедия)

  4. См. RFC 4890: Рекомендации по фильтрации сообщений ICMPv6 в брандмауэрах

4 голосов
/ 06 июня 2011

У меня нет «официального» ответа для вас, но, основываясь только на чтении того, как IPv6 обрабатывает слишком большие дейтаграммы, я думаю, что можно было бы уменьшить нагрузку на маршрутизаторы. Фрагментация и повторная сборка влечет за собой накладные расходы на маршрутизаторе. IPv6 переносит эту нагрузку на конечные узлы и требует, чтобы они выполнили обнаружение MTU, чтобы определить максимальный размер дейтаграммы, который они могут отправить. Само собой разумеется, что конечные узлы лучше подходят для этой задачи, потому что у них меньше данных для обработки. По сути, маршрутизаторы имеют достаточно на своих пластинах; имеет смысл заставить узлы справиться с этим и позволить маршрутизаторам просто отбросить что-то, что превышает их порог MTU.

В идеале конечный результат заключается в том, что маршрутизаторы могут обрабатывать большую нагрузку в IPv6 (при прочих равных условиях), чем в IPv4, потому что нет фрагментации / повторной сборки, о которой им следует беспокоиться. Эта мощность процессора может быть выделена для маршрутизации трафика.

0 голосов
/ 06 июня 2011

IPv4 имеет гарантированный минимальный MTU в 576 байтов, IPv6 составляет 1500 1280 байтов, и рекомендуется 1500 байтов, разница в основном в производительности. Поскольку большинство сегментов ЛВС для конечных пользователей имеют размер 1500 байт, это снижает накладные расходы сетевой инфраструктуры для хранения состояния из-за дополнительной фрагментации по сравнению с тем, что фактически являются устаревшими сетями, требующими меньших размеров.

Для UDP в стандартах IPv4 нет определения реконструкции фрагментированных пакетов, что означает, что каждая платформа может обрабатывать его по-своему. IPv6 утверждает, что фрагментация и сборка всегда будут происходить в стеке IP, а фрагменты не будут представлены приложениям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...