Network Address Translation как средство расширения возможностей совместного использования IP-адреса во внутренней сети для маршрутизации.

При обсуждении проблем совместного использования одного или нескольких маршрутизируемых адресов многими машинами в немаршрутизируемой сети обычно предполагается, что пользователи имеют доступ к DSL (Digital Subscriber Line - цифровая абонентская линия) или кабельному модему. Но целевой рынок NAT не ограничивается пользователями выделенных соединений с Internet. Например, NAT или ICS могут с успехом использоваться во многих учебных центрах. Большинство средних и крупных компаний имеют один-два класса, в которых установлены сетевые компьютеры, используемые для учебных целей. Обычно этим компьютерам назначаются маршрутизируемые адреса, и корпоративные отделы IT, как правило, выделяют один или два маршрутизируемых адреса для учебного класса и разделяют их между немаршрутизируемыми машинами лаборатории. В большинстве лабораторий для разделения адресов используется маршрутизатор от Cisco Systems, но функции маршрутизации можно возложить и на сервер Windows 2000, сэкономив на стоимости специального устройства.

Разделение маршрутизируемого адреса с помощью ICS позволяет внутренним (немаршрутизируемым) компьютерам инициировать обмен данными с Internet, но не дает возможности другим компьютерам, подключенным к Internet, обращаться к внутренним машинам. Поэтому, хотя пользователь внутреннего компьютера может обратиться к внешнему Web-узлу, не следует использовать ICS для организации Web-сервера на одном из внутренних компьютеров с адресом из диапазона 192.168.0.0, так как подобный Web-узел будет недоступен для машин из открытой части Internet. Есть ли способ обойти это ограничение? Если внутренняя машина работает с ICS, то все попытки обречены на неудачу. Но, используя NAT, можно без труда предоставить внешним компьютерам доступ к ресурсам во внутренней сети. Конечно, если разделяемое соединение принадлежит учебной лаборатории, то данное ограничение ICS будет скорее достоинством, чем недостатком.

Метод организации доступа из Internet к внутреннему Web-серверу (почтовому серверу, FTP-серверу или серверу любого другого типа) в основном зависит от ответа на один вопрос: сколько маршрутизируемых IP-адресов имеется в распоряжении администратора сети? Сначала предположим, что имеется лишь один маршрутизируемый IP-адрес. В таком случае выбора нет: его необходимо назначить компьютеру, выполняющему функции маршрутизатора (ради простоты изложения я буду называть этот компьютер маршрутизатором).

Один из способов организовать общедоступный Web-сервер в случае с одним адресом - установить на компьютере-маршрутизаторе Microsoft IIS. Но возможно, администратор не захочет делать этого либо потому, что Windows 2000 и Windows NT не очень успешно справляются с выполнением разных задач на одной машине либо из-за того, что для работы сложного сайта нужна машина с большой вычислительной мощностью. Следует отметить, что наделить сервер Windows 2000 или NT более чем одной функцией трудно, если провайдер не предоставит фиксированный IP-адрес. Указывать динамический IP-адрес Web-сервера в DNS практически бессмысленно, так как информация DNS всегда будет устаревшей.

Предположим, что маршрутизатор имеет маршрутизируемый IP-адрес 206.246.253.9 и внутренний немаршрутизируемый адрес 192.168.0.1. Предположим также, что внутренний компьютер, на котором работает Web-сервер, имеет немаршрутизируемый адрес 192.168.0.10. Чтобы этот Web-сервер был из Internet, ему нужен маршрутизируемый адрес, но единственный маршрутизируемый адрес уже выделен маршрутизатору. Что делать?

NAT позволяет перенаправить трафик через определенный порт маршрутизатора в указанный порт компьютера внутренней сети. Web-соединения всегда устанавливаются с портом 80 Web-сервера, поэтому достаточно просто указать маршрутизатору на необходимость перенаправлять любые данные, входящие в порт 80 маршрутизатора, в порт 80 машины с адресом 192.168.0.10. В программном обеспечении NAT операционной системы Windows 2000 такие соединения порта с портом называются специальным портом (special port). Чтобы создать специальный порт в своей сети, я зарегистрировался на машине с адресом 206.246.253.9 и выбрал пункт меню Start\Programs\Administrative Tools\Routing and Remote Access. На экране появилось окно консоли управления Microsoft Management Console (MMC), в котором маршрутизируемая машина представлена пиктограммой с расположенным возле нее знаком "плюс". Щелчком на знаке "плюс" открываются параметры маршрутизатора.

