Состояния порта расширяемого коммутатора Hyper-V и сетевого адаптера
Интерфейс расширяемого коммутатора Hyper-V управляет временем существования следующих компонентов:
Расширяемые порты коммутатора Hyper-V
Каждое подключение сетевого адаптера к расширяемым коммутаторам представлено портом. Порты создаются, когда дочерний раздел Hyper-V настроен для подключения к экземпляру расширяемого коммутатора. В зависимости от типа коммутатора также создаются порты для подключений внешних и внутренних сетевых адаптеров. Дополнительные сведения о типах коммутаторов см. в статье Обзор расширяемого коммутатора Hyper-V.
Каждый порт используется для хранения конфигурации подключения к сетевому интерфейсу. Если конфигурация подключения к сетевому интерфейсу удалена или дочерняя секция остановлена, порт будет снесен и удален.
Дополнительные сведения об этом компоненте см. в разделе Расширяемые порты коммутатора Hyper-V.
Сетевые адаптеры расширяемого коммутатора Hyper-V
Это виртуальные сетевые адаптеры, которые подключаются к порту расширяемого коммутатора. Эти виртуальные сетевые адаптеры доступны в дочерней и родительской секциях Hyper-V. К ним относятся сетевой адаптер виртуальной машины, предоставляемый в дочернем разделе, и внешний сетевой адаптер, объединяемый с базовым физическим сетевым адаптером.
Для каждого подключения к сетевому адаптеру требуется соответствующий расширяемый порт коммутатора. Порт должен быть создан перед подключением к сетевому адаптеру. Аналогичным образом необходимо удалить подключение к сетевому адаптеру, прежде чем порт можно будет сломать и удалить.
Примечание В некоторых ситуациях расширяемые порты коммутатора можно создавать и удалять без подключения к сетевому адаптеру.
Например, при запуске дочернего раздела Hyper-V интерфейс расширяемого коммутатора создает порт перед предоставлением сетевого адаптера виртуальной машины в гостевой операционной системе. После предоставления и перечисления сетевого адаптера виртуальной машины интерфейс расширяемого коммутатора создает сетевое подключение между сетевым адаптером виртуальной машины и портом расширяемого коммутатора. Если дочерняя секция остановлена, интерфейс расширяемого коммутатора сначала удаляет сетевое подключение, а затем порт расширяемого коммутатора.
Дополнительные сведения об этом компоненте см. в разделе Сетевые адаптеры расширяемого коммутатора Hyper-V.
Когда интерфейс расширяемого коммутатора создает, удаляет или изменяет конфигурацию этих компонентов, он выдает запросы на набор идентификаторов объектов (OID) в стеке драйвера расширяемого коммутатора. Эта операция выполняется для того, чтобы базовые расширения расширяемого коммутатора могли получать уведомления о состоянии компонента и его конфигурации. Каждый запрос набора OID приводит к переходу состояния для этих компонентов.
Если расширение привязано и включено в экземпляре расширяемого коммутатора, оно может выдавать идентификаторы OID для обнаружения существующей конфигурации подключения к порту и сетевому адаптеру коммутатора.
На следующей схеме показаны различные состояния для расширяемого порта коммутатора и компонентов подключения к сетевому адаптеру. На схеме также показаны запросы набора OID, которые вызывают переход состояния для компонента.
В следующем списке описаны различные состояния расширяемого порта коммутатора и компонентов подключения к сетевому адаптеру.
Порт не создан
В этом состоянии порт расширяемого коммутатора не существует в расширяемом коммутаторе. Запросы OID, предназначенные для ранее созданного порта, не могут быть выданы после того, как порт перейдет в это состояние.
Порт создан
Когда интерфейс расширяемого коммутатора отправляет запрос на набор OID OID_SWITCH_PORT_CREATE, порт создается в расширяемом коммутаторе. В этом состоянии расширяемый интерфейс коммутатора и расширение могут выдавать запросы OID, предназначенные для порта.
Дополнительные сведения о трафике OID через стек драйвера расширяемого коммутатора см. в статье Hyper-V Extensible Switch Control Path.
Примечание Базовое расширение может завершить запрос на набор OID и наложение вето на создание порта. Расширение делает это путем выполнения запроса OID с STATUS_DATA_NOT_ACCEPTED. В этом случае порт не создается в расширяемом коммутаторе. Дополнительные сведения об этой процедуре см. в разделе Порты расширяемого коммутатора Hyper-V.
Подключение к сетевому адаптеру создано
Когда интерфейс расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_NIC_CREATE, подключение сетевого адаптера к порту создается на расширяемом коммутаторе. В этом состоянии расширяемый интерфейс коммутатора может выполнять следующие действия.
Выдача запросов OID, предназначенных для подключения к сетевому адаптеру.
Перенаправка трафика пакетов в подключение сетевого адаптера или из нее.
Кроме того, новый адаптер может подключиться к существующему порту без удаления порта и создания последовательности.
В этом состоянии расширение должно пересылать эти пакеты и запросы OID через стек расширений расширяемого коммутатора. Однако расширение не может создавать или перенаправлять пакеты или запросы OID к другим подключениям сетевого адаптера на расширяемом коммутаторе.
Примечание В этом состоянии расширение не должно выдавать запросы OID или отправлять трафик пакетов к подключению сетевого адаптера.
Дополнительные сведения о трафике OID через стек драйвера расширяемого коммутатора см. в статье Hyper-V Extensible Switch Control Path.
Дополнительные сведения о трафике пакетов через стек драйвера расширяемого коммутатора см. в статье Hyper-V Extensible Switch Data Path.
Примечание Базовое расширение может завершить запрос на набор OID и наложение вето на создание подключения к сетевому адаптеру. Если это так, подключение не создается на порту расширяемого коммутатора. Дополнительные сведения об этой процедуре см. в разделе Сетевые адаптеры расширяемого коммутатора Hyper-V.
Сетевой адаптер подключен
Когда интерфейс расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_NIC_CONNECT, сетевой адаптер полностью подключен к порту расширяемого коммутатора. В этом состоянии расширение теперь может выполнять следующие действия:
Выдача запросов OID, предназначенных для подключения к сетевому адаптеру.
Инициируйте трафик пакетов к подключению сетевого адаптера.
Перенаправление трафика пакетов на подключение сетевого адаптера. Например, расширение может перенаправлять пакеты из одного подключения сетевого адаптера в другое на расширяемом коммутаторе.
Примечание Эту операцию могут выполнять только расширения пересылки. Дополнительные сведения см. в разделе Переадресация расширений.
Сетевой адаптер отключен
Когда интерфейс расширяемого коммутатора отправляет запрос на набор OID OID_SWITCH_NIC_DISCONNECT, сетевой адаптер отключается от порта расширяемого коммутатора. Например, этот запрос OID выдается, когда дочерний раздел, предоставляющий сетевой адаптер виртуальной машины, останавливается или внешний сетевой адаптер отключен.
В этом состоянии расширение расширяемого коммутатора больше не может отправлять пакеты или запросы OID, предназначенные для подключения. Кроме того, расширения переадресации больше не могут перенаправлять пакеты в подключение.
Примечание Ожидающие пакеты и запросы OID, выданные интерфейсом расширяемого коммутатора до отключения подключения, могут по-прежнему доставляться в расширение. Однако расширение должно пересылать пакеты и запросы OID без внесения каких-либо изменений.
Удалено подключение к сетевому адаптеру
После завершения всего трафика пакетов и запросов OID, предназначенных для подключения к сетевому адаптеру, интерфейс расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_NIC_DELETE для удаления подключения из расширяемого коммутатора.
В этом состоянии интерфейс расширяемого коммутатора больше не будет выдавать пакеты или запросы OID, предназначенные для подключения.
Разрыв порта
Когда интерфейс расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_PORT_TEARDOWN, порт расширяемого коммутатора удаляется при подготовке к удалению.
В этом состоянии расширение расширяемого коммутатора больше не может отправлять запросы OID, предназначенные для порта.
Примечание Ожидающие запросы OID, выданные интерфейсом расширяемого коммутатора до начала процесса удаления порта, могут по-прежнему доставляться в расширение. Однако расширение должно пересылать запросы OID без внесения каких-либо изменений.
После завершения всех ожидающих запросов OID, предназначенных для порта, интерфейс расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_PORT_DELETE. Это приводит к переходу порта в состояние "Порт не создан ".
Расширение может вызывать функцию обработчика расширяемого коммутатора для увеличения или уменьшения счетчика ссылок в компоненте подключения к порту или сетевому адаптеру. Хотя счетчик ссылок компонента не равен нулю, расширяемый интерфейс коммутатора не может удалить компонент.
Расширение может вызывать ReferenceSwitchPort или DereferenceSwitchPort для увеличения или уменьшения счетчика ссылок для порта расширяемого коммутатора. Эти вызовы можно выполнять после того, как порт достигнет состояния создания порта . Эти вызовы не должны выполняться после того, как порт достиг состояния "Порт разрывается " или после того, как порт не создан .
Расширение может вызывать ReferenceSwitchNic или DereferenceSwitchNic для увеличения или уменьшения счетчика ссылок для подключения сетевого адаптера расширяемого коммутатора. Эти вызовы можно выполнять после того, как подключение достигнет состояния подключенного сетевого адаптера . Эти вызовы не должны выполняться после того, как подключение достигло состояния "Сетевой адаптер отключен" или " Сетевой адаптер удален ".
В следующей таблице описаны операции, которые разрешены в зависимости от состояния расширяемого порта коммутатора или компонентов подключения к сетевому адаптеру.
Состояние компонента | Разрешены вызовы ReferenceSwitchPort или DereferenceSwitchPort ? | Разрешены вызовы ReferenceSwitchNic или DereferenceSwitchNic ? |
---|---|---|
Порт не создан |
Нет |
Нет |
Порт создан |
Да |
Нет |
Подключение к сетевому адаптеру создано |
Да |
Нет |
Сетевой адаптер подключен |
Да |
Да |
Сетевой адаптер отключен |
Да |
Нет |
Удалено подключение к сетевому адаптеру |
Да |
Нет |
Разрыв порта |
Нет |
Нет |
Состояние компонента | Запросы OID от расширяемого коммутатора разрешены для порта? | Запросы OID от расширений, разрешенных для порта? | Запросы OID от расширяемого коммутатора разрешены для подключения к сетевому адаптеру? | Запросы OID от расширений, разрешенных для подключения к сетевому адаптеру? | Трафик пакетов от расширяемого коммутатора разрешен через подключение к сетевому адаптеру? | Трафик пакетов от расширений, разрешенных через подключение к сетевому адаптеру? |
---|---|---|---|---|---|---|
Порт не создан |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Порт создан |
Да |
Да |
Нет |
Нет |
Нет |
Нет |
Подключение к сетевому адаптеру создано |
Да |
Да |
Да |
Нет |
Да |
Нет |
Сетевой адаптер подключен |
Да |
Да |
Да |
Да |
Да |
Да |
Сетевой адаптер отключен |
Да |
Да |
Да |
Нет |
Да |
Нет |
Удалено подключение к сетевому адаптеру |
Да |
Да |
Нет |
Нет |
Нет |
Нет |
Разрыв порта |
Да |
Нет |
Нет |
Нет |
Нет |
Нет |