Трансляция сетевых адресов


Трансляция сетевых адресов ( NAT ) — это метод преобразования одного пространства IP-адресов в другое путем изменения информации о сетевых адресах в IP-заголовке пакетов, пока они проходят через устройство маршрутизации трафика . [1] Первоначально этот метод использовался для обхода необходимости назначать новый адрес каждому хосту при перемещении сети или замене вышестоящего интернет-провайдера , но он не мог маршрутизировать адресное пространство сети. Он стал популярным и важным инструментом сохранения глобального адресного пространства в условиях исчерпания адресов IPv4 . Один маршрутизируемый через Интернет IP-адрес шлюза NAT может использоваться для всей частной сети . [2]

Поскольку преобразование сетевых адресов изменяет информацию IP-адреса в пакетах, реализации NAT могут различаться по своему конкретному поведению в различных случаях адресации и по своему влиянию на сетевой трафик. Специфика поведения NAT обычно не документируется поставщиками оборудования, содержащего реализации NAT. [2]

IPv4 использует 32-битные адреса, способные однозначно адресовать около 4,4 миллиарда устройств. К 1992 году стало очевидно, что этого будет недостаточно. В RFC  1631 1994 года NAT описывается как «краткосрочное решение» двух наиболее серьезных проблем, стоящих перед IP-Интернетом в то время: истощение IP-адресов и масштабирование маршрутизации. К 2004 году NAT получил широкое распространение. [3]

Самый простой тип NAT обеспечивает преобразование IP-адресов один в один (RFC 1631). В RFC 2663 этот тип NAT называется базовым NAT ; его также называют NAT «один к одному» . В этом типе NAT изменяются только IP-адреса, контрольная сумма IP-заголовка и любые контрольные суммы более высокого уровня, которые включают IP-адрес. Базовый NAT можно использовать для соединения двух IP-сетей с несовместимой адресацией. [2] 

Большинство трансляторов сетевых адресов сопоставляют несколько частных хостов с одним общедоступным IP-адресом.

Все IP-пакеты имеют IP-адрес источника и IP-адрес назначения. Обычно для пакетов, проходящих из частной сети в общедоступную сеть, изменяется адрес источника, а для пакетов, проходящих из общедоступной сети обратно в частную сеть, изменяется адрес назначения. Чтобы избежать двусмысленности в том, как преобразуются ответы, необходимы дальнейшие модификации пакетов. Подавляющая часть интернет-трафика использует протокол управления передачей (TCP) или протокол пользовательских дейтаграмм (UDP). Для этих протоколов номера портов изменяются таким образом, чтобы комбинация IP-адреса (в заголовке IP ) и номера порта (в заголовке транспортного уровня ) в возвращаемом пакете могла быть однозначно сопоставлена ​​с соответствующим пунктом назначения частной сети. В RFC 2663 для этого типа NAT используется термин «сетевой адрес и трансляция портов» (NAPT). [4] Другие названия включают преобразование адресов портов (PAT), маскировку IP , перегрузку NAT и NAT «многие к одному» . Это наиболее распространенный тип NAT, который стал синонимом общепринятого термина «NAT».