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


Гибридное перенаправление

Начиная с версии NDIS 6.40 (Windows Server 2012 R2, архитектура расширяемого коммутатора Hyper-V поддерживает гибридное перенаправление с помощью компонента Hyper-V Network Virtualization (HNV) расширяемого коммутатора и путем переадресации расширений.

Примечание На этой странице предполагается, что вы знакомы с виртуализацией сети с использованием Generic Routing Encapsulation (NVGRE) Task Offload и Обзором Hyper-V расширяемого коммутатора.

Пакеты NVGRE и не-NVGRE

В гибридной среде пересылки существует два типа пакетов, которые входят в Hyper-V расширяемый коммутатор и покидают его: пакеты NVGRE и пакеты, отличные от NVGRE.

  • Пакеты NVGRE имеют инкапсулированный формат, указанный в NVGRE: виртуализация сети с использованием общей маршрутизации инкапсуляции интернет-драфте. Пакеты NVGRE пересылаются компонентом HNV расширяемого коммутатора Hyper-V.
  • Пакеты, отличные от NVGRE, являются обычными сетевыми пакетами. Пакеты, отличные от NVGRE, перенаправляются с помощью функции модуля пересылки (или, в отсутствие модуля пересылки, самим расширяемым коммутатором).

Поток пакетов NVGRE и не-NVGRE через коммутатор

В пути обработки данных входящего трафика после захвата и фильтрации модулей, но перед модулем пересылки, если пакет является пакетом NVGRE, расширяемый коммутатор задает флаг NativeForwardingRequired в структуре NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO пакета. Эта структура содержится в NetBufferListInfo член структуры NET_BUFFER_LIST пакета.

Примечание Элемент NetBufferListInfo структуры NET_BUFFER_LIST часто называется "данными вне полосы (OOB) пакета".

Если флаг NativeForwardingRequired задан в данных OOB пакета, пакет является пакетом NVGRE. Если он не задан, пакет не является пакетом NVGRE.

Расширения должны использовать макрос NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL для проверки значения флага NativeForwardingRequired.

Пакеты NVGRE и не-NVGRE обрабатываются следующим образом:

  • Компонент HNV расширяемого коммутатора Hyper-V пересылает все пакеты NVGRE, определяя при этом их целевую таблицу.
  • Компонент HNV выполняет инкапсуляцию и декапсуляцию NVGRE по мере необходимости.
  • Расширение пересылки пересылает все пакеты, отличные от NVGRE.
  • Расширение пересылки не может пересылать пакеты NVGRE, но оно может выполнять те же действия фильтрации, что и расширение фильтрации, включая добавление или исключение конечных портов или даже удаление пакетов.
  • Если расширения пересылки нет, расширяемый коммутатор Hyper-V перенаправляет все пакеты.

Дополнительные сведения см. в разделе Поток пакетов в коммутаторе расширяемого пути к данным.

Поддержка виртуализации сетей третьих сторон

Внешнюю виртуальную подсеть можно настроить на порту сетевого адаптера виртуальной машины с помощью VirtualSubnetId. Эта функция была добавлена для обеспечения возможности переадресации, чтобы сторонние производители могли предоставлять решения виртуализации сети. При входящих пакетах расширяемый коммутатор Hyper-V не будет устанавливать флаг NativeForwardingRequired в структурах NET_BUFFER_LIST для этих пакетов. После этого расширение пересылки может изменить заголовки пакетов, как это необходимо, во время пересылки. Измененные пакеты должны быть клонированы, и их указатели ParentNetBufferList должны быть установлены в исходный NET_BUFFER_LIST. (См. раздел Клонирование трафика пакетов.)

добавление данных порта назначения расширяемого коммутатора в пакет

клонирование пакетного трафика

расширения переадресации

поток пакетов через расширяемую магистраль данных коммутатора

NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO