Вики-текст старой страницы до правки (old_wikitext ) | '{{другие значения|NAT (значения)}}
{{Нет ссылок|дата=12 мая 2011}}
'''NAT''' (от {{lang-en|Network Address Translation}} — «преобразование сетевых адресов») — это механизм в [[компьютерная сеть|сетях]] [[стек протоколов TCP/IP|TCP/IP]], позволяющий преобразовывать [[IP-адрес]]а транзитных [[Пакет (сетевые технологии)|пакетов]]. Также имеет названия ''IP Masquerading'', ''Network Masquerading'' и ''Native Address Translation''.
== Функционирование ==
Преобразование адреса методом NAT может производиться почти любым [[маршрутизация|маршрутизирующим]] устройством — [[маршрутизатор]]ом<ref>{{книга
|издание=2
|заглавие=Network Protocols Handbook
|ссылка=https://books.google.com/books?id=D_GrQa2ZcLwC
|издательство=Javvin Technologies Inc.
|страницы=27
|isbn=9780974094526
|язык=und
}}</ref>, [[сервер (приложение)|сервером]] доступа, [[Межсетевой экран|межсетевым экраном]]. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника ({{lang-en|source}}) при прохождении пакета в одну сторону и обратной замене адреса назначения ({{lang-en|destination}}) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера [[Порт (TCP/UDP)|портов]] источника и назначения.
Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрёт у себя в таблице запись об n-м порте за сроком давности.
Помимо source NAT (предоставления пользователям [[Локальная вычислительная сеть|локальной сети]] с [[«Серый» IP-адрес|внутренними адресами]] доступа к сети [[Интернет]]) часто применяется также destination NAT, когда обращения извне транслируются [[межсетевой экран|межсетевым экраном]] на компьютер пользователя в локальной сети, имеющий [[«Серый» IP-адрес|внутренний адрес]] и потому недоступный извне сети непосредственно (без NAT).
Существует 3 базовых концепции трансляции адресов: статическая ([[Static Network Address Translation]]), динамическая ([[Dynamic Address Translation (NAT)|Dynamic Address Translation]]), [[маскарадинг|маскарадная]] (NAPT, NAT Overload, PAT).
'''Статический NAT''' — отображение незарегистрированного IP-адреса на зарегистрированный IP-адрес на основании один к одному. Особенно полезно, когда устройство должно быть доступным снаружи сети.
'''Динамический NAT''' — отображает незарегистрированный IP-адрес на зарегистрированный адрес из группы зарегистрированных IP-адресов. Динамический NAT также устанавливает непосредственное отображение между незарегистрированными и зарегистрированными адресами, но отображение может меняться в зависимости от зарегистрированного адреса, доступного в пуле адресов, во время коммуникации.
'''Перегруженный NAT''' (NAPT, NAT Overload, PAT, маскарадинг) — форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP-адрес, используя различные порты. Известен также как [[Трансляция порт-адрес|PAT]] (Port Address Translation). При перегрузке каждый компьютер в частной сети транслируется в тот же самый адрес, но с различным номером порта.
Механизм NAT определён в RFC 1631, RFC 3022.
=== Типы NAT ===
Классификация NAT, часто встречающаяся в связи с [[VoIP]].<ref>Андрей Жуков. [http://aoz.com.ua/2009/01/26/nat-types/ Типы Network Address Translation (NAT)] {{Wayback|url=http://aoz.com.ua/2009/01/26/nat-types/ |date=20200508122222 }}</ref> Термин «соединение» использован в значении «последовательный обмен пакетами UDP».
'''Симметричный NAT''' (Symmetric NAT) — трансляция, при которой каждое соединение, инициируемое парой «внутренний адрес: внутренний порт» преобразуется в свободную уникальную случайно выбранную пару «публичный адрес: публичный порт». При этом инициация соединения из публичной сети невозможна.
'''Cone NAT, Full Cone NAT''' — однозначная (взаимная) трансляция между парами «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любой внешний хост может инициировать соединение с внутренним хостом (если это разрешено в правилах межсетевого экрана).
'''Address-Restricted cone NAT, Restricted cone NAT''' — постоянная трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любое соединение, инициированное с внутреннего адреса, позволяет в дальнейшем получать ему пакеты с любого порта того публичного хоста, к которому он отправлял пакет(ы) ранее.
'''Port-Restricted cone NAT''' — трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт», при которой входящие пакеты проходят на внутренний хост только с одного порта публичного хоста — того, на который внутренний хост уже посылал пакет.
== Преимущества ==
NAT выполняет три важных функции.
# '''Позволяет сэкономить [[IP-адрес]]а''' (только в случае использования NAT в режиме PAT), транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних). По такому принципу построено большинство сетей в мире: на небольшой район домашней сети местного провайдера или на офис выделяется 1 публичный (внешний) IP-адрес, за которым работают и получают доступ интерфейсы с приватными (внутренними) IP-адресами.
#'''Позволяет предотвратить или ограничить''' обращение снаружи ко внутренним хостам, оставляя возможность обращения изнутри наружу. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих снаружи, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
#'''Позволяет скрыть''' определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый [[Порт (TCP/IP)|порт]], но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-й порт [[TCP]] ([[HTTP]]-сервер) на внешний 54055-й). Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу <nowiki>http://example.org:54055</nowiki>, но на внутреннем сервере, находящемся за NAT, он будет работать на обычном 80-м порту. Повышение безопасности и сокрытие «непубличных» ресурсов.
== Недостатки ==
# '''Старые протоколы'''. Протоколы, разработанные до массового внедрения NAT, не в состоянии работать, если на пути между взаимодействующими [[хост]]ами есть трансляция адресов. Некоторые межсетевые экраны, осуществляющие трансляцию IP-адресов, могут исправить этот недостаток, соответствующим образом заменяя IP-адреса не только в заголовках IP, но и на более высоких уровнях (например, в командах протокола [[FTP]]). См. [[Application-level gateway]].
# '''Идентификация пользователей'''. Из-за трансляции адресов «много в один» появляются дополнительные сложности с идентификацией пользователей и необходимость хранить полные логи трансляций.
# '''Иллюзия DoS-атаки'''. Если NAT используется для подключения многих пользователей к одному и тому же сервису, это может вызвать иллюзию [[DoS-атака|DoS]]-атаки на сервис (множество успешных и неуспешных попыток). Например, избыточное количество пользователей [[ICQ]] за NAT приводит к проблеме с подключением к серверу некоторых пользователей из-за превышения допустимой скорости подключений. Частичным решением проблемы является использование ''пула адресов'' (группы адресов), для которых осуществляется трансляция.
# '''Пиринговые сети'''. В NAT-устройствах, не поддерживающих технологию [[UPnP|Universal Plug & Play]], в некоторых случаях, необходима дополнительная настройка (см. [[Трансляция порт-адрес]]) при работе с [[одноранговая сеть|пиринговыми сетями]] и некоторыми другими программами, в которых необходимо не только инициировать исходящие соединения, но также принимать входящие.
== Пример ==
Трансляция [[Локальная вычислительная сеть|локальной сети]] с диапазоном адресов 172.16.14.0[[маска подсети|/24]] в глобальную сеть будет осуществляться через один внешний IP-адрес (адрес маршрутизатора, выполняющего трансляцию).
== Применение: IP-сеть через единственный IP-адрес ==
*: [[Файл:NAT.svg|250px]]
* На рабочих станциях указанный шлюз по умолчанию или gateway
*: [[Файл:Gateway NAT.JPG]]
* Преобразует служебные заголовки, формирует идентичный IP-пакет
*: [[Файл:Ip-paket.JPG]]
* Публикация локальных ресурсов во внешней IP-сети
*: [[Файл:Ip-set.JPG]]
• Экономическая выгода вследствие приобретения единственного IP-подключения, а не IP-сети.
• Сокрытие от внешнего наблюдателя структуры внутренней IP-сети.
• Организация системы с распределенной нагрузкой.
• При общем доступе через NAT прозрачно открывается доступ к внутренней структуре с защитой без использования межсетевого экрана и т. п.
• Через NAT корректно работают многие сетевые протоколы. Конструктивные реализации (общий доступ — это и есть подключение NAT) есть аппаратная реализация NAT (интегрированы межсетевые экраны).
== NAT loopback ==
Смысл технологии ''NAT loopback'' (или ''NAT hairpinning'') прост: если пакет приходит из внутренней сети на внешний IP-адрес маршрутизатора, он считается пришедшим извне — а значит, работают правила брандмауэра, относящиеся ко внешним соединениям. И если пакет успешно пройдёт сквозь брандмауэр, сработает NAT, взяв на себя посредничество между двумя внутрисетевыми машинами. Это даёт две вещи.
# Прямо изнутри локальной сети можно проверить, как настроены сетевые службы.
# Доступ к серверу, находящемуся в локальной сети, по доменному имени. Без NAT loopback пришлось бы править файл [[hosts]] на каждой машине для каждого задействованного домена и поддомена.
Недостатком NAT loopback можно считать повышенную нагрузку на хаб и маршрутизатор (по сравнению с прямым доступом к серверу).
== NAT Traversal ==
{{Main|NAT traversal}}
NAT Traversal (прохождение или автонастройка NAT) — это набор возможностей, позволяющих сетевым приложениям определять, что они находятся за устройством, обеспечивающим NAT, узнавать внешний IP-адрес этого устройства и выполнять сопоставление портов для пересылки пакетов из внешнего порта NAT на внутренний порт, используемый приложением; все это выполняется автоматически, пользователю нет необходимости вручную настраивать сопоставления портов или вносить изменения в какие-либо другие параметры. Однако существуют меры предосторожности в доверии к таким приложениям — они получают обширный контроль над устройством, появляются потенциальные уязвимости.
== Программная реализация NAT ==
При наличии уже существующего сервера под управлением серверной [[Операционная система|ОС]] возможно организовать трансляцию адресов без необходимости закупки дополнительных, аппаратных устройств. Как правило для программной реализации NAT требуется наличие по крайней мере двух сетевых адаптеров в сервере (возможны варианты с одним, но при наличии trunk-[[VLAN]]).
Все существующие и использующиеся серверные ОС поддерживают простейшую трансляцию адресов.
С точки зрения отказоустойчивости, гибкости и производительности, используются операционные системы семейства [[Unix|UNIX]] (большинство GNU/Linux, [[BSD|*BSD]]-системы, а также [[OpenSolaris]] и др.). Во многих из них NAT доступен «из коробки», в других возможна реализация за счёт добавления модулей в сочетании с [[Межсетевой экран|межсетевыми экранами]] с функциями трансляции адресов ([[Ipfw|IPFW]], [[Iptables|IPtables]] и др.). Также, NAT работает «из коробки» в семействе операционных систем [[Windows Server]].
== См. также ==
{{Викиучебник|Сетевой порт/Что такое NAT и как определить, находитесь ли вы за NAT|Что такое NAT и как определить, находитесь ли вы за NAT}}
* [[Прокси-сервер]]
* [[Трансляция порт-адрес|Port Address Translation (PAT)]]
* [[Application-level gateway]]
* [[STUN]]
== Примечания ==
{{примечания}}
[[Категория:TCP/IP]]
[[Категория:NAT]]' |
Унифицированная разница изменений правки (edit_diff ) | '@@ -1,111 +1,1 @@
-{{другие значения|NAT (значения)}}
-{{Нет ссылок|дата=12 мая 2011}}
-'''NAT''' (от {{lang-en|Network Address Translation}} — «преобразование сетевых адресов») — это механизм в [[компьютерная сеть|сетях]] [[стек протоколов TCP/IP|TCP/IP]], позволяющий преобразовывать [[IP-адрес]]а транзитных [[Пакет (сетевые технологии)|пакетов]]. Также имеет названия ''IP Masquerading'', ''Network Masquerading'' и ''Native Address Translation''.
-
-== Функционирование ==
-
-Преобразование адреса методом NAT может производиться почти любым [[маршрутизация|маршрутизирующим]] устройством — [[маршрутизатор]]ом<ref>{{книга
-|издание=2
-|заглавие=Network Protocols Handbook
-|ссылка=https://books.google.com/books?id=D_GrQa2ZcLwC
-|издательство=Javvin Technologies Inc.
-|страницы=27
-|isbn=9780974094526
-|язык=und
-}}</ref>, [[сервер (приложение)|сервером]] доступа, [[Межсетевой экран|межсетевым экраном]]. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника ({{lang-en|source}}) при прохождении пакета в одну сторону и обратной замене адреса назначения ({{lang-en|destination}}) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера [[Порт (TCP/UDP)|портов]] источника и назначения.
-
-Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрёт у себя в таблице запись об n-м порте за сроком давности.
-
-Помимо source NAT (предоставления пользователям [[Локальная вычислительная сеть|локальной сети]] с [[«Серый» IP-адрес|внутренними адресами]] доступа к сети [[Интернет]]) часто применяется также destination NAT, когда обращения извне транслируются [[межсетевой экран|межсетевым экраном]] на компьютер пользователя в локальной сети, имеющий [[«Серый» IP-адрес|внутренний адрес]] и потому недоступный извне сети непосредственно (без NAT).
-
-Существует 3 базовых концепции трансляции адресов: статическая ([[Static Network Address Translation]]), динамическая ([[Dynamic Address Translation (NAT)|Dynamic Address Translation]]), [[маскарадинг|маскарадная]] (NAPT, NAT Overload, PAT).
-
-'''Статический NAT''' — отображение незарегистрированного IP-адреса на зарегистрированный IP-адрес на основании один к одному. Особенно полезно, когда устройство должно быть доступным снаружи сети.
-
-'''Динамический NAT''' — отображает незарегистрированный IP-адрес на зарегистрированный адрес из группы зарегистрированных IP-адресов. Динамический NAT также устанавливает непосредственное отображение между незарегистрированными и зарегистрированными адресами, но отображение может меняться в зависимости от зарегистрированного адреса, доступного в пуле адресов, во время коммуникации.
-
-'''Перегруженный NAT''' (NAPT, NAT Overload, PAT, маскарадинг) — форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP-адрес, используя различные порты. Известен также как [[Трансляция порт-адрес|PAT]] (Port Address Translation). При перегрузке каждый компьютер в частной сети транслируется в тот же самый адрес, но с различным номером порта.
-
-Механизм NAT определён в RFC 1631, RFC 3022.
-
-=== Типы NAT ===
-Классификация NAT, часто встречающаяся в связи с [[VoIP]].<ref>Андрей Жуков. [http://aoz.com.ua/2009/01/26/nat-types/ Типы Network Address Translation (NAT)] {{Wayback|url=http://aoz.com.ua/2009/01/26/nat-types/ |date=20200508122222 }}</ref> Термин «соединение» использован в значении «последовательный обмен пакетами UDP».
-
-'''Симметричный NAT''' (Symmetric NAT) — трансляция, при которой каждое соединение, инициируемое парой «внутренний адрес: внутренний порт» преобразуется в свободную уникальную случайно выбранную пару «публичный адрес: публичный порт». При этом инициация соединения из публичной сети невозможна.
-
-'''Cone NAT, Full Cone NAT''' — однозначная (взаимная) трансляция между парами «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любой внешний хост может инициировать соединение с внутренним хостом (если это разрешено в правилах межсетевого экрана).
-
-'''Address-Restricted cone NAT, Restricted cone NAT''' — постоянная трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любое соединение, инициированное с внутреннего адреса, позволяет в дальнейшем получать ему пакеты с любого порта того публичного хоста, к которому он отправлял пакет(ы) ранее.
-
-'''Port-Restricted cone NAT''' — трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт», при которой входящие пакеты проходят на внутренний хост только с одного порта публичного хоста — того, на который внутренний хост уже посылал пакет.
-
-== Преимущества ==
-
-NAT выполняет три важных функции.
-
-# '''Позволяет сэкономить [[IP-адрес]]а''' (только в случае использования NAT в режиме PAT), транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних). По такому принципу построено большинство сетей в мире: на небольшой район домашней сети местного провайдера или на офис выделяется 1 публичный (внешний) IP-адрес, за которым работают и получают доступ интерфейсы с приватными (внутренними) IP-адресами.
-#'''Позволяет предотвратить или ограничить''' обращение снаружи ко внутренним хостам, оставляя возможность обращения изнутри наружу. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих снаружи, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
-#'''Позволяет скрыть''' определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый [[Порт (TCP/IP)|порт]], но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-й порт [[TCP]] ([[HTTP]]-сервер) на внешний 54055-й). Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу <nowiki>http://example.org:54055</nowiki>, но на внутреннем сервере, находящемся за NAT, он будет работать на обычном 80-м порту. Повышение безопасности и сокрытие «непубличных» ресурсов.
-
-== Недостатки ==
-# '''Старые протоколы'''. Протоколы, разработанные до массового внедрения NAT, не в состоянии работать, если на пути между взаимодействующими [[хост]]ами есть трансляция адресов. Некоторые межсетевые экраны, осуществляющие трансляцию IP-адресов, могут исправить этот недостаток, соответствующим образом заменяя IP-адреса не только в заголовках IP, но и на более высоких уровнях (например, в командах протокола [[FTP]]). См. [[Application-level gateway]].
-# '''Идентификация пользователей'''. Из-за трансляции адресов «много в один» появляются дополнительные сложности с идентификацией пользователей и необходимость хранить полные логи трансляций.
-# '''Иллюзия DoS-атаки'''. Если NAT используется для подключения многих пользователей к одному и тому же сервису, это может вызвать иллюзию [[DoS-атака|DoS]]-атаки на сервис (множество успешных и неуспешных попыток). Например, избыточное количество пользователей [[ICQ]] за NAT приводит к проблеме с подключением к серверу некоторых пользователей из-за превышения допустимой скорости подключений. Частичным решением проблемы является использование ''пула адресов'' (группы адресов), для которых осуществляется трансляция.
-# '''Пиринговые сети'''. В NAT-устройствах, не поддерживающих технологию [[UPnP|Universal Plug & Play]], в некоторых случаях, необходима дополнительная настройка (см. [[Трансляция порт-адрес]]) при работе с [[одноранговая сеть|пиринговыми сетями]] и некоторыми другими программами, в которых необходимо не только инициировать исходящие соединения, но также принимать входящие.
-
-== Пример ==
-
-Трансляция [[Локальная вычислительная сеть|локальной сети]] с диапазоном адресов 172.16.14.0[[маска подсети|/24]] в глобальную сеть будет осуществляться через один внешний IP-адрес (адрес маршрутизатора, выполняющего трансляцию).
-
-== Применение: IP-сеть через единственный IP-адрес ==
-*: [[Файл:NAT.svg|250px]]
-* На рабочих станциях указанный шлюз по умолчанию или gateway
-*: [[Файл:Gateway NAT.JPG]]
-* Преобразует служебные заголовки, формирует идентичный IP-пакет
-*: [[Файл:Ip-paket.JPG]]
-* Публикация локальных ресурсов во внешней IP-сети
-*: [[Файл:Ip-set.JPG]]
-
-• Экономическая выгода вследствие приобретения единственного IP-подключения, а не IP-сети.
-
-• Сокрытие от внешнего наблюдателя структуры внутренней IP-сети.
-
-• Организация системы с распределенной нагрузкой.
-
-• При общем доступе через NAT прозрачно открывается доступ к внутренней структуре с защитой без использования межсетевого экрана и т. п.
-
-• Через NAT корректно работают многие сетевые протоколы. Конструктивные реализации (общий доступ — это и есть подключение NAT) есть аппаратная реализация NAT (интегрированы межсетевые экраны).
-
-== NAT loopback ==
-
-Смысл технологии ''NAT loopback'' (или ''NAT hairpinning'') прост: если пакет приходит из внутренней сети на внешний IP-адрес маршрутизатора, он считается пришедшим извне — а значит, работают правила брандмауэра, относящиеся ко внешним соединениям. И если пакет успешно пройдёт сквозь брандмауэр, сработает NAT, взяв на себя посредничество между двумя внутрисетевыми машинами. Это даёт две вещи.
-# Прямо изнутри локальной сети можно проверить, как настроены сетевые службы.
-# Доступ к серверу, находящемуся в локальной сети, по доменному имени. Без NAT loopback пришлось бы править файл [[hosts]] на каждой машине для каждого задействованного домена и поддомена.
-
-Недостатком NAT loopback можно считать повышенную нагрузку на хаб и маршрутизатор (по сравнению с прямым доступом к серверу).
-
-== NAT Traversal ==
-{{Main|NAT traversal}}
-
-NAT Traversal (прохождение или автонастройка NAT) — это набор возможностей, позволяющих сетевым приложениям определять, что они находятся за устройством, обеспечивающим NAT, узнавать внешний IP-адрес этого устройства и выполнять сопоставление портов для пересылки пакетов из внешнего порта NAT на внутренний порт, используемый приложением; все это выполняется автоматически, пользователю нет необходимости вручную настраивать сопоставления портов или вносить изменения в какие-либо другие параметры. Однако существуют меры предосторожности в доверии к таким приложениям — они получают обширный контроль над устройством, появляются потенциальные уязвимости.
-
-== Программная реализация NAT ==
-
-При наличии уже существующего сервера под управлением серверной [[Операционная система|ОС]] возможно организовать трансляцию адресов без необходимости закупки дополнительных, аппаратных устройств. Как правило для программной реализации NAT требуется наличие по крайней мере двух сетевых адаптеров в сервере (возможны варианты с одним, но при наличии trunk-[[VLAN]]).
-
-Все существующие и использующиеся серверные ОС поддерживают простейшую трансляцию адресов.
-
-С точки зрения отказоустойчивости, гибкости и производительности, используются операционные системы семейства [[Unix|UNIX]] (большинство GNU/Linux, [[BSD|*BSD]]-системы, а также [[OpenSolaris]] и др.). Во многих из них NAT доступен «из коробки», в других возможна реализация за счёт добавления модулей в сочетании с [[Межсетевой экран|межсетевыми экранами]] с функциями трансляции адресов ([[Ipfw|IPFW]], [[Iptables|IPtables]] и др.). Также, NAT работает «из коробки» в семействе операционных систем [[Windows Server]].
-
-== См. также ==
-{{Викиучебник|Сетевой порт/Что такое NAT и как определить, находитесь ли вы за NAT|Что такое NAT и как определить, находитесь ли вы за NAT}}
-* [[Прокси-сервер]]
-* [[Трансляция порт-адрес|Port Address Translation (PAT)]]
-* [[Application-level gateway]]
-* [[STUN]]
-
-== Примечания ==
-{{примечания}}
-
-[[Категория:TCP/IP]]
-[[Категория:NAT]]
+Хцй
' |
Удалённые в правке строки (removed_lines ) | [
0 => '{{другие значения|NAT (значения)}}',
1 => '{{Нет ссылок|дата=12 мая 2011}}',
2 => ''''NAT''' (от {{lang-en|Network Address Translation}} — «преобразование сетевых адресов») — это механизм в [[компьютерная сеть|сетях]] [[стек протоколов TCP/IP|TCP/IP]], позволяющий преобразовывать [[IP-адрес]]а транзитных [[Пакет (сетевые технологии)|пакетов]]. Также имеет названия ''IP Masquerading'', ''Network Masquerading'' и ''Native Address Translation''.',
3 => '',
4 => '== Функционирование ==',
5 => '',
6 => 'Преобразование адреса методом NAT может производиться почти любым [[маршрутизация|маршрутизирующим]] устройством — [[маршрутизатор]]ом<ref>{{книга',
7 => '|издание=2',
8 => '|заглавие=Network Protocols Handbook',
9 => '|ссылка=https://books.google.com/books?id=D_GrQa2ZcLwC',
10 => '|издательство=Javvin Technologies Inc.',
11 => '|страницы=27',
12 => '|isbn=9780974094526',
13 => '|язык=und',
14 => '}}</ref>, [[сервер (приложение)|сервером]] доступа, [[Межсетевой экран|межсетевым экраном]]. Наиболее популярным является SNAT, суть механизма которого состоит в замене адреса источника ({{lang-en|source}}) при прохождении пакета в одну сторону и обратной замене адреса назначения ({{lang-en|destination}}) в ответном пакете. Наряду с адресами источник/назначение могут также заменяться номера [[Порт (TCP/UDP)|портов]] источника и назначения.',
15 => '',
16 => 'Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер «на лету» транслирует (подменяет) обратный IP-адрес пакета на свой внешний (видимый из интернета) IP-адрес и меняет номер порта (чтобы различать ответные пакеты, адресованные разным локальным компьютерам). Комбинацию, нужную для обратной подстановки, роутер сохраняет у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрёт у себя в таблице запись об n-м порте за сроком давности.',
17 => '',
18 => 'Помимо source NAT (предоставления пользователям [[Локальная вычислительная сеть|локальной сети]] с [[«Серый» IP-адрес|внутренними адресами]] доступа к сети [[Интернет]]) часто применяется также destination NAT, когда обращения извне транслируются [[межсетевой экран|межсетевым экраном]] на компьютер пользователя в локальной сети, имеющий [[«Серый» IP-адрес|внутренний адрес]] и потому недоступный извне сети непосредственно (без NAT).',
19 => '',
20 => 'Существует 3 базовых концепции трансляции адресов: статическая ([[Static Network Address Translation]]), динамическая ([[Dynamic Address Translation (NAT)|Dynamic Address Translation]]), [[маскарадинг|маскарадная]] (NAPT, NAT Overload, PAT).',
21 => '',
22 => ''''Статический NAT''' — отображение незарегистрированного IP-адреса на зарегистрированный IP-адрес на основании один к одному. Особенно полезно, когда устройство должно быть доступным снаружи сети.',
23 => '',
24 => ''''Динамический NAT''' — отображает незарегистрированный IP-адрес на зарегистрированный адрес из группы зарегистрированных IP-адресов. Динамический NAT также устанавливает непосредственное отображение между незарегистрированными и зарегистрированными адресами, но отображение может меняться в зависимости от зарегистрированного адреса, доступного в пуле адресов, во время коммуникации.',
25 => '',
26 => ''''Перегруженный NAT''' (NAPT, NAT Overload, PAT, маскарадинг) — форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP-адрес, используя различные порты. Известен также как [[Трансляция порт-адрес|PAT]] (Port Address Translation). При перегрузке каждый компьютер в частной сети транслируется в тот же самый адрес, но с различным номером порта.',
27 => '',
28 => 'Механизм NAT определён в RFC 1631, RFC 3022.',
29 => '',
30 => '=== Типы NAT ===',
31 => 'Классификация NAT, часто встречающаяся в связи с [[VoIP]].<ref>Андрей Жуков. [http://aoz.com.ua/2009/01/26/nat-types/ Типы Network Address Translation (NAT)] {{Wayback|url=http://aoz.com.ua/2009/01/26/nat-types/ |date=20200508122222 }}</ref> Термин «соединение» использован в значении «последовательный обмен пакетами UDP».',
32 => '',
33 => ''''Симметричный NAT''' (Symmetric NAT) — трансляция, при которой каждое соединение, инициируемое парой «внутренний адрес: внутренний порт» преобразуется в свободную уникальную случайно выбранную пару «публичный адрес: публичный порт». При этом инициация соединения из публичной сети невозможна.',
34 => '',
35 => ''''Cone NAT, Full Cone NAT''' — однозначная (взаимная) трансляция между парами «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любой внешний хост может инициировать соединение с внутренним хостом (если это разрешено в правилах межсетевого экрана).',
36 => '',
37 => ''''Address-Restricted cone NAT, Restricted cone NAT''' — постоянная трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любое соединение, инициированное с внутреннего адреса, позволяет в дальнейшем получать ему пакеты с любого порта того публичного хоста, к которому он отправлял пакет(ы) ранее.',
38 => '',
39 => ''''Port-Restricted cone NAT''' — трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт», при которой входящие пакеты проходят на внутренний хост только с одного порта публичного хоста — того, на который внутренний хост уже посылал пакет.',
40 => '',
41 => '== Преимущества ==',
42 => '',
43 => 'NAT выполняет три важных функции.',
44 => '',
45 => '# '''Позволяет сэкономить [[IP-адрес]]а''' (только в случае использования NAT в режиме PAT), транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних). По такому принципу построено большинство сетей в мире: на небольшой район домашней сети местного провайдера или на офис выделяется 1 публичный (внешний) IP-адрес, за которым работают и получают доступ интерфейсы с приватными (внутренними) IP-адресами.',
46 => '#'''Позволяет предотвратить или ограничить''' обращение снаружи ко внутренним хостам, оставляя возможность обращения изнутри наружу. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих снаружи, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.',
47 => '#'''Позволяет скрыть''' определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый [[Порт (TCP/IP)|порт]], но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-й порт [[TCP]] ([[HTTP]]-сервер) на внешний 54055-й). Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу <nowiki>http://example.org:54055</nowiki>, но на внутреннем сервере, находящемся за NAT, он будет работать на обычном 80-м порту. Повышение безопасности и сокрытие «непубличных» ресурсов.',
48 => '',
49 => '== Недостатки ==',
50 => '# '''Старые протоколы'''. Протоколы, разработанные до массового внедрения NAT, не в состоянии работать, если на пути между взаимодействующими [[хост]]ами есть трансляция адресов. Некоторые межсетевые экраны, осуществляющие трансляцию IP-адресов, могут исправить этот недостаток, соответствующим образом заменяя IP-адреса не только в заголовках IP, но и на более высоких уровнях (например, в командах протокола [[FTP]]). См. [[Application-level gateway]].',
51 => '# '''Идентификация пользователей'''. Из-за трансляции адресов «много в один» появляются дополнительные сложности с идентификацией пользователей и необходимость хранить полные логи трансляций.',
52 => '# '''Иллюзия DoS-атаки'''. Если NAT используется для подключения многих пользователей к одному и тому же сервису, это может вызвать иллюзию [[DoS-атака|DoS]]-атаки на сервис (множество успешных и неуспешных попыток). Например, избыточное количество пользователей [[ICQ]] за NAT приводит к проблеме с подключением к серверу некоторых пользователей из-за превышения допустимой скорости подключений. Частичным решением проблемы является использование ''пула адресов'' (группы адресов), для которых осуществляется трансляция.',
53 => '# '''Пиринговые сети'''. В NAT-устройствах, не поддерживающих технологию [[UPnP|Universal Plug & Play]], в некоторых случаях, необходима дополнительная настройка (см. [[Трансляция порт-адрес]]) при работе с [[одноранговая сеть|пиринговыми сетями]] и некоторыми другими программами, в которых необходимо не только инициировать исходящие соединения, но также принимать входящие.',
54 => '',
55 => '== Пример ==',
56 => '',
57 => 'Трансляция [[Локальная вычислительная сеть|локальной сети]] с диапазоном адресов 172.16.14.0[[маска подсети|/24]] в глобальную сеть будет осуществляться через один внешний IP-адрес (адрес маршрутизатора, выполняющего трансляцию).',
58 => '',
59 => '== Применение: IP-сеть через единственный IP-адрес ==',
60 => '*: [[Файл:NAT.svg|250px]]',
61 => '* На рабочих станциях указанный шлюз по умолчанию или gateway',
62 => '*: [[Файл:Gateway NAT.JPG]]',
63 => '* Преобразует служебные заголовки, формирует идентичный IP-пакет',
64 => '*: [[Файл:Ip-paket.JPG]]',
65 => '* Публикация локальных ресурсов во внешней IP-сети',
66 => '*: [[Файл:Ip-set.JPG]]',
67 => '',
68 => '• Экономическая выгода вследствие приобретения единственного IP-подключения, а не IP-сети.',
69 => '',
70 => '• Сокрытие от внешнего наблюдателя структуры внутренней IP-сети.',
71 => '',
72 => '• Организация системы с распределенной нагрузкой.',
73 => '',
74 => '• При общем доступе через NAT прозрачно открывается доступ к внутренней структуре с защитой без использования межсетевого экрана и т. п.',
75 => '',
76 => '• Через NAT корректно работают многие сетевые протоколы. Конструктивные реализации (общий доступ — это и есть подключение NAT) есть аппаратная реализация NAT (интегрированы межсетевые экраны).',
77 => '',
78 => '== NAT loopback ==',
79 => '',
80 => 'Смысл технологии ''NAT loopback'' (или ''NAT hairpinning'') прост: если пакет приходит из внутренней сети на внешний IP-адрес маршрутизатора, он считается пришедшим извне — а значит, работают правила брандмауэра, относящиеся ко внешним соединениям. И если пакет успешно пройдёт сквозь брандмауэр, сработает NAT, взяв на себя посредничество между двумя внутрисетевыми машинами. Это даёт две вещи.',
81 => '# Прямо изнутри локальной сети можно проверить, как настроены сетевые службы.',
82 => '# Доступ к серверу, находящемуся в локальной сети, по доменному имени. Без NAT loopback пришлось бы править файл [[hosts]] на каждой машине для каждого задействованного домена и поддомена.',
83 => '',
84 => 'Недостатком NAT loopback можно считать повышенную нагрузку на хаб и маршрутизатор (по сравнению с прямым доступом к серверу).',
85 => '',
86 => '== NAT Traversal ==',
87 => '{{Main|NAT traversal}}',
88 => '',
89 => 'NAT Traversal (прохождение или автонастройка NAT) — это набор возможностей, позволяющих сетевым приложениям определять, что они находятся за устройством, обеспечивающим NAT, узнавать внешний IP-адрес этого устройства и выполнять сопоставление портов для пересылки пакетов из внешнего порта NAT на внутренний порт, используемый приложением; все это выполняется автоматически, пользователю нет необходимости вручную настраивать сопоставления портов или вносить изменения в какие-либо другие параметры. Однако существуют меры предосторожности в доверии к таким приложениям — они получают обширный контроль над устройством, появляются потенциальные уязвимости.',
90 => '',
91 => '== Программная реализация NAT ==',
92 => '',
93 => 'При наличии уже существующего сервера под управлением серверной [[Операционная система|ОС]] возможно организовать трансляцию адресов без необходимости закупки дополнительных, аппаратных устройств. Как правило для программной реализации NAT требуется наличие по крайней мере двух сетевых адаптеров в сервере (возможны варианты с одним, но при наличии trunk-[[VLAN]]).',
94 => '',
95 => 'Все существующие и использующиеся серверные ОС поддерживают простейшую трансляцию адресов.',
96 => '',
97 => 'С точки зрения отказоустойчивости, гибкости и производительности, используются операционные системы семейства [[Unix|UNIX]] (большинство GNU/Linux, [[BSD|*BSD]]-системы, а также [[OpenSolaris]] и др.). Во многих из них NAT доступен «из коробки», в других возможна реализация за счёт добавления модулей в сочетании с [[Межсетевой экран|межсетевыми экранами]] с функциями трансляции адресов ([[Ipfw|IPFW]], [[Iptables|IPtables]] и др.). Также, NAT работает «из коробки» в семействе операционных систем [[Windows Server]].',
98 => '',
99 => '== См. также ==',
100 => '{{Викиучебник|Сетевой порт/Что такое NAT и как определить, находитесь ли вы за NAT|Что такое NAT и как определить, находитесь ли вы за NAT}}',
101 => '* [[Прокси-сервер]]',
102 => '* [[Трансляция порт-адрес|Port Address Translation (PAT)]]',
103 => '* [[Application-level gateway]]',
104 => '* [[STUN]]',
105 => '',
106 => '== Примечания ==',
107 => '{{примечания}}',
108 => '',
109 => '[[Категория:TCP/IP]]',
110 => '[[Категория:NAT]]'
] |