管理端口策略

Hyper-V 可扩展交换机筛选和转发扩展可以使用标准和自定义端口属性的属性进行预配。 预配后,这些扩展在筛选在可扩展交换机入口数据路径上获取的数据包时,会强制实施策略。 有关这些策略的详细信息,请参阅 端口策略

Hyper-V 可扩展交换机接口使用以下对象标识符 (OID) 来预配具有标准和自定义端口策略属性的筛选和转发扩展:

OID_SWITCH_PORT_PROPERTY_ADD
此 OID 集请求由可扩展交换机的协议边缘发出,以通知基础扩展在 WMI 管理层添加属性。 NDIS_OID_REQUEST 结构的 InformationBuffer 包含指向NDIS_SWITCH_PORT_PROPERTY_PARAMETERS结构的指针。

注意自定义端口属性由 NdisSwitchPortPropertyTypeCustom的NDIS_SWITCH_PORT_PROPERTY_TYPE枚举值指定。 标准端口属性由 NdisSwitchPortPropertyTypeSecurityNdisSwitchPortPropertyTypeVlan 和 NdisSwitchPortPropertyTypeProfileNDIS_SWITCH_PORT_PROPERTY_TYPE枚举值指定。

OID_SWITCH_PORT_PROPERTY_UPDATE
此 OID 集请求由可扩展交换机的协议边缘发出,以通知基础扩展 WMI 管理层的属性更新。 NDIS_OID_REQUEST 结构的 InformationBuffer 包含指向NDIS_SWITCH_PORT_PROPERTY_PARAMETERS结构的指针。

OID_SWITCH_PORT_PROPERTY_DELETE
此 OID 集请求由可扩展交换机的协议边缘发出,以通知基础扩展删除 WMI 管理层中的属性。 NDIS_OID_REQUEST 结构的 InformationBuffer 包含指向NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS结构的指针。

OID_SWITCH_PORT_PROPERTY_ENUM
此 OID 方法请求由扩展发送,用于查询可扩展交换机的基础微型端口边缘,了解可扩展交换机上指定端口的当前配置属性。 NDIS_OID_REQUEST 结构的 InformationBuffer 包含指向缓冲区的指针。 此缓冲区包含以下数据:

注意 扩展不得源自 OID_SWITCH_PORT_PROPERTY_ADD的 OID 集请求。 OID_SWITCH_PORT_PROPERTY_UPDATEOID_SWITCH_PORT_PROPERTY_DELETE

可扩展交换机扩展在处理OID_SWITCH_PORT_PROPERTY_ADD、OID_SWITCH_PORT_PROPERTY_UPDATEOID_SWITCH_PORT_PROPERTY_DELETE的 OID 集请求时,必须遵循以下准则:

  • 扩展不得修改与 OID 请求关联的 NDIS_SWITCH_PORT_PROPERTY_PARAMETERSNDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS 结构。

  • 如果扩展管理 属性,则扩展必须处理这些 OID 请求。 根据 OID 请求,扩展必须检查 NDIS_SWITCH_PORT_PROPERTY_PARAMETERSNDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS 结构的以下成员,以确定它是否管理端口属性:

    • PropertyType 成员。 此成员指定端口属性的类型。 自定义端口属性具有 PropertyType 成员值 NdisSwitchPortPropertyTypeCustom。 标准端口属性具有其他属性类型值。 例如,标准 VLAN 端口策略的属性值为 NdisSwitchPortPropertyTypeVlan

    • PropertyId 成员。 此成员指定自定义端口属性的专有 GUID 值。 此 GUID 值由独立软件供应商 (ISV) 创建,后者还定义自定义可扩展交换机属性的格式。

      注意 对于标准端口策略,扩展必须忽略此成员。

  • 如果扩展以前是使用 与 NDIS_SWITCH_PROPERTY_PARAMETERS 结构的以下成员匹配的端口属性预配的 ,则扩展 必须处理OID_SWITCH_PORT_PROPERTY_UPDATE集请求:

    • PropertyType 成员。

    • PropertyId 成员。

      注意 对于标准端口策略,扩展必须忽略此成员。

    • PropertyVersion 成员。 此成员指定预配扩展时使用的端口属性的版本。

    • PropertyInstanceId 成员。 此成员指定预配扩展时使用的端口属性的实例。

  • 筛选或转发扩展可以否决其管理的端口策略的添加或更新。 扩展通过STATUS_DATA_NOT_ACCEPTED完成 OID 请求来执行此操作。

    注意 捕获扩展不得否决添加或更新端口策略。 相反,它必须将 OID 请求转发到可扩展交换机控制路径。

  • 转发扩展可能会使它不支持的标准端口属性的 OID 请求失败,或者如果该属性与其自己的策略配置冲突。 在这种情况下,扩展必须完成 OID 请求并返回相应的 NDIS 状态代码来报告失败。

  • 如果扩展成功处理标准端口策略的 OID 集请求,则它不能完成 OID 请求,并且必须将其转发到可扩展交换机控制路径。

  • 如果捕获或筛选扩展成功处理自定义端口策略的 OID 集请求,则它不能完成 OID 请求,并且必须将其转发到可扩展交换机控制路径。

    如果转发扩展成功处理自定义端口策略的 OID 设置请求,则必须完成 OID 请求并返回相应的 NDIS_STATUS_Xxx 值。

  • 如果扩展未完成 OID 集请求,则必须调用 NdisFOidRequest 以将 OID 请求向下转发到可扩展交换机驱动程序堆栈。 在这种情况下,扩展应监视 OID 的完成状态,以检测基础扩展是否失败了 OID 请求。