Мобильное подключение по протоколу IPv6. Принципы работы механизма "Mobile IPv6"


Д.И. Сидельников


Мобильные пользователи Интернета

По оценкам экспертов в ближайшие годы продолжится бурный рост рынка мобильного доступа в Интернет. Этот рост объясняется стечением целого ряда благоприятных обстоятельств:


Оценка рыночных перспектив различных технологий беспроводного доступа — это тема отдельного исследования, поэтому здесь мы приведем лишь один прогноз [1], который, однако, позволит нам представить себе масштаб происходящего на наших глазах процесса "мобилизации": по мнению экспертов из BT Cellnet, к 2003 г. количество владельцев мобильных радиоустройств, поддерживающих WAP, в мире достигнет полумиллиарда! Только в странах Европы к началу 2001 года уже насчитывалось более 240 млн. абонентов сотовых сетей мобильной связи (Рисунок 1).



Рис. 1. Динамика абонентской базы сотовых систем связи в Европе.

Следует также учесть, что мобильный доступ вовсе не исчерпывается только беспроводными технологиями. Например, возьмем ноутбук, который, будучи подключенным к Интернету, где бы то ни было (в гостинице, в поезде или в конференц-зале), и по любой технологии (будь то Ethernet, коммутируемое модемное соединение или WAP), ведет себя (с точки зрения пользователя) точно так же, как если бы Вы подключили его к Интернету обычным способом у себя дома или в офисе: всегда сохраняет свой "домашний" адрес, и пакеты, отправленные по этому адресу, доставляются данному устройству независимо от того, находится ли оно дома или на другом конце земного шара. Такое подключение также с полным правом можно назвать мобильным.

1. Краткая характеристика различных подходов к обеспечению работы мобильных пользователей Интернета

Существует большое разнообразие способов обеспечения мобильности пользователей Интернета, но все их можно условно разделить на три группы, в зависимости от того, на каком уровне семиуровневой модели OSI работают их механизмы, обеспечивающие мобильность. Таблица 1 содержит краткую характеристику различных типов мобильности.

Локальная мобильность
Микромобильность
Макромобильность
Обеспечивается на физическом уровне модели OSI. Примером может служить мобильность в пределах зоны действия одного устройства доступа к беспроводной сети (в пределах одной соты).Обеспечивается на канальном уровне модели OSI. Многие современные беспроводные технологии поддерживают конфигурации с несколькими точками доступа в пределах одной ЛВС и обеспечивают непрерывность связи при перемещении между зонами действия различных точек доступа (между сотами).Обеспечивается на сетевом уровне модели OSI. Мобильность такого типа позволяет поддерживать непрерывную связь, не только в пределах одной ЛВС, но и перемещаясь из одной сети доступа в другую(Рисунок 2). Эти механизмы одинаково хорошо работают как в гомогенном, так и в гетерогенном сетевом окружении. Перемещения мобильного устройства остаются при этом прозрачными (незаметными) для протоколов транспортного и вышележащих уровней.
Табл. 1. Классификация механизмов обеспечения мобильности.

Рассматриваемый в этой статье механизм поддержки мобильности в рамках протокола IPv6 ("Mobile IPv6") [2] относится к третьему типу: он обеспечивает макромобильность.




Рис. 2. Микромобильность vs. Макромобильность.

Если бы протокол IPv6 не имел специального механизма поддержки мобильности, то пакеты, адресованные мобильному узлу, не могли бы достичь своего пункта назначения, коль скоро указанный мобильный узел в данный момент оказался за пределами своей "домашней" подсети, поскольку маршрутизация пакета определяется префиксом подсети, соответствующим адресу назначения IPv6 пакета. Для того, чтобы поддерживать связь с другими узлами, несмотря на свои перемещения, мобильный узел мог бы изменять свой IP адрес всякий раз, как происходит переход в другую подсеть, но тогда мобильный узел не смог бы при таком переходе сохранить существующие соединения транспортного и более высоких уровней. Поддержка мобильности в рамках IPv6 особенно важна, поскольку в эпоху протокола IPv6 мобильные компьютеры, вероятно, будут составлять большинство или, по меньшей мере, значительную долю узлов сети Интернет.

Механизм "Mobile IPv6" позволяет мобильному узлу переключаться с одного канала связи на другой, не меняя своего IP адреса. Мобильный узел всегда доступен по своему "домашнему" адресу: IP адресу, присвоенному мобильному узлу в пределах его "домашней" подсети. Пакеты, направленные по такому адресу, доставляются мобильному узлу независимо от того, где в данный момент этот узел подключен к Интернету. Изменение точки подключения не приводит к разрыву установленных ранее соединений с другими (стационарными или мобильными) узлами. Таким образом, перемещение мобильного узла из "домашней" подсети в другую подсеть остается незаметным как для протоколов верхних уровней (начиная с транспортного), так и для прикладных программ.


2. Сравнительный анализ механизмов поддержки мобильного подключения в сетях IPv6 и IPv4

Механизм поддержки мобильного подключения в сетях IPv6 ("Mobile IPv6") появился в результате органичного синтеза того опыта, который был получен в ходе разработки аналогичного механизма ("Mobile IPv4") для сетей IPv4 [3, 4, 5], а также новых возможностей и свойств самого протокола IPv6. Таким образом, "Mobile IPv6" имеет много общего с ôMobile IPv4ö, но, в отличие от сетей IPv4, поддержка "мобильности" в рамках IPv6 полностью интегрирована в стек протокола IP и обладает существенными преимуществами, по сравнению с "Mobile IPv4". Ниже перечислены основные различия между "Mobile IPv4" и "Mobile IPv6".



Рис. 3. Проблема "треугольной маршрутизации".

3. IPv6 как технологическая основа мобильного Интернета

Протокол IPv6 можно рассматривать как фундамент всеобъемлющей универсальной Сети будущего (Рисунок 4), воплощающей лозунг: "К Сети подключены Все, Всегда и Повсюду!" Такая важная роль этого протокола объясняется очень полезными свойствами, присущими IPv6. Эти свойства хорошо известны [8]:



Рис. 4. IPv6 - основа Сети будущего.

По сравнению с IPv4, в IPv6 длина IP-адреса увеличена сразу в четыре раза – до 16 октетов (128 битов). Это, помимо прочих положительных сторон, позволяет устранить одну из главных причин использования неуникальных адресов в Интернет, а именно: их недостаточность. Количество уникальных IPv6-адресов составляет примерно 3.41038. Если бы каждому жителю Земли выделили количество адресов IPv6, соответствующее теоретической емкости всего IPv4 Интернета, то и тогда адресное пространство IPv6 осталось бы практически неиспользованным.

Советом по архитектуре сети Интернет (IAB – Internet Architecture Board) и Группой управления проектированием Интернета (IESG) был одобрен документ IETF [16], в котором рекомендуется каждому конечному пользователю выделять адресное пространство фиксированного размера, соответствующее префиксу подсети длиной 48 битов (возможные исключения рассмотрены ниже). Другими словами, рекомендуется всем пользователям, подключающимся по протоколу IPv6, выделять по 280 адресов, что позволяет пользователю развернуть свою сетевую инфраструктуру (уровня сайта), состоящую, к примеру, из 65536 локальных подсетей, к каждой из которых может быть подключено более 1.8À1019 (!!!) устройств.

Рекомендуемая [16] политика выделения адресного пространства IPv6 для конечных пользователей максимально учитывает следующие факторы:


На первый взгляд может показаться, что предлагаемый подход приведет к неэффективному расходованию адресного пространства IPv6, но, на самом деле, это не так.

Для количественной оценки эффективности использования адресного пространства существует специальный показатель H, вычисляемый по следующей формуле [17]:




Этот показатель может теоретически принимать значения в интервале от 0 до 0.30103 (log102). Чем больше значение H, тем эффективнее используется адресное пространство, и тем меньше остается неиспользованных адресов. Нехватка адресов может стать на повестку дня при значениях показателя H в интервале от 0.14 (пессимистическая оценка) до 0.26 (оптимистическая оценка).

В случае предлагаемой выше схемы распределения адресов количество битов, доступных для адресации 48 битных префиксов пользовательских сетей равно 45 (48–3). Таким образом, прежде чем величина H достигнет критического значения 0.26, сервисами сети IPv6 будут пользоваться более 500 миллиардов абонентов!

Наконец, следует помнить, что сейчас в качестве агрегируемых глобальных индивидуальных адресов IPv6 используются только адреса, у которых старшие 3 бита имеют значение 001. Следовательно, примерно 85% адресного пространства IPv6 пока не используются и могут быть задействованы позже в рамках иной, более строгой политики распределения.

4. Технические аспекты механизма поддержки мобильного подключения в рамках протокола IPv6

4.1. Терминология

4.1.1. Общие термины

IP - Интернет протокол версии 6 (IPv6).

Узел - Устройство, поддерживающее протокол IP.

