Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

УМК Комп. сети ч.2 / ответы к вопросам / Трансляторы сетевых адресовNAT

.doc
Скачиваний:
78
Добавлен:
09.04.2015
Размер:
61.95 Кб
Скачать

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

Трансляция сетевых адресов (Network Address Translation, NAT) - часто приме­няемая функция proxy-сервера. Одна из важных задач, которую выполняет меж­сетевой экран - сокрытие информации о внутренней сети от посторонних. Эта информация включает в себя данные о настройке и адресации TCP/IP для сер­веров и рабочих станций сети. Чтобы скрыть информацию об узлах сети, програм­ма NAT при выполнении запросов от имени клиентов локальной сети применяет собственный IP-адрес (или диапазон IP-адресов). Внутри сети клиенты взаимодей­ствуют при помощи реальных IP-адресов. Когда же запрос посылается через межсе­тевой экран, NAT подставляет в поле источника собственный адрес. При возврате ответа эта программа заменяет свой адрес в поле получателя на адрес отправив­шего исходный запрос клиента.

Важно отметить, что существует несколько методов реализации NAT. Некоторые трансляторы адресов осуществляют это посредством статического присваивания адресов (static address assignment), адрес клиента в локальной сети привязывает­ся к фиксированному IP-адресу, который служит программе NAT во внешнем мире. Трансляторы, действующие по принципу динамического присваивания адресов (dynamic address assignment), выделяют IP-адрес для использования во внешней сети, если клиент делает запрос, проходящий через proxy-сервер. По завершении сеанса связи с клиентом или после истечения заданного интервала времени адрес возвращается в список свободных адресов и может быть предоставлен другому компьютеру.

Если трансляторы сетевых адресов работают в одном направлении, то адреса присваиваются клиентам локальной сети в момент инициации внешнего соеди­нения. Они также бывают двунаправленными, при этом входящие IP-адреса по­лучателя изменяются так, чтобы пакет пересылался серверу локальной сети с дру­гим адресом

Концепция трансляции сетевых адресов, о которой шла речь до сих пор, обычно на­зывается базовой трансляцией адресов (basic NAT). Ее реализация требует наличия одного или нескольких Internet-адресов, с помощью которых сервер NAT создает соединения для ряда клиентов в локальной сети. Это означает, что число IP-адресов сервера должно быть равно максимально возможному числу активных исходящих соединений. Если в распоряжении сервера NAT 10 IP-адресов, только

10 клиентов локальной сети смогут одновременно устанавливать исходящие соединения.

На рис. 7.3 показан пример подобной ситуации. Здесь сетевому адаптеру рабо­чей станции А присвоен адрес 10.10.10.1. Когда с этой станции поступает запрос на установку Internet-соединения, сервер NAT берет для формирования соедине­ния адрес 140.176.123.1 из блока своих адресов.

Затем рабочие станции В и С также направляют серверу запросы на установ­ку соединения, и он отдает два следующих адреса. Когда же к Internet попыта­ется подключиться рабочая станция D, свободных адресов больше не останется, и запрос завершится неудачей. При использовании статической трансляции ад­ресов, запрос на установку Internet-соединения с рабочей станции D никогда не увенчается успехом. В случае динамической трансляции адресов рабочая стан­ция D сможет повторить попытку после того, как другая рабочая станция осво­бодит адрес и вернет его в блок адресов.

Если число исходящих соединений в вашей сети ограничено, базовая трансля­ция адресов станет идеальным решением. Но этот метод не будет работать, если вам нужно обеспечить одновременную установку соединений для многочислен­ных клиентов при условии, что вы не располагаете достаточно большим количе­ством IP-адресов

ТTрансляция адресов портов

В главе 2 мы обсуждали концепцию сонетов, представляющих собой комбинацию " из IP-адреса и номера порта, которая применяется для однозначной идентифика­ции конечных точек TCP- или UDP-соединения. Порты 0-1023 обычно (но не ( всегда) зарезервированы для серверов, а с портами от 1024-го и последующими могут работать клиенты. Например, в процессе TCP-соединения клиент посыла­ет серверу запрос, включая в его заголовок IP-адрес и номер порта получателя, а также собственный адрес и номер порта. При этом порты отправителя и получа­теля не обязательно должны совпадать. Они предназначены лишь для однознач­ной идентификации соединения, чтобы компьютер мог определить, какое прило­жение взаимодействует с другим приложением на другом узле.

Номер порта получателя пакета обычно задает используемую службу. Так, сер­веры Telnet, как правило, ожидают установки соединения на 23-м порту. Но порт отправителя может быть любым. Нужно лишь, чтобы сервер Telnet знал его и ука­зывал при ответе на запрос клиента.

Чтобы расширить число возмож­ных исходящих соединений и при этом не увеличивать количество отведенных серверу NAT адресов, в новой форме NAT, которая называется трансляцией адре­ сов сетевых портов (Network Address Port Translation, NAPT), допустимо в кли­ентских запросах заменять и IP-адреса, и номера портов отправителя. С помощью этого метода один IP-адрес можно распределить между множеством клиентов ло­кальной сети просто за счет изменения номера порта отправителя. Сервер NAT поддерживает таблицу, в которой каждому соединению клиента с внешним ми­ром сопоставляется уникальная комбинация IP-адреса и номера порта.

Иногда для обозначения NAPT употребляются термины трансляция адресов портов (Port Address Translation, PAT) и перегрузка NAT (NAT Overloading).

Благодаря NAPT единственный IP-адрес может одновременно служить большому числу клиентов локальной сети.

Отметим, что кроме IP-адреса и, возможно, номера порта отправителя должны изменяться и другие поля-контрольные суммы заголовков пакетов. Если при этих изменениях не изменить и котрольную сумму заголовка, то пакет на другом конце соединения будет отброшен, т.к. соответствующий стек ТСР/IP определит, что пакет был модифицирован или поврежден при передаче. Поэтому серверы NAT записывают в заголовок новую контрольную сумму.