Пересылка пакетов на порты расширенного коммутатора Hyper-V
На этой странице описывается, как расширение переадресации расширяемого коммутатора Hyper-V может пересылать пакеты на один или несколько портов. Этот тип расширения также может пересылать пакеты отдельным сетевым адаптерам, подключенным к внешнему сетевому адаптеру расширяемого коммутатора.
Примечание Только расширение переадресации расширяемого коммутатора или сам расширяемый коммутатор могут пересылать пакеты на порты расширяемого коммутатора.
Примечание На этой странице предполагается, что вы знакомы со сведениями и схемами в статье Обзор расширяемого коммутатора Hyper-V и гибридной пересылки.
Примечание В интерфейсе расширяемого коммутатора драйверы фильтров NDIS называются расширяемыми расширениями коммутаторов , а стек драйверов называется стеком драйверов расширяемого коммутатора. Дополнительные сведения о расширениях см. в разделе Расширения коммутатора Hyper-V.
Если расширение переадресации установлено и включено в стеке драйвера расширяемого коммутатора, оно отвечает за принятие решений по пересылке для каждого пакета, получаемого по пути входящего трафика расширяемого коммутатора. Основываясь на этих решениях по пересылке, расширение добавляет порты назначения в массив портов назначения в данные вне диапазона (OOB) структуры NET_BUFFER_LIST пакета. После завершения обхода пакета пути данных расширяемого коммутатора интерфейс расширяемого коммутатора доставляет пакет на указанные порты назначения.
Примечание Если расширение переадресации не установлено или не включено, расширяемый коммутатор принимает решения о переадресации пакетов, которые он получает из пути данных входящего трафика. Коммутатор добавляет порты назначения к данным OOB NET_BUFFER_LIST структуры пакета, прежде чем перенаправляет пакет по пути исходящих данных расширяемого коммутатора.
Примечание Если пакет является пакетом NVGRE, расширение переадресации может добавлять порты назначения в массив портов назначения. Однако компонент виртуализации сети Hyper-V (HNV) расширяемого коммутатора отвечает за определение портов назначения и пересылку пакета. Дополнительные сведения см. в разделе Гибридная пересылка.
Расширение переадресации может добавлять назначения портов только к пакетам, полученным из пути данных входящего трафика. После перенаправления пакета по пути исходящих данных модули фильтрации и пересылки могут исключить доставку пакетов на расширяемые порты коммутатора. Дополнительные сведения см. в разделе Исключение доставки пакетов в порты назначения расширяемого коммутатора.
В данных OOB структуры NET_BUFFER_LIST пакета данные для портов назначения содержатся в структуре NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Каждый элемент в массиве определяет порт назначения и форматируется как структура NDIS_SWITCH_PORT_DESTINATION .
Расширение переадресации может вызывать следующие функции обработчика расширенного коммутатора Hyper-V для управления структурой NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY и ее NDIS_SWITCH_PORT_DESTINATION элементами:
AddNetBufferListDestination
Эта функция добавляет один порт назначения в структуру NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY в данных OOB пакета.
GetNetBufferListDestinations
Эта функция возвращает указатель на структуру NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY в данных OOB пакета.
GrowNetBufferListDestinations
Эта функция добавляет дополнительные элементы порта назначения в NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY структуру данных OOB пакета.
UpdateNetBufferListDestinations
Эта функция фиксирует изменения, внесенные расширением для добавления или исключения одного или нескольких портов назначения для пакета. Эти изменения фиксируются в структуре NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY в данных OOB пакета.
При вызове функции FilterSendNetBufferLists расширения пересылки параметр NetBufferList содержит указатель на связанный список NET_BUFFER_LIST структур. Каждая из этих структур задает пакет, полученный из пути данных входящего трафика.
Для каждой структуры NET_BUFFER_LIST в этом списке расширение пересылки добавляет порты назначения для пакета, выполнив следующие действия.
Расширение принимает решения о переадресации пакета на основе различных типов критериев. К этим критериям относятся следующие:
Критерии политики на основе исходного порта пакета и подключения к сетевому адаптеру. Расширение переадресации получает эти сведения с помощью макроса NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL .
Критерии политики для расширяемого порта коммутатора на основе полезных данных пакета. Например, политика для порта расширяемого коммутатора может включать фильтр, разрешающий доставку только пакетов IP версии 4 (IPv4).
Примечание Если пакет является пакетом NVGRE, за пересылку пакета отвечает компонент HNV расширяемого коммутатора. Однако расширение переадресации может применять собственные критерии политики в путях входящего и исходящего трафика. Дополнительные сведения см. в разделе Гибридная пересылка.
Если расширение определяет, что пакет может быть переадресован на один или несколько расширяемых портов коммутатора, оно должно добавить порты назначения к данным OOB пакета. Дополнительные сведения об этой процедуре см. в разделе Добавление данных порта назначения расширяемого коммутатора в пакет.
Примечание Если пакет является пакетом NVGRE, расширение переадресации не требуется для добавления портов назначения. Дополнительные сведения см. в разделе Гибридная пересылка.
Если расширение определяет, что пакет не может быть переадресован на какой-либо расширяемый порт коммутатора, оно должно удалить пакет.
Примечание Это не так, если пакет является пакетом NVGRE. Дополнительные сведения см. в разделе Гибридная пересылка.
Если расширение добавило один или несколько портов назначения для пакета, оно должно вызвать NdisFSendNetBufferLists для пересылки пакета по пути исходящих данных.
Примечание Если пакет является пакетом NVGRE, за пересылку пакета отвечает компонент HNV расширяемого коммутатора. Дополнительные сведения см. в разделе Гибридная пересылка.
Дополнительные сведения о путях входящего и исходящего трафика коммутатора см. в статье Hyper-V Extensible Switch Data Path.