Маршрутизатор (роутер) - Узел, который пересылает пакеты, адресованные другим узлам.

Хост - Любой узел, не являющийся роутером.

Канал связи (линк) - Средство связи или среда передачи сигналов, позволяющая узлам взаимодействовать на канальном уровне (к примеру, Ethernet). Канальный уровень располагается непосредственно под уровнем IP.

Интерфейс - Средство подключения узла к каналу связи.

Префикс подсети - Строка битов, представляющая собой N первых (старших) разрядов IP адреса в двоичном представлении, где N – целое число, задающее длину префикса.

Идентификатор интерфейса - Число, служащее для идентификации определенного интерфейса данного узла в пределах конкретного канала связи. Это число представляет собой те младшие разряды IP адреса, которые не вошли в префикс подсети. Идентификатор интерфейса должен быть уникальным в пределах данного канала связи.

Адрес на канальном уровне - Адрес интерфейса, используемый протоколами канального уровня (например, для сетей Ethernet это IEEE 802 адрес).

Пакет - IP заголовок + полезная нагрузка (payload).

4.1.2. Специфичные термины

"Домашний" адрес - IP адрес, присваиваемый мобильному узлу в пределах "домашнего" линка.

Префикс "домашней" подсети - Префикс подсети, соответствующий "домашнему" адресу мобильного узла.

"Домашний" линк - Линк, на котором развернута IP подсеть, префикс которой совпадает с префиксом "домашней" подсети для данного мобильного узла. Стандартные схемы IP маршрутизации направляют в сторону "домашнего" линка данного мобильного узла пакеты, посылаемые на его "домашний" адрес.

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

Перемещение - Такое изменение места подключения мобильного узла к Интернету, при котором происходит смена линка, используемого для подключения узла. Если мобильный узел в данный момент не подключен непосредственно к "домашнему" линку, то говорят, что мобильный узел находится "вне дома" ("away from home").

Узел-корреспондент - Узел, взаимодействующий (обменивающийся трафиком) с данным мобильным узлом. Узел-корреспондент может быть как мобильным, так и стационарным.

Префикс "чужой" (foreign) подсети - Любой IP префикс, кроме префикса "домашней" подсети.

"Чужой" (foreign) линк - Любой линк, кроме "домашнего" для данного мобильного узла.

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

"Гостевой" адрес - IP адрес, присваиваемый мобильному узлу при подключении к "чужому" линку; префиксом подсети для этого IP адреса является префикс "чужой" подсети. Среди нескольких "гостевых" адресов, которые могут быть у мобильного узла в данный момент времени (например, в случае одновременного подключения сразу к нескольким линкам), только один — тот, который зарегистрирован на агенте "домашней" подсети, — называется основным (ôprimaryö) "гостевым" адресом.

"Привязка" (binding) - Установление и поддержка соответствия между "домашним" и "гостевым" адресом мобильного узла с учетом определенного срока действия (lifetime) этого соответствия.

4.2. Принцип функционирования механизма поддержки мобильного подключения по IPv6

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




Рис. 5. Мобильный узел подключен к своей "домашней" подсети.

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

Ассоциирование "домашнего" адреса с текущим значением "гостевого" адреса называется "привязкой" (binding) мобильного узла. Как правило, мобильный узел получает свой "гостевой" адрес, используя механизмы автоконфигурации (без фиксации [10] или с фиксацией [18] состояния), в соответствии с протоколом "обнаружения соседа"[9]. Допустимо использование и других методов присвоения мобильному узлу "гостевого" адреса (например, статическое выделение администратором данного конкретного линка определенного адреса по предварительному соглашению).

Оказавшись "вне дома" (Рисунок 6), мобильный узел регистрирует на маршрутизаторе "домашнего" линка один из своих "гостевых" адресов, предлагая маршрутизатору взять на себя функции агента "домашней" подсети для мобильного узла. Мобильный узел осуществляет регистрацию привязки, направляя агенту "домашней" подсети пакет, содержащий опцию "Обновление привязки" (ôBinding Updateö); агент "домашней" сети в ответ посылает мобильному узлу пакет, содержащий опцию "Подтверждение привязки" ("Binding Acknowledgement”).




Рис. 6. Мобильный узел регистрирует свой "гостевой" адрес.

"Гостевой" адрес, содержащийся в "привязке" и зарегистрированный агентом, называется основным "гостевым" адресом. В дальнейшем агент "домашней" подсети, используя прокси режим в рамках протокола "обнаружения соседа"[9], перехватывает на "домашнем" линке все IPv6 пакеты, отправленные на "домашний" адрес (или "домашние" адреса) данного мобильного узла, перенаправляет их по туннелю на основной "гостевой" адрес узла (Рисунок 7). Пересылка по туннелю выполняется следующим образом: каждый перехваченный пакет помещается агентом в поле полезной нагрузки другого пакета, используя метод IPv6 инкапсуляции [19]. При этом IPv6 заголовок внешнего пакета в поле адреса назначения содержит основной "гостевой" адрес мобильного узла.



Рис. 7. Использование туннеля для доставки данных мобильному узлу, находящемуся "вне дома".

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



Рис. 8. Оптимизация обмена данными с мобильным узлом.

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

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

Может так случиться, что, пока мобильный узел находится "вне дома", конфигурация некоторых узлов "домашней" подсети может измениться, так что в результате роль агента "домашней" подсети может перейти от прежнего маршрутизатора к другому маршрутизатору. В этом случае мобильный узел может не знать нового адреса своего агента "домашней" подсети. "Mobile IPv6" предусматривает механизм "динамического определения адреса агента "домашней" подсети", позволяющий мобильному узлу динамически отслеживать IP адрес агента, на котором мобильный узел может в данный момент зарегистрировать свой "гостевой" адрес.

5. Заключение

Механизм поддержки мобильного подключения ("Mobile IPv6") полностью интегрирован в стек протокола IPv6 и, следовательно, "понятен" абсолютно всем узлам, работающим по протоколу IPv6.

Используя метод "обнаружения соседа"[9], IPv6-узел может подключиться к любой доступной ему в данном месте подсети, найти сервер автоконфигурации без фиксации состояния и сконфигурировать себя для последующей работы в сети, – и все это без вмешательства человека. Более того, "Mobile IPv6" позволяет мобильному узлу перемещаться из одной подсети в другую, сохраняя при этом свой IP адрес неизменным. При этом для прикладных программ такие перемещения, вообще, незаметны. Указанные функции способствуют получению реального доступа к сети с высокой степенью готовности (plug-and-play network access) и существенно снижают расходы на эксплуатацию сети.

Литература

1. "Мир Билайн", 2000, №5 (24), стр. 30.

2. David B. Johnson, Charles Perkins, "Mobility Support in IPv6", Internet Draft, draft-ietf-mobileip-ipv6-13.txt, November 2000.

3. Charles Perkins, "IP Encapsulation within IP", RFC 2003, October 1996.

4. Charles Perkins, editor, "IP Mobility Support", RFC 2002, October 1996.

5. Charles Perkins, "Minimal Encapsulation within IP”, RFC 2004, October 1996.

6. Charles Perkins and David B. Johnson, "Route Optimization in Mobile IP”, Work in progress.

7. Paul Ferguson and Daniel Senie, "Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing”, RFC 2267, January 1998.

8. А.С. Мендкович, Д.И. Сидельников, "IPv6 – новый этап развития Интернета", Информационное общество, №4, 2000, стр. 11-22.

9. T. Narten, E. Nordmark, W. Simpson, "Neighbor Discovery for IP Version 6 (IPv6)”, RFC 2461, December 1998.

10. S. Thomson, T. Narten, "IPv6 Stateless Address Autoconfiguration”, RFC 2462, December 1998.

11. Stephen Kent and Randall Atkinson, "IP Authentication Header”, RFC 2402, November 1998.

12. Stephen Kent and Randall Atkinson, "IP Encapsulating Security Payload (ESP)”, RFC 2406, November 1998.

13. Stephen Kent and Randall Atkinson, "Security Architecture for the Internet Protocol”, RFC 2401, November 1998.

14. David C. Plummer, "An Ethernet Address Resolution Protocol: Or Converting Network Protocol Addresses to 48.bit Ethernet Addresses for Transmission on Ethernet Hardware”, RFC 826, November 1982.

15. D. Johnson, S. Deering, "Reserved IPv6 Subnet Anycast Addresses”, RFC 2526, March 1999.

16. IETF, "IAB/IESG Recommendations on IPv6 Address Allocations”, September 2000.

17. C. Huitema, "The H Ratio for Address Assignment Efficiency”, RFC 1715, November 1994.

18. Jim Bound and Charles Perkins, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)”, February 1999. Work in progress.

19. A. Conta, S. Deering, "Generic Packet Tunneling in IPv6 Specification”, RFC 2473, December 1998.


Сидельников Дмитрий Иванович - ведущий специалист Научно-образовательной сети FREEnet.


© Информационное общество, 2001, вып. 5, с. 14-23.