В процессе подготовки обзора наткнулся на отличный, на мой взгляд, перевод описания Технологии трансляции адресов от Sisco на сайте Санкт-Перербургской компании "Техно-СПб".
Этот перевод настолько соответствует тому, как я представлял себе обзор технологии NAT, что я решил не изобретать велосипед и опубликовать его здесь в оригинальном виде.
Две ключевые проблемы встают перед Интернетом - это нехватка адресного пространства и эффективность маршрутизации. Трансляция сетевых адресов позволяет IP-сетям организаций выглядеть снаружи так, будто они используют адресное пространство, отличное от того, которое они на самом деле используют. Таким образом, NAT дает возможность организациям с адресами, глобально недействительными, подключаться к Интернету путем трансляции своих адресов в глобальные. Также NAT предоставляет более гибкую стратегию для тех организаций, которые часто меняют поставщиков сетевого сервиса. Стандарт NAT описан в RFC 1631.
Трансляция сетевых адресов имеет несколько приложений. Целесеобразно применять ее в следующих целях:
В качестве решения проблемы связуемости NAT имеет практическую пользу только тогда, когда сравнительно немного станций из локальной сети открывают связь с внешним миром одновременно. В этом случае лишь малое подмножество IP-адресов в локальной сети должно транслироваться в глобальные адреса. После того, как станция перестает "занимать" глобальный адрес, он может быть использован вновь.
Значительное преимущество технологии адресной трансляции заключается в том, что она может конфигурироваться, не требуя вносить изменения в настройки станций и маршрутизаторов, кроме тех граничных маршрутизаторов, на которых будет включен механизм NAT. Как обсуждалось ранее, применение NAT может быть не очень практичным при большом количестве станций. Более того, некоторые приложения используют встроенные IP-адреса, что делает трасляцию неуместной. Проходя через NAT-устройство, эти приложения могут работать непрозрачно либо вообще не работать. NAT также прячет идентичность станций, что может иметь свои преимущества и недостатки одновременно.
Маршрутизатор, осуществляющий адресную трасляцию, должен иметь, по крайней мере, один внутренний и один внешний интерфейс. В обычных условиях NAT конфигурируется на граничном маршрутизаторе, являющимся для данной локальной сети выходом в глобальную, точкой подключения к сетевой магистрали. Когда пакет покидает внутреннюю область, NAT транслирует локальный адрес источника в глобально уникальный адрес. Когда пакет входит в локальную сеть извне, NAT транслирует глобальный адрес назначения в локальный. Если существует более одной выходной точки в глобальную сеть, все устройства, работающие с NAT, должны иметь идентичные таблицы трансляции. Если программное обеспечение не может транслировать адрес, вследствие того, что имеющееся глобальное адресное пространство полностью занято, оно уничтожает пакет и посылает сообщение ICMP Host Unreachable.
Маршрутизатор, на котором сконфигурирована трансляция, не должен передавать информацию о внутренней сети наружу. Тем не менее, данные о маршрутизации, получаемые извне, могут передаваться в локальную сеть, как обычно.
Как было упомянуто ранее, термин внутренний относится к сетям, которыми владеет данная организация и к которым должна применяться адресная трансляция. Внутри этой области станции будут иметь адреса из одного адресного пространства, в то время, с точки зрения внешнего мира, они будут иметь адреса из другого пространства, если трансляция сконфигурирована. Первое адресное пространство называется локальным, а второе - глобальным.
Подобным образом, термин внешний относится к тем сетям, к которым локальная сеть подключается и которые, вообще говоря, не находятся под контролем данной организации. Станции во внешних сетях также могут быть предметом адресной трансляции и, следовательно, могут иметь локальные и глобальные адреса.
Обобщая, перечислим понятия, используемые при механизме NAT:
Используйте эту возможность для трансляции ваших собственных IP-адресов в глобальные адреса при связи с внешними сетями. Вы можете сконфигурировать статическую или динамическую трасляцию:
На Рис. 6 показан маршрутизатор, транслирующий адрес источника при переходе пакета из внутренней сети во внешний мир.
Рис. 6 : Трансляция внутренних адресов
Следующие шаги описывают трансляцию внутренних адресов источника, в соответствии с Рис. 6:
Вы можете сэкономить имеющееся у вас пространство глобальных адресов, позволяя маршрутизатору использовать один глобальный адрес для нескольких локальных адресов. Когда такое перекрывание сконфигурировано, маршрутизатор имеет достаточно информации от протоколов верхних уровней (например, номера портов TCP или UDP), чтобы перевести глобальный адрес обратно в нужный локальный адрес. Когда нескольким локальным адресам ставится в соответствие один глобальный адрес, номера портов TCP или UDP каждой внутренней станции позволяют различать их локальные адреса.
Рис. 7 иллюстрирует механизм адресной трансляции, когда один глобальный адрес представляет несколько внутренних локальных адресов. Номер порта TCP играет роль отличительного признака.
Рис. 7 : Перекрывание глобальных адресов в NAT
При перекрывании глобальных адресов, как показано на Рис. 7, осуществляются следующие шаги. И Станция B, и Станция C думают, что они говорят с одной и той же станцией по адресу 2.2.2.2. Реально же, они сообщаются с разными станциями; номер порта различает их. В самом деле, многие внутренние станции смогли бы делить между собой один глобальный IP-адрес, используя несколько номеров портов.
Если соответствующей записи в таблице не существует, маршрутизатор определяет, что адрес 1.1.1.1 должен транслироваться и устанавливает трансляцию внутреннего локального адреса 1.1.1.1 в легальный глобальный адрес. Если разрешено перекрывание адресов и другая трансляция является активной, маршрутизатор использует тот же глобальный адрес и сохраняет информацию, необходимую для обратной трансляции. Этот тип записи в таблице называется расширенной записью.
Вы можете прибегнуть к применению NAT, возможно, потому что ваши адреса не являются легальными, официально приписанными IP-адресами. Возможно, для своей внутренней сети вы выбрали адреса, которые официально принадлежат другой сети. Тот случай, когда адрес используется как легально, так и нелегально, называется перехлестом. Вы можете применять NAT, чтобы транслировать внутренние адреса, которые перехлестываются с внешними. Используйте эту возможность, если ваши IP-адреса в локальной сети являются легальными, но принадлежат другой сети снаружи, и вы хотите взаимодействовать с этими внешними станциями.
Рис. 8 показывает, как NAT транслирует перехлестывающиеся сети.
Рис. 8 : Трансляция при перехлесте адресов
При этой схеме действия маршрутизатор следующие:
Маршрутизатор проверяет каждый DNS-ответ отовсюду, удостоверяясь в том, что IP-адрес не находится в локальной сети. Если это происходит, маршрутизатор транслирует адрес.
Другой вариант применения NAT не связан с Интернет-адресами. Ваша организация может иметь несколько узлов, которые должны активно взаимодействовать со станциями извне. С помощью NAT вы можете создать во внутренней сети один виртуальный узел, который будет координировать распределение загрузки между реальными сетевыми узлами. Адреса назначения, подходящие определенному списку доступа, заменяются на адреса из другого множества адресов. Адреса из этого диапазона подставляются по "карусельной" схеме и только когда открывается новое соединение из внешней сети. Трафик, имеющий не TCP-происхождение, проходит через маршрутизатор без трансляции (если другие механизмы трансляции не включены). Рис. 9 иллюстрирует эту возможность.
Рис. 9 : Распределение TCP-загрузки с помощью NAT
Маршрутизатор совершает следующие действия:
Следующий запрос на соединение приведет к тому, что марщрутизатор выберет адрес 1.1.1.2 в качестве внутреннего локального адреса.
Если вы встречали в Интернете другие материалы на русском или английском языках по технологии NAT и настройке NAT в оборудовании, которые, по вашему мнению, могут дополнить этот обзор присылайте нам ссылки.
Другие материалы по технологии NAT:

| < Предыдущая | Следующая > |
|---|