Поделиться через


Использование фильтрации виртуальных коммутаторов

Обзор фильтрации виртуальных коммутаторов

Фильтрация виртуальных коммутаторов поддерживается в Windows 8 и более поздних версиях Windows.

Эта функция МПП позволяет фильтровать поля заголовка MAC, заголовка IP-адресов и портов верхнего протокола, а также определенные поля виртуального коммутатора, такие как виртуальный порт (VPort) и идентификатор виртуальной машины (идентификатор виртуальной машины). Эти слои вызываются на основе каждого пакета для всех пакетов, передаваемых по виртуальному коммутатору. К этим уровням обращается фильтр расширения виртуального коммутатора — тип драйвера упрощенного фильтра NDIS (LWF).

Драйвер выноски вызывает функцию FwpsvSwitchEventsSubscribe0 , чтобы зарегистрировать точки входа обратного вызова для событий уровня виртуального коммутатора.

Точки входа для функций уведомлений обратного вызова указываются в FWPS_VSWITCH_EVENT_DISPATCH_TABLE0 структуре. Доступные функции обратного вызова:

Перечисление 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

Идентификаторы полей данных для фильтрации виртуальных коммутаторов :

Руководство по записи выносок виртуальных коммутаторов ВПП

Трафик порта 0

Для выносок виртуальных коммутаторов ВПП трафик из порта 0 (идентификатор порта по умолчанию) является доверенным и не должен фильтроваться. Это связано с тем, что, как правило, трафик через порт 0 происходит из других расширений в стеке драйверов и поэтому обрабатывается путем данных как привилегированный и доверенный. Расширения виртуального коммутатора будут использовать порт 0 для таких ситуаций, как исходная пакет управления, которая не должна фильтроваться и отклоняться любыми базовыми расширениями. Дополнительные сведения об изменении исходного порта расширяемого коммутатора Hyper-V см. в разделе "Изменение расширяемых данных исходного порта коммутатора пакета".

Правила сопоставления выносок

При определении правила сопоставления для фильтрации выноски виртуального коммутатора не следует использовать MAC-адрес в качестве основы для сравнения. MAC-адреса могут изменяться во время выполнения, а некоторые порты могут генерировать трафик из нескольких MAC-адресов. Вместо этого выноски должны использовать более устойчивое правило сопоставления, например идентификатор сетевого адаптера, которое не изменится.

Виртуализация ввода-вывода (IOV) и сосуществование МПП

МПП не может быть включен на коммутаторЕ IOV и заблокирован операционной системой, если предпринята попытка включить ее.

Включение или отключение МПП

Установщики для выносок виртуальных коммутаторов ВПП не должны изменять состояние расширения МПП; то есть они не должны включать или отключать саму МПП.