Редакторы NAT
Работа NAT базируется на анализе заголовков пакетов. Преобразователь адресов извлекает из заголовка пакета информацию о IP-адресах и номерах портов отправителя и получателя пакетов и в соответствии с полученными данными принимает решение о трансляции пакета. Для нормального функционирования механизма NAT необходимо, чтобы требуемая информация содержалась в заголовке пакета.
Существует целый ряд приложений и протоколов, которые размешают информацию об IP-адресе и номере TCP/UDP-порта непосредственно в теле пакета. В качестве примера можно привести протокол FTP, который для команды FTP PORT передает десятичное представление IP-адреса в теле команды. Если NAT неправильно транслирует IP-адрес внутри команды FTP, то могут возникнуть проблемы установки соединения.
Кроме того, существуют протоколы, вообще не использующие для передачи данных протоколы TCP или UDP (большинство протоколов использует для доставки пакетов транспортные протоколы TCP или UDP). Например, транспортный протокол РРТР не использует для доставки данных протоколы TCP или UDP. Вместо заголовков TCP или UDP используется специальный заголовок обшей инкапсуляции маршрутизации (Generic Routing Encapsulation, GRE) и специальное поле Tunnel ID для идентификации потока данных. Если бы NAT не транслировал это поле, то передача данных при помощи протокола РРТР через NAT была бы невозможна.
В подобных ситуациях администратор имеет возможность выполнить конфигурирование механизма NAT при помощи специального редактора. Редактор NAT представляет собой устанавливаемый компонент, позволяющий корректно изменять нетранслируемую иным способом информацию – так, чтобы она могла быть передана через механизм NAT. Редактор NAT позволяет сконфигурировать механизм NAT для трансляции и коррекции не только заголовков IP, TCP и UDP, но и служебной информации в теле пакетов.