次の方法で共有


MIB_IPINTERFACE_ROW 構造体

MIB_IPINTERFACE_ROW 構造体は、特定の IP アドレス ファミリのインターフェイス管理情報をネットワーク インターフェイスに格納します。

構文

typedef struct _MIB_IPINTERFACE_ROW {
  ADDRESS_FAMILY                 Family;
  NET_LUID                       InterfaceLuid;
  NET_IFINDEX                    InterfaceIndex;
  ULONG                          MaxReassemblySize;
  ULONG64                        InterfaceIdentifier;
  ULONG                          MinRouterAdvertisementInterval;
  ULONG                          MaxRouterAdvertisementInterval;
  BOOLEAN                        AdvertisingEnabled;
  BOOLEAN                        ForwardingEnabled;
  BOOLEAN                        WeakHostSend;
  BOOLEAN                        WeakHostReceive;
  BOOLEAN                        UseAutomaticMetric;
  BOOLEAN                        UseNeighborUnreachabilityDetection;
  BOOLEAN                        ManagedAddressConfigurationSupported;
  BOOLEAN                        OtherStatefulConfigurationSupported;
  BOOLEAN                        AdvertiseDefaultRoute;
  NL_ROUTER_DISCOVERY_BEHAVIOR   RouterDiscoveryBehavior;
  ULONG                          DadTransmits;
  ULONG                          BaseReachableTime;
  ULONG                          RetransmitTime;
  ULONG                          PathMtuDiscoveryTimeout;
  NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior;
  ULONG                          LinkLocalAddressTimeout;
  ULONG                          ZoneIndices[ScopeLevelCount];
  ULONG                          SitePrefixLength;
  ULONG                          Metric;
  ULONG                          NlMtu;
  BOOLEAN                        Connected;
  BOOLEAN                        SupportsWakeUpPatterns;
  BOOLEAN                        SupportsNeighborDiscovery;
  BOOLEAN                        SupportsRouterDiscovery;
  ULONG                          ReachableTime;
  NL_INTERFACE_OFFLOAD_ROD       TransmitOffload;
  NL_INTERFACE_OFFLOAD_ROD       ReceiveOffload;
  BOOLEAN                        DisableDefaultRoutes;
} MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW;