Объекты, отображающие возможности маршрутизации, показаны на правой панели. Я открываю объект, помеченный IP Routing, содержащий значок Network Address Translation (NAT). Когда я щелкаю на нем мышью, на правой панели появляются и общедоступный (206.246.253.9) и частный (192.168.0.1) интерфейсы моего маршрутизатора. Затем, после щелчка правой кнопкой мыши на общедоступном интерфейсе, я выбираю пункт Properties и щелкаю на закладке Special Ports. Поскольку в маршрутизаторе пока нет специального порта, следует создать его, нажав Add. Появляется диалоговое окно Add Special Port. В диалоговом окне, показанном на Рисунке 1, нужно указать входной порт (Incoming port), частный адрес (Private address) и выходной порт (Outgoing port). Введя, соответственно, значения 80, 192.168.0.10 и 80, следует щелкнуть OK.

Вспомним, с какой целью производятся эти операции: запрос поступает в HTTP-порт маршрутизатора с адресом 206.246.253.9 (иными словами, запрос поступает по адресу 206.246.253.9:80, где 800 - HTTP-порт). Нужно, чтобы программа NAT перевела запрос в порт 80 на машине с адресом 192.168.0.10. По своему опыту могу сказать, что необходимость использовать различные входной и выходной порты возникает очень редко. Однако если по каким-то причинам требуется назначить Web-серверу на машине 192.168.0.10, например, порт 10000, то следует указать в поле Outgoing port значение 10000, и трафик из Internet - изначально направлявшийся в порт 80 - попадет в Web-сервер.

Возможности администратора расширяются, если удается приобрести у Internet-провайдера несколько дополнительных IP-адресов или отвоевать их у корпоративного отдела IT. Имея дополнительные IP-адреса, можно сделать следующий шаг к подключению внутренних машин к Internet. Если у провайдера получено несколько маршрутизируемых IP-адресов, то для работы с этими адресами на узле обязательно должен быть маршрутизатор. До сих пор предполагалось наличие всего одного IP-адреса, и обсуждалась только проблема использования функций маршрутизации Windows 2000 для обслуживания компьютеров в немаршрутизируемой сети. Но если имеется более одного маршрутизируемого адреса, то конфигурацию PC-маршрутизатора необходимо настроить так, чтобы он больше походил на традиционный IP-маршрутизатор - устройство, принимающее маршрутизируемый трафик для нескольких адресов, и затем распределяющее этот трафик между компьютерами подсети. Эту задачу в состоянии выполнить RRAS - начиная с версии 3.5, Windows NT может распределять трафик в подсети; правда, для маршрутизации трафика в Windows 2000 администратору придется научиться обходиться без привычной команды Route Add.

Если нужно локально соединить две подсети, как в учебной лаборатории, то маршрутизация не представляет трудностей - достаточно установить в PC-маршрутизатор две платы Ethernet. Но если имеется несколько IP-адресов, и нужно установить соединение с территориально распределенной сетью (WAN), то возникает другая проблема: как подключить маршрутизатор к Internet-провайдеру? Соединение с WAN может оказаться задачей не из легких. Для постоянной связи с провайдером можно использовать модемы, и конечно, подключить модем к машине Windows 2000 не составит труда. Поддержка коммутируемого соединения требует незаурядной ловкости, но такова цена, которую приходится платить за дешевый канал WAN. Если подключение к WAN выполнено через канал с ретрансляцией кадров или выделенную линию, то можно воспользоваться устройством, которое напрямую соединяет машину Windows 2000 с каналом WAN. Однако, насколько мне известно, способа напрямую подключить машину NT к линии DSL не существует, поэтому пользователи DSL могут оказаться в невыгодном положении.

Подключив маршрутизатор к обеим сетям, необходимо организовать статические маршруты. О том, как это сделать, а также о том, как "склеить" весь маршрутизируемый адрес с немаршрутизируемым адресом, будет рассказано в следующей статье.


Марк Минаси - старший внештатный редактор Windows 2000 Magazine, MCSE и автор книги "Mastering Windows 2000 Server". Он пишет статьи и выступает по всему миру с лекциями о сетевых технологиях Windows 2000 и Windows NT. С ним можно связаться по адресу: help@minaci.com.