Předávání paketů fyzickým síťovým adaptérům
Poznámka Tato stránka předpokládá, že znáte informace a diagramy na následujících stránkách:
- rozšíření předávání
- Hybridní předávání
- Hyper-V Rozšíření rozšiřitelného přepínače
- přehled Hyper-V rozšiřitelného přepínače
- Rozšíření poskytovatele týmové práce
Tato stránka popisuje, jak Hyper-V rozšiřitelná rozšíření přesměrování přepínačů můžou předávat požadavky paketů do podkladových fyzických adaptérů. Jeden nebo více fyzických síťových adaptérů je možné svázat s rozšiřitelným externím síťovým adaptérem.
Například externí síťový adaptér rozšiřitelného přepínače může být svázán s virtuálním miniportovým okrajem zprostředkujícího ovladače NDIS multiplexeru (MUX). Průběžný ovladač MUX může být vázán na tým jedné nebo více fyzických sítí na hostiteli. Tato konfigurace se označuje jako rozšiřitelný tým přepínače . Další informace o rozšiřitelných přepínačích naleznete viz Typy konfigurací fyzických síťových adaptérů.
V této konfiguraci jsou rozšíření rozšiřitelných přepínačů zpřístupněna všem síťovým adaptérům v rozšiřitelném týmu přepínačů. To umožňuje přesměrovacímu rozšíření v rozšiřitelném zásobníku ovladačů přepínacího uzlu spravovat konfiguraci a použití jednotlivých síťových adaptérů v týmu adaptérů. Rozšíření může například poskytnout podporu pro řešení převzetí služeb při selhání vyrovnávání zatížení (LBFO) v rámci týmu tím, že přesměrovává odchozí pakety na jednotlivé adaptéry. Takové rozšíření je známo jako poskytovatel seskupování . Další informace o poskytovatelích seskupování naleznete v tématu Rozšíření poskytovatele seskupování.
Pokud je v zásobníku ovladačů rozšiřitelného přepínače nainstalované a povolené rozšíření pro předávání, je zodpovědné za rozhodování o předávání pro každý paket, který obdrží na vstupní datové cestě rozšiřitelného přepínače, pokud se nejedná o paket NVGRE. (Další informace o paketech NVGRE najdete v tématu hybridní předávání.) Na základě těchto rozhodnutí o předávání může rozšíření přidat cílové porty do dat mimo pásma (OOB) struktury NET_BUFFER_LIST paketu. Jakmile paket dokončí procházení datové cesty rozšiřitelného přepínače, rozhraní rozšiřitelného přepínače doručí paket určeným cílovým portům.
Poznámka Pokud není nainstalované nebo povolené rozšíření pro předávání, rozšiřitelný přepínač sám rozhoduje o směrování paketů, které získává z datové cesty vstupního směru. Přepínač přidá cílové porty k datům OOB v rámci struktury NET_BUFFER_LIST paketu, než tento paket předá na výstupní datovou cestu rozšiřitelného přepínače.
Když je zavolána funkce FilterSendNetBufferLists předávacího rozšíření, parametr NetBufferList obsahuje ukazatel na propojený seznam struktur NET_BUFFER_LIST. Každá z těchto struktur určuje paket získaný ze vstupní datové cesty. V rámci dat OOB struktury NET_BUFFER_LIST jednotlivých paketů jsou data cílových portů obsažena ve struktuře NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. Rozšíření získá strukturu NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY a její prvky voláním GetNetBufferListDestinations.
Poznámka Ke zlepšení výkonu může rozšíření přesměrování volat funkci GrowNetBufferListDestinations místo GetNetBufferListDestinations, aby získalo ukazatel na strukturu NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. Rozšíření toto provede, pokud zjistí, že potřebuje další prvky pole v datech OOB paketu pro cílové porty. Další informace najdete v tématu Přidání dat cílového portu rozšiřitelného přepínače dopaketu .
Každý prvek v poli NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY definuje cílový port a je formátován jako NDIS_SWITCH_PORT_DESTINATION struktura. Tato struktura obsahuje následující členy:
PortId člen obsahuje hodnotu, která určuje cílový port na rozšiřitelném přepínači.
Člen NicIndex určuje index síťového adaptéru, který je připojen k rozšiřitelnému portu přepínače určenému členem PortId.
Další informace o těchto hodnotách indexu naleznete v části Indexové hodnoty síťových adaptérů.
Pokud rozšíření přesměrování přidá cílový port připojený k externímu síťovému adaptéru, může rozšíření určit index základního fyzického síťového adaptéru. Rozšíření může například fungovat jako poskytovatel seskupování pro podporu technologie LBFO v rámci týmu s rozšiřitelným přepínačem. Díky tomu může rozšíření vyrovnávat režijní náklady na provoz tím, že přesměruje požadavky na různé adaptéry týmu.
Rozšíření předávání musí postupovat podle těchto pokynů, když přidá nebo upraví strukturu NDIS_SWITCH_PORT_DESTINATION pro předávání požadavků do základního fyzického síťového adaptéru:
Pokud PortId člen určuje rozšiřitelný port přepínače, ke kterému je externí síťový adaptér připojený, musí rozšíření nastavit NicIndex člen na jednu z následujících hodnot indexu:
Pokud je k externímu síťovému adaptéru vázán pouze jeden fyzický síťový adaptér, musí rozšíření nastavit NicIndex člen na NDIS_SWITCH_DEFAULT_NIC_INDEX nebo jeden.
Pokud je k externímu síťovému adaptéru vázáno více fyzických síťových adaptérů, musí rozšíření nastavit NicIndex člen na nenulovou hodnotu indexu cílového síťového adaptéru v rozšiřitelném týmu přepínačů.
Poznámka Pokud člen PortId neurčí rozšiřitelný port přepínače, ke kterému je externí síťový adaptér připojený, musí rozšíření nastavit NicIndex člen na NDIS_SWITCH_DEFAULT_NIC_INDEX.
Jakmile rozšíření přidá všechny cílové porty do paketu, musí použít NdisFSendNetBufferLists k předání paketu na příchozí cestu dat.
Další informace o tom, jak přidat cílové porty do paketu, naleznete v tématu Předávání paketů do Hyper-V rozšiřitelné přepínače porty.
Další informace o egresní datové cestě najdete v tématu Hyper-V Rozšiřitelná switchová datová cesta.