Transfert hybride

À compter de NDIS 6.40 (Windows Server 2012 R2), l’architecture de commutateur extensible Hyper-V prend en charge le transfert hybride par le composant HNV (Hyper-V Network Virtualization) du commutateur extensible et par le transfert d’extensions.

Note Cette page suppose que vous êtes familiarisé avec la virtualisation de réseau à l’aide du déchargement de tâche NVGRE (Generic Routing Encapsulation) et de la vue d’ensemble du commutateur extensible Hyper-V.

Paquets NVGRE et non NVGRE

Dans un environnement de transfert hybride, il existe deux types de paquets qui entrent et quittent le commutateur extensible Hyper-V : les paquets NVGRE et les paquets non NVGRE :

  • Les paquets NVGRE ont le format encapsulé spécifié dans NVGRE : Network Virtualization using Generic Routing Encapsulation Internet Draft. Les paquets NVGRE sont transférés par le composant HNV du commutateur extensible Hyper-V.
  • Les paquets non NVGRE sont simplement des paquets réseau normaux. Les paquets non NVGRE sont transférés par l’extension de transfert (ou, en l’absence d’extension de transfert, par le commutateur extensible lui-même).

Flux de paquets NVGRE et non NVGRE via le commutateur

Dans le chemin des données d’entrée, après les extensions de capture et de filtrage, mais avant l’extension de transfert, si un paquet est un paquet NVGRE, le commutateur extensible définit l’indicateur NativeForwardingRequired dans la structure NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO du paquet. Cette structure est contenue dans le membre NetBufferListInfo de la structure NET_BUFFER_LIST du paquet.

Note Le membre NetBufferListInfo du NET_BUFFER_LIST est souvent appelé « données hors bande (OOB) » du paquet.

Si l’indicateur NativeForwardingRequired est défini dans les données OOB du paquet, le paquet est un paquet NVGRE. S’il n’est pas défini, le paquet est un paquet non NVGRE.

Les extensions doivent utiliser la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL pour case activée la valeur de l’indicateur NativeForwardingRequired.

Les paquets NVGRE et non NVGRE sont traités comme suit :

  • Le composant HNV du commutateur extensible Hyper-V (c’est-à-dire, détermine la table de destination pour) tous les paquets NVGRE
  • Le composant HNV effectue l’encapsulation et la décapsulation NVGRE en fonction des besoins.
  • L’extension de transfert transfère tous les paquets non NVGRE.
  • L’extension de transfert ne peut pas transférer les paquets NVGRE, mais elle peut effectuer les mêmes actions de filtrage qu’une extension de filtrage, y compris l’ajout ou l’exclusion de ports de destination ou même la suppression de paquets.
  • S’il n’existe aucune extension de transfert, le commutateur extensible Hyper-V transfère tous les paquets.

Pour plus d’informations, consultez Flux de paquets via le chemin de données du commutateur extensible.

Prise en charge de la virtualisation de réseau tierce

Un VirtualSubnetId peut être configuré sur un port de carte réseau de machine virtuelle en tant que sous-réseau virtuel externe. Cette fonctionnalité a été ajoutée pour activer les extensions de transfert afin de fournir des solutions de virtualisation réseau tierces. Lors de l’entrée, le commutateur extensible Hyper-V ne définit pas l’indicateur NativeForwardingRequired dans les structures NET_BUFFER_LIST pour ces paquets. Une extension de transfert peut ensuite modifier les en-têtes de paquets, selon les besoins, pendant le transfert. Les paquets en cours de modification doivent être clonés et leurs pointeurs ParentNetBufferList définis sur le NET_BUFFER_LIST d’origine. (Voir Clonage du trafic de paquets.)

Ajout de données de port de destination de commutateur extensible à un paquet

Clonage du trafic de paquets

Transfert d’extensions

Flux de paquets via le chemin de données du commutateur extensible

NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO