Udostępnij przez


Przepływ pakietów przez rozszerzalną ścieżkę danych przełącznika

W tym temacie opisano sposób przenoszenia pakietów do lub z rozszerzalnych portów przełącznika za pośrednictwem Hyper-V rozszerzalnej ścieżki danych przełącznika.

Uwaga W interfejsie rozszerzalnego przełącznika sterowniki filtrów NDIS są znane jako rozszerzenia przełącznika rozszerzalnego , a stos sterowników jest znany jako rozszerzalny stos sterowników przełącznika. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Hyper-V Rozszerzalne rozszerzenia przełącznika.

Uwaga Ta strona zakłada, że znasz informacje przedstawione w temacie Omówienie przełącznika rozszerzalnego Hyper-V i Przekazywanie hybrydowe.

Cały ruch pakietów, który dociera do rozszerzalnego przełącznika z jego portów, podąża tą samą ścieżką przez rozszerzalny stos sterowników przełącznika. Na przykład ruch pakietów odebrany z zewnętrznego połączenia karty sieciowej lub wysłany z połączenia karty sieciowej maszyny wirtualnej przechodzi przez tę samą ścieżkę danych.

Na poniższej ilustracji przedstawiono rozszerzalną ścieżkę danych przełącznika dla sieci NDIS 6.40 (Windows Server 2012 R2) i nowszych.

Diagram przedstawiający architekturę przełącznika rozszerzalnego Hyper-V dla wersji NDIS 6.40 i nowszych.

Na poniższej ilustracji przedstawiono rozszerzalną ścieżkę danych przełącznika dla serwera NDIS 6.30 (Windows Server 2012).

Diagram przedstawiający architekturę przełącznika rozszerzalnego Hyper-V dla usługi NDIS 6.30.

Aby uzyskać więcej informacji na temat składników interfejsu rozszerzalnego przełącznika, zobacz Hyper-V Rozszerzalna architektura przełącznika.

Rozszerzalna ścieżka danych przełącznika ma następujące części wymienione w kolejności, w których pakiety przepływają przez nie:

Nadrzędna warstwa protokołu

  1. Pakiety danych docierają do przełącznika rozbudowywalnego z kart sieciowych podłączonych do portów przełącznika. Te pakiety danych są najpierw wystawiane jako żądania wysyłania z krawędzi protokołu przełącznika rozszerzalnego wzdłuż ścieżki danych wejściowych rozszerzalnego przełącznika.

    Krawędź protokołu przełącznika rozszerzalnego przygotowuje pakiety dla wewnętrznej ścieżki danych. Krawędź protokołu przydziela obszar kontekstowy dla tych pakietów, który zawiera poza-pasmowy (OOB) rozszerzalny kontekst przekazywania przełącznika. Wypełnia dane OOB informacjami o porcie źródłowym i połączeniu karty sieciowej, z którego pakiet został dostarczony do rozszerzalnego przełącznika.

    Aby uzyskać więcej informacji na temat kontekstu przekazywania, zobacz Hyper-V Extensible Switch Forwarding Context.

  2. W systemie NDIS 6.40 (Windows Server 2012 R2) i nowszych, jeśli pakiet jest pakietem NVGRE z zewnętrznej karty sieciowej, rozszerzalny przełącznik ustawia flagę NativeForwardingRequired w informacjach o pozapasmowym pakiecie (OOB). Więcej informacji znajdziesz w temacie Hybrid Forwarding.

  3. Jeśli pakiet dotarł do portu, na którym ruch ma podsieć wirtualną, przełącznik rozszerzalny ustawia element członkowski VirtualSubnetId struktury NDIS_NET_BUFFER_LIST_VIRTUAL_SUBNET_INFO pakietu.

    Uwaga Podsieć wirtualna może być podsiecią HNV lub podsiecią wirtualną innej firmy.

