Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Каждое сетевое подключение к Hyper-V расширяемым коммутатором представлено портом. Расширяемый интерфейс коммутатора создает и настраивает порт перед подключением к сети. После разрыва сетевого подключения интерфейс может удалить порт или повторно использовать его для другого сетевого подключения.
Каждому дочернему разделу Hyper-V, который настроен с сетевым интерфейсом, ему назначается порт на расширяемом коммутаторе. При запуске дочернего раздела Hyper-V расширяемый интерфейс коммутатора создает порт перед тем, как сетевой адаптер виртуальной машины будет предоставлен в гостевой операционной системе. После предоставления и инициализации сетевого адаптера виртуальной машины расширяемый интерфейс коммутатора создает сетевое подключение между сетевым адаптером виртуальной машины и расширяемым портом коммутатора. Если дочерний раздел остановлен, интерфейс расширяемого коммутатора сначала удаляет сетевое подключение, а затем удаляет расширяемый порт коммутатора.
При создании порта расширяемого коммутатора он настраивается с уникальным идентификатором и именем. После создания порт расширяемого коммутатора можно настраивать с помощью политик, определяющих различные атрибуты для управления трафиком пакетов через порт. Например, стандартные политики портов можно определить для атрибутов виртуальной локальной сети (VLAN) и ограничений доступа для трафика порта. Кроме того, независимые поставщики программного обеспечения (ISV) могут задавать собственные политики, по которым можно настраивать отдельные порты. Дополнительные сведения см. в политике портов.
Расширяемые порты коммутатора состоят из следующих типов:
порты валидирования
Порты проверки используются для валидации и подтверждения параметров порта. Эти порты являются временными и создаются в определенных условиях.
Например, при создании или перенастройки дочернего раздела Hyper-V для сетевого доступа интерфейс расширяемого коммутатора создает порт проверки. Интерфейс использует этот порт для проверки параметров сетевого подключения к сетевому адаптеру виртуальной машины секции. После завершения проверки порт проверки удаляется и создается операционный порт.
Дополнительные сведения см. в портах проверки .
рабочие порты
Операционные порты создаются для размещения расширяемого подключения сетевого адаптера коммутатора. При создании операционного порта назначается тип порта. Этот тип порта действует после создания порта и до его отключения. Для портов, назначенных дочерним разделам Hyper-V, тип рабочего порта остается в силе, пока раздел активен.
Дополнительные сведения см. в разделе «Операционные порты».
Расширения расширяемого коммутатора уведомляются о создании порта, обновлении и удалении с помощью следующих запросов расширяемого идентификатора объекта коммутатора(OID):
OID_SWITCH_PORT_CREATE
Пограничный протокол расширяемого коммутатора выдает запрос набора OID OID_SWITCH_PORT_CREATE для уведомления расширений расширяемого коммутатора о создании расширяемого порта коммутатора.
Расширение может наложить вето на создание уведомления, возвращая STATUS_DATA_NOT_ACCEPTED для запроса OID. Например, если расширение не может выделить ресурсы для применения настроенных политик на порту, расширение ветоирует уведомление о создании.
Если расширение принимает уведомление о создании, оно должно передавать запрос OID вниз по стеку драйверов расширяемого коммутатора. Расширение отслеживает состояние завершения этого запроса OID, чтобы определить, запретили ли базовые расширения уведомление о создании порта.
Расширения не могут пересылать пакеты в только что созданный порт, пока не будет создано сетевое подключение. Дополнительные сведения об этом процессе см. в разделе Hyper-V Расширяемые сетевые адаптеры коммутаторов.
OID_SWITCH_PORT_UPDATED
Пограничный протокол расширяемого коммутатора выдает запрос набора OID OID_SWITCH_PORT_UPDATED для уведомления расширений расширяемого коммутатора о том, что обновляются параметры расширяемого коммутатора. OID будет выдан только для портов, которые уже созданы и еще не начали процесс демонтажа или удаления. В настоящее время только поле PortFriendlyName подлежит обновлению после создания.
Пограничный протокол расширяемого коммутатора выдает этот запрос OID, когда предыдущее сетевое подключение к порту было удалено, и все запросы OID к порту были завершены.
Примечание этот запрос OID может быть выдан, если сетевой адаптер не был ранее подключен к порту.
Расширение должно всегда пересылать этот запрос на набор OID вниз по стэку расширяемого драйвера коммутатора. Расширение не должно давать сбой в запросе.
OID_SWITCH_PORT_TEARDOWN
Пограничный протокол расширяемого коммутатора выдает запрос набора OID OID_SWITCH_PORT_TEARDOWN для уведомления расширений расширяемого коммутатора о удалении расширяемого порта коммутатора. Пограничный протокол расширяемого коммутатора выдает этот запрос OID, когда предыдущее сетевое подключение к порту было удалено, и все запросы OID к порту были завершены.
Примечание этот запрос OID может быть выдан, если сетевой адаптер не был ранее подключен к порту.
Расширение должно всегда пересылать этот запрос на набор OID вниз по стэку расширяемого драйвера коммутатора. Расширение не должно давать сбой в запросе.
После перенаправления этого запроса OID расширение больше не может выдавать запросы OID для удаленного порта.
OID_SWITCH_PORT_DELETE
Край протокола расширяемого коммутатора выдает запрос набора OID OID_SWITCH_PORT_DELETE для уведомления расширений расширяемого коммутатора о том, что порт расширяемого коммутатора был удален. Протокольный край расширяемого коммутатора выдаёт этот запрос OID после того, как он выдаёт запрос OID_SWITCH_PORT_TEARDOWN, и запросы OID, предназначенные для порта, были завершены.
Расширение должно всегда пересылать этот запрос на набор OID вниз по стэку расширяемого драйвера коммутатора. Расширение не должно давать сбой в запросе.
Все расширяемые порты коммутаторов, созданные для сетевых подключений, назначаются идентификатору больше NDIS_SWITCH_DEFAULT_PORT_ID. Идентификатор NDIS_SWITCH_DEFAULT_PORT_ID зарезервирован и используется следующим образом:
Идентификатор исходного порта для пакета хранится в внеполосном (OOB) контексте пересылки, связанном с его структурой NET_BUFFER_LIST. Идентификатор исходного порта NDIS_SWITCH_DEFAULT_PORT_ID указывает, что пакет был получен из расширения расширяемого коммутатора, а не из расширяемого порта коммутатора. Пакет с идентификатором исходного порта NDIS_SWITCH_DEFAULT_PORT_ID является доверенным и проходит расширяемые политики портов коммутатора, такие как списки управления доступом (ACL) и качество обслуживания (QoS).
Расширение может потребовать, чтобы пакет обрабатывался так, как если бы он был получен из определенного порта. Это позволяет применять политики для этого порта к пакету. Расширение вызывает SetNetBufferListSource, чтобы изменить исходный порт пакета.
Однако может возникнуть ситуация, когда расширению потребуется назначить идентификатор исходного порта пакета на NDIS_SWITCH_DEFAULT_PORT_ID. Например, расширение может задать идентификатор исходного порта как NDIS_SWITCH_DEFAULT_PORT_ID для проприетарных управляющих пакетов, отправляемых на устройство во внешней сети.
Дополнительные сведения о контексте пересылки см. в Hyper-V Расширяемый Контекст Пересылки.
Запросы идентификатора объекта OID_SWITCH_NIC_REQUEST выдаются интерфейсом расширяемого коммутатора для инкапсуляции запросов OID, направленных на внешний сетевой адаптер расширяемого коммутатора. Например, запросы OID на аппаратную разгрузку инкапсулируются интерфейсом перед тем, как они будут отправлены по стеку драйверов расширяемого коммутатора.
Расширение также может выдавать инкапсулированные запросы OID, чтобы пересылать запросы вниз по пути управления расширяемым коммутатором. Это позволяет расширениям запрашивать или настраивать возможности базового физического сетевого адаптера.
Элемент InformationBuffer структуры NDIS_OID_REQUEST для этого запроса OID содержит указатель на структуру NDIS_SWITCH_NIC_OID_REQUEST. Если для члена SourcePortId задано значение NDIS_SWITCH_DEFAULT_PORT_ID, это указывает, что запрос OID был инициирован интерфейсом расширяемого коммутатора. Когда DestinationPortId установлен в NDIS_SWITCH_DEFAULT_PORT_ID, это указывает на то, что запрос OID предназначен для обработки расширением в стеке расширяемого драйвера коммутатора.
Дополнительные сведения о пути управления для запросов OID см. в Hyper-V расширяемом контуре управления коммутатора для запросов OID.
Индикаторы состояния NDIS NDIS_STATUS_SWITCH_NIC_STATUS выдаются минипортом расширяемого коммутатора, чтобы инкапсулировать указание состояния из внешнего сетевого адаптера расширяемого коммутатора.
Расширение также может выдавать инкапсулированные признаки состояния NDIS, чтобы перенаправить указания вверх по пути управления расширяемым коммутатором. Это позволяет расширениям изменять сообщаемые возможности базового физического сетевого адаптера.
Элемент StatusBuffer структуры NDIS_STATUS_INDICATION в данном указании содержит указатель на структуру NDIS_SWITCH_NIC_STATUS_INDICATION. Если элемент SourcePortId имеет значение NDIS_SWITCH_DEFAULT_PORT_ID, это указывает, что признак состояния был создан интерфейсом расширяемого коммутатора. Когда DestinationPortId установлен в NDIS_SWITCH_DEFAULT_PORT_ID, это указывает на то, что запрос OID предназначен для обработки расширением в стеке расширяемого драйвера коммутатора.
Дополнительные сведения о пути управления для индикации состояния NDIS см. в Hyper-V пути управления для индикации состояния расширяемого коммутатора NDIS.
Интерфейс расширяемого коммутатора поддерживает счетчик ссылок для каждого созданного порта. Порт не будет удален, если его счетчик ссылок имеет ненулевое значение. Интерфейс предоставляет следующие функции обработчика для увеличения или уменьшения ссылочных счетчиков порта расширяемого коммутатора:
ReferenceSwitchPort
Расширяемый модуль коммутатора вызывает эту функцию, чтобы увеличить счётчик ссылок порта. Хотя счетчик ссылок имеет ненулевое значение, краевой протокол расширяемого коммутатора не выдает запрос на установку идентификатора объекта (OID) OID_SWITCH_PORT_DELETE для удаления порта расширяемого коммутатора.
Расширение должно вызывать ReferenceSwitchPort перед выполнением любой операции, требующей наличия порта в активном состоянии. Например, расширение должно вызывать ReferenceSwitchPort, прежде чем оно отправляет запрос метода OID OID_SWITCH_PORT_PROPERTY_ENUM.
Примечание Расширение не должно вызывать ReferenceSwitchPort для порта после получения запроса установки OID OID_SWITCH_PORT_TEARDOWN для этого порта.
DereferenceSwitchPort
Расширение расширяемого коммутатора вызывает эту функцию для уменьшения счетчика ссылок порта.
Расширение должно вызывать DereferenceSwitchPort после завершения операции на порту. Например, если расширение называется ReferenceSwitchPort до выдачи запроса OID_SWITCH_PORT_PROPERTY_ENUM, расширение должно вызывать DereferenceSwitchPort после завершения запроса OID.
Примечание порт NDIS и расширяемый порт коммутатора - это разные объекты. Пакеты, перемещающиеся по пути данных расширяемого коммутатора, всегда назначаются номеру порта NDIS NDIS_DEFAULT_PORT_NUMBER. Однако номер порта расширяемого коммутатора для источника и назначения пакета может быть значением NDIS_SWITCH_DEFAULT_PORT_ID или больше. Дополнительные сведения см. в разделе Hyper-V Расширяемый путь к данным коммутатора.