«

»

Апр 30

Трансляция сетевых адресов (NAT)

NAT (англ. Network Address Translation—«преобразование сетевых адресов») это механизм в сетях TCP/IP, преобразующий IP-адреса транзитных пакетов.
Данный механизм может быть реализован пости любым маршрутизирующим устройством—роутером, межсетевым экраном, сервером доступа. Наиболее распространенным является т.н. source NAT: в приходящем от локального компьютера пакете «на лету» заменяется адрес источника при прохождении пакета во внешнюю сеть, и затем, когда получатель отсылает ответный пакет, маршрутизатор заменяет адрес назначения на тот, который был в первом пакете изначально. Помимо адресов могут меняться и порты назначения.
Алгоритм преобразования зависит от адреса назначения пакета: если это адрес локального компьютера, то пакет просто пересылается ему. Если адрес—внешний, маршрутизатор меняет в пакете адрес источника, т.к. исходный адрес не будет доступен из интернет. Всю эту информацию маршрутизатор запоминает во временной таблице, и когда локальный клиент закончит обмен пакетами с сервером, данная информация будет стерта.
Помимо source NAT существует тип destination NAT. При этом типе обращения к локальному клиенту извне транслируются в его локальные адреса и порты. Данные алгоритмы задаются статически при настройке маршрутизатора.
Существует 3 концепции NAT: статическая, динамическая и маскарадная.
Статический NAT— Отображение незарегистрированного IP-адреса на зарегистрированный, на основании «один к одному». Применяется, когда локальное сетевое устройство (компьютер, видеорегистратор и т.д.) должно быть доступно извне.
Динамический NAT— Отображение незарегистрированного IP-адреса на зарегистрированный из группы зарегистрированных. При нцип—почти такой-же как и статического, но отличие в том, что отображение может динамически меняться в зависимости от доступности зарегистрированного из группы зарегистрированных.
Перегруженный NAT (NAPT, NAT Overload, PAT, маскарадинг)—разновидность динамического NAT, когда отображаются несколько незарегистрированных адресов в единственный зарегистрированный с использованием различных портов. Маршрутизатор транслирует несколько локальных адресов своим адресом, используя для каждого локального различные порты, и сохраняет эти данные в таблице маршрутизации. При ответе сервера он смотрит на порт получателя, и, в соответствии с сохраненными ранее данными отправляет конкретному локальному адресу.

Недостатки NAT

1) Не все протоколы могут работать с NAT. Например FTP без пассивного режима. Некоторые межсетевые экраны могут исправить это, исправляя IP-адреса на более высоких уровнях.
2) Идентификация пользователей затруднена, т.к. транслируется «много адресов в один»
3) Подключение многих клиентов за устройством, осуществляющим NAT создает иллюзию т.н. Dos-атаки, что может привести к отказу сервера в обслуживании. Например при использовании ICQ. Сервер видит, что с одного адреса получателя (адрес, который подставляет в качестве адреса получателя маршрутизатор) проходит неоправданно много запросов, и просто отказывает ему в обслуживании.
4) Иногда при работе с пиринговыми сетями требуется дополнительная настройка сети, т.к. в этом случае необходимо инициировать не только исходящие, но и входящие соединения.

Добавить комментарий