IPIir-протокол может работать в трех режимах: транспортном, туннельном и режиме "легкого туннеля". Транспортный режим и режим легкого туннеля обеспечивают защиту данных, сформированных протоколами, расположенными выше уровня IP в базовой эталонной модели ISO OSI, в частности транспортным уровнем. Туннельный режим обеспечивает защиту всего исходного IP-пакета.
Принимающая сторона определяет, в каком режиме отправлен пакет исходя из значения поля Mode. Возможные значения поля приведены в таблице 2.
Таблица 2 - Значения поля Mode
Значение поля Mode | Описание режима |
0 | Транспортный |
1 | Режим легкого туннеля ("легкий туннель") |
2 | Туннельный (режим "туннель") |
3 | Зарезервировано для будущих нужд |
4.4.1 Транспортный режим
В транспортном режиме IPIir-заголовок и кортежи (Type, Length, Value) помещаются после заголовка IP и перед заголовком следующего уровня (например, TCP, UDP, ICMP и т.п.). В контексте IPv4 это означает размещение IPIir-заголовка после заголовка IP, включая все опции в исходном IP-пакете, но перед заголовком протокола следующего уровня.
На рисунке 5 показан пример защиты IP-пакета с помощью протокола IPIir в транспортном режиме.
В контексте IPv6 заголовок IPIir предназначен оконечному адресату. Таким образом, его следует размещать после заголовков-расширений Hop-by-hop, Routing и Fragmentation. Заголовки расширения опций назначения Destination Options могут размещаться до, после и по обе стороны от заголовка IPIir, в зависимости от требуемой семантики. Однако, поскольку протокол IPIir может обеспечить конфиденциальность только полей, расположенных после IPIir-заголовка, рекомендуется помещать опции адресата после IPIir-заголовка.
Рисунок 5 - Защита IP-пакета с помощью протокола IPIir в транспортном режиме
4.4.2 "Легкий туннель"
Расположение IPIir-заголовка и кортежей (Type, Length, Value) в режиме легкого туннеля совпадает с транспортным режимом, за исключением того, что набор кортежей, находящийся в IPIir-теле, должен включать либо кортеж типа 1 (пара IPv4 адресов), либо кортеж типа 2 (пара IPv6 адресов), в котором сохраняются адреса отправителя и получателя из IP-заголовка исходного IP-пакета. Тип кортежа диктуется версией IP-заголовка исходного IP-пакета.
Узел-получатель может восстанавливать исходные IP-адреса из поля Value доступного кортежа.
Режим легкого туннеля, в отличие от транспортного режима, дает возможность менять адреса в IP-заголовке IPIir-пакета.
На рисунке 6 показан пример защиты IP-пакета с помощью протокола IPIir в режиме "легкий туннель".
Рисунок 6 - Защита IP-пакета с помощью протокола IPIir в режиме "легкий туннель"
4.4.3 Туннельный режим
Туннельный режим, приведенный на рисунке 7, в отличие от остальных режимов, защищает весь исходный IP-пакет, включая его IP-заголовок.
В туннельном режиме формируется новый IP-заголовок, заполняемый на основании контекста узла-получателя и таблицы IP маршрутизации узла-отправителя, за которым следует IPIir-заголовок и кортежи (Type, Length, Value). Далее размещается исходный IP-пакет.
Допускается различие версий исходного и нового IP-заголовков, т.е. возможна передача пакетов IPv6 по протоколу IPv4 и пакетов IPv4 по протоколу IPv6.