共用方式為


Hyper-V 可延伸交換器網路適配器概觀

Hyper-V 可延伸交換器支援來自各種虛擬或實體網路適配器的連線。 這些類型的網路適配器的連線是透過可延伸的交換器埠進行。 埠會在建立虛擬網路適配器連線之前建立,並在網路適配器連線中斷之後刪除。

例如,當啟動 Hyper-V 子磁碟分區時,可擴展交換器介面會在客體操作系統內顯示虛擬機(VM)網路適配器之前建立埠。 在公開和列舉 VM 網路適配器之後,可延伸交換器介面會在 VM 網路適配器與可延伸交換器埠之間建立網路連線。 如果子分割區停止,可延伸交換器介面會先刪除網路連線,然後刪除可延伸交換器埠。

Hyper-V 可延伸交換器支援來自下列虛擬網路適配器類型的連線:

外部網路適配器
這是一個在執行於 Hyper-V 父分割區的管理作業系統中公開的可擴展交換網路介面卡。 每個可延伸交換器只支援一個外部網路適配器連線。

外部網路適配器會提供與主機上可用之實體網路介面的連線。 外部網路適配器可由 Hyper-V 父分割區和所有子分割區存取。

如需這種類型的網路適配器的詳細資訊,請參閱 外部網路配接器

內部網路適配器
這是一個在 Hyper-V 父分割區中運行的管理作業系統中呈現的可擴展交換器網路介面卡。 每個可延伸交換器只支援一個內部網路適配器連線。

內部網路介面卡為在管理作業系統中執行的程序提供可延伸交換器的存取權。 這可讓這些進程透過可延伸交換器傳送或接收封包。

如需這種類型的網路適配器的詳細資訊,請參閱 內部網路配接器

虛擬機 (VM) 網路適配器
這是可在 Hyper-V 子分割中執行的客體作系統中公開的可延伸交換器網路適配器。

注意 Hyper-V 中,子分割也稱為 VM。

VM 網路配接器支援下列虛擬化類型:

  • VM 網路適配器可以是網路適配器的合成虛擬化(綜合網路適配器)。 在此情況下,在 VM 中執行的網路虛擬服務用戶端 (NetVSC) 會公開此虛擬網路適配器。 NetVSC 會透過 VM 總線 (VMBus) 來回轉送封包至可延伸交換器埠。

  • VM 網路適配器可以是實體網路適配器的模擬虛擬化(模擬網路適配器)。 在此情況下,VM 網路適配器會模擬 Intel 網路適配器,並使用硬體模擬將封包轉送至擴充交換器埠,並從該交換器埠迴轉送回封包。

如需這種類型的網路適配器的詳細資訊,請參閱 虛擬機網路配接器

可延伸交換器的網路介面卡連接會透過下列可延伸交換器 OID 要求來建立、更新和刪除:

OID_SWITCH_NIC_CREATE
可延伸交換器的協定邊界發出 OID_SWITCH_NIC_CREATE 的 OID 設置要求,以通知可延伸交換器擴充功能關於網路適配器連線至可延伸交換器埠的建立。 埠先前必須透過 OID_SWITCH_PORT_CREATE的 OID 集合要求來建立。

OID_SWITCH_NIC_CREATE 請求僅通知擴充模組新的可延展交換機網路介面卡連接正在啟動,且封包流量可能很快就會透過指定的埠開始。

擴充功能可以透過傳回 OID 要求的 STATUS_DATA_NOT_ACCEPTED 來否決建立通知。 例如,如果擴充功能無法在網路適配器連線使用的埠上滿足其設定的原則,擴充功能應該否決建立通知。

如果延伸模組接受建立通知,則必須將 OID 要求轉送至可延伸交換器驅動程式堆疊。 延伸模組會監視此 OID 要求的完成狀態,以判斷基礎延伸模組是否已否決建立通知。

建立網路適配器連線時,會指派NDIS_SWITCH_NIC_INDEX值。 此索引值會識別可延伸交換器埠上的網路適配器連線。 外部、內部和 VM 網路配接器的連接會被指派一個NDIS_SWITCH_NIC_INDEX值為 和 NDIS_SWITCH_DEFAULT_NIC_INDEX 為。 系結至外部網路適配器的每個實體或虛擬網路適配器都會以下列方式指派NDIS_SWITCH_NIC_INDEX值:

  • 如果實體或虛擬網路適配器直接系結至外部網路適配器,則會被指派一個 NDIS_SWITCH_NIC_INDEX 值為一。

  • 如果實體網路適配器是可延伸交換器小組的一部分,則會指派大於或等於一個的NDIS_SWITCH_NIC_INDEX值。 可延伸交換器小組是一個組態,其中一或多個實體網路適配器的小組會系結至可延伸交換器外部網路適配器。

如需實體網路適配器可以繫結至外部網路適配器之不同組態的詳細資訊,請參閱 實體網路適配器組態類型

