Базовое расширение IPv4 до IPv4r2 заключается в добавлении к IPv4 новых опций заголовка IPv4 для поддержки IPv4r2 расширенной адресации и IPv4r2 индексов локальных сокетов шлюза.
Описание IPv4r2 расширенной адресации и IPv4r2 индексов шлюза приведено далее, но для понимания терминов "множество сетей IPv4r2" и "глобальная адресация IPv4r2", о которых говорится в описании опций IPv4r2, необходимо сразу сказать, что:
Любая сеть IPv4r2 имеет, в терминах IPv4 адресации, многоуровневую иерархическую структуру адреса, т.е. выглядит как несколько вложенных IPv4 адресов. Формат URL "протокол://a1.b1.c1.d1/a2.b2.c2.d2/..." описывает адресацию в сети IPv4r2. При этом IPv4 адрес a1.b1.c1.d1, который указан в IPv4 заголовке это, в терминах IPv4r2 адресации, адрес в корневой сети IPv4 (уровень корневой сети IPv4).
Каждый адрес в корневой сети IPv4 определяет точку входа в IPv4r2 сеть, таким образом, сетей IPv4r2 получается множество и формат IPv4 адресов внутренних уровней в этих сетях зависит от структуры конкретной IPv4r2 сети. Если корневая сеть IPv4 для адреса a1.b1.c1.d1 является глобальной, то и вся эта сеть IPv4r2 может быть адресована глобально, на уровне интернет (это и есть та глобальная адресация, про которую говорится в описании опций IPv4r2).
Расширенная IPv4r2 адресация подразделяется на несколько типов:
основная IPv4r2 адресация
базовая
обобщенная
дополнительная IPv4r2 адресация сетей пользователя
Для добавления свойств IPv4r2 к заголовку IPv4 используется опция 0x88 (136) заголовка IPv4 специального формата. В терминах IPv4r2 опция 0x88 называется op1. По правилам опций заголовка IPv4, для любой опций IPv4 после октета (в этом тексте октет эквивалентен байту) тип (для op1=0x88) идет октет длина, хранящий размер опции, размер опций включает в себя и первые два байта опции (включает байты тип 0x88 и длина).
Базовые варианты кодирования новых IPv4r2 опций:
<op1>[8]<длина=8>[8]<флаги>[3]<адрес>[45]
IPv4r2 асимметричная адресация 45 бит
<op1>[8]<длина=12>[8]<флаги>[3]<адрес>[45]<индекс>[32]
IPv4r2 асимметричная
адресация 45 бит
IPv4r2 индекс
локального сокета шлюза 32 бита
<op1>[8]<длина=16>[8]<адрес
источника>[48]<адрес назначения>[48]<индекс>[16]
IPv4r2
адресация 48 бит
IPv4r2
индекс локального сокета шлюза 16 бит
Для IPv4r2 асимметричной адресации 45 бит, трех- битовое поле флагов обозначает:
010b
расширение адреса источника
100b
расширение адреса назначения
"IPv4r2 асимметричная адресация 45 бит" (т.е. расширение адреса на 45 бит, общий размер адреса 77 бит) это основной вид глобальной адресации пользовательских серверов в сетях IPv4r2 специального типа, когда IPv4r2 источник подключен к сети IPv4r2 через IPv4 шлюз провайдера (источник использует расширение адреса назначения).
"IPv4r2 асимметричная адресация 45 бит с индексом шлюза" автоматически используется при доставке пакетов в формате "IPv4r2 асимметричная адресация 45 бит" на участке сети между шлюзом провайдера и пользовательским сервером, в том случае, когда IPv4 адрес шлюза провайдера перегружен локальными подключениями от клиентов провайдера. Практически размер IPv4r2 заголовка от этого возрастает на 4 байта.
"IPv4r2 адресация 48 бит" (т.е. расширение адреса на 48 бит, общий размер адреса 80 бит) это расширенный вид 45 битной основной глобальной адресации в сетях IPv4r2 специального типа, когда оба IPv4r2 адреса уникальны на глобальном уровне, поэтому IPv4 шлюз провайдера не обязателен, но может быть использован. Для преобразования адреса 45 бит в адрес 48 бит и обратно используются специальные правила, которые рассмотрены далее в разделе "полное описание IPv4r2".
Рекомендуемое значение глобальной уникальной адресации для сетей IPv4r2 - 77 бит.
Тип расширения IPv4r2, который задается опцией IPv4r2 op1=136, определяется размером опции, а также дополнительными флагами в области данных опции, флаги применяются тогда, когда одному размеру опции соответствует несколько разных расширений.
Список дополнительных кодировок для IPv4r2 опции op1:
<op1>[8]<длина=4>[8]<номер
потока>[16]
IPv4
зарезервировано для номера потока
<op1>[8]<длина=6>[8]<индекс>[32]
IPv4r2
индекс локального сокета шлюза 32 бит
<op1>[8]<длина=10>[8]<флаги>[3]<адрес>[45]<индекс>[16]
IPv4r2 асимметричная адресация 45 бит
IPv4r2
индекс локального сокета шлюза 16 бит
<op1>[8]<длина=14>[8]<адрес
источника>[48]<адрес назначения>[48]
IPv4r2
адресация 48 бит
<op1>[8]<длина=18>[8]<адрес
источника>[48]<адрес назначения>[48]<индекс>[32]
IPv4r2
адресация 48 бит
IPv4r2 индекс
локального сокета шлюза 32 бит
Для IPv4r2 асимметричной адресации 45 бит, трех- битовое поле флагов дополнительно обозначает:
001b
индекс
локального сокета шлюза
Для дополнительных IPv4r2 расширений, когда одному размеру опции op1 соответствует несколько разных расширений, но флаги задать нельзя, используется опция IPv4r2 op2 (числовое значение еще не зафиксировано, предположительно 0x8A).
Список базовых кодировок для IPv4r2 опции op2:
<op2>[8]<длина=4>[8]<индекс>[16]
IPv4r2 индекс локального сокета шлюза 16 бит
<op2>[8]<длина=12>[8]<адрес
источника>[40]<адрес назначения>[40]
IPv4r2
короткая адресация 40 бит
<op2>[8]<длина=16>[8]<адрес
источника>[40]<адрес назначения>[40]<индекс>[32]
IPv4r2 короткая адресация 40 бит
IPv4r2
индекс локального сокета шлюза 32 бит
IPv4r2 адресация 40 бит (т.е. расширение адреса на 40 бит, общий размер адреса 72 бит) это короткий вид 45 битной основной адресации в сетях IPv4r2 специального типа, когда оба IPv4r2 адреса уникальны на глобальном уровне. Практически это позволяет уменьшить размер IPv4r2 заголовка на 4 байта по сравнению с такой же адресацией 48 бит, когда IPv4 шлюз провайдера не используется и если структура этой сети IPv4r2 допускает 72 битную глобальную уникальную адресацию, эта возможность зависит от структуры конкретной сети IPv4r2. Для преобразования адреса 45 бит в адрес 40 бит и обратно используются специальные правила, которые рассмотрены далее в разделе "полное описание IPv4r2".
Список дополнительных кодировок для IPv4r2 опции op2:
<op2>[8]<длина=14>[8]<адрес
источника>[40]<адрес назначения>[40]<индекс>[16]
IPv4r2 короткая адресация 40 бит
IPv4r2
индекс локального сокета шлюза 16 бит
Обобщенная IPv4r2 адресация это (по сравнению с базовой IPv4r2 адресацией) альтернативный и менее эффективный способ указания адресов в сетях IPv4r2.
Для дополнительных IPv4r2 расширений, когда одному размеру опций op1, op2 соответствует несколько разных расширений, но флаги задать нельзя, используется опция IPv4r2 op3 (числовое значение еще не зафиксировано, предположительно 0x8B).
Список основных адресных кодировок для обобщенной IPv4r2 адресации:
<op1>[8]<длина=3+>[8]<формат
опции=1>[1]<флаг адреса>[1]<младший
байт адреса>[6]<адрес>[0+]
длина
больше равна 3 и всегда нечетная
IPv4r2
асимметричная обобщенная адресация 6+ бит
<op2>[8]<длина=7+>[8]<формат
опции=1>[1]<флаг адреса>[1]<младший
байт адреса>[6]<адрес>[0+]<индекс>[32]
длина больше равна 7 и всегда нечетная
IPv4r2
асимметричная обобщенная адресация 6+ бит
IPv4r2
индекс локального сокета шлюза 32 бит
<op3>[8]<длина=4+>[8]<формат
опции=1>[1]<размер индекса>[2]<размер адреса
источника>[5]<адрес источника>[0+]<адрес
назначения>[0+]<индекс>[0+]
длина больше равна 4
IPv4r2
обобщенная адресация
размер адреса источника в байтах
0..31
размер индекса локального сокета шлюза в байтах 0..3
размер
адреса назначения = длина-3-"размер адреса источника"-"размер
индекса"
Формат флага адреса для асимметричной обобщенной адресации:
флаг адреса
0b
- расширение адреса источника
1b -
расширение адреса назначения
IPv4r2 асимметричная адресация 6+ бит это обобщенная глобальная IPv4r2 адресация при работе через IPv4 шлюз провайдера. Есть варианты кодирования с индексом локального сокета и без такого индекса.
Распределение байтов поля адреса обобщенной IPv4r2 адресации по уровням IPv4r2 адресации имеет сложную структуру и отличается от распределения битов поля адреса в основных режимах IPv4r2 адресации (в режимах IPv4r2 адресации фиксированного 40, 45 и 48 бит размера). Обобщенная IPv4r2 адресация допустима, но практического смысла не имеет. Подробнее смотри в разделе "полное описание IPv4r2".
Список дополнительных адресных кодировок для обобщенной IPv4r2 адресации:
<op2>[8]<длина=5+>[8]<формат
опции=0>[1]<флаг адреса>[1]<младший
байт адреса>[6]<адрес>[0+]<индекс>[16]
длина больше равна 5 и всегда нечетная
IPv4r2
асимметричная обобщенная адресация 6+ бит
IPv4r2
индекс локального сокета шлюза 16 бит
Дополнительная IPv4r2 адресация пользовательской сети позволяет на один централизованно выделенный пользователю IPv4r2 адрес оперативно размещать дополнительные ресурсы пользователя, глобально адресуемые и уникальные путем привязки к этому выделенному IPv4r2 адресу.
Дополнительная адресация пользовательской сети это отдельное адресное пространство, которое не может быть адресовано через основную или обобщенную адресацию, именно поэтому в нем можно выделять ресурсы самому владельцу IPv4r2 адреса.
Список кодировок IPv4r2 адресации пользовательской сети:
<op3>[8]<длина=3+>[8]<формат
опции=000>[3]<флаг адреса>[1]<старший байт
адреса>[4]<адрес>[0+]
длина больше равна 3
IPv4r2
асимметричная адресация расширения пользовательской сети
формат байтов поля адреса: от старшего
байта к младшему
<op3>[8]<длина=4+>[8]<формат
опции=001>[1]<число байт адреса источника>[5]<байты
источника>[0+]<байты
назначения>[0+]
длина
больше равна 4
IPv4r2 адресация
расширения пользовательской сети
число байт назначения =
длина-3-"число байт источника"
формат байтов поля
адреса: от старшего байта к младшему
Формат флага адреса для IPv4r2 адресации пользовательской сети:
флаг адреса
0b
- расширение адреса источника
1b -
расширение адреса назначения
В IPv4r2 сетях, подсети вида "IPv4r2 адрес нулевого хоста подсети"/:"число бит маски подсети", могут формироваться без выделения IPv4r2 адресов на широковещательный адрес и маршрут к сети, для этого вместо выделенного IPv4r2 адреса применяются IPv4r2 опции, которые кодируют:
число бит маски (или обратной маски) такой подсети для IPv4r2 адресата;
флаг широковещательный запрос для IPv4r2 адреса назначения.
Список кодировок для IPv4r2 подсетей:
<op3>[8]<длина=4..5>[8]<формат
опции=01>[2]<флаги маски>[6]<маска источника>[0+]<маска
назначения>[0+]
длина
от 4 до 5
размер поля маска источника и маска назначения один
байт, поле содержит число бит маски подсети вида /:"число бит
маски подсети"
флаги
маски сети
000001b
- есть
поле число бит маски сети источника, хранящее маску
000010b
-
есть поле число бит маски сети источника, хранящее обратную маску
000100b
-
есть поле число бит маски сети назначения, хранящее маску
001000b
-
есть поле число бит маски сети назначения, хранящее обратную маску
010000b
- это
IPv4r2
ответ
от службы сети источника
100000b
- это
широковещательный IPv4r2
запрос
к сети назначения
Если установлен флаг "широковещательный IPv4r2 запрос к сети назначения", то IPv4r2 адрес в поле назначения хранит не адрес хоста, а после применения маски, этот адрес указывает на сеть назначения.
Если установлен флаг "IPv4r2 ответ от службы сети источника", то IPv4r2 адрес в поле источника хранит не адрес хоста, а после применения маски, этот адрес указывает на сеть источника.
Поле маски включает в себя и пространство дополнительной IPv4r2 адресации пользовательской сети - основное и пользовательское адресные пространство для маски подсети объединяется, основное адресное пространство для маски подсети идет первым.
Список вспомогательных IPv4r2 опций:
<op2>[8]<длина=6>[8]<отметка
времени>[32]
Для
установления времени жизни IPv4r2 пакета, источник IPv4r2 может
отмечать свои пакеты отметкой времени синхронизированного со своим
корневым a1.b1.c1.d1 (UTC
время в секундах). Для этого IPv4r2
определяет механизм опроса источника времени в корневой IPv4 сети:
корневой узел a1.b1.c1.d1 сети IPv4r2 обязан реализовать ответы о времени на запрос от любого другого корневого IPv4 не реже раза в минуту после первого ответа для каждого такого корневого адреса;
IPv4r2 получатель обращается за временем a1.b1.c1.d1 источника к своему корневому a1.b1.c1.d1.
Опции op1, op2, op3 и флаги могут комбинироваться по их смыслу, при этом нельзя:
аддитивно наращивать расширение одного и того же адреса, несколько раз применяя опции такого расширения;
аддитивно наращивать индекс шлюза с помощью полей плюс флагов в одной опции или с помощью нескольких опций;
комбинировать обобщенную и основную адресацию IPv4r2 для одного и того же адреса;
Например, можно комбинировать <op1>[8]<длина=14>[8] и <op1>[8]<длина=6>[8] для 32 индексации локальных сокетов шлюза и 48 битного расширения адреса, тем увеличивая IPv4r2 заголовок до 20 байт, заместо более компактного 16 байтового формата <op1>[8]<длина=16>[8] с 16 битной индексацией локальных сокетов шлюза, если 16 бит индексов сокета шлюза не хватает.
С точки зрения эффективности маршрутизации, лучше задавать расширение адресов и индексы шлюза только одной опцией, идущей в заголовке первой. Опция дополнительной IPv4r2 адресации пользовательской сети (рекомендуется задавать второй) и опция IPv4r2 подсетей (рекомендуется задавать третьей) обычно анализируются только конечными IPv4r2 адресатами, промежуточные IPv4r2 маршрутизаторы их игнорируют.
IPv4r2 пакеты с ошибочными адресными опциями не могут быть доставлены и будут отброшены IPv4r2 маршрутизаторами и адресатами.