メンバー

  • ファミリ
    アドレス ファミリ。 アドレス ファミリに使用できる値は、Winsock2.h ヘッダー ファイルにリスト表示されます。 AF_ アドレス ファミリ定数と PF_ プロトコル ファミリ定数の値は同じ (たとえば、AF_INET と PF_INET) なので、どちらの定数も使用できます。

    Windows Vista 以降のバージョンの Windows オペレーティング システムでは、このメンバーに使用できる値は Ws2def.h ヘッダー ファイルで定義されています。 Ws2def.h ヘッダー ファイルは Netioapi.h に自動的に含まれるので、Ws2def.h を直接使用しないでください。

    次の値が現在サポートされています:

    • AF_INET
      IPv4 アドレス ファミリ。

    • AF_INET6
      IPv6 アドレス ファミリ。

    • AF_UNSPEC
      アドレス ファミリは指定されていません。

  • InterfaceLuid
    ネットワーク インターフェイスのローカル一意識別子 (LUID)。

  • InterfaceIndex
    ネットワーク・インターフェイスのローカル・インデックス値。 このインデックス値は、ネットワーク アダプターを無効にしてから有効にした場合、またはその逆を行った場合に変更される可能性があり、永続的と見なすべきではありません。

  • MaxReassemblySize
    フラグメント化された IP パケットの最大再構築サイズ (バイト単位)。 このメンバーは現在 0 に設定されており、今後使用するために予約されています。

  • InterfaceIdentifier
    将来利用するために予約されています。 このメンバーは現在 0 に設定されています。

  • MinRouterAdvertisementInterval
    この IP インターフェイスの最小ルーター アドバタイズ間隔 (ミリ秒単位)。 IPv6 の場合、このメンバーの既定値は 200 です。 このメンバーは、AdvertisingEnabled メンバーが TRUE に設定されている場合にのみ適用されます。

  • MaxRouterAdvertisementInterval
    この IP インターフェイスの最大ルーター アドバタイズ間隔 (ミリ秒単位)。 IPv6 の場合、このメンバーの既定値は 600 です。 このメンバーは、AdvertisingEnabled メンバーが TRUE に設定されている場合にのみ適用されます。

  • AdvertisingEnabled
    この IP インターフェイスでルーター アドバタイズが有効になっているかどうかを示す値。 IPv6 の既定値は、インターフェイスがルーターとして機能するように構成されている場合にのみ、ルーター アドバタイズが有効になります。 IPv4 の既定値では、ルーター アドバタイズは無効です。

  • ForwardingEnabled
    この IP インターフェイスで IP 転送が有効になっているかどうかを示す値。

  • WeakHostSend
    この IP インターフェイスで脆弱なホスト送信モードが有効になっているかどうかを示す値。

  • WeakHostReceive
    この IP インターフェイスで脆弱なホスト受信モードが有効になっているかどうかを示す値。

  • UseAutomaticMetric
    IP インターフェイスが自動メトリックを使用するかどうかを示す値。

  • UseNeighborUnreachabilityDetection
    この IP インターフェイスで近隣の到達不能検出が有効になっているかどうかを示す値。

  • ManagedAddressConfigurationSupported
    IP インターフェイスが DHCP を使用して管理されるアドレス構成をサポートしているかどうかを示す値。

  • OtherStatefulConfigurationSupported
    IP インターフェイスが他のステートフル構成 (ルート構成など) をサポートしているかどうかを示す値。

  • AdvertiseDefaultRoute
    IP インターフェイスが既定のルートをアドバタイズするかどうかを示す値。 このメンバーは、AdvertisingEnabled メンバーが TRUE に設定されている場合にのみ適用されます。

  • RouterDiscoveryBehavior
    NL_ROUTER_DISCOVERY_BEHAVIOR ルーター検出動作の種類。

  • DadTransmits
    ドライバーが仮の IP ユニキャスト アドレスで重複アドレス検出を実行している間に送信される、連続するメッセージの数。 値が 0 の場合は、仮の IP アドレスに対して重複アドレス検出が実行されないことを示します。 値が 1 の場合は、1 回の伝送であって、後続の再送がないことを示します。 IPv4 の場合、このメンバーの既定値は 3 です。 IPv6 の場合、このメンバーの既定値は 1 です。 IPv6 の場合、これらのメッセージは IPv6 近隣要請 (NS) 要求として送信されます。 このメンバーは、RFC 2462 の DupAddrDetectTransmits として定義されています。 詳細については、IPv6 の「ステートレス アドレス自動構成」を参照してください。

  • BaseReachableTime
    ランダムに到達可能な時間のベース (ミリ秒単位)。 このメンバーは RFC 2461 で説明されています。 詳細については、「IP バージョン 6 (IPv6) の近隣探索」を参照してください。

  • RetransmitTime
    IPv6 近隣要請 (NS) タイムアウト (ミリ秒単位)。 このメンバーは RFC 2461 で説明されています。 詳細については、「IP バージョン 6 (IPv6) の近隣探索」を参照してください。

  • PathMtuDiscoveryTimeout
    パス MTU 検出タイムアウト (ミリ秒単位)。

  • LinkLocalAddressBehavior
    NL_LINK_LOCAL_ADDRESS_BEHAVIOR リンク ローカル アドレスの動作の種類。

  • LinkLocalAddressTimeout
    リンク ローカル IP アドレスのタイムアウト (ミリ秒単位)。

  • ZoneIndices
    スコープ ID のゾーン部分を指定する配列。

  • SitePrefixLength
    IP インターフェイス アドレスのサイト プレフィックスの長さ (ビット単位)。 IP インターフェイス アドレスのサイト プレフィックスまたはネットワーク部分の長さ (ビット単位)。 IPv4 アドレスの場合、32 より大きい値は無効な値です。 IPv6 アドレスの場合、128 より大きい値は無効な値です。 通常、255 という値は無効な値を表すために使用されます。

  • メトリック
    インターフェイス メトリック。 ルート設定の計算に使用される実際のルート メトリックは、MIB_IPFORWARD_ROW2 構造の Metric メンバーで指定されたルート メトリック オフセットと、このメンバーで指定されているインターフェイス メトリックの合計であることにご注意ください。

  • NlMtu
    ネットワーク層の MTU サイズ (バイト単位)。

  • Connected
    インターフェイスがネットワーク アクセス ポイントに接続されているかどうかを示す値。

  • SupportsWakeUpPatterns
    ネットワーク インターフェイスが Wake on LAN をサポートするかどうかを指定する値。

  • SupportsNeighborDiscovery
    IP インターフェイスが近隣探索をサポートするかどうかを指定する値。

  • SupportsRouterDiscovery
    IP インターフェイスが近隣探索をサポートするかどうかを指定する値。

  • ReachableTime
    ランダムに到達可能な時間のベース (ミリ秒単位)。 このメンバーは RFC 2461 で説明されています。 詳細については、「IP バージョン 6 (IPv6) の近隣探索」を参照してください。

  • TransmitOffload
    IP インターフェイスの送信オフロード機能を示すフラグのセット。 NL_INTERFACE_OFFLOAD_ROD 構造体は、Nldef.h ヘッダー ファイルで定義されています。

  • ReceiveOffload
    IP インターフェイスの受信オフロード機能を示すフラグのセット。 NL_INTERFACE_OFFLOAD_ROD 構造体は、Nldef.h ヘッダー ファイルで定義されています。

  • DisableDefaultRoutes
    インターフェイスで既定のルートの使用を無効にする必要があるかどうかを示す値。 VPN クライアントでは、このメンバーを使用して分割トンネリングを制限できます。

解説

FamilyInterfaceLuidInterfaceIndex の各メンバーは、MIB_IPINTERFACE_ROW エントリを一意に識別します。