如需NDIS_SWITCH_NIC_INDEX值的詳細資訊,請參閱 網路配接器索引值

注意 延伸模組無法透過網路適配器連線產生或轉寄封包,直到可延伸交換器的通訊協定邊緣發出 OID 集要求 OID_SWITCH_NIC_CONNECT為止。

OID_SWITCH_NIC_CONNECT
可延伸交換器的協定邊界發出 OID 集合要求 OID_SWITCH_NIC_CONNECT,以通知網路適配器連線已完全運作的可延伸交換器擴充功能。

延伸模組必須一律將這個 OID 集合要求轉送至可延伸交換器驅動程式堆疊。 擴充功能不得導致請求失敗。

在 OID 要求順利完成,即達到 NDIS_STATUS_SUCCESS 之後,網路介面卡連線和可延伸交換器埠就會全面運作。 當網路適配器連線處於此狀態時,擴充功能可以執行下列動作:

  • 產生或轉送封包流量至埠的網路適配器連線。

  • 發出可延伸交換器的物件識別碼(OID)或狀態指示,使用埠作為來源埠。

  • 呼叫 ReferenceSwitchNic,以遞增網路適配器連線的參考計數器。 當參考計數器具有非零值時,可延伸交換器介面不會中斷網路適配器連線。

OID_SWITCH_NIC_UPDATED
可延伸交換器的通訊協定邊緣發出 OID_SWITCH_NIC_UPDATED 的 OID 集合要求,以通知可延伸交換器擴充功能已更新可延伸交換器網路適配器的參數。 OID 只會針對已連線且尚未開始中斷連線過程的 NIC 發出。 這些運行時間設定變更可能包括 NicFriendlyNameMTUNetCfgInstanceIdPermanentMacAddressVMMacAddressCurrentMacAddressVFAssigned。

延伸模組必須一律將這個 OID 集合要求轉送至可延伸交換器驅動程式堆疊。 延伸模組不得讓要求失敗。

OID_SWITCH_NIC_DISCONNECT
可延伸交換器的通訊協定邊緣發出 OID_SWITCH_NIC_DISCONNECT 的 OID 集合要求,以通知可延伸交換器擴充功能,表明可延伸交換器網路適配器的連線正在中斷。 連線已完全中斷後,可延伸交換器的通訊協定邊緣會發出OID設定要求,OID_SWITCH_NIC_DELETE

延伸模組必須一律將這個 OID 集合要求轉送至可延伸交換器驅動程式堆疊。 擴充功能不得使請求失敗。

擴充功能轉送此 OID 要求之後,就無法再產生或轉送封包至網路適配器連線正在中斷的埠。 此外,擴充套件無法再為網路適配器連線呼叫 ReferenceSwitchNic

刪除網路介面控制器 OID
可延伸交換器的通訊協定邊緣會發出一個 OID 設置要求,OID_SWITCH_NIC_DELETE,以通知可延伸交換器的擴充功能,表示可延伸交換器網路適配器的連接已被解除並刪除。 此 OID 要求僅針對那些之前已發出 OID_SWITCH_NIC_DISCONNECT 的 OID 集合要求的網路連線而提出。

注意 延伸模組必須一律將這個 OID 集合要求轉送至可延伸交換器驅動程式堆疊。 擴充功能不能導致請求失敗。

完成此 OID 要求之後,可延伸交換器的通訊協定邊緣會發出 OID_SWITCH_PORT_TEARDOWN 的 OID 集合要求,以啟動用於網路適配器連線之埠的刪除程式。

延伸模組必須一律將這個 OID 集合要求轉送至可延伸交換器驅動程式堆疊。 延伸模組不得讓要求失敗。

可延伸交換器介面會針對已建立的每個網路適配器連線維護參考計數器。 如果網路適配器的參考計數器具有非零值,將不會刪除網路適配器連線。 介面提供下列處理程式函式,用於遞增或遞減可延伸交換器網路適配器連線的參考計數器:

ReferenceSwitchNic
可延伸交換器擴充功能會呼叫此函式,以遞增網路適配器連線的參考計數器。 雖然參考計數器具有非零值,但可延伸交換器介面不會刪除網路適配器連線。

擴充功能應該先呼叫 ReferenceSwitchNic,再執行下列作業:

附注 擴充功能在收到 OID_SWITCH_NIC_DISCONNECT 的 OID 集合要求之後,不得呼叫 ReferenceSwitchNic 用於該連線的網路適配器連線。

DereferenceSwitchNic
可延伸交換器擴充功能會呼叫此函式來遞減埠的參考計數器。

如果擴充功能呼叫 ReferenceSwitchNic,則必須在完成 OID_SWITCH_NIC_REQUESTNDIS_STATUS_SWITCH_NIC_STATUS 指示之後呼叫 DereferenceSwitchNic