Перевод сетевого адреса

Перевод сетевого адреса ( NAT ) - это метод сопоставления пространства IP -адресов в другой путем изменения информации о сетевом адресе в заголовке IP -адресов пакетов, когда они находятся в пути через устройство маршрутизации трафика . [ 1 ] Техника изначально использовалась для обхода необходимости назначения нового адреса каждому хосту, когда была перемещена сеть, или когда поставщик услуг вверх по течению был заменен, но не мог направить адресное пространство сети. Это стало популярным и важным инструментом в сохранении глобального адресного пространства перед лицом исчерпания адреса IPv4 . Один интернет-управляемый IP-адрес шлюза Nat может использоваться для всей частной сети . [ 2 ]
Поскольку трансляция сетевого адреса изменяет информацию об IP -адресах в пакетах, реализации NAT могут варьироваться в их конкретном поведении в различных случаях адресации и их влияния на сетевой трафик. Специфика поведения NAT обычно не документируется поставщиками оборудования, содержащего реализации NAT. [ 2 ]
История
[ редактировать ]IPv4 использует 32-разрядные адреса, способные уникально обратиться к около 4,3 миллиарда устройств. К 1992 году стало очевидно, что этого будет недостаточно. 1994 RFC 1631 описывает NAT как «краткосрочное решение» для двух наиболее убедительных задач, стоящих перед IP-интернетом в то время: истощение IP-адреса и масштабирование в маршрутизации. К 2004 году NAT стал широко распространенным. [ 3 ]
Основной нат
[ редактировать ]Самый простой тип NAT обеспечивает перевод IP-адресов один на один (RFC 1631). RFC 2663 относится к этому типу NAT как основной NAT ; Это также называется Nat One-One . В этом типе NAT только IP-адреса, контрольная сумма Header и любые контрольные суммы более высокого уровня, которые включают IP-адрес, изменяются. Базовый NAT может быть использован для взаимосвязи двух IP -сетей, которые имеют несовместимую адресацию. [ 2 ]
Одно ко многим Нат
[ редактировать ]
Большинство переводчиков сетевого адреса отображают несколько частных хостов по одному публично открытому IP -адресу.
Вот типичная конфигурация:
- Локальная сеть использует одну из назначенных подсетей частного IP -адреса (RFC 1918 [ 4 ] ).
- В сети есть маршрутизатор, который имеет как частный, так и публичный адрес. Частный адрес используется маршрутизатором для общения с другими устройствами в частной локальной сети. Общественный адрес (обычно назначенный интернет -поставщиком ) используется маршрутизатором для общения с остальной частью Интернета.
- Поскольку трафик проходит из сети в Интернет, маршрутизатор переводит адрес источника в каждом пакете с личного адреса на собственный общедоступный адрес маршрутизатора. Маршрутизатор отслеживает основные данные о каждом активном соединении (особенно адрес назначения и порт ). Когда маршрутизатор получает входящий трафик из Интернета, он использует данные отслеживания соединений, которые он хранит на исходящей фазе, чтобы определить, на какой частный адрес (если таковой имеется) он должен переслать ответ. [ 2 ]
Все IP -пакеты имеют IP -адрес источника и IP -адрес назначения. Как правило, пакеты, переходящие из частной сети в общедоступную сеть, будут изменены их адреса, в то время как пакеты, переходящие из общедоступной сети в частную сеть, будут изменен его адрес назначения. Чтобы избежать двусмысленности в том, как переводятся ответы, требуются дальнейшие модификации пакетов. Огромная основная часть интернет -трафика использует протокол управления передачей (TCP) или протокол Datagram пользователя (UDP). Для этих протоколов номера портов изменяются таким образом, чтобы комбинация IP -адреса (в заголовке IP ) и номер порта (в заголовке транспортного уровня ) на возвращаемом пакете можно было однозначно отображаться с соответствующим местом частной сети. RFC 2663 использует термин сетевой адрес и перевод порта ( NAPT ) для этого типа NAT. [ 4 ] Другие имена включают перевод адреса порта ( PAT ), IP-маскарадирование , перегрузку NAT и nat-More-One . Это наиболее распространенный тип NAT и стал синонимом термина NAT в общем использовании.
Этот метод позволяет общаться через маршрутизатор только тогда, когда разговор происходит в частной сети, поскольку начальная исходная передача - это то, что устанавливает необходимую информацию в таблицах перевода. Таким образом, веб -браузер в частной сети сможет просматривать веб -сайты, которые находятся за пределами сети, тогда как веб -браузеры вне сети не смогут просмотреть веб -сайт, размещенный внутри. [ А ] Протоколы, не основанные на TCP и UDP, требуют других методов перевода.
Дополнительным преимуществом NAT One-Many является то, что он снижает исчерпание адреса IPv4 , позволяя подключению целых сетей к Интернету, используя единый общедоступный IP-адрес. [ B ]
Методы перевода
[ редактировать ]Сетевой адрес и перевод порта могут быть реализованы несколькими способами. Некоторые приложения, которые используют информацию IP -адреса, могут определить внешний адрес переводчика сетевого адреса. Это адрес, который обнаруживает его общение во внешней сети. Кроме того, может потребоваться изучить и классифицировать тип используемого отображения, например, когда желательно настроить прямую путь к коммуникации между двумя клиентами, оба из которых находятся за отдельными шлюзами NAT.
Для этой цели RFC 3489 указал протокол, называемый простым обходом UDP над NAT ( STUN ) в 2003 году. Он классифицировал реализации NAT как NAT , (адрес) NAT, (адрес) , с ограниченным портом Cone Nat или Symmetric NAT , и и Symmetric NAT, и и и NAT, и и NAT, и и симметричный NAT , а также предложил методологию для соответствующего тестирования устройства. Однако с тех пор эти процедуры устарели от статуса стандартов, поскольку методы неадекватны для правильной оценки многих устройств. RFC 5389 Стандартизировал новые методы в 2008 году, а аббревиатура STUN теперь представляет новое название спецификации: утилиты для проходов сеанса для NAT .
Многие реализации NAT объединяют эти типы, поэтому лучше ссылаться на конкретное индивидуальное поведение NAT вместо использования конуса/симметричной терминологии. RFC 4787 Попытки облегчить путаницу путем введения стандартизированной терминологии для наблюдаемого поведения. Для первой пули в каждом ряду вышеупомянутой таблицы RFC характеризует конусные конусы с полной костикой, ограниченной конусом и с ограниченным портом, имея отображение, независимое от конечности , тогда оно бы охарактеризовало симметричный NAT как имеющееся адреса и порт-зависимое отображение . Для второй пули в каждом ряду вышеуказанной таблицы RFC 4787 также помечал бы NAT с полной кости как имеющуюся независимая конечная точка фильтрации , NAT с ограниченным коном, имеющая зависимую от адреса фильтрации , ограниченного порта Cone Nat как имеющего адреса. и порт-зависимая фильтрация и симметричная NAT как имеют либо зависимую от адреса фильтрации , либо адреса, а также порт-зависимая фильтрация . Другие классификации поведения NAT, упомянутые в RFC, включают в себя, сохраняют ли они порты, когда и как обновляются отображения, можно ли использовать внешние отображения внутренними хостами (т.е. Поведение шпильки ) и уровень детерминизма, демонстрирующих NAT при применении всех этих правил. [ 2 ] В частности, большинство NAT объединяют симметричный NAT для исходящих соединений со статическим отображением портов , где входящие пакеты, адресованные внешнему адресу и порт, перенаправляются на определенный внутренний адрес и порт.
Картирование NAT против фильтрации Nat
[ редактировать ]RFC 4787 [ 2 ] делает различие между отображением NAT и фильтрацией NAT.
Раздел 4.1 RFC охватывает отображение NAT и указывает, как внешний IP -адрес и номер порта следует перевести во внутренний IP -адрес и номер порта. Он определяет независимое от конечно-зависимых точек отображения, зависимого от адреса отображения и адреса и порта-зависимого отображения, объясняет, что эти три возможные варианты не связаны с безопасностью NAT, поскольку безопасность определяется поведением фильтрации, а затем определяет «nat «независимое отображение конечной точки».
Раздел 5 RFC охватывает фильтрацию NAT и описывает, какие критерии используются NAT для фильтрации пакетов, происходящих из конкретных внешних конечных точек. Параметры-это независимая от конечной фильтрации, зависимая от адреса фильтрации и адреса и порт-зависимая фильтрация. Рекомендуется, что не независимая от конечной фильтрации требуется максимальная прозрачность применения, когда рекомендуется, чтобы фильтрация, зависящая от адреса, рекомендуется, если наиболее важно более строгое поведение фильтрации.
Некоторые устройства NAT еще не соответствуют RFC 4787, поскольку они обрабатывают отображение и фильтрацию NAT таким же образом, так что их параметр конфигурации для изменения метода фильтрации NAT также изменяет метод отображения NAT (например, Netgate TNSR ). У брандмауэра PF есть патч , доступный для обеспечения поддержки RFC 4787, но это еще не было объединено.
Тип NAT и NAT Traversal, роль сохранения порта для TCP
[ редактировать ]возникает Проблема пересечения NAT , когда сверстники за разными нацами пытаются общаться. Один из способов решить эту проблему - использовать перенаправление портов . Другой способ - использовать различные методы обхода NAT. Самым популярным методом для TCP Nat Traversal является TCP Hole Punching .
TCP -отверстие требует, чтобы NAT следовал конструкции сохранения порта для TCP. Для данной исходящей связи TCP одни и те же номера портов используются с обеих сторон NAT. Сохранение порта NAT для исходящих соединений TCP имеет решающее значение для TCP NAT Traversal, потому что при TCP один порт можно использовать только для одной связи за раз. Программы, которые связывают различные розетки TCP с эфемерными портами для каждой связи TCP, делают невозможным прогнозирование порта NAT для TCP. [ 2 ]
С другой стороны, для UDP NAT не нуждается в сохранении порта. Действительно, несколько коммуникаций UDP (каждая с отдельной конечной точкой ) может происходить на одном и том же порте источника, и приложения обычно повторно используют один и тот же сокет UDP для отправки пакетов на различные хосты. Это делает прогноз порта простым, так как он является одним и тем же исходным портом для каждого пакета.
Кроме того, сохранение порта в NAT для TCP позволяет протоколам P2P предлагать меньшую сложность и меньшую задержку, поскольку нет необходимости использовать третью сторону (например, STUN), чтобы обнаружить порт NAT, поскольку само приложение уже знает порт NAT. [ 2 ] [ 5 ]
Однако, если два внутренних хоста пытаются общаться с одним и тем же внешним хостом, используя один и тот же номер порта, NAT может попытаться использовать другой внешний IP -адрес для второго подключения или может потребоваться отказаться от сохранения порта и перенастроить порт. [ 2 ] : 9
По состоянию на 2006 г. [update], примерно 70% клиентов в P2P Networks использовали некоторую форму Nat. [ 6 ]
Выполнение
[ редактировать ]Установление двустороннего общения
[ редактировать ]
Каждый пакет TCP и UDP содержит номер порта источника и номер порта назначения. Каждый из этих пакетов инкапсулируется в IP -пакете, заголовок IP -адреса которого содержит IP -адрес источника и IP -адрес назначения. IP -адрес/протокол/номер порта Triple определяет ассоциацию с сетевым розеткой .
Для общедоступных услуг, таких как веб -серверы и почтовые серверы, важен номер порта. Например, порт 443 подключается через сокет к программному обеспечению веб -сервера почтового сервера SMTP и порту 465 к Daemon . [ 7 ] IP -адрес публичного сервера также важен, аналогичный глобальной уникальности с почтовым адресом или номером телефона. Как IP -адрес, так и номер порта должны быть правильно известны всем хостам, желающим успешно общаться.
Частные IP -адреса, как описано в RFC 1918, используются только в частных сетях, не подключенных к Интернету. Порты являются конечными точками связи, уникальными для этого хоста, поэтому соединение через устройство NAT поддерживается путем комбинированного отображения порта и IP -адреса. Частный адрес внутри NAT сопоставлен с внешним публичным адресом. Перевод адреса порта (PAT) разрешает конфликты, которые возникают, когда несколько хостов используют один и тот же номер порта источника для установления различных внешних соединений одновременно.
Аналогия расширения номера телефона.
[ редактировать ]Устройство NAT аналогично телефонной системе в офисе с одним общедоступным телефоном и несколькими расширениями. Исходящие телефонные звонки, сделанные из офиса, по -видимому, поступают с одного и того же телефона. Тем не менее, входящий вызов, который не указывает расширение, не может быть автоматически передается человеку внутри офиса. В этом сценарии офис является частной локальной сети, основным номером телефона является публичный IP -адрес, а отдельные расширения - это уникальные номера портов. [ 8 ]
Процесс перевода
[ редактировать ]С помощью NAT все сообщения, отправленные внешним хостам, фактически содержат внешний IP -адрес и информацию о порте устройства NAT вместо внутренних IP -адресов хоста или номера портов. NAT переводит только IP -адреса и порты своих внутренних хостов, скрывая истинную конечную точку внутреннего хоста в частной сети.
Когда компьютер в частной (внутренней) сети отправляет IP -пакет во внешнюю сеть, устройство NAT заменяет внутренний IP -адрес источника в заголовке пакета внешним IP -адресом устройства NAT. Затем Пэт может назначить соединение номер порта из пула доступных портов, [ C ] Вставка этого номера порта в поле порта источника. Пакет затем перенаправляется во внешнюю сеть. Затем устройство NAT делает запись в таблице переводов, содержащей внутренний IP -адрес, исходный порт исходного источника и переведенный порт источника. Последующие пакеты с того же IP -адреса внутреннего источника и номер порта переводятся на тот же IP -адрес внешнего источника и номер порта. Компьютер, получающий пакет, который подвергся NAT, устанавливает соединение с портом и IP -адресом, указанным в измененном пакете, не обращая внимания на тот факт, что поставляемый адрес переводится.
Получив пакет из внешней сети, устройство NAT ищет таблицу переводов на основе порта назначения в заголовке пакета. Если совпадение найдено, IP -адрес назначения IP и номер порта заменяется значениями, найденными в таблице, а пакет пересылается во внутреннюю сеть. В противном случае, если номер порта назначения входящего пакета не найден в таблице перевода, пакет отбрасывается или отклоняется, поскольку устройство PAT не знает, куда его отправить.
Приложения
[ редактировать ]- Маршрутизация
- Перевод сетевого адреса может использоваться для смягчения перекрытия IP -адреса. [ 9 ] [ 10 ] Перекрытие адреса происходит, когда хосты в разных сетях с одним и тем же пространством IP -адресов пытаются достичь одного и того же хоста назначения. Чаще всего это неправильная конфигурация и может быть результатом слияния двух сетей или подсетей, особенно при использовании адресации частной сети RFC 1918 . Очевидно, что хост -хост назначает трафик, поступающий из одной и той же сети, и промежуточные маршрутизаторы не могут определить, куда следует отправлять трафик ответа. Решение является либо перенумерующим, чтобы устранить перекрытие или трансляцию сетевого адреса.
- Балансировка нагрузки
- В клиента - сервера приложениях загружают балансировщики , переправляя запросы клиентов на набор серверных компьютеров для управления рабочей нагрузкой каждого сервера. Перевод сетевого адреса может использоваться для сопоставления репрезентативного IP -адреса кластера серверов на определенных хостах, которые обслуживают запрос. [ 11 ] [ 12 ] [ 13 ] [ 14 ]
Связанные методы
[ редактировать ]Обратный адрес IEEE и перевод порта (RAPT или RAT) позволяет время от времени чей реальный IP -адрес изменяется, чтобы оставаться достижимым в качестве сервера с помощью фиксированного домашнего IP -адреса. [ 15 ] . Реализация Cisco - это перегрузка PAT или NAT и отображает несколько частных IP -адресов с одним публичным IP -адресом Несколько адресов могут быть сопоставлены с одним адресом, потому что каждый частный адрес отслеживается номером порта. PAT использует уникальные номера портов исходных портов на внутреннем глобальном IP -адресах, чтобы различать переводы. [ D ] Пэт пытается сохранить исходный порт исходного источника. Если этот порт источника уже используется, PAT назначает первый доступный номер порта, начиная с начала соответствующей группы портов 0–511, 512–1023 или 1024–65535. Когда нет более доступных портов, и существует более чем один внешний IP -адрес, настроенный, PAT перемещается к следующему IP -адресу, чтобы попытаться снова распределить исходный порт исходного исходного. Этот процесс продолжается до тех пор, пока он не закончится из доступных портов и внешних IP -адресов.
Отображение адреса и порта - это предложение Cisco, которое объединяет перевод адреса плюс порта с туннелированием пакетов IPv4 над внутренней сетью IPv6 поставщика провайдера ISP . По сути, это (почти) без сохранности альтернатива NAT и DS-Lite , которая направляет функцию перевода адреса /порта IPv4 (и обслуживание состояния NAT), полностью в существующую реализацию Nat оборудования для клиента . Таким образом, избегая задач NAT444 и государственности NAT-носителя NAT, а также обеспечивает механизм перехода для развертывания нативного IPv6 одновременно с очень небольшой добавленной сложностью.
Проблемы и ограничения
[ редактировать ]Хозяева, стоящие за маршрутизаторами с поддержкой NAT, не имеют сквозного подключения и не могут участвовать в некоторых интернет-протоколах. Услуги, которые требуют инициации соединений TCP из внешней сети или которые используют протоколы без сохранности, такие как те, которые используют UDP , могут быть нарушены. Если маршрутизатор NAT не приложит особого усилия для поддержки таких протоколов, входящие пакеты не могут достичь своего пункта назначения. Некоторые протоколы могут разместить один экземпляр NAT между участвующими хостами ( например, FTP «пассивный режим» ), иногда с помощью шлюза на уровне приложения (см. § Приложения, затронутые NAT ), но терпят неудачу, когда обе системы отделяются от Интернет от Nat. Использование NAT также усложняет протоколы туннеля, такие как IPSEC, потому что NAT изменяет значения в заголовках, которые мешают проверке целостности, проведенной IPSEC и другими протоколами туннеля.
Средняя подключение было основным принципом Интернета, поддерживаемого, например, Советом по архитектуре Интернета . Текущие интернет-архитектурные документы отмечают, что NAT является нарушением сквозного принципа , но что NAT играет важную роль в тщательном дизайне. [ 16 ] Существует значительно больше проблем с использованием IPv6 NAT, и многие архитекторы IPv6 считают, что IPv6 предназначен для устранения потребности в NAT. [ 17 ]
Реализация, которая отслеживает только порты, может быть быстро истощена внутренними приложениями, которые используют несколько одновременных соединений, таких как HTTP -запрос на веб -страницу со многими встроенными объектами. Эта проблема может быть смягчена путем отслеживания IP -адреса назначения в дополнение к порту, таким образом, делясь одним локальным портом со многими удаленными хостами. Это дополнительное отслеживание увеличивает сложность реализации и вычислительные ресурсы на устройстве перевода.
Поскольку все внутренние адреса замаскированы за одним общедоступным адресом, внешние хосты не могут напрямую инициировать соединение с конкретным внутренним хостом. Такие приложения, как VoIP , видеоконференция и другие одноранговые приложения, должны использовать методы обхода NAT для функционирования.
Фрагментация и контрольная сумма
[ редактировать ]Pure NAT, работающий только на IP, может или не может правильно разрабатывать протоколы с полезными нагрузками, содержащими информацию о IP, такую как ICMP . Это зависит от того, интерпретируется ли полезная нагрузка хостом внутри или вне перевода . Основные протоколы как TCP и UDP не могут функционировать должным образом, если NAT не примет действие за пределы сетевого уровня.
IP -пакеты имеют контрольную сумму в каждом заголовке пакета, которая обеспечивает обнаружение ошибок только для заголовка. Datagrams IP могут стать фрагментированными, и для NAT необходимо собрать эти фрагменты, чтобы обеспечить правильное пересчетное количество контрольных компонентов более высокого уровня и правильного отслеживания, каких пакетов принадлежат к каким соединению.
TCP и UDP, имеют контрольную сумму, которая охватывает все данные, которые они несут, а также заголовок TCP или UDP, а также псевдо-заголовок , который содержит исходные и назначенные IP-адреса пакета с заголовком TCP или UDP. Для успешного прохождения NAT NAT или UDP, он должен пересекать контрольную сумму заголовка TCP или UDP на основе переведенных IP -адресов, а не на исходных, и поместить эту контрольную сумму в заголовок TCP или UDP первого пакета фрагментированного набора пакетов.
В качестве альтернативы, исходной хост может выполнять обнаружение MTU Path , чтобы определить размер пакета, который может быть передан без фрагментации, а затем установить бит не фрагмента (DF) в соответствующем поле заголовка пакета. Это всего лишь одностороннее решение, потому что ответный хост может отправлять пакеты любого размера, которые могут быть фрагментированы до достижения NAT.
Варианты терминов
[ редактировать ]ДНК
[ редактировать ]Перевод адреса назначения сети (DNAT) - это метод для прозрачного изменения IP -адреса назначения маршрутированного пакета и выполнения обратной функции для любых ответов. Любой маршрутизатор, расположенный между двумя конечными точками, может выполнить это преобразование пакета.
DNAT обычно используется для публикации услуги, расположенной в частной сети по общедоступному IP -адресу. Это использование DNAT также называется переадресацией порта или DMZ при использовании на весь сервер , который подвергается воздействию WAN, становясь аналогичным неотестованной военной демилитаризованной зоне (DMZ).
Сон
[ редактировать ]Значение термина SNAT зависит от поставщика: [ 18 ] [ 19 ] [ 20 ]
- Источник NAT является общим расширением и является аналогом назначения NAT ( DNAT ). Это используется для описания NAT One-Mey; NAT для уходящих связей с государственными услугами.
- Stateful Nat используется Cisco Systems [ 21 ]
- Статический NAT используется WatchGuard [ 22 ]
- Secure NAT используется сети F5 [ 23 ] и Microsoft (в отношении сервера ISA )
Защитный трансляция сетевого адреса (SNAT) является частью сервера интернет -безопасности и ускорения Microsoft и является расширением драйвера NAT, встроенного в Microsoft Windows Server . Он обеспечивает отслеживание и фильтрацию подключения для дополнительных сетевых подключений, необходимых для протоколов FTP , ICMP , H.323 и PPTP , а также возможности настроить прозрачный прокси -сервер HTTP .
Динамический перевод адреса сети
[ редактировать ]
Dynamic NAT, как и Static Nat, не распространена в небольших сетях, но находится в более крупных корпорациях со сложными сетями. В тех случаях, когда Static NAT предоставляет внутреннее в общедоступное IP-адреса, динамический NAT использует группу общедоступных IP-адресов. [ 24 ] [ 25 ]
Nat Hairpinning
[ редактировать ]Nat Hairpinning , также известная как Nat Loopback или Nat Reflection , [ 26 ] это функция во многих потребительских маршрутизаторах [ 27 ] где машина на локальной сети может получить доступ к другой машине на локальной сети через внешний IP -адрес локальной сети/маршрутизатора (с переадресацией порта на маршрутизаторе для прямых запросов на соответствующую машину в локальной сети). Это понятие официально описано в 2008 году, RFC 5128 .
Следующее описывает пример сети:
- Публичный адрес: 203.0.113.1 . Это адрес интерфейса WAN на маршрутизаторе.
- Внутренний адрес маршрутизатора: 192.168.1.1
- Адрес сервера: 192.168.1.2
- Адрес локального компьютера: 192.168.1.100
Если пакет отправлен на 203.0.113.1 компьютером в 192.168.1.100 , пакет обычно будет маршрутироваться на шлюз по умолчанию (маршрутизатор) [ E ] Маршрутизатор с функцией NAT Loopback обнаруживает, что 203.0.113.1 является адресом его интерфейса WAN и относится к пакету так, как будто выходит из этого интерфейса. Он определяет пункт назначения для этого пакета на основе правил DNAT (пересылка портов) для пункта назначения. Если данные были отправлены в порт 80, а правило DNAT существует для порта 80, направленного на 192.168.1.2 , то хост по этому адресу получает пакет.
Если применимое правило DNAT не доступно, маршрутизатор отбрасывает пакет. . недостаток назначения ICMP Может быть отправлен Если какие -либо правила DNAT присутствовали, перевод адреса все еще действует; Маршрутизатор все еще переписывает исходный IP -адрес в пакете. Локальный компьютер ( 192.168.1.100 ) отправляет пакет в размере с 192.168.1.100 , но сервер ( 192.168.1.2 ) получает его как 203.0.113.1 . Когда сервер отвечает, процесс идентичен внешнему отправителю. Таким образом, двусторонняя связь возможна между хостами внутри сети LAN через публичный IP-адрес.
Nat в IPv6
[ редактировать ]Перевод сетевого адреса обычно не используется в IPv6 , поскольку одной из целей проектирования IPv6 является восстановление сквозного сетевого подключения. [ 28 ] Большое адресное пространство IPv6 устраняет необходимость сохранения адресов, и каждому устройству может быть предоставлен уникальный глобально направленный адрес. Использование уникальных локальных адресов в сочетании с трансляцией префикса сети может достичь результатов, аналогичных NAT.
Большое адресное пространство IPv6 все еще может быть побеждено в зависимости от фактической длины префикса, указанной перевозчиком. Нередко можно вручить префикс A /64 - наименьший рекомендуемый подсеть - для всей домашней сети, требующих различных методов, которые будут использоваться для вручную подразделения диапазона для всех устройств, чтобы оставаться доступными. [ 29 ] Даже фактическое IPv6-IPv6 Nat, NAT66, может по-прежнему полезно: в блоге Apnic описывается случай, когда автору был предоставлен только один адрес (/128). [ 30 ]
Приложения, затронутые NAT
[ редактировать ]Некоторые протоколы уровня приложений , такие как протокол передачи файлов (FTP) и протокол инициации сеанса (SIP), отправляют явные сетевые адреса в рамках данных их приложения. Например, протокол передачи файлов в активном режиме использует отдельные подключения для управления трафиком (команды) и для трафика данных (содержимое файла). При запросе переноса файла хост, выявляющий запрос, определяет соответствующее соединение данных по его сетевому уровню и транспортного уровня адресам . Если хост, делающий запрос, лежит за простым брандмауэром NAT, перевод IP -адреса или номера порта TCP делает информацию, полученную сервером. Плачать обычно управляет голосом по IP -вызовам и страдает от той же проблемы. SIP и сопровождающий протокол описания сеанса может использовать несколько портов для настройки соединения и передачи голосового потока с помощью транспортного протокола в реальном времени . IP -адреса и номера портов кодируются в данных полезной нагрузки и должны быть известны до обхода NAT. Без особых методов, таких как Огромное поведение NAT непредсказуемо, а коммуникации могут потерпеть неудачу. Программное обеспечение или аппаратное обеспечение для шлюза приложений (ALG) может исправить эти проблемы. Программный модуль ALG, работающий на устройстве брандмауэра NAT, обновляет любые данные о полезной нагрузке, сделанные недействительными при переводе адресов. ALG должны понимать протокол с более высоким уровнем, который им необходимо исправить, и поэтому каждый протокол с этой проблемой требует отдельной ALG. Например, во многих системах Linux есть модули ядра, называемые трекерами подключения , которые служат для реализации ALGS. Однако ALG не может работать, если данные протокола зашифрованы.
Другим возможным решением этой проблемы является использование методов обхода NAT с использованием таких протоколов, как STUN или интерактивное учреждение подключения (ICE) или проприетарные подходы в сессионном пограничном контроллере . Nat Traversal возможен как в приложениях на основе TCP и UDP, но метод на основе UDP проще, более широко понятна и более совместима с Legacy Nats. [ Цитация необходима ] В любом случае, протокол высокого уровня должен быть спроектирован с учетом прохождения NAT, и он не работает достоверно через симметричные NAT или другие плохо поведенные наследие NATS.
Другими возможностями являются протокол управления портом (PCP), [ 31 ] Протокол отображения порта Nat (NAT-PMP) или протокол устройства интернет-шлюза , но он требует от устройства NAT реализовать этот протокол.
Большинство протоколов клиентского сервера (FTP является основным исключением [ f ] ), однако, не отправляйте контактную информацию уровня 3 и не требуют никакой специальной обработки NAT. Фактически, избегание осложнений NAT является практически требованием при разработке новых протоколов с более высоким слоем сегодня.
NATS также может вызвать проблемы, когда IPSEC применяется шифрование несколько устройств, таких как SIP -телефоны и в тех случаях, когда за NAT расположены . Телефоны, которые шифруют их сигнализацию IPSec, инкапсулируют информацию о порте в зашифрованном пакете, что означает, что устройства NAT не могут получить доступ и перевести порт. В этих случаях устройства NAT возвращаются к простым операциям NAT. Это означает, что весь трафик, возвращающийся в NAT, отображается на одного клиента, что приводит к сбою услуг более чем одному клиенту за NAT. Существует несколько решений этой проблемы: одно состоит в том, чтобы использовать TLS , который работает на уровне 4 и не маскирует номер порта; Другой состоит в том, чтобы инкапсулировать IPSec в UDP - последний из них является решением, выбранным Tispan для достижения безопасного обхода NAT, или NAT с «Ipsec passthru» поддержкой ; Другой - использовать сеанс -пограничный контроллер, чтобы помочь пересечь NAT .
Интерактивное учреждение подключения - это метод обхода NAT, который не полагается на поддержку АЛГ.
Уязвимость протокола DNS, объявленная Дэном Камински 8 июля 2008 года, [ 32 ] косвенно влияет на картирование порта Nat. Чтобы избежать отравления кэшем DNS , очень желательно не переводить номера портов исходных портов UDP исходящих запросов DNS с сервера DNS за брандмауэром, который реализует NAT. Рекомендуемый обходной путь для уязвимости DNS состоит в том, чтобы все серверы кэширования DNS использовали рандомизированные порты источника UDP. Если функция NAT де-радомизирует исходные порты UDP, сервер DNS становится уязвимым.
Примеры программного обеспечения NAT
[ редактировать ]- Обмен подключением к Интернету (ICS): реализация NAT & DHCP, включенная в Windows Desktop операционные системы
- IPFilter : включено с ( OpenSolaris , FreeBSD и NetBSD , доступные для многих других Unix, подобных UNIX операционных систем
- Ipfirewall (IPFW): FreeBSD-немолевый фильтр пакетов
- NetFilter с iptables / nftables : Linux фильтр пакетов
- NPF : NetBSD-н-местный фильтр пакетов
- PF : OpenBSD-н-нему
- Служба маршрутизации и удаленного доступа (RRAS): реализация маршрутизации, включенная в Windows Server операционные системы
- VPP : Пользовательский пакетный пакет реализации для Linux
- Wingate : сторонняя реализация маршрутизации для Windows
Смотрите также
[ редактировать ]
- Что угодно в чем -либо (Ayiya) - IPv6 над IPv4 UDP, таким образом, работая по туннелированию IPv6 над большинством NAT
- Носитель NAT -NAT позади NAT в рамках интернет-провайдера.
- Шлюз (телекоммуникации) - соединение между двумя сетевыми системами
- Метод протокола устройства интернет-шлюза (UPNP IGD).
- Middlebox - промежуточный ящик на пути данных между хостом источника и хостом назначения
- Метод протокола картирования порта NAT (NAT-PMP) NAT
- Метод протокола управления портом (PCP) Nat-Traversal
- Запуск порта - механизм обхода NAT
- Подсеть - логическое подразделение страниц сети IP,
- Teredo Tunneling - Nat Traversal с использованием IPv6
Примечания
[ редактировать ]- ^ Большинство устройств NAT сегодня позволяют сетевому администратору настраивать записи таблицы статического перевода для подключений от внешней сети к внутренней маскированной сети. Эта функция часто называют статичным NAT . Он может быть реализован в двух типах: пересылка порта , который перенаправляет трафик из определенного внешнего порта на внутренний хост на указанном порту, и обозначение хоста DMZ , который передает весь трафик, полученный на внешнем интерфейсе (на любом номере порта) на Внутренний IP -адрес при сохранении порта назначения. Оба типа могут быть доступны в одном и том же устройстве NAT.
- ^ Более распространенным соглашением является наличие компьютеров, которые требуют сквозного подключения, обеспечиваемого с помощью маршрутируемого IP-адреса, в то время как другие, которые не предоставляют услугам внешним пользователям за NAT, при этом только несколько IP-адресов используется для включения доступа в Интернет.
- ^ Поскольку маршрутизатор NAT выделяет отдельный порт для каждого исходящего соединения, огромное количество исходящих соединений может насытить диапазон доступных портов. Поскольку порты обычно освобождаются, когда соединение не производит больше трафика в течение определенного времени, максимальное количество активного соединения ограничено приблизительно 64 тысяч.
- ^ Номера портов-16-битные целые числа. Общее количество внутренних адресов, которые могут быть переведены на один внешний адрес, теоретически могут достигать 65 536 за IP -адрес. Реально, количество портов, которые можно назначить, один IP -адрес составляет около 4000.
- ^ компьютера Если только явный маршрут не установлен в таблицах маршрутизации .
- ^ ЭТОГО вопроса можно избежать с помощью SFTP вместо FTP
Ссылки
[ редактировать ]- ^ Справочник по сетевым протоколам (2 изд.). Javvin Technologies Inc. 2005. с. 27. ISBN 9780974094526 Полем Получено 2014-09-16 .
- ^ Jump up to: а беременный в дюймовый и фон глин час я Франсуа Аудет; Каллен Дженнингс (январь 2007 г.). Поведенческие требования по поведенческим требованиям сетевого адреса для одноадресной UDP . IETF . doi : 10.17487/rfc4787 . RFC 4787 .
- ^ Джефф Хьюстон (сентябрь 2004 г.). «Анатомия: загляните внутрь сетевых адресов» (PDF) . Интернет -протокол журнал .
- ^ Jump up to: а беременный Wing, Dan (2010-07-01). «Перевод сетевого адреса: расширение места интернет -адреса» . IEEE Internet Computing . 14 (4): 66–70. doi : 10.1109/mic.2010.96 . ISSN 1089-7801 . S2CID 31082389 .
- ^ «Характеристика и измерение обходов TCP через NAT и брандмауэры» . Декабрь 2006 г.
- ^ «Освещение теней: оппортунистическая сеть и веб -измерение» . Декабрь 2006 года. Архивировано из оригинала 2010-07-24.
- ^ RFC 8314
- ^ «Руководство по мгновенному эксперту Audio Over IP» (PDF) . Тилин. Январь 2010 года. Архивировано из оригинала (PDF) 2011-10-08 . Получено 2011-08-19 .
- ^ «Использование NAT в перекрывающихся сетях» . Август 2005.
- ^ «VPNS с перекрывающимся подсчетным сценарием» . Сентябрь 2017 года.
- ^ Srisuresh, Pyda; Ган, Дер-Хва (август 1998 г.). Распределение загрузки с использованием перевода IP -сетевого адреса . RFC 2391 .
- ^ "Что такое балансировка нагрузки 4 слоя?" Полем Июнь 2020 года.
- ^ "Что такое балансирует нагрузку?" Полем Ноябрь 2018 года.
- ^ «Настройте балансировку нагрузки на сервер с использованием Dynamic NAT» . Июнь 2018 года.
- ^ Сингх, Р.; Tay, YC; Тео, WT; Yeow, SW (1999). «Крыска: быстрый (и грязный?) Толчок для поддержки мобильности». Труды wmcsa'99. Второй семинар IEEE по мобильным вычислительным системам и приложениям . С. 32–40. Citeseerx 10.1.1.40.461 . doi : 10.1109/mcsa.1999.749275 . ISBN 978-0-7695-0025-6 Полем S2CID 7657883 .
- ^ Буш, Р.; Мейер Д. (2002). Некоторые интернет -архитектурные руководящие принципы и философия . IETF . doi : 10.17487/rfc3439 . RFC 3439 .
- ^ Вельде, Г. Ван де; Hain, T.; Двое, Р.; Карпентер, б.; Кляйн Э. (2007). Локальная защита сети для IPv6 . IETF . doi : 10.17487/rfc4864 . RFC 4864 .
- ^ «Улучшенная устойчивость IP с использованием Cisco Stateful Nat» . Cisco .
- ^ «Используйте NAT для общего доступа к серверам с частными IP -адресами в частной сети (пример конфигурации WatchGuard)» (PDF) . www.watchguard.com . Архивировано из оригинала (PDF) 2013-01-17.
- ^ «K7820: обзор функций SNAT» . ASKF5 . 28 августа 2007 г. Получено 24 февраля 2019 года .
- ^ «Улучшенная устойчивость IP с использованием Cisco Stateful Nat» . Cisco .
- ^ «Используйте NAT для общего доступа к серверам с частными IP -адресами в частной сети (пример конфигурации WatchGuard)» (PDF) . www.watchguard.com . Архивировано из оригинала (PDF) 2013-01-17.
- ^ «K7820: обзор функций SNAT» . ASKF5 . 28 августа 2007 г. Получено 24 февраля 2019 года .
- ^ "Динамический нат" . 26 января 2016 года . Получено 2022-04-19 .
- ^ "Динамический нат" . Получено 2022-04-19 .
- ^ "Что такое Nat Refluection/Nat Loopback/Nat Hairpinning?" Полем NYC Networkers. 2014-11-09 . Получено 2017-04-27 .
- ^ «Nat Loopback Routers - OpenSim» ( MediaWiki ) . OpenSimulator . 2013-10-21 . Получено 2014-02-21 .
- ^ Илджич Ван Пэкинум (2008-07-23). «После убежденного сопротивления NAT может прийти в IPv6 в конце концов» . Ars Technica . Получено 2014-04-24 .
- ^ Дюпон, Каспер (18 августа 2015 г.). "Подсеть - IPv6 Подсеть A /64 - Что сломается и как обнять ее?" Полем Ошибка сервера . Получено 2023-04-20 .
- ^ Cilloni, Marco (2018-02-01). «NAT66: Хороший, плохой, уродливый» . Апнический блог . Получено 2023-04-20 .
- ^ D. Wing, ed; Cheshire, S.; Boucadair, M.; Penno, R.; Selkirk, P. (2013). Протокол управления портом (PCP) . IETF . doi : 10.17487/rfc6887 . RFC 6887 .
- ^ Messmer, Ellen (2008-07-08). «Основной недостаток DNS может нарушить Интернет» . Сетевой мир . Архивировано из оригинала на 2009-02-13 . Получено 14 июня 2021 года .
Внешние ссылки
[ редактировать ]- Характеристика различных TCP NAT на машине Wayback (Archived 2006-01-11)-статья, обсуждающая различные типы NAT
- Анатомия: загляните внутрь сетевых адресов - Том 7, выпуск 3, сентябрь 2004 г.
- Джефф Тайсон, Howstuffworks: как работает трансляция сетевого адреса
- Маршрутизация с NAT на archive.today (архив 2013-01-03) (часть документации для IBM Iseries)
- Перевод сетевого адреса (NAT) FAQ - Cisco Systems