Мобильные сетевые вычисления

Хотя Internet распространен практически повсеместно, эффективный доступ к нему обычно осуществляется из фиксированных точек, скажем из дома, офиса, гостиницы, учебного учреждения и т. п. Однако уже сегодня различные сетевые устройства, обеспечивающие доступ к Internet, такие, как PDA, HPC и цифровые сотовые телефоны, начинают менять наши представления о нем.

Мобильный протокол Internet (Mobile IP) является расширением IP, которое позволяет поддерживать мобильный хост (Mobile Host — MH). Напомним, что существующая версия IP предполагает, что точка подсоединения хоста к сети остается неизменной в течение сеанса работы, и IP-адрес идентифицирует определенную сеть. Всякий раз, когда мобильный хост входит в зону действия другой сети (речь идет о беспроводном доступе), сеанс связи с Internet прерывается и для его возобновления необходимо реконфигурировать настройки броузера. Для многих приложений это — неприемлемое решение. Mobile IP позволяет не прерывать работу и не изменять фиксированный адрес "прописки" движущегося хоста.

Mobile IP (RFC 2002), стандарт, предложенный рабочей группой IETF, решает проблему, позволяя мобильному узлу использовать два IP-адреса: присвоенный мобильному узлу фиксированный домашний адрес (home address) и адрес для передачи (Care-of Address — COA), который изменяется по мере передвижения и, соответственно, подключения мобильного узла от одной сети к другой.

Как работает Mobile IP

Сначала обратимся к упрощенной схеме маршрутизации IP-пакетов. От источника к получателю пакеты следуют через цепочку транзитных маршрутизаторов, каждый из которых передает их от входного интерфейса (порта) к выходному согласно имеющейся таблице маршрутизации. Последняя содержит адрес ближайшего транзитного маршрутизатора (и, следовательно, адрес соответствующего выходного интерфейса) для каждого номера сети, входящей в сферу ответственности текущего маршрутизатора. Номер сети, к которой подключен узел-получатель, извлекается из IP-адреса пакета посредством маскирования младших битов. Сетевой уровень протокола TCP/IP предусматривает, что соединение между конечными точками определяется их IP-адресами и номерами портов. И для управления передачей необходимо, чтобы эта информация оставалась постоянной — изменение любого адреса ведет к разрыву соединения. С другой стороны, доставка пакетов мобильному узлу должна выполняться по адресу, определяемому номером сети, к которой тот в данный момент подсоединен. А мобильный IP-адрес узла изменяется всякий раз, когда он подсоединяется к новой сети, т. е. для правильной маршрутизации пакета необходим новый IP-адрес точки подключения.

Выше мы уже ввели понятия домашнего адреса и адреса для передачи. Определим еще ряд понятий, которыми будем оперировать в дальнейшем. Протокол Mobile IP требует существования сетевого узла, в данном случае маршрутизатора, известного как домашний агент (Home Agent — HA). Он содержит список зарегистрированных мобильных узлов этой домашней сети. Локальная сеть (не домашняя), к которой в настоящий момент подключен мобильный узел, называется внешней сетью (Foreign Network — FN). Необходимую информацию о мобильном узле, подсоединенном к внешней сети, доставляет домашнему агенту маршрутизатор, называемый внешним агентом (Foreign Agent — FA).

Всякий раз, когда мобильный узел подключается к внешней сети, он регистрирует свой адрес для передачи (COA) у домашнего агента. Заметим, что возможна регистрация с несколькими адресами для передачи. Функции передачи запроса на регистрацию и получение ответа от домашнего агента, как правило, выполняются с помощью внешнего агента. Мобильный хост находится в зоне обслуживания в течение отрезка времени после процедуры регистрации и до момента предопределенного окончания времени обслуживания. Пакеты, предназначенные для мобильного узла, направляются по адресу его домашней сети, а домашний агент перенаправляет их по адресу для передачи, который и служит IP-адресом назначения. Такое изменение известно как процедура переадресации. По прибытии пакета по адресу для передачи выполняется обратное преобразование, и ему снова присваивается домашний IP-адрес мобильного узла. Когда этот последний получает пакет с корректным IP-адресом, то он будет правильно обработан протоколом TCP или любым другим протоколом более высокого уровня.

Переадресация в Mobile IP выполняется посредством конструирования пакета с новым заголовком, который содержит адрес для передачи мобильного узла в качестве IP-адреса получателя. Эта операция носит название инкапсуляции, или туннелирования.

Наилучшего понимания сущности Mobile IP можно добиться, рассматривая его как кооперацию трех отдельных механизмов:

  • обнаружение адреса для передачи (discovering the COA);
  • регистрация адреса для передачи (registration the COA);
  • туннелирование с использованием адреса для передачи (tunneling to the COA).

Остановимся подробнее на этих механизмах.

Обнаружение адреса для передачи

