Ун-т «Дубна». Курс «Компьютерные сети». Лекция 9. Протокол IPv6: формат пакетов, адресация. Сравнение IPv6 с IPv4. Поддержка мобильности узлов. Необходимость сетевых протоколов нового поколения (IPv6) В начале 90х начаты работы по созданию новой версии протокола IP. Версия IPv6 стандартизована в 1996. Необходимость этого вызвана в первую очередь угрозой исчерпания 32-разрядного адресного пространства в связи с близким к экспоненциальному ростом Интернета и частных сетей. По разным прогнозам адреса должны кончиться в период 2008-2018, в то время как новых сетей появляется все больше. Оптимизация системы адресации (бесклассовая система адресов, подсети и т.д.) позволили отодвинуть этот срок. Тем не менее проблема осталась актуальной. При этом разработчики IPv6 воспользовались «удобным случаем», чтобы дополнить и модифицировать протокол IPv4 в соответствии с накопленным опытом его эксплуатации. Предполагается, что постепенно все системы, использующие архитектуру TCP\IP, перейдут на IPv6, однако этот процесс может занять много времени. В настоящий момент системы, поддерживающие IPv6, представляют собой относительно небольшие «островки» в «море» систем, работающих на базе IPv4. Поэтому актуальной является проблема совместимости и разработки методов безболезненного перехода с одного протокола на другой. Недостатки IPv4 А. Проблемы масштабируемости недостаточность объема 32-битного адресного пространства; сложность агрегирования маршрутизации; маршрутов, разрастание сложность массового изменения IP-адресов; относительная сложность обработки заголовков пакетов IPv4. таблиц Б. Отсутствие некоторых обязательных механизмов механизмы информационной безопасности; средства поддержки классов обслуживания. Цели модернизации - Создание масштабируемой системы адресации - Сокращение объема работ, выполняемых маршрутизаторам 1 - Предоставление гарантий качества транспортных услуг - Обеспечение защиты данных, передаваемых по сети. Важнейшие инновации IPv6 упрощен стандартный 40-разрядный заголовок обеспечивает ускоренную обработку пакета. IP-пакета, что Изменено представление необязательных полей заголовка за счет их вынесения в дополнительные (необязательные) заголовки. расширено адресное пространство; размер IP-адреса увеличен с 32 до 128 бит (16 байт). Это означает, что на каждого нынешнего жителя Земли (6 млрд) придется 5.7е+28 адресов. Целью было не только увеличение количества адресов, но и повышение эффективности работы стека ТСР\IP в целом за счет увеличения уровней иерархии в системах адресации с 2 до 4. Появился новый тип адресов свободной рассылки (anycast). улучшена поддержка иерархической адресации, агрегирования маршрутов и автоматического конфигурирования адресов; поддержка технологии бесклассовой адресации CIDR. введены механизмы аутентификации и шифрования на уровне IPпакетов; введены метки потоков данных для маркировки пакетов, требующих специальной обработки (предоставление приоритета, обслуживание с отличным от стандартного качеством, обслуживание в реальном времени и т.д.). В IPv6 сохранена архитектурная простота, основные принципы остались прежними, чтобы минимизировать изменения на других уровнях протокольного стека TCP/IP. В IPv6 сохранена топологическая гибкость сетей. Единственное ограничение наложено на число промежуточных маршрутизаторов - не более 256. Сохранена и независимость от среды передачи. Улучшены условия для эффективной обработки пакетов. Структура заголовка упрощена, ликвидировано его контрольное суммирование. Обеспечена возможность простого и гибкого автоматического конфигурирования адресов для сетей по существу произвольного масштаба и сложности. Средства аутентификации и шифрования вынесены на IP-уровень. Явно специфицирована поддержка многоадресной рассылки (multicast). Адресация "наиболее подходящего" сетевого интерфейса из числа членов группы (anycast) позволяет решить проблему единообразного обращения к элементам пула взаимозаменяемых ресурсов. 2 Для поддержки классов обслуживания в заголовок пакета IPv6 введено поле метки потока. IPv6 остался расширяемым протоколом, причем поля расширений (дополнительные заголовки) могут добавляться без снижения эффективности маршрутизации. Формат пакетов IPv6 Пакет в IPv6 включает - стандартный заголовок, он всегда должен быть первым, - произвольное число дополнительных заголовков, - заголовки и данные протоколов более высоких уровней. Порядок заголовков в IPv6 выбран таким образом, чтобы способствовать эффективной обработке пакетов на всем пути их следования. В IPv4 суммарная длина дополнительных заголовков не могла превышать 40 байт. В IPv6 это ограничение снято, дополнительные заголовки могут быть сколь угодно длинными и сложными. Тем самым в IPv6 заложены достаточно мощные и гибкие средства расширения. В IPv6 пакеты не могут фрагментироваться и собираться маршрутизаторами. Эта функция возлагается на оконечные системы, что позволяет разгрузить маршрутизаторы и тем самым повысить их производительность. Отправитель должен заранее выяснить максимальный размер пакетов (Maximum Transmission Unit, MTU), поддерживаемый на всем пути до получателя, и выполнить фрагментацию своими силами. MTU не может быть меньше 576 байт. Единственный обязательный заголовок имеет фиксированный размер 40 байт, что вдвое превышает размер заголовка IPv4. Формат стандартного заголовка IPv6 Version — номер версии IP-протокола (6); Prio. — приоритет пакета (класс трафика; поддержка разных форм дифференцированного обслуживания); 3 Flow Label — метка IP-потока. Может быть использована для пометки пакетов, которым требуется специальная обработка. Поток определяется в рамках IPv6 как последовательность пакетов, отправленных одним источником одному получателю, для которой отправитель требует специальной обработки промежуточными узлами. Поток однозначно идентифицируется адресом источника, адресом получателя и меткой. Например, (1) пакеты, формируемые одним экземпляром приложения с одинаковыми требованиями к службе связи; (2) мультимедийная конференция, требующая определенной скорости передачи данных и др. Payload Length — полезная длина, длина содержимого, то есть того, что следует за основным заголовком IPv6 (дополнительные заголовки сетевого уровня, заголовки и данные протоколов более высокого уровня); Next Header — номер (тип) следующего заголовка (дополнительного заголовка IP-уровня или заголовка транспортного уровня); Hop Limit — максимальное число промежуточных систем на пути следования пакета. Уменьшается каждым маршрутизатором на 1. Если Hop Limit становится равным 0, пакет ликвидируется; Source Address — 128-битный исходный адрес; Destination Address — 128-битный целевой адрес. Дополнительные заголовки IPv6 Дополнительные заголовки используются в IPv6 для поддержки механизмов безопасности, фрагментации, сетевого управления и т.п. Их общее количество и внутренняя сложность практически не ограничены. - Заголовок параметров ретрансляционных участков определяет специальные параметры, требующие обработки на уровне ретрансляционных участков и анализируемые каждым маршрутизатором по пути следования пакета (например, отбросить пакет при определенных условиях, послать отправителю ICMP-сообщение и др.) - Заголовок маршрутизации обеспечивает расширенную маршрутизацию, сходную с маршрутизацией от источника. Содержит список одного или нескольких узлов, которые пакет должен посетить на пути к пункту назначения. - Заголовок фрагмента содержит информацию о фрагментации и повторной сборке. Фрагментация может проводиться только узламиисточниками. Для этого узел должен реализовать алгоритм обнаружения пути, чтобы узнать минимальный размер единицы передачи, разрешенный в составной сети по пути следования (Maximum Transmission Unit, MTU). Либо размер фрагмента устанавливается 576 4 байт, что соответствует поддерживать все подсети. минимальной Заголовок аутентификации аутентификацию пакета. - Заголовок секретность. инкапсуляции MTU, которую обеспечивает защищенных должны целостность данных и обеспечивает - Заголовок параметров получателя содержит дополнительную информацию, которая анализируется только получателем пакета. Адресация в IPv6 Адреса в IPv6 можно разделить на три большие группы: индивидуальный целевой рассылки; (unicast); адрес конкретного интерфейса для групповой (multicast); идентификатор группы интерфейсов, как правило, принадлежащих разным узлам. адрес выборочной (произвольной) рассылки (anycast); идентификатор группы интерфейсов; пакет, отправленный по такому адресу, направляется «ближайшему» с точки зрения метрики протокола маршрутизации интерфейсу в группе. Широковещательные возможности (broadcast) в IPv6 отсутствуют. Это способствует уменьшению сетевого трафика и снижению нагрузки на большинство систем. Адреса назначаются интерфейсам узлов, а не самим узлам, у одного интерфейса может быть несколько уникальных адресов для целевой передачи. Комбинация длинных адресов и возможность иметь их несколько для одного интерфейса обеспечивают более эффективную маршрутизацию за счет специальной структуры адресов. В IPv4 адреса не обладают структурой, помогающей маршрутизации, поэтому требуются огромные таблицы для хранения путей. Более длинные адреса позволяют организовать многоуровневую иерархию по поставщикам услуг, корпорациям, географическому расположению и т.п. Благодаря этому можно уменьшить таблицы маршрутизации и ускорить процедуру поиска в них. С синтаксической точки зрения тип адреса определяется префиксом переменной длины. 8-битный префикс, состоящий из единиц, характеризует групповой адрес; все остальные адреса считаются индивидуальными, которые ассоциируются с сетевыми интерфейсами и играют двоякую роль: являются уникальными идентификаторами интерфейсов; задают маршрут к интерфейсам. 5 Групповые адреса предназначены для многоадресной рассылки пакетов. Узел сети, желающий получать многоадресные пакеты, должен выполнить операцию присоединения к соответствующей группе. Естественно, имеется операция отсоединения. Своеобразным пересечением индивидуальных и групповых адресов являются так называемые адреса "наиболее подходящего члена группы" (anycast). Они выделяются из пространства индивидуальных адресов и обозначают члена группы, ближайшего к отправителю. Структура адресов в IPv6 Увеличение длины IP-адреса с 32 до 128 бит помогает решить проблему исчерпания адресного пространства, но чревато разрастанием таблиц маршрутизации. Избежать этого позволяет иерархическая организация адресов, позволяющая объединять маршруты. Примером иерархической организации является система телефонных номеров, когда по серии коротких префиксов (страна/город/АТС) можно определить маршрут к любому абоненту. Индивидуальные адреса Структура агрегируемых глобальных адресов в IPv6. FP=001 — форматный префикс данного типа адресов; TLA ID — идентификатор агрегации верхнего уровня (самые крупные поставщики сетевых услуг); RES — зарезервированное поле; NLA ID — идентификатор агрегации следующего уровня (сети средних и мелких поставщиков сетевых услуг); SLA ID — идентификатор агрегации уровня производственной площадки (подсети отдельного абонента, например, корпоративные сети); Interface ID — идентификатор сетевого интерфейса; аналог номера узла в IPv4. В общем случае он совпадает с аппаратным (МАС) адресом или уникальным номером мобильной системы, что делает ненужным ARP-протокол, т.к. процедура отображения IP-адреса на физический сводится просто к отбрасыванию старших разрядов. Длина 64 байта позволяет вместить физические адреса на базе всех имеющихся на данный момент (и, возможно, будущих) технологий: Ethernet – 48, АТМ – 28, Х.25 – 60. 6 Таким образом, в большинстве случаев отпадает необходимость ручного конфигурирования, т.к. младшую часть адреса (физический адрес) узел узнает от аппаратуры, а старшую (номер подсети) ему сообщает маршрутизатор. Итак, изначально выделено три уровня иерархии маршрутов. Два верхних отражают публичную топологию Интернет, третий (SLA) — топологию сетей отдельной организации. Предполагается, что поля TLA адресуют Интернет-маршрутизаторы верхнего уровня. Это могут быть маршрутизаторы крупнейших поставщиков Интернет-услуг и точки обмена трафиком между провайдерами. Границы между компонентами адреса определены из соображений здравого смысла. 13 бит в поле TLA позволяют задать 8192 маршрута. 65536 возможных значений поля SNA ID достаточно для задания топологии практически любой корпоративной сети. Для того, чтобы узлы, поддерживающие IPv6, могли взаимодействовать с узлами, поддерживающими IPv4 и обеспечивать передачу данных в формате IPv6 через IPv4-сеть, разработаны специальные типы адресов: (1) Адреса IPv6, совместимые с IPv4. Такие адреса присваиваются узлам сети, осуществляющим туннелирование IPv6-трафика через инфраструктуру IPv4; представляются, как 96 нулевых бит и адрес IPv4 в младших 32-х битах. (2) Адреса IPv4, отображенные на IPv6. Такие адреса присваиваются узлам, поддерживающим только IPv4 . 7 Cнижение нагрузки на маршрутизаторы. Перенесение функций фрагментации с маршрутизаторов на конечные узлы. Агрегирование адресов ведет к уменьшению адресных таблиц, сокращению времени их просмотра и обновления, сокращению соответствующего служебного трафика. Широкое использование маршрутизации от источника Отказ от обработки необязательных параметров заголовка (например, контрольная сумма) Использование в качестве номера узла его МАС-адреса избавляет от необходимости применения протокола ARP. Эти меры позволяют освободить маршрутизаторы от вспомогательных функций и тем самым повысить их производительность в части основной нагрузки – продвижения пакетов. Новый протокол ICMP для IPv6 Этот протокол используется IP-узлами для сообщений об ошибках и предоставления служебной информации оконечной системе. К новой версии ICMP, поддерживающей IPv6, ICMPv6, добавленыновые типы и коды сообщений – например сообщения об ошибках «пакет слишком велик», «нераспознаваемые IPv6 параметры», а также служебные сообщения, связанные с групповой рассылкой в рамках протокола IGMP. Поддержка мобильности узлов в IPv6 В период действия спецификаций IPv6 значительная часть сетевых систем будут мобильными. Такие системы перемещаются за пределы корпоративной сети, подключаясь к Интернет в произвольных местах. Во многих случаях пользователю достаточно включать\выключать свой лэптоп в офисе и дома. При этом средствами протокола DНСР (Dynamic Host Configuration Protocol) в каждой сети, к которой оказывается подключен лэптоп, ему присваивается новый IP-адрес (поддерживается в Ipv4). Если большинство приложений клиентские – веб, электронная почта и т.п., пользователю неважно, что IP-адрес каждый раз новый. Однако в определенных ситуациях, например, когда пользователю надо поддерживать постоянное ТСР-соединение, двигаясь на машине с включенным лэптопом, ему нужно иметь постоянный IP-адрес. В этом случае мобильность будет «скрыта» от Интернет-приложения, т.е. приложению не надо заботиться о возможной смене IP-адреса. Внешняя сеть, в принципе, может узнать о том, что узел находится в ней, путем протокольного обмена служебной информацией о маршрутах и информирует другие сети. Если сетям известно расположение мобильного узла, дейтаграммы, адресованные ему, направляются по 8 месту назначения. Однако значительный недостаток этого метода связан с масштабируемостью. Фактически, за управление мобильной связью отвечают маршрутизаторы, а это накладно с учетом роста мобильных узлов. Поэтому на практике используется альтернативный, подход. Выделяются группы новых понятий: - домашняя (основная) сеть и домашний IP-адрес мобильной системы; - текущая (внешняя) сеть и текущий IP-адрес мобильной системы; тут мобильный узел находится в данный момент. - домашний агент, замещающий мобильную систему в домашней сети на время путешествий, «знающий» ее текущий IP-адрес и переправляющий по текущему адресу предназначенные для нее IP-пакеты. - внешний агент – устройство во внешней сети, помогающее мобильному узлу осуществлять мобильные функции. Косвенная маршрутизация Трафик перенаправляется домашним агентом во внешюю сеть;исходная дейтаграмма инкапсулируется во внешнюю дейтарамму с нужым IPадресом (туннелирование). Сам мобильный узел может направлять свои сообщения напрямую, нет необходимости делать это через домашнего агента. Итак, мобильный протокол должен - позволить мобилному узлу зарегистрироваться во внешней сети - зарегистрировать свой внешний адрес у мобильного агента - обеспечить инкапсуляцию и пересылку оригинальной дейтаграммы домашним агентом мобильному узлу 9 - обеспечить извлечение оригинальной дейтаграммы из дейтаграммы домашнего агента и получение ее мобильным узлом Недостаток косвенной маршрутизации (проблема «треугольной маршрутизации»). - низкая эффективность Непосредственная маршрутизация Агент корреспондента сначала узнает у домашнего агента текущий адрес мобильного узла, а затем тунеллирует дейтаграммы непосредственно мобильному узлу. Происходит прямое взаимодействие удаленного узла и мобильной системы. Недостатком является некоторое усложнение процедуры из-за предварительного обмена сообщениями с домашней системой, хотя решается проблема треугольной маршрутизации. Другая проблема – перемещение узла из одной сети в другую, так что текущий адрес может оказаться устаревшим. Возможное решение – создание протокола, регламентирующего уведомление корреспондента об изменении внешнего адреса. Другой вариант – внешние сети информируют друг друга о продвижении узла и передают адресуемые мобильному узлу дейтаграммы по цепочке. Этот подход применяется в стандартах сотовой телефонии, и в настоящее время рассматривается возможность расширения мобильного стандарта протокола IP для поддержания непосредственной маршрутизации. Итак, мобильный протокол IP представляет собой гибкий и довольно сложный стандарт, поддерживающий разные режимы работы. 10 Предоставляет мобильным узлам разные способы обнаружения друг друга, различные формы инкапсуляции, использование единого адреса или нескольких внешних адресов. Текущий стандарт подразумевает использование рассмотренных выше методов. Специфицированы три аспекта косвенной адресации. - Обнаружение агента. Определяются протоколы, используемые домашним и внешним агентами для объявления мобильным узлом о своих службах и запросах у домашнего и внешнего агента. - Регистрация у домашнего агента. Определяет протоколы для регистрации и отмены внешних адресов мобильного узла у домашнего агента - Косвенная маршрутизация. Регламентируются правила продвижения дейтаграмм, способы инкапсуляции и обработки ошибок. Поддержка классов обслуживания Поддержка классов обслуживания — одна из горячих тем сетевых технологий, и протокол сетевого уровня, такой как IPv6, должен предоставить основу для реализации подобной поддержки. В спецификациях IPv6 поддерживать классы обслуживания помогают два поля — Prio. и Flow Label. Первое задает желательную приоритетность доставки данного пакета относительно других пакетов из того же источника. Возможные приоритеты делятся на два диапазона. Значения от 0 до 7 используются для потоков данных, на интенсивность которых источник может воздействовать. Диапазон от 8 до 15 предназначен для трафика "реального времени", интенсивность которого определяется внешними факторами. Для управляемого трафика рекомендуется следующее распределение приоритетов: 0 — трафик неизвестной природы; 1 — трафик-"заполнитель" (сетевые новости); 2 — неинтерактивный трафик (электронная почта); 4 — массовый интерактивный трафик (передача по FTP, NFS); 6 — обычный интерактивный трафик (telnet, X); 7 — управляющий трафик (протоколы маршрутизации, SNMP) Поток, который помечается с помощью поля Flow Label, определяется как последовательность пакетов, посылаемых из определенного источника по определенному адресу (индивидуальному или групповому) с фиксированным приоритетом. Механизмы перехода на IPv6 Одним из решений могло бы быть объявление о всеобщей дате перехода с Ipv4 на Ipv6. Однако последняя подобная глобальная смена 11 технологий произошла 20 лет назад (переход с NCP на ТСР). Уже давно стало ясно, что подобный «день Х» невозможен, т.к. эта процедура затронула бы миллионы машин и сетевых администраторов и пользователей. Поэтому довольно долго два протокола будут сосуществовать. Поэтому встает вопрос совместимости. Новые Ipv6-системы можно сделать Ipv4-совместимыми,т.е. реализовать в них поддержку Ipv4. Проблема в том, как заставить уже работающие Ipv4-системы обрабатывать дейтаграммы, посылаемые протоколом Ipv6. Два основных метода перехода с IPv4 на Ipv6: метод двойного стека - одновременная поддержка в некоторых узлах (и в хостах, и в маршрутизаторах) IPv6 двух стеков протоколов (IPv6/IPv4); метод туннелирования пакетов IPv6 для их передачи через инфраструктуру IPv4. Для одновременной поддержки двух стеков нужна соответствующая реализация инфраструктурных сервисов. Например, служба DNS должна выдавать как записи типа "A" с 32-битным IP-адресом, так и записи "AAAA" со 128-битным адресом Одновременная поддержка нескольких стеков не является серьезной проблемой для маршрутизаторов, которые всегда были многопротокольными. Если отправитель либо получатель поддерживают только Ipv4, то для пересылки используется Ipv4дейтаграмма. Возможна ситуация, когда два Ipv6-узла обмениваются дейтаграммами через Ipv4-сеть. Поля Ipv6-заголовков копируются в соответствующие поля Ipv4-заголовков. В результате может быть потеря некоторых полей заголовка Ipv6, которые не имеют аналогов в Ipv4. Механизм туннелирования давно используется в IPv4 для транспортировки не-IP-пакетов. Применительно к IPv6 выполняется инкапсуляция: передающий IPv6-узел помещает исходную дейтаграмму целиком в поле данных IPv4-формата. Промежуточные IPv4-узлы обрабатывают ее как IPv4-дейтаграмму, не зная о том, что внутри. На другой стороне туннеля IPv6-получатель получает дейтаграмму в формате IPv4, определяет, что она содержит дейтаграмму формата IPv6, извлекает ее в исходном виде и переправляет при необходимости дальше по IPv6-сети. Пакет IPv6 до (а) и после (б) инкапсуляции в IPv4. 12 Разные стратегии перехода на IPv6. Можно начать с хостов, постепенно добавляя к ним периферийные маршрутизаторы. Это позволяет создать начальную массу приложений над IPv6. Можно начать с магистральных маршрутизаторов, подготовив транспортную инфраструктуру и инструменты централизованного администрирования. Можно начинать перестройку в рамках передовых рабочих групп, создавая островки IPv6, содержащие хосты и маршрутизаторы с двойным стеком и новые хосты только с IPv6 Переход от IPv4 к IPv6 только начинается. Сегодня существуют фрагменты Интернета, в которых мершрутизаторы поддерживают обе версии. Для практического опробования реализаций IPv6 создана всемирная экспериментальная сеть 6Bone, соединяющая эти фрагменты между собой. 13