О журнале
Рекомендации
Мобильное подключение по протоколу IPv6. Принципы работы механизма "Mobile IPv6"
Сидельников Д.И.
Д.И. Сидельников
Мобильные пользователи Интернета
По оценкам экспертов в ближайшие годы продолжится бурный рост рынка мобильного доступа в Интернет. Этот рост объясняется стечением целого ряда благоприятных обстоятельств:
- За последние 2-3 года был достигнут существенный прогресс в области совершенствования технологий беспроводного доступа к Сети. Приняты новые стандарты и разработаны (или усовершенствованы) протоколы физического и канального уровней (IEEE 802.11, GPRS, WAP 1.1, Bluetooth и пр.), улучшилась совместимость устройств от разных производителей.
- Достижения в микроэлектронике и в смежных областях позволили, наряду с относительным удешевлением мобильных устройств, существенно улучшить их потребительские свойства: уменьшить вес и габариты, поднять производительность и интеллектуальные возможности, увеличить емкость памяти и сократить энергопотребление.
- Продолжающийся (в первую очередь в развитых странах) процесс формирования "Информационного общества" приводит к дальнейшему росту доли людей, работающих вне офиса (и вне дома). В то же время, ускорение экономических процессов делает своевременное получение актуальной информации жизненно важным для любого бизнеса. С другой стороны, в Интернете уже есть контент-ресурсы, представляющие интерес для различных категорий мобильных пользователей: курсы валют, котировки акций, географические карты, схемы городов, расписания транспорта и пр. Таким образом, востребованность услуги мобильного доступа обеспечена.
Оценка рыночных перспектив различных технологий беспроводного доступа — это тема отдельного исследования, поэтому здесь мы приведем лишь один прогноз [1], который, однако, позволит нам представить себе масштаб происходящего на наших глазах процесса "мобилизации": по мнению экспертов из BT Cellnet, к 2003 г. количество владельцев мобильных радиоустройств, поддерживающих WAP, в мире достигнет полумиллиарда! Только в странах Европы к началу 2001 года уже насчитывалось более 240 млн. абонентов сотовых сетей мобильной связи (Рисунок 1).
Рис. 1. Динамика абонентской базы сотовых систем связи в Европе.
Следует также учесть, что мобильный доступ вовсе не исчерпывается только беспроводными технологиями. Например, возьмем ноутбук, который, будучи подключенным к Интернету, где бы то ни было (в гостинице, в поезде или в конференц-зале), и по любой технологии (будь то Ethernet, коммутируемое модемное соединение или WAP), ведет себя (с точки зрения пользователя) точно так же, как если бы Вы подключили его к Интернету обычным способом у себя дома или в офисе: всегда сохраняет свой "домашний" адрес, и пакеты, отправленные по этому адресу, доставляются данному устройству независимо от того, находится ли оно дома или на другом конце земного шара. Такое подключение также с полным правом можно назвать мобильным.
1. Краткая характеристика различных подходов к обеспечению работы мобильных пользователей Интернета
Существует большое разнообразие способов обеспечения мобильности пользователей Интернета, но все их можно условно разделить на три группы, в зависимости от того, на каком уровне семиуровневой модели OSI работают их механизмы, обеспечивающие мобильность. Таблица 1 содержит краткую характеристику различных типов мобильности.
Локальная мобильность | Микромобильность | Макромобильность |
Обеспечивается на физическом уровне модели OSI. Примером может служить мобильность в пределах зоны действия одного устройства доступа к беспроводной сети (в пределах одной соты). | Обеспечивается на канальном уровне модели OSI. Многие современные беспроводные технологии поддерживают конфигурации с несколькими точками доступа в пределах одной ЛВС и обеспечивают непрерывность связи при перемещении между зонами действия различных точек доступа (между сотами). | Обеспечивается на сетевом уровне модели OSI. Мобильность такого типа позволяет поддерживать непрерывную связь, не только в пределах одной ЛВС, но и перемещаясь из одной сети доступа в другую(Рисунок 2). Эти механизмы одинаково хорошо работают как в гомогенном, так и в гетерогенном сетевом окружении. Перемещения мобильного устройства остаются при этом прозрачными (незаметными) для протоколов транспортного и вышележащих уровней. |
Рассматриваемый в этой статье механизм поддержки мобильности в рамках протокола 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".
- Поддержка механизма, известного в "Mobile IPv4" под названием ôОптимизация маршрута (Route Optimization)ö [6], является теперь неотъемлемой, фундаментальной составляющей протокола IPv6, а не надстройкой, базирующейся на множестве дополнительных опций протокола IPv4, необязательно поддерживаемых всеми узлами сети, как в случае "Mobile IPv4". Интеграция механизма "оптимизации маршрута" в ядро протокола IPv6 означает обязательную поддержку его всеми узлами сети IPv6, а это, в свою очередь, позволяет маршрутизировать трафик между любым мобильным узлом и любым другим узлом напрямую, а не через агента "домашней" подсети, подключенного непосредственно к подсети, являющейся "домашней" для данного мобильного устройства. Таким образом решается проблема "треугольной маршрутизации", присущая протоколу "Mobile IPv4"4 и состоящая в том, что трафик от мобильного узла маршрутизируется напрямую к узлу назначения, а обратный трафик направляется сначала в "домашнюю" подсеть данного мобильного узла, и только затем агент "домашней" подсети перенаправляет этот трафик к местонахождению мобильного узла в данный момент (Рисунок 3).
- Функции "оптимизации маршрута" и "регистрации" мобильного узла в сети IPv6 осуществляются в рамках единого протокола, а не двумя различными специализированными протоколами, как в случае "Mobile IPv4".
- В стек протокола IPv6 интегрирована поддержка механизмов, обеспечивающих "мирное" сосуществование мобильных узлов и маршрутизаторов, выполняющих фильтрацию входящего трафика в точках доступа к сети ("ingress filtering") [7]. Мобильный узел в заголовке посылаемых IP пакетов заполняет теперь поле "адрес источника" своим "гостевым" (care-of) адресом, что позволяет этим пакетам нормально проходить через маршрутизаторы, фильтрующие входящий в сеть трафик. "Домашний" адрес мобильного узла передается внутри пакета опцией ""домашний" адрес", делая использование "гостевого" адреса на IP уровне прозрачным для протоколов вышележащих уровней. Способность правильно обрабатывать принимаемые пакеты, содержащие опцию ""домашний" адрес", является обязательной для всех узлов сети IPv6 независимо от того, является ли узел мобильным или стационарным, хостом или маршрутизатором.
- Использование "гостевого" адреса в качестве адреса источника в IP заголовке каждого пакета позволяет также упростить маршрутизацию пакетов с групповым адресом назначения [8] (мультикаст-пакетов), посылаемых мобильным узлом. В рамках протокола "Mobile IPv4" мобильный узел должен был направлять свои мультикаст-пакеты по туннелю в адрес своего агента "домашней" подсети, чтобы узел мог использовать свой "домашний" адрес в качестве адреса источника этих мультикаст-пакетов. Это ограничение вызвано особенностями маршрутизации групповых потоков: каждый мультикаст-пакет, поступивший на вход одного из сетевых интерфейсов маршрутизатора, проходит проверку на соответствие "обратного" пути (RPF check). В общем случае ключевое условие этой проверки состоит в том, что интерфейс, принявший данный групповой пакет, должен в то же время оказаться (на момент проверки) выходным интерфейсом для трафика, адресованного источнику проверяемого пакета (в соответствии с указанным в заголовке пакета адресом источника). В случае же "Mobile IPv6" применение опции ""домашний" адрес" делает возможным использование мобильным узлом своего "домашнего" адреса, не нарушая при этом нормальной схемы маршрутизации группового трафика.
- В случае "Mobile IPv6" отпадает потребность в установке специализированных маршрутизаторов, типа использовавшихся в "Mobile IPv4" "foreign agents". В сети IPv6 мобильные узлы для самонастройки и адаптации к меняющимся условиям подключения к "чужой" подсети используют такие присущие протоколу IPv6 функции, как процедура "обнаружения соседей" (Neighbor Discovery) [9] и автоматическая конфигурация адреса (Address Autoconfiguration) [10], и для своего функционирования не требуют от локального маршрутизатора какого-либо специального сервиса.
- В отличие от "Mobile IPv4", все процедуры в рамках "Mobile IPv6" применяют протокол IPsec [11, 12, 13] для обеспечения всех необходимых требований к уровню сетевой безопасности и защищенности. Этот протокол используется для аутентификации источника, для защиты целостности пересылаемых данных, а также для защиты от повторных транзакций и связанных с ними "подыгрывающих" (replay) атак при обмене служебными сообщениями "Binding Update". Эти сообщения в IPv6 реализуют функции, которым в "Mobile IPv4" соответствуют и ôрегистрацияö, и ôоптимизация маршрутаö. В рамках "Mobile IPv4" для этих целей используются собственные механизмы безопасности, основанные на статически сконфигурированных "защищенных связях" ("mobility security associations").
- Механизм обнаружения перемещений узла (movement detection mechanism), встроенный в "Mobile IPv6", отслеживает наличие двусторонней связи между мобильным узлом и маршрутизатором "по умолчанию" в месте текущего подключения данного узла: пакеты, посылаемые маршрутизатором мобильному узлу, доходят до узла, и, наоборот, пакеты, посылаемые узлом, достигают маршрутизатора. Это позволяет регистрировать и устранять ситуации типа "черная дыра", которые могут возникать в некоторых беспроводных сетях, когда качество канала, связывающего мобильный узел с маршрутизатором, сильно зависит от направления передачи данных. При этом, если мобильный узел оказывается вне зоны уверенной беспроводной связи с прежним маршрутизатором, узел может попытаться найти другой маршрутизатор (и другую точку подключения) и сменить свой "гостевой" адрес. В рамках же протокола "Mobile IPv4", в отличие от IPv6, предусмотрено подтверждение наличия связи только в прямом направлении (от маршрутизатора до узла), что делает возможным длительное существование ситуаций типа "черная дыра". Такая ситуация может возникнуть, если при наличии удовлетворительной связи в прямом направлении, связь в обратном направлении (от узла до маршрутизатора) сильно затруднена или отсутствует вовсе.
- В сетях IPv6 в большинстве пакетов, посылаемых мобильному узлу, находящемуся в данный момент вне своей "домашней" подсети, вместо IP инкапсуляции применяется дополнительный заголовок "Routing header", в то время как протокол "Mobile IPv4" должен использовать инкапсуляцию для всех пакетов. Применение дополнительного заголовка позволяет сократить количество байтов, добавляемых к пакету, тем самым уменьшая накладные расходы (overhead), связанные с транспортом Mobile IP трафика. Правда, чтобы исключить необходимость модификации исходного пакета в пути, те пакеты, которые маршрутизируются через агента "домашней" подсети, пересылаются агентом мобильному узлу все же по туннелю (с использованием инкапсуляции).
- Когда мобильный узел находится вне своей "домашней" подсети, агент "домашней" подсети перехватывает в "домашней" подсети все пакеты, адресованные этому узлу. При этом в сетях IPv6 используется процедура "обнаружения соседей" [9], а не протокол ARP [14], как в случае "Mobile IPv4". Применение новой процедуры повышает устойчивость протокола (в частности, благодаря наличию специального "override" бита в сообщениях данного протокола), а также упрощает развертывание мобильного IP благодаря тому, что не нужно заботиться о том, какой протокол используется на канальном уровне в каждом конкретном случае.
- В случае "Mobile IPv4" ограничения, присущие протоколу ICMP, вынуждают отслеживать состояние туннеля ("tunnel soft state"). В рамках IPv6 протокол позволяет корректно пересылать ICMP сообщения из туннеля источнику трафика, поэтому необходимость отслеживать состояние туннеля отпадает.
- В рамках "Mobile IPv6" механизм динамического определения адреса агента "домашней" подсети для своей работы использует "произвольный" (anycast) адрес [15] и дает мобильному узлу определенный ответ, в то время как аналогичный механизм в рамках "Mobile IPv4" использует широковещательный адрес и получает отдельный ответ от каждого агента "домашней" подсети. Механизм, используемый в случае "Mobile IPv6", эффективнее и надежнее, поскольку для успешного завершения процедуры требуется отослать мобильному узлу только один пакет, содержащий всю необходимую информацию, касающуюся адресов агентов "домашней" подсети. Вероятность того, что этот пакет будет успешно доставлен мобильному узлу, повышается, так как исключается всплеск ответных пакетов.
- В рамках "Mobile IPv6" в сообщениях типа "Router Advertisements" предусмотрена опция, позволяющая мобильному узлу самому определять, потеря скольких сообщений типа "Router Advertisements" допустима, прежде чем узел будет считать, что используемый в данный момент маршрутизатор недоступен.
- Использование в IPv6 пакетах дополнительных заголовков типа "опции пункта назначения" (destination options) позволяет весь служебный трафик передавать внутри имеющихся в данный момент "попутных" IPv6 пакетов, тогда как в случае "Mobile IPv4" для транспортировки каждого служебного сообщения требуется отдельный UDP пакет.
Рис. 3. Проблема "треугольной маршрутизации".
3. IPv6 как технологическая основа мобильного Интернета
Протокол IPv6 можно рассматривать как фундамент всеобъемлющей универсальной Сети будущего (Рисунок 4), воплощающей лозунг: "К Сети подключены Все, Всегда и Повсюду!" Такая важная роль этого протокола объясняется очень полезными свойствами, присущими IPv6. Эти свойства хорошо известны [8]:
- большой размер адресного пространства,
- структура заголовков IP пакета оптимальна для ускоренной обработки пакета в промежуточных узлах сети,
- иерархическая маршрутизация,
- эффективные механизмы автоконфигурации сетевых устройств,
- встроенные средства безопасности,
- встроенные механизмы обеспечения "качества обслуживания" (QoS),
- эффективный механизм поддержки мобильных сетевых устройств.
Рис. 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 оказывают сильное влияние на развитие сетей IPv6; политика в этой области должна быть такой, чтобы способствовать развертыванию этих сетей, а не препятствовать этому;
- процедура "перенумеровки" (смены сетевых адресов всех устройств, подключенных к данной сети) пока еще не автоматизирована и не является совершенно безболезненной.
Не бывает правил без исключений, и указанный документ [16] также предусматривает исключительные случаи. Отступления от описанного выше правила допускаются в следующих ситуациях:
- подключающийся пользователь является очень крупным потребителем IP адресов (имеет очень большую собственную сетевую структуру); в таких случаях следует выделять блок адресов, соответствующий нескольким префиксам типа /48 (или даже /47);
- подключение нерезидентного узла - мобильного устройства или пользователя с коммутируемым доступом (dial-up); в этих случаях рекомендуется использовать префиксы /64;
- подключающийся пользователь явно и недвусмысленно выражает свое нежелание ни сейчас, ни в будущем создавать свою собственную сетевую иерархию (разбивать свою сеть на подсети).
Выделение пользователям адресного пространства фиксированного (одинакового) размера мотивируется следующими обстоятельствами:
- упрощается процесс смены провайдера (отпадает необходимость реструктуризации подсетей);
- предельно упрощается процедура "перенумеровки";
- такой подход согласуется с существующими предложениями по реализации одновременного подключения к нескольким провайдерам (multihoming);
- создаются благоприятные условия для роста и развития сети пользователя;
- снижается нагрузка на провайдеров и на региональные регистратуры в части проверки обоснованности заявок пользователей о выделении адресного пространства;
- отпадает необходимость сообщать детали сетевой структуры пользователя;
- нет нужды оценивать эффективность использования ранее выделенного адресного пространства;
- устраняется стесненность адресного пространства в сети пользователя, и, следовательно, отпадает потребность в использовании технологии трансляции сетевых адресов (NAT);
- можно использовать одну реверсную DNS зону (для всех префиксов).
На первый взгляд может показаться, что предлагаемый подход приведет к неэффективному расходованию адресного пространства 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.