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


Управление политиками портов

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

Интерфейс расширяемого коммутатора Hyper-V использует следующие идентификаторы объектов (OID) для подготовки расширений фильтрации и пересылки с помощью свойств стандартных и настраиваемых политик портов:

OID_SWITCH_PORT_PROPERTY_ADD
Этот запрос на установку OID инициируется протокольным интерфейсом расширяемого коммутатора для уведомления базовых расширений о добавлении свойства на уровне управления WMI. InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на структуру NDIS_SWITCH_PORT_PROPERTY_PARAMETERS.

Примечание Пользовательские свойства порта задаются значением перечисления NDIS_SWITCH_PORT_PROPERTY_TYPENdisSwitchPortPropertyTypeCustom. Свойства стандартного порта задаются значениями перечисления NDIS_SWITCH_PORT_PROPERTY_TYPE, такими как NdisSwitchPortPropertyTypeSecurity, NdisSwitchPortPropertyTypeVlanи NdisSwitchPortPropertyTypeProfile.

OID_SWITCH_PORT_PROPERTY_UPDATE
Этот запрос на установку OID выдается протокольным элементом расширяемого коммутатора для информирования подчиненных расширений об обновлении свойства на уровне управления WMI. InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на структуру NDIS_SWITCH_PORT_PROPERTY_PARAMETERS.

Удаление_Свойства_Порта_Коммутатора_OID
Этот запрос на установку OID инициируется пограничным элементом протокола расширяемого коммутатора для уведомления служебных расширений об удалении свойства на уровне управления WMI. InformationBuffer в структуре NDIS_OID_REQUEST содержит указатель на структуру NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS.

OID_SWITCH_PORT_PROPERTY_ENUM
Этот запрос метода OID отправляется расширением, чтобы запросить у базового минипорта расширяемого коммутатора текущие настроенные свойства для указанного порта. InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на буфер. Этот буфер содержит следующие данные:

Примечание Расширение не должно быть источником запросов набора OID OID_SWITCH_PORT_PROPERTY_ADD. OID_SWITCH_PORT_PROPERTY_UPDATEили OID_SWITCH_PORT_PROPERTY_DELETE.

Расширение расширяемого коммутатора должно соответствовать этим рекомендациям при обработке запроса набора OID OID_SWITCH_PORT_PROPERTY_ADD, OID_SWITCH_PORT_PROPERTY_UPDATEили OID_SWITCH_PORT_PROPERTY_DELETE:

  • Расширение не должно изменять NDIS_SWITCH_PORT_PROPERTY_PARAMETERS или NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS структуру, связанную с запросом OID.

  • Расширение должно обрабатывать эти запросы OID, если расширение управляет свойством. В зависимости от запроса OID расширение должно проверить следующие члены NDIS_SWITCH_PORT_PROPERTY_PARAMETERS или NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS структур, чтобы определить, управляет ли оно свойством порта:

    • Член PropertyType. Этот элемент задает тип свойства порта. Настраиваемые свойства порта имеют значение элемента PropertyTypeNdisSwitchPortPropertyTypeCustom. Свойства стандартного порта имеют другие значения типов свойств. Например, стандартные политики портов VLAN имеют значение типа свойства NdisSwitchPortPropertyTypeVlan.

    • Член PropertyId. Этот элемент задает собственное значение GUID для пользовательского свойства порта. Это значение GUID создается независимым поставщиком программного обеспечения (ISV), который также определяет формат настраиваемого и расширяемого свойства коммутатора.

      Примечание Расширение должно игнорировать этот член для стандартных политик портов.

  • Расширение должно обрабатывать запрос на установку OID_SWITCH_PORT_PROPERTY_UPDATE, если расширение было ранее настроено с помощью свойства порта, соответствующего следующим элементам структуры NDIS_SWITCH_PROPERTY_PARAMETERS:

    • Член PropertyType.

    • Член PropertyId.

      Примечание Расширение должно игнорировать этот член для стандартных политик портов.

    • Участник PropertyVersion. Этот элемент указывает версию свойства порта, с которым расширение было передано в использование.

    • Элемент PropertyInstanceId. Этот элемент указывает экземпляр свойства порта, с которым было настроено расширение.

  • Расширение фильтрации или перенаправления может наложить вето на добавление или обновление политики портов, которой оно управляет. Расширение делает это, завершая запрос OID со статусом STATUS_DATA_NOT_ACCEPTED.

    Примечание Захватывающие расширения не должны накладывать вето на добавление или обновление политики портов. Вместо этого он должен перенаправить запрос OID вниз по пути управления расширяемым коммутатором.

  • Расширение пересылки может отклонить запрос OID для стандартных свойств порта, которые она не поддерживает, или если свойство конфликтует с собственной конфигурацией политики. В этом случае расширение должно завершить запрос OID и вернуть соответствующий код состояния NDIS, чтобы сообщить об ошибке.

  • Если расширение успешно обрабатывает OID-запрос для стандартной политики портов, оно не должно завершать этот запрос и должно перенаправить его по ходу пути управления расширяемым коммутатором.

  • Если расширение захвата или фильтрации успешно обрабатывает запрос набора OID для настраиваемой политики портов, оно не должно завершать этот запрос и должно перенаправить его по пути управления расширяемым коммутатором.

    Если расширение пересылки успешно обрабатывает запрос набора OID для настраиваемой политики портов, он должен завершить запрос OID и вернуть соответствующее значение NDIS_STATUS_Xxx.

  • Если расширение не выполняет запрос на установку OID, оно должно вызвать NdisFOidRequest для пересылки этого запроса OID по стеку расширяемого драйвера коммутатора вниз. В этом случае расширения должны отслеживать статус завершения OID, чтобы выявить, не произошел ли сбой в запросе OID со стороны базового расширения.