將封包轉送至實體網路介面卡
注意 此頁面假設您已熟悉下列頁面中的資訊和圖表:
此頁面描述 Hyper-V 可延伸交換器轉送延伸模組如何將封包的要求轉送至基礎實體介面卡。 一或多個實體網路介面卡可以系結至可延伸交換器外部網路介面卡。
例如,可延伸交換器外部網路介面卡可以系結至 NDIS 多工器的虛擬迷你埠邊緣, (MUX) 中繼驅動程式。 MUX 中繼驅動程式本身可以系結至主機上一或多個實體網路的小組。 此設定稱為 可延伸交換器小組。 如需可延伸交換器小組的詳細資訊,請參閱 實體網路介面卡組態的類型。
在此設定中,可延伸交換器擴充功能會公開給可延伸交換器小組中的每個網路介面卡。 這可讓可延伸交換器驅動程式堆疊中的轉送延伸模組管理小組中個別網路介面卡的設定和使用。 例如,延伸模組可以藉由將傳出封包轉送至個別配接器,透過小組提供負載平衡容錯移轉 (LBFO) 解決方案的支援。 例如延伸模組稱為 小組提供者。 如需小組提供者的詳細資訊,請參閱 Teaming Provider Extensions。
如果在可延伸交換器驅動程式堆疊中安裝並啟用轉送延伸模組,則它會負責針對它在可延伸交換器輸入資料路徑上取得的每個封包進行轉送決策,除非封包是 NVGRE 封包。 (如需 NVGRE 封包的詳細資訊,請參閱 混合式轉送.) 根據這些轉送決策,擴充功能可以將目的地埠新增至封包NET_BUFFER_LIST結構的頻外 (OOB ) 資料。 封包完成可延伸交換器資料路徑的周遊之後,可延伸交換器介面會將封包傳遞至指定的目的地埠。
注意 如果未安裝或啟用轉送延伸模組,可延伸交換器本身會針對從輸入資料路徑取得的封包進行轉送決策。 交換器會將目的地埠新增至封包 NET_BUFFER_LIST 結構的 OOB 資料,再將封包轉送至可延伸交換器輸出資料路徑。
呼叫轉送延伸模組的 FilterSendNetBufferLists 函式時, NetBufferList 參數會包含 連結NET_BUFFER_LIST 結構的指標。 每個結構都會指定從輸入資料路徑取得的封包。 在每個封包 NET_BUFFER_LIST 結構的 OOB 資料中,目的地埠的資料會包含在 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構中。 延伸模組會藉由呼叫GetNetBufferListDestinations來取得NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY結構及其元素。
注意 若要改善效能,轉送延伸模組可以呼叫 GrowNetBufferListDestinations 函式,而不是 GetNetBufferListDestinations ,以取得 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 結構的指標。 如果延伸模組判斷它需要封包 OOB 資料中用於目的地埠的其他陣列元素,就會執行此作業。 如需詳細資訊,請參閱 將可延伸交換器目的地埠資料新增至封包。
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY陣列中的每個元素都會定義目的地埠,並格式化為NDIS_SWITCH_PORT_DESTINATION結構。 此結構包含下列成員:
PortId成員包含值,指定可延伸交換器上的目的地埠。
NicIndex成員會指定連接到PortId成員所指定可延伸交換器埠之網路介面卡的索引。
如需這些索引值的詳細資訊,請參閱 網路介面卡索引值。
如果轉送延伸模組新增連線到外部網路介面卡的目的地埠,擴充功能可以指定基礎實體網路介面卡的索引。 例如,擴充功能可作為可延伸交換器小組支援的小組提供者。 這可讓擴充功能藉由將傳送要求轉送至小組的不同配接器,來平衡流量額外負荷。
轉送延伸模組必須在新增或修改 NDIS_SWITCH_PORT_DESTINATION 結構時遵循這些指導方針,以將要求轉送至基礎實體網路介面卡:
如果 PortId 成員指定外部網路介面卡所連接的可延伸交換器埠,擴充功能必須將 NicIndex 成員設定為下列其中一個索引值:
如果只有一張實體網路介面卡系結至外部網路介面卡,擴充功能必須將 NicIndex 成員設定為 NDIS_SWITCH_DEFAULT_NIC_INDEX 或一個。
如果多個實體網路介面卡系結至外部網路介面卡,擴充功能必須將 NicIndex 成員設定為可延伸交換器小組中目的地網路介面卡的非零索引值。
注意 如果 PortId 成員未指定外部網路介面卡所連接的可延伸交換器埠,擴充功能必須將 NicIndex 成員設定為 NDIS_SWITCH_DEFAULT_NIC_INDEX。
擴充功能新增封包的所有目的地埠之後,必須呼叫 NdisFSendNetBufferLists 以轉送輸入資料路徑上的封包。
如需如何將目的地埠新增至封包的詳細資訊,請參閱 將封包轉送至 Hyper-V 可延伸交換器埠。
如需輸出資料路徑的詳細資訊,請參閱 Hyper-V 可延伸交換器資料路徑。