Трансляция адресов - ещё один важный защитный механизм, реализуемый МЭ. Трансляция адресов - это замена в заголовке IP-пакета адреса отправителя или получателя при прохождении пакета через МЭ. При этом часто требуется заменять информацию не только сетевого, но и транспортного уровня (номера портов). Кроме того, для корректной работы некоторых служб прикладного уровня требуется заменять и содержимое поля данных.
Существует несколько разновидностей трансляции3, две из которых наиболее распространены:
o Статическая (двунаправленная);
o Динамическая (трансляция адресов-портов).
При использовании статической трансляции устанавливается взаимно однозначное соответствие между внутренним адресом ресурса и его внешним адресом. Это соответствие не меняется всё время работы устройства, выполняющего трансляцию. Обычно такой способ используется для обеспечения доступа снаружи к внутренним узлам, имеющим произвольные (незарегистрированные) адреса.
Динамическая трансляция (трансляция адресов-портов) предусматривает только исходящие соединения, инициируемые из внутренней сети. При этом достаточно иметь только один зарегистрированный адрес (обычно это внешний адрес устройства, осуществляющего трансляцию), чтобы обеспечить доступ в Internet всей внутренней сети.
Использование одного и того же адреса вносит неоднозначность. Возникает вопрос, какому внутреннему узлу передать пришедший от внешнего узла ответ? Установление взаимно однозначного соответствия возможно путём использования информации транспортного уровня, например, номера порта.
Трансляция адресов позволяет скрыть структуру внутренней сети и решить проблему нехватки адресов. Вместе с тем, трансляция адресов нарушает прозрачность взаимодействия сетевых узлов и может мешать работе приложений, использующих несколько независимых соединений (часть из которых - встречные) или обменивающихся данными, внутри которых фигурируют IР-адреса.