Процесс обнаружения строится на вершине существующего стандартного протокола, известного как Router Discovery Protocol (RDP). Этот протокол предназначен для информирования хостов о существующих маршрутизаторах. Он заменяет имеющиеся на хостах протоколы перехвата маршрутной информации, такие, как протокол маршрутной информации RIP. Протокол RDP состоит из двух частей: серверной, которая работает на маршрутизаторах, и клиентской, выполняющейся на хостах. Маршрутизатор извещает хост о своем существовании посредством многоадресной или широковещательной рассылки по каждому из доступных ему интерфейсов сообщения Router Advertisement (RA). Это сообщение включает в себя список адресов всех маршрутизаторов, доступных по данному интерфейсу.

Mobile IP не изменяет информацию в существующих полях RA, а просто расширяет их для выполнения мобильных функций. Такое расширенное сообщение, содержащее один или более адресов для передачи, называется объявляющим агентом (agent advertisement). Домашние и внешние агенты обычно передают широковещательные сообщения agent advertisement через регулярные интервалы времени (например, одно в секунду или в несколько секунд). Если же мобильному узлу необходимо получить адрес для передачи и он не желает ждать прихода периодического agent advertisement, то он может послать широковещательный запрос, на который ответит какой-нибудь внешний или домашний агент, получивший его. Таким образом, agent advertisement выполняет следующие функции:

  • позволяет обнаружить мобильных агентов (домашних или внешних);
  • предоставляет один или больше имеющихся адресов для передачи;
  • информирует мобильный узел о специфических особенностях, присущих внешним агентам, например альтернативный механизм инкапсуляции;
  • позволяет мобильным узлам определять номер сети и статус их канала связи с Internet;
  • дает возможность мобильному узлу установить, является ли мобильный агент домашним, внешним или и тем и другим, и таким образом узнать, к какой сети он подключен — домашней или внешней.

Мобильные узлы используют запросы к маршрутизаторам, называемым agent solicitation, для определения каких-либо изменений в наборе мобильных агентов в данной точке подключения. Если, например, мобильный узел перестает получать объявления от внешнего агента, который ранее предоставлял ему адрес для передачи, то он считает, что внешний агент находится вне области доступа его сетевого интерфейса. В этой ситуации мобильный узел должен начать "охоту" за новым адресом для передачи или использовать адрес, известный ему из других получаемых объявлений.


Регистрация адреса для передачи

Рис. 1

Если мобильный узел располагает адресом для передачи, то его домашний агент должен об этом узнать, для чего и служит процесс регистрации (рис. 1). Он начинается с того, что мобильный узел, возможно, с помощью внешнего агента направляет запрос на регистрацию, содержащий его адрес для передачи. После получения данного запроса домашний агент помещает необходимую информацию в свою маршрутную таблицу и отправляет ответ о регистрации мобильному узлу.

Регистрационный запрос содержит параметры и флаги, характеризующие туннель, по которому домашний агент будет доставлять пакеты по адресу для передачи. Приняв запрос о регистрации, он связывает адрес домашней сети мобильного узла с его адресом для передачи и поддерживает эту связь вплоть до истечения "времени жизни" регистрации (registration lifetime). Триплет, содержащий домашний адрес, адрес для передачи и время жизни регистрации, называется привязкой (binding). Регистрационный запрос может рассматриваться как запрос на обновление привязки, посылаемый мобильным узлом.

Запрос на обновление привязки является примером удаленной переадресации (remote redirection), поскольку он направляется удаленным узлом домашнему агенту для изменений в его маршрутной таблице. Такой вид регистрации делает очевидным необходимость аутентификации. Домашний агент должен быть уверен, что запрос послан именно определенным мобильным узлом, а не каким-либо злоумышленником. Безопасность поддерживается с помощью техники Message Digest 5 (RFC 1321), в которую мы здесь не будем углубляться.


Туннелирование с использованием адреса для передачи

Рис. 2

Mobile IP предполагает, что по умолчанию всеми мобильными агентами должен поддерживаться механизм IP-within-IP (IP внутри IP). Применяя его, домашний агент (начало туннеля) помещает новый IP-заголовок (tunnel header) в начало IP-заголовка любого пакета, направляемого по домашнему адресу мобильного узла (рис. 2). Новый заголовок содержит адрес для передачи в качестве IP-адреса получателя (конец туннеля), в то время как IP-адресом источника служит адрес домашнего агента. Заголовок инкапсулированного пакета использует значение "4" в качестве номера протокола более высокого уровня, указывая тем самым, что следующий заголовок в протоколе снова является IP-заголовком. Основной же (постоянный) IP-адрес хранится как составляющая полезных данных. Поэтому, чтобы восстановить оригинальный пакет, внешний агент должен просто удалить туннельный заголовок и доставить оставшуюся часть мобильному узлу.

Конечно же, до окончательного утверждения стандарта предстоит решить еще много проблем, в частности обеспечение необходимого уровня безопасности и оптимизация алгоритмов маршрутизации. Однако IETF продолжает усиленно работать над их устранением, и, возможно, не в таком уж далеком будущем мобильный пользователь сможет получить доступ к Internet, не дожидаясь прибытия в отель, офис или другое место стационарного подключения.