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


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

Расширения фильтрации и переадресации расширяемых коммутаторов 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_TYPE NdisSwitchPortPropertyTypeCustom. Стандартные свойства порта задаются значением перечисления 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_SWITCH_PORT_PROPERTY_DELETE
Этот запрос на набор 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. Стандартные свойства порта имеют другие значения типа свойств. Например, стандартные политики портов виртуальной локальной сети имеют значение типа свойства NdisSwitchPortPropertyTypeVlan.

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

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

  • Расширение должно обрабатывать запрос на набор 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 и должно пересылать его по пути управления расширяемым коммутатором.

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

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