Поделиться через


Получение сетевых данных с разгрузкой IPsec версии 2

[Функция разгрузки задач IPsec является устаревшей и не должна использоваться.]

Сетевой адаптер выполняет обработку разгрузки IPsec версии 2 (IPsecOV2) в пакете получения, как указано в сопоставлении безопасности (SA), которое было выгружено из транспорта.

Драйвер мини-порта задает сведения ООБ IPsecOV2 перед указанием полученных данных для более уровневых драйверов. Дополнительные сведения о доступе к сведениям об OOB см. в разделе Доступ к сведениям NET_BUFFER_LIST в IPsec Offload version 2.

Примечание Драйвер мини-порта должен указывать все полученные пакеты для слишком больших драйверов, даже если при обработке данных IPsec в сетевом адаптере возникает ошибка. Драйвер должен указывать пакеты с ошибками, чтобы стек драйверов мог отслеживать и устранять неполадки сетевого трафика.

Прежде чем драйвер минипорта укажет полученный пакет данных в стеке драйверов, драйвер мини-порта:

  • Проверяет, настроено ли оборудование для выполнения задач разгрузки IPsec. В противном случае драйвер мини-порта выполняет индикацию приема без дополнительной обработки разгрузки IPsec.

  • Проверяет индекс параметров безопасности (SPI), чтобы определить, существует ли соответствующий разгруженный sa. Драйвер мини-порта подтверждает, что адрес назначения в пакете совпадает с адресом, указанным в разгрузке SA. Если соответствующий SA отсутствует, сетевой адаптер указывает полученные данные без настройки сведений об OOB IPsecOV2.

  • Проверяет, может ли он обработать пакет на основе возможностей, о которые драйвер минипорта сообщил транспорту, или делает сообщение о получении без дальнейшей обработки IPsec. Например, пакет может иметь ip-параметры, в которых сетевой адаптер не поддерживает обработку разгрузки IPsec для таких пакетов, а драйвер мини-порта выполняет обработку IPsec.

  • Задает флаг CryptoDone в структуре NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO , чтобы указать, что сетевой адаптер выполнил проверку IPsec по крайней мере для одной полезной нагрузки IPsec в полученном пакете.

  • Задает флаг NextCryptoDone в структуре NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO, чтобы указать, что сетевой адаптер выполнил проверку IPsec как для туннеля, так и для транспортных частей получающего пакета. Драйвер мини-порта устанавливает этот флаг только в том случае, если пакет содержит полезные данные туннеля и транспорта; В противном случае этот флаг должен быть равен нулю.

  • Задает правильное значение CryptoStatus структуры NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO, чтобы указать результаты проверок IPsec.

Если сетевой адаптер не выполнял разгрузку для входящего пакета, драйвер мини-порта снимает флаги CryptoDone и NextCryptoDone . Драйвер мини-порта очищает эти флаги для всех пакетов получения, где сетевой адаптер не расшифровывается, независимо от того, защищен ли пакет AH или ESP.

Драйвер мини-порта может задать SaDeleteReq в структуре NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO для NET_BUFFER_LIST получения. Транспорт TCP/IP впоследствии выдает OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA один раз удалить входящий sa, который был получен пакет, и еще раз удалить исходящий sa, соответствующий удаленному входящие sa. Дополнительные сведения о добавлении и удалении SAS см. в разделе Управление связями безопасности в разгрузке IPsec версии 2.

После того как драйвер мини-порта укажет структуру NET_BUFFER_LIST транспорту TCP/IP, транспорт TCP/IP проверяет результаты проверок IPsec, выполненных сетевой картой для пакета, проверяет порядковые номера пакета и определяет, что делать с пакетом, который не проходит контрольную сумму или тесты последовательности.