NAT
Материал из Википедии — свободной энциклопедии
NAT (от англ. Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation.
Содержание |
[править] Функционирование
Преобразование адресов методом NAT может производиться почти любым маршрутизирующим устройством — маршрутизатором, сервером доступа, межсетевым экраном. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника (англ. source) при прохождении пакета в одну сторону и обратной замене адреса назначения (англ. destination) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера портов источника и назначения.
Помимо source NAT (предоставления пользователям локальной сети с внутренними адресами доступа к сети Интернет) часто применяется также destination NAT, когда обращения извне транслируются межсетевым экраном на сервер в локальной сети, имеющий внутренний адрес и потому недоступный извне сети непосредственно (без NAT).
Существует 3 базовых концепции трансляции адресов: статическая (Static Network Address Translation), динамическая (Dynamic Address Translation), маскарадная (NAPT, PAT).
Механизм NAT определён в RFC 1631, RFC 3022.
[править] Преимущества
NAT выполняет три важных функции.
- Позволяет сэкономить IP-адреса, транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних). По такому принципу построено большинство сетей в мире: на небольшой район домашней сети местного провайдера или на офис выделяется 1 «белый» (то есть внешний) IP-адрес, за которым работают и получают доступ во вне все «серые» IP-адреса, то есть внутренние.
- Позволяет предотвратить или ограничить обращение снаружи ко внутренним хостам, оставляя возможность обращения изнутри наружу. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих снаружи, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
- Позволяет скрыть определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый порт, но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-ый порт TCP — HTTP-сервер), на внешний 54055-ый. Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу http://mysite.org:54055, но на внутреннем сервере, находящимся за NAT, он будет работать на обычном 80-ом порту. Повышение безопасности и скрытие «непубличных» ресурсов.
[править] Недостатки
- Не все протоколы могут «преодолеть» NAT. Некоторые не в состоянии работать, если на пути между взаимодействующими хостами есть трансляция адресов. Некоторые межсетевые экраны, осуществляющие трансляцию IP-адресов, могут исправить этот недостаток, соответствующим образом заменяя IP-адреса не только в заголовках IP, но и на более высоких уровнях (например, в командах протокола FTP). См. Application-level gateway.
- Из-за трансляции адресов «много в один» появляются дополнительные сложности с идентификацией пользователей и необходимость хранить полные логи трансляций.
- DoS со стороны узла, осуществляющего NAT — если NAT используется для подключения многих пользователей к одному и тому же сервису, это может вызвать иллюзию DoS атаки на сервис (множество успешных и неуспешных попыток). Например, избыточное количество пользователей ICQ за NAT’ом приводит к проблеме с подключением к серверу некоторых пользователей из-за превышения допустимой скорости коннектов. Частичным решением проблемы является использование пула адресов (группы адресов), для которых осуществляется трансляция.
- В некоторых случаях, необходимость в дополнительной настройке (см. Трансляция порт-адрес) при работе с пиринговыми сетями и некоторыми другими программами (Battle.net игры), в которых необходимо не только инициировать исходящие соединения, но также принимать входящие.
[править] Пример
Трансляция локальной сети с диапазоном адресов 172.17.14.0/24 в глобальную сеть будет осуществляться через один внешний IP-адрес (адрес маршрутизатора, выполняющего трансляцию).
[править] Применение
- Для обеспечения доступа множества узлов во внешнюю IP сеть через единственный IP-адрес

На рабочих станциях указанный шлюз по умолчанию или gateway
Преобразует служебные заголовки, формирует идентичный IP-пакет
- Публикация локальных ресурсов во внешней IP-сети
• Экономическая выгода вследствие приобретения единственного IP-подключения, а не IP-сети.
• Сокрытие от внешнего наблюдателя структуры внутренней IP-сети.
• Организация системы с распределенной нагрузкой
• При общем доступе через NAT прозрачно открывается доступ к внутренней структуре с защитой без использования FireWall и т. п.
• Через NAT корректно работают многие сетевые протоколы. Конструктивные реализации (общий доступ — это и есть подключение NAT) есть аппаратная реализация NAT (интегрированы FireWall’ы).
[править] NAT Traversal
NAT Traversal (прохождение или автонастройка NAT) — это набор возможностей, позволяющих сетевым приложениям определять, что они находятся за устройством, обеспечивающим NAT, узнавать внешний IP-адрес этого устройства и выполнять сопоставление портов для пересылки пакетов из внешнего порта NAT на внутренний порт, используемый приложением; все это выполняется автоматически, пользователю нет необходимости вручную настраивать сопоставления портов или вносить изменения в какие-либо другие параметры. Однако, существуют меры предосторожности в доверии к таким приложениям — они получают обширный контроль над устройством, появляются потенциальные уязвимости.
[править] Операционные системы с поддержкой NAT
При недостаточном финансировании либо при наличии уже существующего сервера под управлением серверной ОС возможно организовать трансляцию адресов без необходимости закупки дополнительных устройств. В таком случае, оптимальным будет наличие по крайней мере 2 сетевых адаптеров в сервере (возможны варианты с 1, но при наличии trunk-VLAN).
Все существующие и использующиеся серверные ОС поддерживают простейшую трансляцию IP-адресов.
С точки зрения же отказоустойчивости, гибкости и производительности используются операционные системы UNIX (большинство GNU/Linux, *BSD-системы, а так же OpenSolaris и др.). Во многих из них NAT доступен «из коробки», в других возможна реализация за счёт добавления модулей в сочетании с брандмауэрами с функциями трансляции адресов (IPFW, IPtables и др.).
[править] См. также
[править] Ссылки
- История NAT, отличие NAT от других прокси
- Как скрыть NAT от провайдера
- Настройка NAT в Windows XP Professional/Windows 2000 Professional на сервере
- Типы Network Address Translation (NAT)
- Online IP Subnet Calculator
| Это незавершённая статья о компьютерных сетях. Вы можете помочь проекту, исправив и дополнив её. |