Pakketten doorsturen naar Hyper-V uitbreidbare switchpoorten
Op deze pagina wordt beschreven hoe een Hyper-V uitbreidbare doorstuuruitbreiding pakketten naar een of meer poorten kan doorsturen. Dit type extensie kan ook pakketten doorsturen naar afzonderlijke netwerkadapters die zijn verbonden met de uitbreidbare switch externe netwerkadapter.
Opmerking Alleen de uitbreiding voor het doorsturen van uitbreidbare switch of de uitbreidbare switch zelf kan pakketten doorsturen naar uitbreidbare switchpoorten.
Opmerking Op deze pagina wordt ervan uitgegaan dat u bekend bent met de informatie en diagrammen in Overzicht van de Hyper-V Uitbreidbare switch en Hybrid Forwarding-.
Opmerking In de uitbreidbare switchinterface staan NDIS-filterstuurprogramma's bekend als uitbreidbare switchuitbreidingen en wordt de stuurprogrammastack de uitbreidbare stuurprogrammastackgenoemd. Zie Hyper-V Extensible Switch Extensionsvoor meer informatie over extensies.
Als een forwarding-extensie is geïnstalleerd en ingeschakeld in de uitbreidbare stuurprogrammastack, is deze verantwoordelijk voor het maken van doorstuurbeslissingen voor elk pakket dat het ontvangt op het uitbreidbare switch-gegevenspad voor inkomend verkeer. Op basis van deze doorstuurbeslissingen voegt de extensie doelpoorten toe aan de doelpoortmatrix in de out-of-band-gegevens (OOB) van de NET_BUFFER_LIST structuur van het pakket. Nadat het pakket de doorkruising van het uitbreidbare switchgegevenspad heeft voltooid, levert de uitbreidbare switchinterface het pakket aan de opgegeven doelpoorten.
Opmerking Als een doorstuuruitbreiding niet is geïnstalleerd of ingeschakeld, neemt de uitbreidbare switch de beslissingen voor het doorsturen van pakketten die worden verkregen via het gegevenspad voor inkomend verkeer. De switch voegt de doelpoorten toe aan de OOB-gegevens van de NET_BUFFER_LIST-structuur van het pakket voordat het pakket verder wordt geleid over het uitbreidbare uitgaande gegevenspad van de schakelaar.
Opmerking Als het pakket een NVGRE-pakket is, kan de doorstuurextensie doelpoorten toevoegen aan de doelpoortmatrix. Het Hyper-V HNV-onderdeel (Network Virtualization) van de uitbreidbare switch is echter verantwoordelijk voor het bepalen van de doelpoorten en het doorsturen van het pakket. Zie Hybrid Forwarding-voor meer informatie.
De doorstuurextensie kan poortbestemmingen alleen toevoegen aan pakketten die zijn verkregen via het gegevenspad voor inkomend verkeer. Nadat het pakket is doorgestuurd naar het uitgaande gegevenspad, kunnen filter- en doorstuuruitbreidingen de levering van pakketten uitsluiten naar uitbreidbare switchpoorten. Voor meer informatie, zie Uitsluiten van pakketlevering van uitbreidbare switchbestemmingspoorten.
Binnen de OOB-gegevens van de NET_BUFFER_LIST structuur van een pakket bevinden de gegevens voor doelpoorten zich in een NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structuur. Elk element in de matrix definieert een doelpoort en wordt opgemaakt als een NDIS_SWITCH_PORT_DESTINATION structuur.
De doorstuurextensie kan de volgende Hyper-V Uitbreidbare switchhandlerfuncties aanroepen om de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structuur en de bijbehorende NDIS_SWITCH_PORT_DESTINATION elementen te beheren:
AddNetBufferListDestination
Met deze functie wordt één doelpoort toegevoegd aan de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structuur in de OOB-gegevens van het pakket.
GetNetBufferListDestinations
Deze functie retourneert een aanwijzer naar de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structuur in de OOB-gegevens van een pakket.
GrowNetBufferListDestinations
Met deze functie worden meer doelpoortelementen toegevoegd aan de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structuur van de OOB-gegevens van een pakket.
UpdateNetBufferListDestinations
Met deze functie worden de wijzigingen doorgevoerd die de extensie heeft aangebracht om een of meer doelpoorten voor een pakket toe te voegen of uit te sluiten. Deze wijzigingen wordt vastgelegd in de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structuur van de OOB-gegevens van het pakket.
Wanneer de functie FilterSendNetBufferLists van de doorstuurextensie wordt aangeroepen, bevat de parameter NetBufferList een aanwijzer naar een gekoppelde lijst met NET_BUFFER_LIST structuren. Elk van deze structuren specificeert een pakket dat is verkregen via het gegevenspad voor inkomend verkeer.
Voor elke NET_BUFFER_LIST structuur in deze lijst voegt de doorstuurextensie doelpoorten voor het pakket toe door de volgende stappen uit te voeren:
De extensie neemt beslissingen voor het doorsturen van het pakket op basis van verschillende typen criteria. Deze criteria omvatten het volgende:
Beleidscriteria op basis van de bronpoort en netwerkadapterverbinding van het pakket. De doorstuurextensie verkrijgt deze informatie met behulp van de NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL macro.
Beleidscriteria voor een uitbreidbare switchpoort op basis van de nettoladinggegevens van het pakket. Een beleid voor een uitbreidbare switchpoort kan bijvoorbeeld een filter bevatten om alleen IP-versie 4-pakketten (IPv4) af te leveren.
Opmerking Als het pakket een NVGRE-pakket is, is het HNV-onderdeel van de uitbreidbare switch verantwoordelijk voor het doorsturen van het pakket. De doorstuurextensie kan zijn eigen beleidseisen echter toepassen op de routes voor inkomend en uitgaand verkeer. Zie Hybrid Forwarding-voor meer informatie.
Als de extensie bepaalt dat het pakket kan worden doorgestuurd naar een of meer uitbreidbare switchpoorten, moet het doelpoorten toevoegen aan de OOB-gegevens van het pakket. Voor meer informatie over deze procedure, zie Extensible Switch Destination Port Data toevoegen aan een pakket.
Opmerking Als het pakket een NVGRE-pakket is, is de doorstuurextensie niet vereist om doelpoorten toe te voegen. Zie Hybrid Forwarding-voor meer informatie.
Als de extensie bepaalt dat het pakket niet kan worden doorgestuurd naar een uitbreidbare switchpoort, moet het pakket worden neergezet.
Opmerking Dit is niet waar als het pakket een NVGRE-pakket is. Zie Hybrid Forwarding-voor meer informatie.
Als de extensie een of meer doelpoorten voor het pakket heeft toegevoegd, moet deze NdisFSendNetBufferLists aanroepen om het pakket door te sturen op het uitgaande gegevenspad.
Opmerking Als het pakket een NVGRE-pakket is, is het HNV-onderdeel van de uitbreidbare switch verantwoordelijk voor het doorsturen van het pakket. Zie Hybrid Forwarding-voor meer informatie.
Zie Hyper-V Extensible Switch Data Pathvoor meer informatie over de inkomende en uitgaande gegevenspaden van de uitbreidbare switch.