Udostępnij za pośrednictwem


Filtrowanie rozszerzeń

Rozszerzenie filtrowania przełącznika rozszerzalnego Hyper-V może sprawdzać, modyfikować i wstawiać pakiety do ścieżki danych przełącznika rozszerzalnego. W oparciu o rozszerzalny port przełącznika i ustawienia zasad przełącznika rozszerzenie może usunąć pakiet lub wykluczyć jego dostarczanie do co najmniej jednego portu docelowego.

Rozszerzenia filtrowania są wywoływane po przechwyceniu rozszerzeń w ścieżce danych przychodzących i po rozszerzeniach przekazywania w ścieżce danych ruchu wychodzącego. Aby uzyskać więcej informacji na temat tych ścieżek danych, zobacz Hyper-V Extensible Switch Data Path.

Rozszerzenie filtrowania może wykonać następujące czynności z pakietami uzyskanymi na ścieżce danych wejściowych:

  • Filtrowanie ruchu pakietów i wymuszanie niestandardowych zasad portów lub przełączników na potrzeby dostarczania pakietów za pośrednictwem rozszerzalnego przełącznika. Gdy rozszerzenie filtrowania filtruje pakiety w ścieżce danych przychodzących, może stosować reguły filtrowania tylko na podstawie portu źródłowego i połączenia karty sieciowej, z którego pochodzi pakiet. Te informacje są przechowywane w danych poza pasmem (OOB) struktury NET_BUFFER_LIST pakietu i można je uzyskać przy użyciu makra NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL.

    Uwaga Pakiety uzyskane na ścieżce danych ruchu przychodzącego nie zawierają portów docelowych. Filtrowanie pakietów na podstawie portów docelowych można wykonywać tylko w przypadku pakietów uzyskanych na ścieżce danych ruchu wychodzącego.

    Zasady niestandardowe są definiowane przez niezależnego dostawcę oprogramowania (ISV). Ustawienia właściwości dla tego typu zasad są zarządzane za pośrednictwem warstwy zarządzania Hyper-V WMI. Rozszerzenie filtrowania jest konfigurowane za pomocą tych ustawień właściwości poprzez żądanie identyfikatora obiektu (OID) OID_SWITCH_PORT_PROPERTY_UPDATE oraz OID_SWITCH_PROPERTY_UPDATE.

    Aby uzyskać więcej informacji na temat niestandardowych rozszerzalnych zasad portów lub przełączników, zobacz Zarządzanie zasadami przełącznika rozszerzalnego Hyper-V.

    Uwaga Tylko rozszerzenia przekazywania mogą wymuszać stosowanie standardowych zasad portów na potrzeby dostarczania pakietów za pośrednictwem rozszerzalnego przełącznika.

  • Wprowadzaj nowe, zmodyfikowane lub sklonowane pakiety do ścieżki danych przychodzących.

    Aby uzyskać więcej informacji, zobacz Hyper-V Operacje wysyłania i odbierania przełącznika rozszerzalnego.

Rozszerzenie filtrowania może wykonać następujące czynności z pakietami uzyskanymi na ścieżce danych wyjściowych:

  • Filtrowanie ruchu pakietów i wymuszanie niestandardowych zasad portów lub przełączników na potrzeby dostarczania pakietów za pośrednictwem rozszerzalnego przełącznika. Gdy rozszerzenie filtrowania filtruje pakiety w ścieżce danych ruchu wychodzącego, może stosować reguły filtrowania na podstawie portów źródłowych lub docelowych dla pakietu. Dane portów docelowych są przechowywane w danych OOB struktury NET_BUFFER_LIST pakietu. Rozszerzenia uzyskują te informacje, wywołując funkcję GetNetBufferListDestinations.

  • Wyklucz dostarczanie pakietu do co najmniej jednego rozszerzalnego portu docelowego przełącznika. Dzięki temu rozszerzenie filtrowania wyklucza dostarczanie pakietu do rozszerzalnych portów przełącznika.

    Aby uzyskać więcej informacji na temat wykluczania dostarczania pakietów do rozszerzalnych portów przełącznika, zobacz Wykluczanie dostarczania pakietów do rozszerzalnych portów docelowych przełącznika.

  • Zarządzaj przepływem ruchu do co najmniej jednego portu docelowego, odraczając przekazywanie pakietów wzdłuż ścieżki wyjściowej danych.

    Na przykład rozszerzenie filtrowania obsługujące funkcje jakości usług (QoS) może chcieć natychmiast wywołać NdisFSendNetBufferLists do przekazywania pakietów określonych z wyższą wartością priorytetu. W zależności od przepływu ruchu rozszerzenie może chcieć przekazywać pakiety z niższą wartością priorytetu w późniejszym czasie.

  • Zmodyfikuj dane pakietu. 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ć polityki na zmodyfikowanym pakiecie, a rozszerzenie przekazujące może dodawać docelowe porty.

    Aby uzyskać więcej informacji, zobacz Klonowanie Ruchu Pakietów.