Ścieżka danych wejściowych

  1. Rozszerzenie uzyskuje pakiet ze ścieżki danych ruchu przychodzącego, gdy jest wywoływana funkcja FilterSendNetBufferLists. Rozszerzenie przekazuje pakiet do podstawowych rozszerzeń na przychodzącej ścieżce danych, wywołując NdisFSendNetBufferLists. Rozszerzenia filtrowania i przesyłania dalej mogą również usuwać pakiet z wejściowej ścieżki danych, wywołując NdisFSendNetBufferListsComplete.

  2. Rozszerzenia, które przechwytują pakiety na ścieżce danych ruchu przychodzącego, mogą sprawdzać szczegóły tych pakietów. Jednak rozszerzenia przechwytujące nie mogą finalizować żądań przesyłania pakietów na ścieżce danych przychodzących. Te rozszerzenia muszą zawsze przekazywać pakiety do podstawowych rozszerzeń w rozszerzalnym stosie sterowników przełącznika.

    Rozszerzenie przechwytywania może także inicjować pakiety na ścieżce danych przychodzących. Na przykład rozszerzenie może inicjować pakiety, aby raportować warunki ruchu do zdalnej aplikacji monitorującej.

    Aby uzyskać więcej informacji na temat pakietów pochodzących przez rozszerzenie, zobacz Ruch pakietów źródłowych.

  3. Podczas filtrowania rozszerzeń uzyskują pakiety na ścieżce danych przychodzących, mogą wykonywać następujące czynności:

    • Odrzucaj pakiety na podstawie niestandardowych zasad przełącznika rozszerzalnego lub portu.

      Aby uzyskać więcej informacji na temat tych zasad, zobacz Hyper-V Rozszerzalne zasady przełącznika.

      Uwaga Pakiety uzyskane na ścieżce danych wejściowych nie mają w danych OOB pakietu zdefiniowanych portów docelowych. W związku z tym rozszerzenia filtrowania muszą wymuszać zasady niestandardowe tylko na podstawie danych pakietu, portu źródłowego pakietu lub połączenia karty sieciowej.

  • Klonowanie lub modyfikowanie pakietów uzyskanych ze ścieżki danych przychodzących.

  • Wstrzyknij nowe pakiety do ścieżki danych przychodzących.

  1. W NDIS 6.40 i późniejszych, po rozszerzeniach przechwytywania i filtrowania, ale przed rozszerzeniem przekazywania na ścieżce danych przychodzących, przełącznik rozszerzalny wykonuje następujące czynności:

    • Jeśli pakiet jest pakietem NVGRE z zewnętrznej karty sieciowej, adres w nagłówku pakietu jest adresem z przestrzeni adresowej dostawcy (PA). Przełącznik rozszerzalny wskazuje to, ustawiając flagę NativeForwardingRequired w pozapasmowych (OOB) informacjach pakietu. Więcej informacji znajdziesz w temacie Hybrid Forwarding.

    • Przełącznik rozszerzalny stosuje wbudowane polityki wejściowe do pakietu. Te zasady mogą obejmować listy kontroli dostępu przychodzącego (ACL), DHCP Guard i Router Guard.

  2. Jeśli rozszerzenie przekazywania nie jest włączone w rozszerzalnym stosie sterowników przełącznika, docelowa tablica portów dla pakietu jest określana przez rozszerzalny przełącznik.

  3. Jeśli rozszerzenie przekazywania jest włączone, musi wykonać następujące kroki, gdy otrzymuje pakiety na ścieżce danych ruchu przychodzącego:

    • W NDIS 6.40 i nowszych wersjach, jeśli pakiet jest pakietem NVGRE (zobacz Przekazywanie hybrydowe), moduł przekazujący nie może zmodyfikować tablicy portów docelowych w danych OOB pakietu w ścieżce danych wejściowych. Może jednak zignorować pakiet.

    • Jeśli pakiet nie jest pakietem NVGRE, rozszerzenie przekazujące musi dodać porty docelowe do tablicy portów docelowych w danych OOB pakietu.

    • Rozszerzenie przekazywania musi usuwać pakiety na podstawie standardowych lub niestandardowych rozszerzalnych zasad przełącznika lub portu. Standardowe zasady przełącznika lub portu obejmują właściwości zabezpieczeń i wirtualnej sieci LAN (VLAN). Jeśli rozszerzenie przekazywania nie jest włączone w stosie sterowników przełącznika rozszerzalnego, te zasady są egzekwowane przez przełącznik rozszerzalny.

      Uwaga Gdy rozszerzenie przekazujące filtruje pakiety w ścieżce danych przychodzących, stosuje reguły filtrowania na podstawie portu źródłowego, a także portów docelowych, które rozszerzenie przypisuje pakietowi.

