Partager via


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

Cette rubrique décrit comment les paquets se déplacent vers ou depuis des ports de commutateur extensible via le chemin de données de commutateur extensible Hyper-V.

Remarque Dans l’interface de commutateur extensible, les pilotes de filtre NDIS sont appelés extensions de commutateur extensible et la pile des pilotes est appelée pile de pilotes de commutateur extensible. Pour plus d’informations sur les extensions, consultez Hyper-V Extensions de commutateur extensibles.

Note Cette page suppose que vous êtes familiarisé avec les informations de vue d’ensemble du commutateur extensible Hyper-V et du transfert hybride.

Tout le trafic de paquets qui arrive au commutateur extensible à partir de ses ports suit le même chemin via la pile de pilotes de commutateur extensible. Par exemple, le trafic de paquets reçu à partir de la connexion de carte réseau externe ou envoyé à partir d’une connexion de carte réseau de machine virtuelle passe par le même chemin de données.

La figure suivante montre le chemin de données de commutateur extensible pour NDIS 6.40 (Windows Server 2012 R2) et versions ultérieures.

Diagramme montrant Hyper-V architecture de commutateur extensible pour NDIS 6.40 et versions ultérieures.

La figure suivante montre le chemin de données de commutateur extensible pour NDIS 6.30 (Windows Server 2012).

Diagramme montrant Hyper-V architecture de commutateur extensible pour NDIS 6.30.

Pour plus d’informations sur les composants de l’interface de commutateur extensible, consultez Hyper-V Architecture de commutateur extensible.

Le chemin de données de commutateur extensible comporte les parties suivantes, répertoriées dans l’ordre dans lequel les paquets circulent :

Interface supérieure du protocole

  1. Les paquets arrivent au commutateur extensible à partir de cartes réseau connectées aux ports de commutateur. Ces paquets sont d'abord émis sous forme de demandes d'envoi à partir du bord de protocole du commutateur extensible et empruntent le chemin de données d'entrée du commutateur extensible.

    Le bord du protocole du commutateur extensible prépare les paquets pour le chemin de données d’entrée. La limite du protocole alloue une zone de contexte pour ces paquets, qui contient le contexte de transfert hors bande (OOB) du commutateur extensible. Il remplit les données OOB avec des informations sur le port source et la connexion de carte réseau à partir desquels le paquet a été remis au commutateur extensible.

    Pour plus d’informations sur le contexte de transfert, consultez Hyper-V contexte de transfert extensible.

  2. Dans NDIS 6.40 (Windows Server 2012 R2) et versions ultérieures, si le paquet est un paquet NVGRE à partir d’une carte réseau externe, le commutateur extensible définit l’indicateur NativeForwardingRequired dans les informations OOB (out-of-band) du paquet. Pour plus d’informations, consultez Transfert hybride.

  3. Si le paquet est arrivé sur un port où le trafic a un sous-réseau virtuel, le commutateur extensible définit le membre VirtualSubnetId de la structure NDIS_NET_BUFFER_LIST_VIRTUAL_SUBNET_INFO du paquet.

    Note Le sous-réseau virtuel peut être un sous-réseau HNV ou un sous-réseau virtuel tiers.

