Hyper-V 拡張可能スイッチ ネットワーク アダプターの概要

Hyper-V 拡張可能スイッチは、さまざまな種類の仮想または物理ネットワーク アダプターからの接続をサポートします。 これらの種類のネットワーク アダプターへの接続は、拡張可能なスイッチ ポートを介して行います。 ポートは、仮想ネットワーク アダプター接続が確立される前に作成され、ネットワーク アダプター接続が取り外された後に削除されます。

たとえば、Hyper-V 子パーティションが起動すると、拡張可能スイッチ インターフェイスは、仮想マシン (VM) ネットワーク アダプターがゲスト オペレーティング システム内で公開される前にポートを作成します。 VM ネットワーク アダプターが公開および列挙された後、拡張可能スイッチ インターフェイスによって、VM ネットワーク アダプターと拡張可能スイッチ ポートの間にネットワーク接続が作成されます。 子パーティションが停止している場合、拡張可能スイッチ インターフェイスは、まずネットワーク接続を削除してから、拡張可能スイッチ ポートを削除します。

Hyper-V 拡張可能スイッチは、次の種類の仮想ネットワーク アダプターからの接続をサポートします。

外部ネットワーク アダプター
これは、Hyper-V 親パーティションで実行される管理オペレーティング システムで公開される拡張可能なスイッチ ネットワーク アダプターです。 各拡張可能スイッチは、1 つの外部ネットワーク アダプター接続のみをサポートします。

外部ネットワーク アダプターは、ホストで使用できる物理ネットワーク インターフェイスへの接続を提供します。 外部ネットワーク アダプターには、Hyper-V 親パーティションとすべての子パーティションからアクセスできます。

この種類のネットワーク アダプターの詳細については、「外部ネットワーク アダプター」 を参照してください

内部ネットワーク アダプター
これは、Hyper-V 親パーティションで実行される管理オペレーティング システムで公開される拡張可能なスイッチ ネットワーク アダプターです。 各拡張可能スイッチは、1 つの内部ネットワーク アダプター接続のみをサポートします。

内部ネットワーク アダプターは、管理オペレーティング システムで実行されるプロセスの拡張可能スイッチへのアクセスを提供します。 これにより、これらのプロセスは拡張可能スイッチを使用してパケットを送受信できます。

この種類のネットワーク アダプターの詳細については、「内部ネットワーク アダプター」 を参照してください

仮想マシン (VM) ネットワーク アダプター
これは、Hyper-V 子パーティションで実行されるゲスト オペレーティング システムで公開される拡張可能なスイッチ ネットワーク アダプターです。

Hyper-V では、子パーティションは VM とも呼ばれる。

VM ネットワーク アダプターでは、次の仮想化の種類がサポートされています。

  • VM ネットワーク アダプターは、ネットワーク アダプター (合成ネットワーク アダプター) の合成 仮想化である可能性があります。 この場合、VM で実行されるネットワーク仮想サービス クライアント (NetVSC) によって、この仮想ネットワーク アダプターが公開されます。 NetVSC は、拡張可能スイッチ ポート間で VM バス (VMBus) を使用してパケットを転送します。

  • VM ネットワーク アダプターは、物理ネットワーク アダプター (エミュレートされたネットワーク アダプター) のエミュレートされた 仮想化である可能性があります。 この場合、VM ネットワーク アダプターは Intel ネットワーク アダプターを模倣し、ハードウェア エミュレーションを使用して拡張可能なスイッチ ポート間でパケットを転送します。

この種類のネットワーク アダプターの詳細については、「仮想マシン ネットワーク アダプター 」を参照してください

拡張可能スイッチ ネットワーク アダプター接続は、次の拡張可能スイッチ OID 要求を介して作成、更新、および削除されます。

OID _ スイッチ _ NIC _ の作成
拡張可能スイッチのプロトコル エッジは、拡張可能スイッチポートへのネットワーク アダプター接続の作成について拡張可能スイッチ拡張機能に通知するために 、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 DEFAULT NIC INDEX の NDIS SWITCH NIC INDEX 値 _ _ が割 _ _ _ _ り当 _ てられます。 外部ネットワーク アダプターにバインドされている各物理または仮想ネットワーク アダプターには、次の方法で NDIS SWITCH NIC INDEX 値 _ _ _ が割り当てられます。

  • 物理または仮想ネットワーク アダプターが外部ネットワーク アダプターに直接バインドされている場合は、NDIS SWITCH NIC INDEX 値 1 が _ _ _ 割り当てられます。

  • 物理ネットワーク アダプターが拡張可能スイッチ チームの一部である場合は、1 以上の NDIS SWITCH NIC INDEX 値 _ _ _ が割り当てられます。 拡張可能スイッチ チームは、1 つ以上の物理ネットワーク アダプターのチームが拡張可能スイッチ外部ネットワーク アダプターにバインドされる構成です。

物理ネットワーク アダプターを外部ネットワーク アダプターにバインドできるさまざまな構成の詳細については、「物理ネットワーク アダプター構成の種類」 を参照してください

NDIS SWITCH NIC INDEX 値の _ 詳細 _ については、「ネットワーク _ アダプターのインデックス値 」を参照してください

拡張スイッチのプロトコル エッジが OID SWITCH NIC CONNECT の OID セット要求を発行するまで、拡張機能はネットワーク アダプター接続を使用してパケットを生成または _ _ 転送 _ できません