Ponadto rozszerzenie przekazywania może wykonywać następujące czynności:

  • Klonowanie lub modyfikowanie pakietów uzyskanych z ścieżki ruchu przychodzącego.

  • Wstrzyknij nowe pakiety do ścieżki przepływu danych do wejścia.

Podstawowa krawędź miniportu

  1. Gdy pakiet dociera do krawędzi miniportu przełącznika rozszerzalnego, przełącznik stosuje do niego wbudowane zasady. Te zasady obejmują listy kontroli dostępu (ACL) i właściwości jakości usług (QoS). Jeśli pakiet nie zostanie odrzucony z powodu tych zasad, przełącznik rozszerzalny inicjuje sygnał odbioru dla pakietu i przekazuje pakiet do górnej części ścieżki danych wychodzących.

    Uwaga Jeśli funkcja dublowania portów jest włączona na porcie, do którego ma zostać dostarczony pakiet, krawędź miniportu dodaje docelowy port do danych OOB pakietu dla portu mirroringu. Krawędź miniportu robi to niezależnie od tego, czy rozszerzenie przekazywania jest zainstalowane i włączone w rozszerzalnym stosie sterowników przełącznika. Krawędź miniportu dodaje port lustrzany tylko wtedy, gdy nie jest już określony w tablicy portów docelowych dla pakietu.

  2. Jeśli rozszerzenie przekazywania nie jest włączone, rozszerzalny przełącznik określa porty docelowe pakietu i dodaje te porty docelowe do danych OOB pakietu przed przekazaniem pakietu przez ścieżkę danych wyjściowych.

  3. W NDIS 6.40 i nowszych składnik HNV wykonuje wszelką potrzebną hermetyzację lub zdehermetyzację NVGRE po wejściu i przed wyjściem, dzięki czemu rozszerzenie przekazywania może zobaczyć pakiet w postaci hermetyzowanej i zdehermetyzowanej. Jeśli na przykład pakiet pochodzi z zewnętrznej karty sieciowej i jest przeznaczony dla wewnętrznej maszyny wirtualnej, rozszerzenie przekazujące uzyskuje hermetyzowany pakiet na ruchu przychodzącym i decapsulatowany pakiet na ruchu wychodzącym.

    Uwaga W zamkniętym pakiecie adres w nagłówku pakietu jest adresem z przestrzeni adresowej dostawcy (PA). W zdekapsułkowanym pakiecie znajduje się adres przestrzeni adresowej klienta (CA).

    1. Jeśli pakiet jest pakietem NVGRE pochodzącym z zewnętrznej karty sieciowej, składnik wirtualizacji sieci Hyper-V (HNV) przełącznika rozszerzalnego zdejmuje kapsułę NVGRE na pakiecie. Składnik HNV określa miejsca docelowe pakietu zgodnie z zasadami HNV, a następnie rozszerzalny przełącznik przekazuje pakiet w górę ścieżki danych wychodzących.

    2. Jeśli pakiet pochodzi z wewnętrznej maszyny wirtualnej, składnik HNV wykona hermetyzację NVGRE na pakiecie, jeśli zasady HNV są ustawione dla pakietu. Składnik HNV określa miejsca docelowe pakietu zgodnie z zasadami HNV, a następnie rozszerzalny przełącznik przekazuje pakiet w górę ścieżki danych wychodzących.

    3. W przeciwnym razie rozszerzenie przekazujące przesyła pakiet wzdłuż ścieżki wyjściowej danych.

  4. W NDIS 6.30, jeśli rozszerzenie przekazywania jest włączone, musi przekazać pakiet przez ścieżkę danych wychodzących.

