четверг, 21 июня 2012 г.

Проблемы IP-фрагментации


Оригинал http://www.cyberguru.ru/networks/protocols/ip-fragmentation-page2.html

Существуют несколько проблем, когда IP-фрагментация нежелательна. Чтобы фрагментировать IP датаграмму требуются больше ресурсов CPU и памяти. Это справедливо как для отправителя так и для маршрутизатора между отправителем и получателем. Создание фрагментов просто влечет за собой создание заголовков для IP-фрагментов и копирование оригинальной датаграммы во фрагменты. Это может быть сделано достаточно эффективно, потому что вся информация для создания фрагментов уже доступна. 

Фрагментация накладывает больше расходов для получателя, когда он повторно собирает фрагменты, потому что получатель должен выделять память для прибывающих фрагментов и соединять их обратно в одну датаграмму после того, как получены все фрагменты. Реассемблирование на хосте это не проблема, потому что хост имеет время и ресурсы памяти, чтобы посвятить их этой задаче. 



Но, реассемблирование очень неэффективно на маршрутизаторе, основная работа которого - пересылать пакеты как можно быстрее. Маршрутизатор не спроектирован, чтобы удерживать пакеты в течение любого отрезка времени. Также маршрутизатор, делающий реассемблирование выбирает наибольший доступный буфер (18 КБ), для этой работы, потому что это у него нет никакого способа узнать размер оригинального IP пакета, пока не получен последний фрагмент. 

Другая проблема фрагментации это обработка отброшенных фрагментов. Если один фрагмент IP датаграммы отброшен, то вся оригинальная датаграмма должна быть послана повторно, и она будет также фрагментирована. В качестве примера, можно посмотреть на NFS. NFS, по умолчанию, читает и пишет блоки данных по 8192 байт, таким образом NFS IP/UDP датаграмма будет приблизительно 8500 байтов (включая NFS, UDP, и IP заголовки). Станция отправитель, связанная с Сетью Ethernet (MTU 1500) должна будет фрагментировать 8500-байтовую датаграмму на шесть частей; пять 1500-байтовых фрагментов и один 1100-байтовый фрагмент. Если любой из этих шести фрагментов будет отброшен из-за перегрузки канала связи, полная оригинальная датаграмма должна быть повторно передана, а это означает, что еще должны быть созданы шесть фрагментов. Если снова один из шести пакетов потеряется в канале, то вероятнось того, что любые данные NFS могут быть переданы по этому каналу связи стремится к нулю, так как по крайней мере будет отброшен один IP-фрагмент от каждой 8500-байтовая NFS датаграммы. 

У межсетевых экранов, которые фильтруют или управляют пакетами, основываясь на информации уровня 4 (L4) до уровеня 7 (L7), могут возникать трудности с корректной обработкой IP-фрагментов. Если IP-фрагменты - не упорядочены, межсетевая защита может блокировать не начальные фрагменты, потому что они не несут информацию, которая соответствовала бы фильтру пакета. Это означает, что оригинальная IP датаграмма не может быть повторно собрана хостом при получении. Если межсетевой экран конфигурирован так, чтобы разрешать прохождение неначальных фрагментов с недостаточной информацией, которая не соответствует правилам фильтрации должным образом, то межсетевой экран может пропустить атаку, основанную на неначальных фрагментах. Кроме того, некоторые сетевые устройства (типа Контентных Движков) направляют пакеты, основываясь на информации уровней L4 - L7, и если пакет состоит из нескольких фрагментов, то у устройства могут возникнуть трудности с применением своих политик к таким пакетам.

Комментариев нет:

Отправить комментарий