3. Обработка идентификационного заголовка AH
3.1. Местоположение AH
AH может работать в двух режимах — транспортном и туннельном. Более подробное описание этих режимов и рекомендации по выбору приводится в документе, посвященном архитектуре защиты.
3.1.1. Транспортный режим
В транспортном режиме AH помещается между заголовком IP и заголовком протокола следующего уровня (например, TCP, UDP, ICMP и т.п.) или перед другими заголовками IPsec, если они имеются. В контексте IPv4 это говорит о размещении AH после заголовка IP (и всех опций этого заголовка), но перед заголовком протокола следующего уровня.
На рисунке показан заголовок типичного пакета IPv4 до защиты и положение заголовка AH при работе в транспортном режиме:
До применения AH ---------------------------- IPv4 |Исх. заг. IP | | | | (опции) | TCP | Data | ---------------------------- После применения AH ------------------------------------------------------- IPv4 |Исходный заголовок IP (опции) | AH | TCP | Data | ------------------------------------------------------- |<- Обраб. переменного поля -->|<-- неизменые поля -->| |<------ идентифицировано кроме перемен. полей ------>|
В контексте IPv6 заголовок AH представляется, как передаваемые «насквозь» данные и, следовательно, ему надлежит размещаться после заголовков расширения (hop-by-hop, routing, fragmentation). Опции получателя в расширенном заголовке могут располагаться перед заголовком AH, после него или по обе стороны, в зависимости от желаемой семантики. На приведенном ниже рисунке показано размещение AH для транспортного режима в типичном пакете IPv6.
До применения AH --------------------------------------- IPv6 | | расш. заг| | | | Исх. заг. IP|если есть | TCP |Данные| --------------------------------------- После применения AH ------------------------------------------------------------ IPv6 | |hop-by-hop, dest*, | | dest | | | | Исх. заг. IP|routing, fragment. | AH | opt* | TCP | Data | ------------------------------------------------------------ |<--- Обраб. переменного поля --->|<--- неизменые поля --->| |<-------- идентифицировано кроме перемен. полей --------->| * = при наличии может располагаться перед AH, после AH или в обоих местах