Ścieżka danych wyjściowych

  1. Rozszerzenie uzyskuje pakiet ze ścieżki danych wychodzących, gdy wywoływana jest jego funkcja FilterReceiveNetBufferLists. Rozszerzenie przekazuje pakiet do nadrzędnych rozszerzeń na ścieżce wychodzących danych, wywołując NdisFIndicateReceiveNetBufferLists. Rozszerzenia filtrowania i przesyłania dalej mogą również usuwać pakiet ze ścieżki danych wychodzących, wywołując NdisFReturnNetBufferLists.

  2. Gdy rozszerzenie przekazujące uzyskuje pakiet na ścieżce danych wychodzących, może sprawdzić informacje o porcie docelowym pakietu w danych OOB.

    Uwaga Rozszerzenie uzyskuje te informacje z danych OOB, wywołując metodę GetNetBufferListDestinations.

W oparciu o standardowe lub niestandardowe zasady przełącznika lub portu rozszerzenie może wykluczyć dostarczanie pakietu do co najmniej jednego portu docelowego, które znajdują się w danych OOB.

  1. W systemie NDIS 6.40 (Windows Server 2012 R2) i nowszych, po rozszerzeniu przekazywania, ale przed filtrowaniem i przechwytywaniem rozszerzeń na ścieżce danych wychodzących, rozszerzalny przełącznik stosuje wbudowane zasady ruchu wychodzącego do pakietu. Te zasady mogą obejmować tryb trunk, tryb monitorowania, listy ACL ruchu wychodzącego i właściwości QoS.

  2. Podczas filtrowania, rozszerzenia, uzyskując pakiet na ścieżce danych wyjściowej, mogą sprawdzić informacje o porcie docelowym w danych OOB. Na podstawie niestandardowych zasad przełącznika lub portu, rozszerzenie może wykluczyć dostarczanie pakietu do co najmniej jednego portu docelowego, który jest zawarty w danych OOB.

    Jeśli rozszerzenie filtrowania musi zmodyfikować dane w pakiecie, musi najpierw sklonować pakiet bez zachowania miejsc docelowych portów. Następnie rozszerzenie musi wstrzyknąć zmodyfikowany pakiet do ścieżki danych przychodzących. Dzięki temu podstawowe rozszerzenia mogą wymuszać zasady na zmodyfikowanym pakiecie, a rozszerzenie przekazywania może dodawać porty docelowe.

    Aby uzyskać więcej informacji, zobacz Klonowanie lub ruch pakietów.

  3. Gdy rozszerzenia przechwytują pakiety na ścieżce danych wychodzących, mogą sprawdzać dane pakietu. Jeśli jednak rozszerzenie przechwytujące musi tworzyć pakiety w celu raportowania warunków ruchu do aplikacji monitorującej zdalnie, musi tworzyć te pakiety przez wywołanie NdisFSendNetBufferLists, aby zainicjować operację wysyłania na ścieżce danych wejściowych.

  4. Gdy pakiet dociera do górnej krawędzi interfejsu protokołu przełącznika rozszerzalnego, interfejs przełącznika rozszerzalnego przekazuje pakiet do wszystkich określonych portów docelowych.

  5. Po przekazaniu pakietu interfejs kończy pakiet za pomocą tej samej ścieżki w odwrotnej kolejności. Najpierw interfejs wywołuje funkcję FilterReturnNetBufferLists rozszerzenia w celu ukończenia pakietów przekazywanych na ścieżce danych wychodzących. Następnie interfejs wywołuje funkcję FilterSendNetBufferListsComplete rozszerzenia w celu ukończenia pakietów przesyłanych na ścieżce danych wejściowych.

    Po zakończeniu przetwarzania pakietu na ścieżce danych wychodzącej i przychodzącej rozszerzenie wykonuje wszelkie niezbędne operacje oczyszczania i końcowego przetwarzania pakietów, które mogą być wymagane.