Chemin d’accès aux données d’entrée

  1. Une extension obtient un paquet à partir du chemin de données d’entrée lorsque sa fonction FilterSendNetBufferLists est appelée. L’extension transfère le paquet aux extensions sous-jacentes sur le chemin de données d’entrée en appelant NdisFSendNetBufferLists. Les extensions de filtrage et de transfert peuvent également supprimer le paquet du chemin de données d’entrée en appelant NdisFSendNetBufferListsComplete.

  2. Lors de la capture, les extensions obtiennent les paquets sur le chemin des données d'entrée, elles peuvent ainsi inspecter les données des paquets. Toutefois, la capture des extensions ne doit pas terminer les demandes d’envoi de paquets sur le chemin de données d’entrée. Ces extensions doivent toujours transférer les paquets aux extensions sous-jacentes dans la pile de pilotes de commutateur extensible.

    Une extension de capture peut également générer des paquets sur le chemin de données entrant. Par exemple, l’extension peut générer des paquets afin de signaler les conditions de trafic à une application de supervision à distance.

    Pour plus d’informations sur la création de paquets par une extension, consultez Création d’un trafic de paquets.

  3. Lors du filtrage, les extensions obtiennent les paquets sur le chemin d'accès des données entrantes et peuvent effectuer les opérations suivantes :

    • Supprimez les paquets en fonction des stratégies personnalisées de commutateur extensible ou de port.

      Pour plus d’informations sur ces stratégies, consultez Hyper-V stratégies de commutateur extensible.

      Note Les paquets obtenus sur le chemin de données d’entrée n’ont pas de ports de destination définis dans les données OOB du paquet. Par conséquent, les extensions de filtrage doivent appliquer uniquement des stratégies personnalisées en fonction des données de paquets, du port source du paquet ou de la connexion de carte réseau du paquet.

  • Clonez ou modifiez des paquets obtenus à partir du chemin de données d’entrée.

  • Injectez de nouveaux paquets dans le chemin de données d’entrée.

  1. Dans NDIS 6.40 et versions ultérieures, après la capture et le filtrage des extensions, mais avant l’extension de transfert sur le chemin de données d’entrée, le commutateur extensible effectue les opérations suivantes :

    • Si le paquet est un paquet NVGRE provenant d'une carte réseau externe, l'adresse dans l'en-tête du paquet est une adresse de l'espace fournisseur (PA). Le commutateur extensible indique cela en définissant l’indicateur NativeForwardingRequired dans les informations OOB (out-of-band) du paquet. Pour plus d’informations, consultez Transfert hybride.

    • Le commutateur extensible applique les stratégies d’entrée intégrées au paquet. Ces stratégies peuvent inclure des listes de contrôle d’accès d’entrée (ACL), DHCP Guard et Router Guard.

  2. Si une extension de transfert n’est pas activée dans la pile de pilotes de commutateur extensible, le tableau de ports de destination d’un paquet est déterminé par le commutateur extensible.

  3. Si une extension de transfert est activée, elle doit effectuer les opérations suivantes lorsqu’elle obtient des paquets sur le chemin de données d’entrée :

    • Dans NDIS 6.40 et versions ultérieures, si le paquet est un paquet NVGRE (voir Transfert hybride), l’extension de transfert ne peut pas modifier le tableau de ports de destination dans les données OOB du paquet dans le chemin de données d’entrée. Toutefois, il peut rejeter le paquet.

    • Si le paquet n’est pas un paquet NVGRE, l’extension de transfert doit ajouter des ports de destination au tableau de ports de destination dans les données OOB du paquet.

    • L’extension de transfert doit supprimer les paquets en fonction des stratégies de commutateur ou de port extensible standard ou personnalisées. Les stratégies de commutateur ou de port standard incluent les propriétés de sécurité et de réseau local virtuel (VLAN). Si une extension de transfert n’est pas activée dans la pile de pilotes de commutateur extensible, ces stratégies sont appliquées par le commutateur extensible.

      Note Lorsque l’extension de transfert filtre les paquets dans le chemin de données d’entrée, elle applique des règles de filtrage basées sur le port source ainsi que les ports de destination que l’extension affecte au paquet.

En outre, l’extension de transfert peut effectuer les opérations suivantes :

  • Clonez ou modifiez des paquets obtenus à partir du chemin de données d’entrée.

  • Injectez de nouveaux paquets dans le chemin de données d’entrée.

Périphérie miniport sous-jacente

  1. Lorsque le paquet arrive au bord miniport sous-jacent du commutateur extensible, le commutateur extensible applique ses stratégies intégrées au paquet. Ces stratégies incluent les listes de contrôle d’accès (ACL) et les propriétés de qualité de service (QoS). Si le paquet n’est pas supprimé en raison de ces stratégies, le commutateur extensible génère une indication de réception pour le paquet et le transfère vers le chemin de données de sortie.

    Note Si la mise en miroir de ports est activée sur un port auquel le paquet doit être remis, la périphérie miniport ajoute un port de destination aux données OOB du paquet pour le port miroir. L'interface miniport effectue cette opération, que l'extension d'acheminement soit ou non installée et activée dans la pile de pilotes de commutateur extensible. Le bord miniport ajoute uniquement le port miroir s’il n’est pas déjà spécifié dans le tableau de ports de destination du paquet.

  2. Si une extension de transfert n’est pas activée, le commutateur extensible détermine les ports de destination du paquet et ajoute ces ports de destination aux données OOB du paquet avant de transférer le paquet vers le haut du chemin de données de sortie.

  3. Dans NDIS 6.40 et versions ultérieures, le composant HNV effectue toute encapsulation NVGRE ou décapsulation nécessaire après entrée et avant sortie, afin que l’extension de transfert puisse voir le paquet sous forme encapsulée et décapsulée. Par exemple, si le paquet arrive d'un adaptateur réseau externe et est destiné à une machine virtuelle interne, l’extension de transfert obtient le paquet encapsulé en entrée et le paquet décapsulé en sortie.

    Note Dans le paquet encapsulé, l’adresse dans l’en-tête de trame est une adresse de l'espace d'adressage fournisseur (PA). Dans le paquet décapsulé, il s’agit d’une adresse d’espace d’adresse client (CA).

    1. Si le paquet est un paquet NVGRE arrivé à partir d’une carte réseau externe, le composant Hyper-V Network Virtualization (HNV) du commutateur extensible effectue la décapsulation NVGRE sur le paquet. Le composant HNV détermine les destinations du paquet en fonction des stratégies HNV, puis le commutateur extensible transfère le paquet vers le haut du chemin de données de sortie.

    2. Si le paquet est arrivé à partir d’une machine virtuelle interne, le composant HNV effectue l’encapsulation NVGRE sur le paquet si les stratégies HNV sont définies pour le paquet. Le composant HNV détermine les destinations du paquet en fonction des stratégies HNV, puis le commutateur extensible transfère le paquet vers le haut du chemin de données de sortie.

    3. Sinon, l’extension de transfert transfère le paquet vers le haut du chemin de données de sortie.

  4. Dans NDIS 6.30, si une extension de transfert est activée, elle doit transférer le paquet vers le haut du chemin de données de sortie.

Chemin d’accès aux données de sortie

  1. Une extension obtient un paquet à partir du chemin de données de sortie lorsque sa fonction FilterReceiveNetBufferLists est appelée. L’extension transfère le paquet vers des extensions sur le chemin de données de sortie en appelant NdisFIndicateReceiveNetBufferLists. Les extensions de filtrage et de transfert peuvent également supprimer le paquet du chemin de données de sortie en appelant NdisFReturnNetBufferLists.

  2. Lorsque l’extension de transfert obtient un paquet sur le chemin de données de sortie, elle peut inspecter les informations de port de destination du paquet dans les données OOB.

    Note L’extension obtient ces informations à partir des données OOB en appelant GetNetBufferListDestinations.

En fonction des stratégies de commutateur ou de port standard ou personnalisées, l’extension peut exclure la remise du paquet à un ou plusieurs ports de destination contenus dans les données OOB.

  1. Dans NDIS 6.40 (Windows Server 2012 R2) et versions ultérieures, après l’extension de transfert, mais avant le filtrage et la capture des extensions sur le chemin de données de sortie, le commutateur extensible applique les stratégies de sortie intégrées au paquet. Ces stratégies peuvent inclure le mode de jonction, le mode de surveillance, les ACL de sortie et les propriétés de qualité de service (QoS).

  2. Lorsque les extensions de filtrage obtiennent un paquet sur le chemin de données de sortie, elles peuvent inspecter les informations du port de destination du paquet dans les données OOB. En fonction des stratégies de commutateur ou de port personnalisées, l’extension peut exclure la remise du paquet à un ou plusieurs ports de destination contenus dans les données OOB.

    Si l’extension de filtrage doit modifier les données d’un paquet, elle doit d’abord cloner le paquet sans conserver les destinations de port. Ensuite, l’extension doit injecter le paquet modifié dans le chemin de données d’entrée. Cela permet aux extensions sous-jacentes d’appliquer des stratégies sur le paquet modifié et l’extension de transfert peut ajouter des destinations de port.

    Pour plus d’informations, consultez Clonage ou trafic de paquets.

  3. Lorsqu'ils capturent des paquets sur le chemin des données de sortie, les extensions peuvent inspecter les données des paquets. Toutefois, si l'extension de capture doit émettre des paquets pour signaler les conditions de trafic à une application de supervision à distance, elle doit émettre ce trafic de paquets en appelant NdisFSendNetBufferLists pour lancer une opération d'envoi sur le chemin de données entrant.

  4. Lorsque le paquet arrive à la limite de protocole superposé du commutateur extensible, l’interface du commutateur extensible achemine le paquet vers tous les ports de destination spécifiés.

  5. Une fois le paquet transféré, l’interface termine le paquet via le même chemin d’accès en sens inverse. Tout d’abord, l’interface appelle la fonction FilterReturnNetBufferLists de l’extension pour terminer les paquets transférés sur le chemin de données de sortie. Ensuite, l’interface appelle la fonction FilterSendNetBufferListsComplete de l’extension pour terminer les paquets transférés sur le chemin de données d’entrée.

    Lorsque le paquet est terminé à la fois sur le chemin de données de sortie et d’entrée, l’extension effectue tout nettoyage et post-traitement nécessaires qui peuvent être nécessaires.