Empfangen von Netzwerkdaten mit IPsec Offload Version 2

[Das IPsec-Aufgabenauslagerungsfeature ist veraltet und sollte nicht verwendet werden.]

Eine NIC führt IPsec-Auslagerungsverarbeitung von Version 2 (IPsecOV2) für ein Empfangspaket aus, wie in einer Sicherheitszuordnung angegeben, die aus dem Transport entladen wurde.

Der Miniporttreiber legt die IPsecOV2-Out-of-Band-Informationen (OOB) fest, bevor die empfangenen Daten auf überlastende Treiber angegeben werden. Weitere Informationen zum Zugreifen auf OOB-Informationen finden Sie unter Zugreifen auf NET_BUFFER_LIST Informationen in IPsec-Auslagerung Version 2.

Hinweis Ein Miniporttreiber sollte alle empfangenen Pakete für überlastende Treiber angeben, auch wenn bei der Verarbeitung der IPsec-Daten in der NIC ein Fehler auftritt. Der Treiber muss Pakete mit Fehlern angeben, damit der Treiberstapel den Netzwerkdatenverkehr überwachen und behandeln kann.

Bevor der Miniporttreiber das empfangene Datenpaket im Treiberstapel anzeigt, wird der Miniporttreiber:

  • Überprüft, ob die Hardware für die Verarbeitung von IPsec-Auslagerungsaufgaben konfiguriert ist. Andernfalls führt der Miniporttreiber eine Empfangsanzeige ohne zusätzliche IPsec-Auslagerungsverarbeitung aus.

  • Untersucht den Sicherheitsparameterindex (SPI), um zu ermitteln, ob eine übereinstimmende, abgeladene SA vorhanden ist. Der Miniporttreiber bestätigt, dass die Zieladresse im Paket mit der in der ausgeladenen SA angegebenen Adresse identisch ist. Wenn keine übereinstimmende SA vorhanden ist, gibt die NIC die empfangenen Daten an, ohne die IPsecOV2-OOB-Informationen festzulegen.

  • Überprüft, ob das Paket basierend auf den Funktionen verarbeitet werden kann, die der Miniporttreiber an den Transport gemeldet hat, oder er gibt einen Empfangshinweis ohne weitere IPsec-Verarbeitung aus. Beispielsweise verfügt das Paket über IP-Optionen, bei denen die NIC die IPsec-Auslagerungsverarbeitung für solche Pakete nicht unterstützt und der Miniporttreiber die IPsec-Verarbeitung ausführt.

  • Legt das CryptoDone-Flag in der NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO-Struktur fest, um anzugeben, dass eine NIC IPsec-Überprüfung für mindestens eine IPsec-Nutzlast im empfangenen Paket ausgeführt hat.

  • Legt das NextCryptoDone-Flag in der NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO-Struktur fest, um anzugeben, dass eine NIC IPsec-Überprüfung sowohl für den Tunnel als auch für den Transportteil eines Empfangspakets ausgeführt hat. Der Miniporttreiber legt dieses Flag nur fest, wenn ein Paket sowohl Tunnel- als auch Transportnutzlasten aufweist. Andernfalls sollte dieses Flag 0 sein.

  • Legt den richtigen CryptoStatus-Wert der NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO-Struktur fest, um die Ergebnisse der IPsec-Überprüfungen anzugeben.

Wenn die NIC keine Auslagerungsverarbeitung für ein eingehendes Paket ausgeführt hat, löscht der Miniporttreiber sowohl das CryptoDone - als auch das NextCryptoDone-Flag . Der Miniporttreiber löscht diese Flags für alle Empfangspakete, bei denen eine NIC nicht entschlüsselt wird, unabhängig davon, ob das Paket AH- oder ESP-geschützt ist.

Ein Miniporttreiber kann SaDeleteReq in der NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO-Struktur für eine Empfangs-NET_BUFFER_LIST festlegen. Der TCP/IP-Transport gibt anschließend OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA einmal aus, um die eingehende SA zu löschen, über die das Paket empfangen wurde, und erneut, um die ausgehende SA zu löschen, die der gelöschten eingehenden SA entspricht. Weitere Informationen zum Hinzufügen und Löschen von SAs finden Sie unter Verwalten von Sicherheitszuordnungen in IPsec-Auslagerung von Version 2.

Nachdem der Miniporttreiber die NET_BUFFER_LIST Struktur zum TCP/IP-Transport angibt, untersucht der TCP/IP-Transport die Ergebnisse der IPsec-Überprüfungen, die die NIC für das Paket ausgeführt hat, überprüft die Sequenznummern für das Paket und bestimmt, was mit einem Paket zu tun ist, das die Prüfsummen- oder Sequenzierungstests nicht bestanden hat.