Последние десять редакторов страницы (page_recent_contributors ) | [
0 => '83.174.205.210',
1 => '176.32.176.238',
2 => 'Skazi',
3 => '46.251.193.232',
4 => 'OneLittleMouse',
5 => '188.0.169.153',
6 => '109.252.93.223',
7 => '176.215.131.71',
8 => '178.18.15.223',
9 => '46.242.11.119'
] |
Вики-текст старой страницы до правки (old_wikitext ) | '{{Нет ссылок|дата=12 мая 2011}}
{{другие значения|NAT (значения)}}
'''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)]</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-адрес (адрес маршрутизатора, выполняющего трансляцию).
== 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]]
[[Категория:NAT]]' |
Вики-текст новой страницы после правки (new_wikitext ) | '== Функционирование ==
Преобразование адреса методом 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)]</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-адрес (адрес маршрутизатора, выполняющего трансляцию).
== 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]]
[[Категория:NAT]]' |