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