OID _ スイッチ _ NIC _ CONNECT
拡張可能スイッチのプロトコル エッジは、拡張可能スイッチネットワーク アダプター接続が完全に動作している拡張可能スイッチ拡張機能に通知するために 、OID _ SWITCH _ NIC _ CONNECT の OID セット要求を発行します。

拡張機能では、この OID セット要求を拡張可能スイッチ ドライバー スタックに常に転送する必要があります。 拡張機能は要求に失敗しることはできません。

NDIS STATUS SUCCESS で OID 要求が完了すると、ネットワーク アダプター接続と拡張可能スイッチ _ _ ポートが完全に動作します。 ネットワーク アダプター接続がこの状態の場合、拡張機能は次の操作を行います。

  • パケット トラフィックを生成するか、ポートのネットワーク アダプター接続に転送します。

  • ポートをソース ポートとして使用する拡張可能スイッチ OID または状態表示を発行します。

  • ReferenceSwitchNic を呼び出して、ネットワーク アダプター接続の参照カウンターをインクリメントします。 参照カウンターの値が 0 以外の場合、拡張可能スイッチ インターフェイスはネットワーク アダプター接続を破損されません。

OID _ スイッチ _ NIC _ の更新
拡張可能スイッチのプロトコル エッジは、拡張可能スイッチネットワーク アダプターのパラメーターが更新されたと拡張可能スイッチ拡張機能に通知するために、OID _ SWITCH _ NIC _ UPDATED の OID セット要求を発行します。 OID は、既に接続されている NIC に対してだけ発行され、切断プロセスをまだ開始していません。 これらの実行時構成の変更には、NicFriendlyName、MTU、NetCfgInstanceId、PermanentMacAddress、VMMacAddress、CurrentMacAddress、VFAssigned が含まれます。

拡張機能では、この OID セット要求を拡張可能スイッチ ドライバー スタックに常に転送する必要があります。 拡張機能は要求に失敗しることはできません。

OID _ スイッチ _ NIC の _ 切断
拡張可能スイッチのプロトコル エッジは、拡張可能スイッチネットワーク アダプター接続が切断されている拡張可能スイッチ拡張機能に通知するために 、OID _ SWITCH _ NIC _ DISCONNECT の OID セット要求を発行します。 接続が完全に取り下がった後、拡張可能スイッチのプロトコル エッジは、OID SWITCH NIC DELETE の OID セット要求 _ _ を発行 _ します

拡張機能では、この OID セット要求を拡張可能スイッチ ドライバー スタックに常に転送する必要があります。 拡張機能は要求に失敗しることはできません。

拡張機能は、この OID 要求を転送した後、ネットワーク アダプター接続が破損しているポートにパケットを生成したり転送したりできなくなりました。 また、この拡張機能では、ネットワーク アダプター接続 に対して ReferenceSwitchNic を呼び出す必要がなくなりました。

OID _ スイッチ _ NIC _ の削除
拡張可能スイッチのプロトコル エッジは、拡張可能スイッチネットワーク アダプター接続が取り外され、削除されたと拡張可能スイッチ拡張機能に通知するために 、OID _ SWITCH _ NIC _ DELETE の OID セット要求を発行します。 この OID 要求は 、OID _ SWITCH _ NIC _ DISCONNECT の OID セット要求が以前に発行されたネットワーク接続に対してだけ発行されます。

拡張機能では、この OID セット要求を拡張可能スイッチ ドライバー スタックに常に転送する必要があります。 拡張機能は要求に失敗しることはできません。

この OID 要求が完了すると、拡張可能スイッチのプロトコル エッジは 、OID _ SWITCH PORT _ _ TEARDOWN の OID セット要求を発行して、ネットワーク アダプター接続に使用されたポートの削除プロセスを開始します。

拡張機能では、この OID セット要求を拡張可能スイッチ ドライバー スタックに常に転送する必要があります。 拡張機能は要求に失敗しることはできません。

拡張可能スイッチ インターフェイスは、作成されたネットワーク アダプター接続ごとに参照カウンターを保持します。 参照カウンターの値が 0 以外の場合、ネットワーク アダプター接続は削除されません。 インターフェイスには、拡張可能スイッチ ネットワーク アダプター接続の参照カウンターをインクリメントまたはデクリメントする次のハンドラー関数が用意されています。

ReferenceSwitchNic
拡張可能スイッチ拡張機能は、この関数を呼び出して、ネットワーク アダプター接続の参照カウンターをインクリメントします。 参照カウンターの値は 0 以外ですが、拡張可能スイッチ インターフェイスではネットワーク アダプター接続は削除されません。

拡張機能は、次の操作を 実行する前に ReferenceSwitchNic を呼び出す必要があります。

拡張機能は、その接続に対して OID _ SWITCH NIC _ _ DISCONNECTの OID セット要求を受信した後、ネットワーク アダプター接続に対して ReferenceSwitchNicを呼び出しることはできません。

DereferenceSwitchNic
拡張可能スイッチ拡張機能は、この関数を呼び出してポートの参照カウンターをデクメントします。

拡張機能が ReferenceSwitchNicを呼び出す場合は 、OID _ SWITCH _ _ NIC REQUEST または NDIS STATUS SWITCH NIC _ _ _ _ STATUSの表示が完了した後 、DereferenceSwitchNicを呼び出す必要があります。