Oprócz sprawdzania żądań OID i wskaźników stanu NDIS, rozszerzenie filtrowania może wykonywać następujące czynności:

  • Zablokuj utworzenie rozszerzalnego portu przełącznika lub połączenia adaptera sieciowego, zwracając STATUS_DATA_NOT_ACCEPTED dla odpowiednich identyfikatorów obiektów rozszerzalnego przełącznika. Na przykład rozszerzenie filtrowania może zawetować żądanie utworzenia portu, zwracając STATUS_DATA_NOT_ACCEPTED, gdy sterownik odbiera żądanie ustawienia identyfikatora OID OID_SWITCH_PORT_CREATE.

    Uwaga: Notatka Rozszerzenia filtrowania nie tworzą ani nie usuwają portów ani połączeń kart sieciowych. Krawędź protokolarna rozszerzalnego przełącznika wydaje identyfikatory OID, aby powiadomić podstawowe sterowniki filtrów o tworzeniu lub usuwaniu portów bądź połączeń kart sieciowych. Aby uzyskać więcej informacji, zobacz Hyper-V Stany portu przełącznika rozszerzalnego i adaptera sieciowego.

  • Zawetuj dodanie lub aktualizację rozszerzalnego przełącznika lub polityki portu przez zwrócenie STATUS_DATA_NOT_ACCEPTED dla odpowiednich identyfikatorów OID rozszerzalnego przełącznika. Na przykład rozszerzenie filtrowania może zawetować dodanie polityki portu, zwracając STATUS_DATA_NOT_ACCEPTED, gdy rozszerzenie otrzymuje żądanie ustawienia identyfikatora OID OID_SWITCH_PORT_PROPERTY_ADD.

    Aby uzyskać więcej informacji na temat rozszerzalnych zasad przełącznika, zobacz Zarządzanie zasadami przełącznika rozszerzalnego Hyper-V.

Rozszerzenie filtrowania ma następujące wymagania:

  • Rozszerzenie filtrowania musi zostać opracowane jako sterownik filtru NDIS, który obsługuje rozszerzalny interfejs przełącznika.

    Aby uzyskać więcej informacji na temat sterowników filtrów, zobacz sterowniki filtrów NDIS.

    Aby uzyskać więcej informacji na temat pisania rozszerzenia filtrowania, zobacz Zapisywanie rozszerzalnych rozszerzeń przełączników Hyper-V.

    Uwaga Platforma filtrowania systemu Windows (WFP) udostępnia wbudowane rozszerzenie filtrowania dla przełączników, które można rozbudować (Wfplwfs.sys ). To rozszerzenie umożliwia filtrom WFP lub sterownikom objaśnień przechwytywanie pakietów wzdłuż Hyper-V rozszerzalnej ścieżki danych przełącznika. Dzięki temu filtry lub sterowniki callout mogą przeprowadzać inspekcję lub modyfikację pakietów, używając funkcji zarządzania i systemowych WFP. Aby zapoznać się z omówieniem programu WFP, zobacz platforma filtrowania systemu Windows.

  • Plik INF rozszerzenia filtrowania musi zainstalować sterownik jako filtr modyfikujący. Sterowników filtrów monitorowania NDIS nie można zainstalować w rozszerzalnym stosie sterowników przełącznika.

    Aby uzyskać więcej informacji na temat modyfikowania sterowników filtrów, zobacz Typy sterowników filtrów.

    Aby uzyskać więcej informacji na temat wymagań INF dotyczących modyfikowania sterowników filtrów, zobacz Konfigurowanie pliku INF dla sterownika filtrującego modyfikującego.

  • Wartość FilterClass w pliku INF dla sterownika filtru musi być ustawiona na wartość ms_switch_filter. Aby uzyskać więcej informacji, zobacz wymagania INF dotyczące rozszerzalnych rozszerzeń przełączników Hyper-V.

  • Dowolną liczbę rozszerzeń filtrowania można powiązać i włączyć w stosie sterowników dla każdego wystąpienia rozszerzalnego przełącznika. Domyślnie, wiele rozszerzeń filtrujących jest uporządkowanych według kolejności ich instalacji. Na przykład wiele rozszerzeń filtrowania jest układanych warstwowo w rozszerzalnym stosie sterowników przełącznika, gdzie ostatnio zainstalowane rozszerzenie jest umieszczone powyżej innych rozszerzeń filtrowania w stosie.

    Po ich powiązaniu i włączeniu w instancji rozszerzalnego przełącznika można zmienić kolejność warstw rozszerzeń filtrowania w stosie sterowników rozszerzalnego przełącznika. Aby uzyskać więcej informacji, zobacz Zmienianie kolejności rozszerzalnych rozszerzeń przełączników Hyper-V.