NAT

Трансляция сетевых адресов (NAT) это технология которая позволяет отображать IP адреса (номера портов) из одной группы в другую, прозрачно для конеченого пользователя. NAT может использоваться для достижения двух основных целей:

  1. Использование единственного IP-адреса для доступа в Интернет с нескольких компьютеров;
  2. Сокрытие внутренней структуры корпоративной сети.

Принципы организации сети Интернет требуют, чтобы каждый узел сети имел уникальный IP-адрес. Однако из-за все возрастающего дефецита свободных IP-адресов получение индивидуального IP-адреса для каждого компьютера в организации может быть не всегда оправдано.

Также, для сетей на базе протокола IP, не требующих непосредственного подключения к Интернет выделено три диапазона IP-адресов (IP-сетей):

  • 10.0.0.0 - 10.255.255.255;
  • 172.16.0.0 - 172.31.255.255;
  • 192.168.0.0 - 192.168.255.255;
  • Данные адреса также иногда называют частными или "серыми" IP-адресами. Таким образом любая организация может назначать узлам внутри своей локальной сети IP-адреса из указанных диапазонов. Однако, непосредственный доступ в Интернет из таких сетей невозможен. Данное ограничение можно обойти за счет технологии NAT.

    Достаточно иметь единственный узел с доступом в Интернет и имеющим уникальный ("белый") IP-адрес, выданный провайдером. Такой узел будет назваетсяваться шлюзом. Шлюз должен иметь, как минимум два сетевых, адаптера (сетевых карты, модемов и т.д.), один из которых обеспечивает доступ в Интернет. Этому внешнему адаптеру присвоен "белый" IP-адрес. Остальным, внутренним адаптерам могут быть присвоены как "белые", так и "серые" IP-адреса. При прохождении сетевых пакетов через шлюз, с внутреннего адаптера на внешний происходит трансляция сетевых адресов (NAT).

    В общем виде, существует довольно много схем трансляции сетевых адресов. Большинство из них описаны в RFC-1631, RFC-2663, RFC-2766, RFC-3022. В Lan2net NAT Firewall используется схема NAPT в терминах RFC-2663. Данная схема является разновидностью Traditional NAT, детального описанного в RFC-3022. В Linux подобная схема NAT называется "Masquarading".

    В Lan2net NAT Firewall NAT выполняется для протоколов TCP, UDP и ICMP.

    Трансляция сетевых адресов выполняется в процессе контроля транзитных соединений. Когда пакет IP-соединения с "серым" адресом источника передается драйвером TCP/IP к драйверу внешнего сетевого адаптера, драйвер Lan2net NAT Firewall перехватывает пакет и модифицирует в нем IP-адрес источника и номер порта источника для протоколов UDP и TCP. Для пакетов протокола ICMP модифицируется идентификатор запроса. После модификации пакета он передается драйверу внешнего сетевого адаптера и далее отсылается целевому узлу в Интернет. Для принятых ответных пакетов данного соединения происходит обратная модификация указанных параметров.

    В процессе модификации, "серый" IP-адрес источника заменяется на "белый" IP-адрес, назначенный внешнему сетевому адаптеру. При дальнейшей передаче пакет выглядит, как будь-то, он отправлен с "белого" IP-адреса. Тем самым обеспечивается уникальность IP-адреса источника соединения в рамках всей сети Интернет.

    Модификация номеров TCP- и UDP- портов источника и идентификатора ICMP-запроса осуществляется таким образом, чтобы значения данных параметров оставались уникальными в рамках всех транзитных и исходящих IP-соединений для данного сетевого адаптера. В Lan2net NAT Firewall уникальные номера портов источника и идентификаторов запроса назначаются из диапазона 30000-43000.

    Получив ответные пакеты, драйвер внешнего сетевого адаптера передает их драйверу TCP/IP. В этот момент пакеты перехватываются драйвером Lan2net NAT Firewall. Драйвер Lan2net NAT Firewall опеределяет принадлежность пакетов исходному IP-соединению. Так как при модификации номеров TCP- или UDP-портов или идентификатора ICMP-запроса в исходящих пакетах им были присвоены уникальные значения, то теперь на основе этих значений драйвер может восстановить оригинальный ("серый") IP-адрес источника запроса. Таким образом, в ответных пакетах значение IP-адрес назначения заменяется на IP-адрес источника запроса, а номера TCP- или UDP-портов или идентификатора ICMP-запроса также восстанавливают свои оригинальные значения. После этого ответные пакеты передаются драйверу TCP/IP и далее через внутренний адаптер к узлу, сделавшему запрос.

    Как видно, описаный механизм обеспечивает прозрачный доступ в Интернет с узлов с "серыми" IP-адресами. Кроме того, все соединения после шлюза выглядят как, если бы они были установлены с единственного "белого" IP-адреса. Тем самым обеспечивается сокрытие внутренней структуры корпоративной или домашней сети.