RFC: 2993
Оригинал: Architectural Implications of NAT
Категория: Информационный
Дата публикации:
Автор:
Перевод: Мельников Дмитрий Анатольевич

Динамический NAT-модуль и RSIP-модуль будут, в конечном счете, нарушать предположения верхних уровней Internet-архитектуры о повторном использовании адресного блока (адрес/порт), как это определено в стандартах RFC-793, RFC-1323. Функциональное состояние (режим) ТСР-протокола «TCP_TIME_WAIT» специально разработано для защиты от повторной передачи IP-пакетов между сетевым интерфейсом с 4-байтовым IP-адресом и транспортныи интерфесом с номером ТСР-порта для конкретной пары IP-адресов (отправитель/получатель). Так как оконечный ТСР-процесс, алгоритм которого представляет собой конечный автомат (функционирующий в IP-узле), ничего не знает о каком-либо предшествующем использовании RSIP-модуля, его попытка соединиться с той же самой удаленной службой, которая ближе всего к нему и только что освободилась (которая по-прежнему находится в состоянии «TCP_TIME_WAIT»), может потерпеть неудачу, или оконечный ТСР-процесс попытается открыть прежнее соединение, но с большим последовательным номером, прямо из состояния «TCP_TIME_WAIT» в ущерб защиты, обеспечиваемой состоянием «TCP_TIME_WAIT».

Если используются NAT-модули (без функции трансляции номеров портов транспортного уровня), которые удовлетворяют требованиям состояния «TCP_TIME_WAIT», то тогда они должны воздерживаться от назначения одного и того же IP-адреса различным IP-узлам пока не пройдет интервал времени, равный «2×MSL», с момента последнего использования IP-адреса (Maximum Segment Lifetime — максимальный интервал «времени жизни», стандарт RFC-793 определяет его равным две минуты). Если используются NAT-модули (с функцией трансляции номеров портов транспортного уровня), которые удовлетворяют требованиям состояния «TCP_TIME_WAIT», то тогда они должны просто воздерживаться от назначения одного и того же адресного блока (адрес/порт) пока не пройдет интервал времени, равный «2×MSL», с момента последнего использования этого адресного блока. Несмотря на то, что эти требования являются простыми для обслуживания соединения, они могут оказать серьезное функциональное давление на NAT-модуль, так как они временно сокращают диапазон доступных IP-адресов и номеров портов транспортного уровня. Соответственно, возникнет дилемма, либо разработчики NAT-модулей будут игнорировать требования состояния «TCP_TIME_WAIT», либо будут сокращены сами требования состояния «TCP_TIME_WAIT» в ущерб высокой надежности ТСР-протокола.

Замечание. В случае, когда высокая надежность, фактически, скомпрометирована за счет появления старого IP-пакета, отказ в работе может обнаружиться сам по себе, так как приемный модуль получит искаженые данные.

Иногда появляется аргументация того, что NAT-модули выполняют простую функцию, которая упрощает «маршрутные зоны», то есть когда каждый сетевой сегмент отвечает за поиск IP-адресов в пределах собственных границ. Такая точка зрения скрывет ограничения, вызванные применением NAT-модуля и более глубоким пониманием необходимости управления маршрутизацией. Корректное обособление маршрутной информации является функцией протколов маршрутизации в пределах их компетенции. NAT-модуль — это просто средство для административного распределения IP-адресов и для реализации процедуры отображения IP-адресов одной адресной зоны в IP-адреса другой адресной зоны.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.