Кратко

  • RFC 9611 позволяет создать несколько Child SA с одинаковыми TSi/TSr, чтобы разные CPU или очереди имели собственные ключи и счётчики последовательности без общей блокировки.
  • SA_RESOURCE_INFO обозначает логическую группу; необязательное значение предназначено лишь для диагностики. TS_MAX_QUEUE запрещает новые члены только для данной пары селекторов.
  • Успех переговоров не равен мощности: отдельно проверяются входная и выходная установка, локальный ресурс, распределение пакетов, replay и потери, rekey, удаление, возврат и прикладная скорость.

В журнале стоят несколько успешных SA. Но счётчики показывают, что почти всю работу выполняет первая. На другом конце все входные состояния установлены, потому что пакеты на них обязаны приниматься, а выходное состояние осталось одно. Протокол не сломан; неверен вывод из числа строк.

RFC 9611 появился из-за стоимости общего криптографического состояния. Когда много CPU назначают номера из одного пространства, блокировки и синхронизация съедают параллелизм. Несколько обычных Child SA сохраняют одну политику трафика, но получают независимые ключи, SPI и последовательности.

Алгоритмы, TSi/TSr, режим и сжатие должны совпадать с первым членом. Это защищает общий контракт. Однако локальная CPU, очередь, ускоритель и фактический поток в этот контракт не входят.

Метка для диагностики не управляет ресурсом

Необязательные данные SA_RESOURCE_INFO могут различать члены группы, но партнёр обязан использовать их только для отладки. Реальный номер CPU раскрыл бы устройство системы и мог помочь связать трафик с целью атаки. Локальная «очередь 2» также не имеет переносимого смысла.

Метка не является полномочием, командой планировщику или доказательством исполнения. Общий слой сообщает минимум для совместимости; дальнейшее решение остаётся у владельца машины.

Независимый счётчик устраняет один барьер

RFC 4303 связывает последовательность ESP с защитой от повторов, а RFC 6479 описывает контекст окна приёма. RFC 9611 не отменяет проверку, а создаёт несколько корректных доменов состояния.

Пример роста примерно с 5 Гбит/с на одном CPU до 40–60 Гбит/с на 25–30 CPU объясняет цель, но не обещает результат на другом оборудовании. Влияют NIC, драйвер, шифр, размер пакета, распределение потоков и направление. Нужны пакеты и байты по каждой SA, загрузка CPU/очередей, ошибки целостности и replay, потери, задержка и скорость приложения.

У направлений разные обязательства

Партнёр с меньшим числом ресурсов может не создавать лишнюю выходную половину, которой не воспользуется. Все согласованные входные SA он установить обязан. Поэтому одинаковый протокольный список скрывает допустимо разные локальные схемы.

На конечном хосте вход и выход обычно следует держать на одном CPU. Шлюз с асимметричным трафиком может перемещать их отдельно. Если ранее пропущенную выходную половину понадобится добавить, IKE-процессу может потребоваться ключевой материал, который он уже собирался уничтожить. Политика ключей становится частью мобильности ресурса.

Переход требует большего лимита

Оба конца могут одновременно начать создание по требованию. Первый пакет идёт через имеющуюся SA, а ответ запускает обратное создание. При rekey старые и новые члены временно существуют вместе. Поэтому RFC рекомендует минимум двойное число CPU, а не жёсткий предел стабильного состояния.

Если предел для TSi/TSr исчерпан, TS_MAX_QUEUE точно описывает отказ. NO_ADDITIONAL_SAS мог бы ошибочно закрыть SA с другими селекторами.

Удаление праздной SA не определяет возвращение. Без локального события с CPU или очередью система может не понять, когда создавать её снова. Немедленный возврат рискует зациклиться с Delete партнёра; отсутствие возврата оставляет только первую SA. RFC 2367 даёт контекст SADB_ACQUIRE, который следует локально дополнить ресурсом.

Механизм рассчитан прежде всего на доверяющие друг другу высоконагруженные шлюзы. Большое число SA потребляет состояние и замедляет SAD. В удалённом доступе менее доверенные клиенты могли бы умножать чужое состояние, поэтому RFC не рекомендует per-CPU SA и включение по умолчанию.

Источники