Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обзор фильтрации виртуальных коммутаторов
Фильтрация виртуальных коммутаторов поддерживается в Windows 8 и более поздних версиях Windows.
Эта функция МПП позволяет фильтровать поля заголовка MAC, заголовка IP-адресов и портов верхнего протокола, а также определенные поля виртуального коммутатора, такие как виртуальный порт (VPort) и идентификатор виртуальной машины (идентификатор виртуальной машины). Эти слои вызываются для каждого пакета в отдельности для всех пакетов, проходящих через виртуальный коммутатор. Доступ к этим уровням осуществляется через фильтр расширения виртуального коммутатора — разновидность легковесного фильтра (LWF) в драйвере NDIS.
Драйвер callout вызывает функцию FwpsvSwitchEventsSubscribe0, чтобы зарегистрировать точки входа обратного вызова для событий уровня виртуального коммутатора.
Точки входа для функций уведомлений обратного вызова указываются в структуре FWPS_VSWITCH_EVENT_DISPATCH_TABLE0 . Доступные функции обратного вызова:
- FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0
- FWPS_VSWITCH_INTERFACE_EVENT_CALLBACK0
- FWPS_VSWITCH_LIFETIME_EVENT_CALLBACK0
- FWPS_VSWITCH_POLICY_EVENT_CALLBACK0
- FWPS_VSWITCH_PORT_EVENT_CALLBACK0
- FWPS_VSWITCH_RUNTIME_STATE_RESTORE_CALLBACK0
- FWPS_VSWITCH_RUNTIME_STATE_SAVE_CALLBACK0
Перечисление FWPS_VSWITCH_EVENT_TYPE определяет значения параметра eventType функций уведомлений виртуального коммутатора.
Драйвер вызывного модуля должен в конечном итоге вызвать FwpsvSwitchEventsUnsubscribe0 чтобы освободить системные ресурсы.
Если драйвер коллаута возвращает STATUS_PENDING из функции уведомления WFP, то WFP вернет STATUS_PENDING обработчику запросов OID. Драйвер выноски должен вызвать функцию FwpsvSwitchNotifyComplete0, чтобы завершить ожидающую операцию. После вызова FwpsvSwitchNotifyComplete0 ВПП вызывает функцию NdisFOidRequestComplete , чтобы завершить OID для виртуального коммутатора.
Обратные вызовы не должны синхронно добавлять или удалять фильтры МПП в рамках функций уведомлений. Кроме того, если функция уведомления позволяет обратному вызову возвращать STATUS_PENDING, и вызывающая функция возвращает STATUS_PENDING, она не должна добавлять или удалять фильтры WFP перед завершением уведомления.
Уровень фильтра и поля виртуального коммутатора МПП
Идентификаторы слоев фильтрации во время выполнения для фильтрации виртуальных коммутаторов:
- FWPS_LAYER_INGRESS_VSWITCH_ETHERNET
- FWPS_LAYER_EGRESS_VSWITCH_ETHERNET
- FWPS_LAYER_INGRESS_VSWITCH_TRANSPORT_V4
- FWPS_LAYER_INGRESS_VSWITCH_TRANSPORT_V6
- FWPS_LAYER_EGRESS_VSWITCH_TRANSPORT_V4
- FWPS_LAYER_EGRESS_VSWITCH_TRANSPORT_V6
Идентификаторы полей данных для фильтрации виртуальных коммутаторов:
- FWPS_FIELDS_EGRESS_VSWITCH_ETHERNET
- FWPS_FIELDS_EGRESS_VSWITCH_TRANSPORT_V4
- FWPS_FIELDS_EGRESS_VSWITCH_TRANSPORT_V6
- FWPS_FIELDS_INGRESS_VSWITCH_ETHERNET
- FWPS_FIELDS_INGRESS_VSWITCH_TRANSPORT_V4
- FWPS_FIELDS_INGRESS_VSWITCH_TRANSPORT_V6
Руководство для авторов выносок виртуальных переключателей WFP
Трафик порта 0
Для виртуальных коммутаторов WFP трафик из порта 0 (идентификатор порта по умолчанию) считается доверенным и не должен фильтроваться. Это связано с тем, что, как правило, трафик через порт 0 инициируется другими расширениями в стеке драйверов и поэтому обрабатывается каналом данных как привилегированный и доверенный. Расширения виртуального коммутатора будут редко использовать порт 0 для таких ситуаций, как исходящий управляющий пакет, который не должен фильтроваться и отклоняться любыми базовыми расширениями. Дополнительные сведения об изменении исходного порта расширяемого коммутатора Hyper-V см. в разделе "Изменение данных исходного порта коммутатора".
Правила сопоставления выносок
При настройке правила соответствия для фильтрации не следует использовать MAC-адрес в качестве основы для сравнения в вызовах виртуального коммутатора. MAC-адреса могут изменяться во время выполнения, а некоторые порты могут генерировать трафик из нескольких MAC-адресов. Вместо этого выноски должны использовать более устойчивое правило сопоставления, например идентификатор сетевого адаптера, которое не изменится.
Виртуализация ввода-вывода (IOV) и сосуществование МПП
МПП не может быть включен на коммутаторе IOV и блокируется операционной системой, если предпринята попытка включить его.
Включение или отключение WFP
Установщики для вызовов виртуальных коммутаторов WFP не должны изменять состояние подключения WFP; то есть они не должны включать или отключать сам WFP.