Использование фильтрации виртуальных коммутаторов
Обзор фильтрации виртуальных коммутаторов
Фильтрация виртуальных коммутаторов поддерживается в Windows 8 и более поздних версиях Windows.
Эта функция МПП позволяет фильтровать поля заголовка MAC, заголовка IP-адресов и портов верхнего протокола, а также определенные поля виртуального коммутатора, такие как виртуальный порт (VPort) и идентификатор виртуальной машины (идентификатор виртуальной машины). Эти слои вызываются на основе каждого пакета для всех пакетов, передаваемых по виртуальному коммутатору. К этим уровням обращается фильтр расширения виртуального коммутатора — тип драйвера упрощенного фильтра NDIS (LWF).
Драйвер выноски вызывает функцию 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 из функции уведомления МПП, МПП вернет STATUS_PENDING обработчику запросов OID. Драйвер выноски должен вызвать функцию FwpsvSwitchNotifyComplete0 , чтобы завершить ожидающие операции. После вызова FwpsvSwitchNotifyComplete0 ВПП вызывает функцию NdisFOidRequestComplete, чтобы завершить OID для виртуального коммутатора.
Обратные вызовы не должны добавлять или удалять фильтры МПП синхронно в контексте функций уведомлений. Кроме того, если функция уведомления позволяет обратному вызову возвращать STATUS_PENDING, а выноска возвращает STATUS_PENDING, выноска не должна добавлять или удалять фильтры МПП перед завершением уведомления.
Уровень фильтра и поля виртуального коммутатора МПП
Идентификаторы слоев фильтрации во время выполнения для фильтрации виртуальных коммутаторов :
- 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
Руководство по записи выносок виртуальных коммутаторов ВПП
Трафик порта 0
Для выносок виртуальных коммутаторов ВПП трафик из порта 0 (идентификатор порта по умолчанию) является доверенным и не должен фильтроваться. Это связано с тем, что, как правило, трафик через порт 0 происходит из других расширений в стеке драйверов и поэтому обрабатывается путем данных как привилегированный и доверенный. Расширения виртуального коммутатора будут использовать порт 0 для таких ситуаций, как исходная пакет управления, которая не должна фильтроваться и отклоняться любыми базовыми расширениями. Дополнительные сведения об изменении исходного порта расширяемого коммутатора Hyper-V см. в разделе "Изменение расширяемых данных исходного порта коммутатора пакета".
Правила сопоставления выносок
При определении правила сопоставления для фильтрации выноски виртуального коммутатора не следует использовать MAC-адрес в качестве основы для сравнения. MAC-адреса могут изменяться во время выполнения, а некоторые порты могут генерировать трафик из нескольких MAC-адресов. Вместо этого выноски должны использовать более устойчивое правило сопоставления, например идентификатор сетевого адаптера, которое не изменится.
Виртуализация ввода-вывода (IOV) и сосуществование МПП
МПП не может быть включен на коммутаторЕ IOV и заблокирован операционной системой, если предпринята попытка включить ее.
Включение или отключение МПП
Установщики для выносок виртуальных коммутаторов ВПП не должны изменять состояние расширения МПП; то есть они не должны включать или отключать саму МПП.