logo search
diplom-Baikonur / diplom-Baikonur / Пояснительная записка / пояснит

1.6.7. Протокол nat

Большинство современных маршрутизаторов поддерживают протокол NAT (Network Address Translation), базирующийся на сеансовом уровне и по сути представляющий собой протокол трансляции сетевых адресов. NAT позволяет реализовать множественный доступ компьютеров локальной (частной) сети (каждый из которых имеет собственный внутренний IP-адрес) в Интернет, используя всего один внешний IP-адрес WAN-порта маршрутизатора. При этом все компьютеры во внутренней локальной сети становятся невидимыми извне, но для каждого из них внешняя сеть является доступной. Протокол NAT пропускает в сеть только те данные из Интернета, которые поступили в результате запроса от компьютера из локальной сети.

Протокол NAT решает две главные задачи:

 помогает справиться с дефицитом IP-адресов, который становится все более острым по мере роста количества компьютеров;

 обеспечивает безопасность внутренней сети — компьютеры локальной сети, защищенные маршрутизатором с активированным NAT-протоколом (устройством NAT), становятся недоступными из внешней сети.

Хотя протокол NAT не заменяет брандмауэр, он все же является важным элементом безопасности.

Принцип работы протокола NAT достаточно прост. Когда клиент внутренней сети устанавливает связь с сервером внешней сети, открывается сокет, определяемый IP-адресом источника, портом источника, IP-адресом назначения, портом назначения и сетевым протоколом. Когда приложение передает данные через этот сокет, то IP-адрес источника и порт источника вставляются в пакет в поля параметров источника. Поля параметров пункта назначения будут содержать IP-адрес сервера и портсервера.

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

Преобразованный пакет пересылается по внешней сети и в итоге попадает на заданный сервер. Получив пакет, сервер будет направлять ответные пакеты на внешний IP-адрес и порт устройства NAT (маршрутизатора), указывая в полях источника свои собственные IP-адрес и порт.

Устройство NAT принимает эти пакеты от сервера и анализирует их содержимое на основе своей таблицы сопоставления портов. Если в таблице будет найдено сопоставление порта, для которого IP-адрес источника, порт источника, порт назначения и сетевой протокол из входящего пакета совпадают с IP-адресом удаленного узла, удаленным портом и сетевым протоколом, указанным в сопоставлении портов, то NAT выполнит обратное преобразование: заменит внешний IP-адрес и внешний порт в полях назначения пакета на IP-адрес и внутренний порт клиента внутренней сети. Однако если в таблице сопоставления портов не находится соответствия, то входящий пакет отвергается и соединение разрывается.

В некоторых маршрутизаторах возможно отключение NAT-протокола. Однако имеются модели, где NAT-протокол активирован и отключить его невозможно. При этом важно, чтобы маршрутизатор мог частично обойти ограничения NAT-протокола. Дело в том, что не все сетевые приложения пользуются протоколами, способными взаимодействовать с NAT. Поэтому все маршрутизаторы имеют функции, позволяющие наложить ограничения на использование протокола NAT. Сервер, устанавливаемый во внутренней сети и являющийся прозрачным для протокола NAT, называют виртуальным сервером (Virtual Server). Прозрачным для протокола NAT может быть не весь сервер, а лишь определенные приложения, запускаемые на нем. Для того чтобы реализовать виртуальный сервер во внутренней сети, на маршрутизаторе используется технология перенаправления портов.