ユニキャスト パケットがホストに到着すると、IP はパケットの宛先がローカルに指定されているかどうかを判断する必要があります (宛先はホストのインターフェイスに割り当てられているアドレスと一致します)。 脆弱なホスト モデルに従う IP 実装では、パケットを受信したインターフェイスに関係なく、宛先がローカルに指定されているパケットを受け入れます。 強力なホスト モデルに従う IP 実装では、パケット内の宛先アドレスが、パケットを受信したインターフェイスに割り当てられているアドレスと一致する場合は、宛先がローカルに指定されているパケットのみを受け入れます。 脆弱なホスト モデルは、より優れたネットワーク接続を提供します。 ただし、ホストはマルチホームベースのネットワーク攻撃の影響を受けやすくなります。

Windows Server 2003 オペレーティング システムと Windows XP オペレーティング システムの現在の IPv4 実装では、脆弱なホスト モデルが使用されています。 Windows Vista 以降のバージョンの Windows オペレーティング システムの TCP/IP スタックでは、IPv4 と IPv6 の両方の強力なホスト モデルがサポートされており、既定で強力なホスト モードを使用するように構成されています (WeakHostReceive メンバーと WeakHostSend メンバーは FALSE に設定されます)。 Windows Vista 以降の TCP/IP スタックは、脆弱なホスト モデルを使用するように構成できます。

メトリックは、特定のネットワーク インターフェイスの IP ルートに割り当てられる値であり、そのルートの使用に関連するコストを確認できます。 たとえば、このメトリックは、リンク速度、ホップ数、または遅延時間の観点から評価できます。 自動メトリックはWindows XP 以降の機能で、リンク速度に基づいてローカル ルートのメトリックを自動的に構成します。 既定では、Windows XP 以降では自動メトリック機能が有効になっています (UseAutomaticMetricTRUE に設定されています)。 この機能を手動で構成して、特定のメトリックを IP ルートに割り当てることもできます。

自動メトリック機能は、ルーティング テーブルに同じ宛先の複数のルートが含まれている場合に便利です。 たとえば、10 メガビット ネットワーク インターフェイスと 100 メガビット ネットワーク インターフェイスを持つコンピューターには、両方のネットワーク インターフェイスに構成されている既定のゲートウェイがあります。 UseAutomaticMetricTRUE の場合、この機能を使用すると、宛先がインターネットに指定されているすべてのトラフィックで、利用可能な最速のネットワーク インターフェイスを強制的に使用することができます。

Metric メンバーで指定されているインターフェイス メトリックは、インターフェイスのメトリックのみを表します。 完全なルーティング メトリックは、このインターフェイスで指定されたルート エントリの MIB_IPFORWARD_ROW2 構造体の Metric メンバーで指定されているルート メトリック オフセットに、このインターフェイス メトリックを追加してできる組み合わせです。

セキュリティ要件が異なる複数のネットワークに特権なしで同時にアクセスすると、セキュリティ ホールが作成され、特権のないドライバーが 2 つのネットワーク間で誤ってデータを中継できるようになります。 一般的な例として、仮想プライベート ネットワーク (VPN) とインターネットへの同時アクセスがあります。 Windows Server 2003 と Windows XP では、脆弱なホスト モデルが使用されていますが、リモート アクセス サービス (RAS) を利用して、他のインターフェイスを経由するすべての既定のルートのルート メトリックを増やし、こうした同時アクセスを防止しています。 そのため、すべてのトラフィックが VPN インターフェイス経由でルーティングされ、他のネットワーク接続が中断されます。

Windows Vista 以降では、既定では、強力なホスト モデルが使用されます。 GetBestRoute2 関数を使用して、ルート検索で送信元 IP アドレスが指定された場合、ルート検索は送信元 IP アドレスのインターフェイスに制限されます。 潜在的なルートのリストには、インターネットへのトラフィックを可能にする VPN インターフェイスのルートさえも含まれていないため、RAS によるルート メトリックの変更は効果がありません。 ドライバーは、MIB_IPINTERFACE_ROW 構造体の DisableDefaultRoutes メンバーを使用して、インターフェイスの既定のルートの使用を無効にできます。 VPN クライアントは、VPN クライアントが分割トンネリングを必要としない場合に、分割トンネリングを制限するセキュリティ対策としてこのメンバーを使用できます。 VPN クライアントは、必要に応じて、SetIpInterfaceEntry 関数を呼び出して、DisableDefaultRoutes メンバーを TRUE に設定できます。 VPN クライアントは、GetIpInterfaceEntry 関数を呼び出して、DisableDefaultRoutes メンバーの現在の状態についてクエリを実行できます。

要件

バージョン

Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。

ヘッダー

Netioapi.h (Netioapi.h を含む)

関連項目

GetBestRoute2

GetIpInterfaceEntry

MIB_IPFORWARD_ROW2

MIB_IPINTERFACE_TABLE

NET_LUID

NL_LINK_LOCAL_ADDRESS_BEHAVIOR

NL_ROUTER_DISCOVERY_BEHAVIOR

SetIpInterfaceEntry