MIB_IPINTERFACE_ROW 構造体 (netioapi.h)
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;
メンバー
Family
種類: ADDRESS_FAMILY
アドレス ファミリ。 アドレス ファミリに使用できる値は、 Winsock2.h ヘッダー ファイルに一覧表示されます。 AF_ アドレス ファミリ定数とPF_ プロトコル ファミリ定数の値は同一であるため ( たとえば、AF_INET と PF_INET)、どちらの定数も使用できます。
Windows Vista 以降およびWindows SDKでは、ヘッダー ファイルのorganizationが変更され、このメンバーに使用できる値は Ws2def.h ヘッダー ファイルで定義されています。 Ws2def.h ヘッダー ファイルは Winsock2.h に自動的に含まれるので、直接使用しないでください。
現在サポートされている値は 、IPv4 と IPv6 のインターネット アドレス ファミリ形式である AF_INETまたはAF_INET6です。
値 | 意味 |
---|---|
|
アドレス ファミリが指定されていません。 |
|
インターネット プロトコル バージョン 4 (IPv4) アドレス ファミリ。 |
|
インターネット プロトコル バージョン 6 (IPv6) アドレス ファミリ。 |
InterfaceLuid
種類: NET_LUID
ネットワーク インターフェイスのローカル一意識別子 (LUID)。
InterfaceIndex
種類: NET_IFINDEX
ネットワーク インターフェイスのローカル インデックス値。 このインデックス値は、ネットワーク アダプターを無効にしてから有効にした場合、またはその他の状況で変更される可能性があり、永続的と見なすべきではありません。
MaxReassemblySize
種類: ULONG
フラグメント化された IP パケットの最大再構成サイズ (バイト単位)。 このメンバーは現在 0 に設定されており、将来使用するために予約されています。
InterfaceIdentifier
種類: ULONG64
将来利用するために予約されています。 このメンバーは現在、0 に設定されています。
MinRouterAdvertisementInterval
種類: ULONG
この IP インターフェイスの最小ルーター アドバタイズ間隔 (ミリ秒単位)。 IPv6 の場合、このメンバーの既定値は 200 です。 このメンバーは、 AdvertisingEnabled メンバーが TRUE に設定されている場合にのみ適用されます。
MaxRouterAdvertisementInterval
種類: ULONG
この IP インターフェイスでのルーターアドバタイズの最大間隔 (ミリ秒単位)。 このメンバーの IPv6 の既定値は 600 です。 このメンバーは、 AdvertisingEnabled メンバーが TRUE に設定されている場合にのみ適用されます。
AdvertisingEnabled
型: BOOLEAN
この IP インターフェイスでルーターアドバタイズが有効になっているかどうかを示す 値。 IPv6 の既定値は、インターフェイスがルーターとして機能するように構成されている場合にのみ、ルーター アドバタイズが有効になります。 IPv4 の既定値は、ルーターアドバタイズが無効になっているということです。
ForwardingEnabled
型: BOOLEAN
この IP インターフェイスで IP 転送が有効になっているかどうかを示す 値。
WeakHostSend
型: BOOLEAN
この IP インターフェイスで脆弱なホスト送信モードが有効になっているかどうかを示す 値。
WeakHostReceive
型: BOOLEAN
この IP インターフェイスで脆弱なホスト受信モードが有効になっているかどうかを示す 値。
UseAutomaticMetric
型: BOOLEAN
IP インターフェイスで自動メトリックが使用されているかどうかを示す 値。
UseNeighborUnreachabilityDetection
型: BOOLEAN
この IP インターフェイスで近隣の到達不能検出が有効になっているかどうかを示す 値。
ManagedAddressConfigurationSupported
型: BOOLEAN
IP インターフェイスが DHCP を使用したマネージド アドレス構成をサポートしているかどうかを示す 値。
OtherStatefulConfigurationSupported
型: BOOLEAN
IP インターフェイスが他のステートフル構成 (ルート構成など) をサポートしているかどうかを示す 値。
AdvertiseDefaultRoute
型: BOOLEAN
IP インターフェイスが既定のルートをアドバタイズするかどうかを示す 値。 このメンバーは、 AdvertisingEnabled メンバーが TRUE に設定されている場合にのみ適用されます。
RouterDiscoveryBehavior
種類: NL_ROUTER_DISCOVERY_BEHAVIOR
ルーターの検出動作。 このメンバーには、Nldef.h ヘッダー ファイルで定義されているNL_ROUTER_DISCOVERY_BEHAVIOR列挙型の値のいずれかを指定できます。 メンバーは RFC 2461 で説明されています。 詳細については、「http://www.ietf.org/rfc/rfc2461.txt」を参照してください。
DadTransmits
種類: ULONG
仮の IP ユニキャスト アドレスで重複アドレス検出を実行しているときに送信された連続するメッセージの数。 値 0 は、仮の IP アドレスに対して重複アドレス検出が実行されないことを示します。 1 の値は、後続の再送信がない 1 つの転送を示します。 IPv4 の場合、このメンバーの既定値は 3 です。 IPv6 の場合、このメンバーの既定値は 1 です。 IPv6 の場合、これらのメッセージは近隣要請要求として送信されます。 このメンバーは、RFC 2462 の DupAddrDetectTransmits として定義されています。 詳細については、「http://www.ietf.org/rfc/rfc2462.txt」を参照してください。
BaseReachableTime
種類: ULONG
ランダムに到達可能な時間のベース (ミリ秒単位)。 メンバーは RFC 2461 で説明されています。 詳細については、「http://www.ietf.org/rfc/rfc2461.txt」を参照してください。
RetransmitTime
種類: ULONG
近隣要請タイムアウト (ミリ秒単位)。 メンバーについては、RFC 2461 を参照してください。 詳細については、「http://www.ietf.org/rfc/rfc2461.txt」を参照してください。
PathMtuDiscoveryTimeout
種類: ULONG
パス MTU 検出タイムアウト (ミリ秒単位)。
LinkLocalAddressBehavior
種類: NL_LINK_LOCAL_ADDRESS_BEHAVIOR
リンク ローカル アドレスの動作。 このメンバーは、Nldef.h ヘッダー ファイルで定義されているNL_LINK_LOCAL_ADDRESS_BEHAVIOR列挙型の値のいずれかになります。
LinkLocalAddressTimeout
種類: ULONG
リンク ローカル IP アドレスのタイムアウト (ミリ秒単位)。
ZoneIndices[ScopeLevelCount]
種類: ULONG[ScopeLevelCount]
スコープ ID のゾーン部分を指定する配列。
SitePrefixLength
種類: ULONG
IP インターフェイス アドレスのサイト プレフィックスの長さ (ビット単位)。 IP インターフェイス アドレスのサイト プレフィックスまたはネットワーク部分の長さ (ビット単位)。 IPv4 アドレスの場合、32 より大きい値は無効な値です。 IPv6 アドレスの場合、128 より大きい値は無効な値です。 値 255 は、通常、無効な値を表すために使用されます。
Metric
種類: ULONG
インターフェイス メトリック。 ルート設定の計算に使用される実際のルート メトリックは、MIB_IPFORWARD_ROW2構造の Metric メンバーで指定されたルート メトリック オフセットと、このメンバーで指定されたインターフェイス メトリックの合計であることに注意してください。
NlMtu
種類: ULONG
ネットワーク レイヤーの MTU サイズ (バイト単位)。
Connected
型: BOOLEAN
インターフェイスがネットワーク アクセス ポイントに接続されているかどうかを示す 値。
SupportsWakeUpPatterns
型: BOOLEAN
ネットワーク インターフェイスが Wake on LAN をサポートしているかどうかを示す 値。
SupportsNeighborDiscovery
型: BOOLEAN
IP インターフェイスが近隣探索をサポートするかどうかを示す 値。
SupportsRouterDiscovery
型: BOOLEAN
IP インターフェイスがルーター検出をサポートするかどうかを示す 値。
ReachableTime
種類: ULONG
到達可能なタイムアウト (ミリ秒単位)。
TransmitOffload
種類: NL_INTERFACE_OFFLOAD_ROD
IP インターフェイスの送信オフロード機能を示すフラグのセット。 NL_INTERFACE_OFFLOAD_ROD構造体は、Nldef.h ヘッダー ファイルで定義されます。
ReceiveOffload
種類: NL_INTERFACE_OFFLOAD_ROD
IP インターフェイスの受信オフロード機能を示すフラグのセット。 NL_INTERFACE_OFFLOAD_ROD構造体は、Nldef.h ヘッダー ファイルで定義されます。
DisableDefaultRoutes
型: BOOLEAN
インターフェイスで既定のルートを使用することを無効にするかどうかを示す 値。 このメンバーは、VPN クライアントで分割トンネリングを制限するために使用できます。
注釈
MIB_IPINTERFACE_ROW構造は、Windows Vista 以降で定義されています。
Family、InterfaceLuid、InterfaceIndex の各メンバーは、MIB_IPINTERFACE_ROWエントリを一意に識別します。
ユニキャスト パケットがホストに到着すると、IP はパケットがローカル宛てであるかどうかを判断する必要があります (その宛先は、ホストのインターフェイスに割り当てられているアドレスと一致します)。 弱いホスト モデルに従う IP 実装は、パケットが受信されたインターフェイスに関係なく、ローカル宛てのパケットを受け入れます。 強力なホスト モデルに従う IP 実装では、パケット内の宛先アドレスが、パケットを受信したインターフェイスに割り当てられたアドレスと一致する場合にのみ、ローカル宛てのパケットを受け入れます。 弱いホスト モデルにより、ネットワーク接続が向上します。 ただし、ホストはマルチホーム ベースのネットワーク攻撃の影響を受けやすくなります。
Windows Server 2003 および Windows XP の現在の IPv4 実装では、弱いホスト モデルが使用されています。 この場合、すべてのユニキャスト パケットは、ルートの最小メトリックでインターフェイスから送信されます。
Windows Vista 以降の TCP/IP スタックでは、IPv4 と IPv6 の両方の強力なホスト モデルがサポートされており、既定で強力なホスト モードを使用するように構成されています ( WeakHostReceive メンバーと WeakHostSend メンバーは FALSE に設定されています)。 強力なホスト モードでは、ソケットを特定のインターフェイスのソース アドレスにバインドすることで、ルートのメトリックが最も低くない特定のインターフェイスからユニキャスト パケットを送信できます。
Windows Vista 以降の TCP/IP スタックは、弱いホスト モデルを使用するように構成できます。
メトリックは、特定のネットワーク インターフェイスの IP ルートに割り当てられた値であり、そのルートの使用に関連付けられているコストを識別します。 たとえば、メトリックは、リンク速度、ホップ数、または遅延時間の観点から評価できます。 自動メトリックは、リンク速度に基づいてローカル ルートのメトリックを自動的に構成する Windows XP 以降の機能です。 自動メトリック機能は、Windows XP 以降では既定で有効になっています ( UseAutomaticMetric は TRUE に設定されています)。 また、IP ルートに特定のメトリックを割り当てるために手動で構成することもできます。
自動メトリック機能は、ルーティング テーブルに同じ宛先の複数のルートが含まれている場合に役立ちます。 たとえば、10 メガビット ネットワーク インターフェイスと 100 メガビット ネットワーク インターフェイスを持つコンピューターには、両方のネットワーク インターフェイスで構成された既定のゲートウェイがあります。 UseAutomaticMetric が TRUE の場合、この機能を使用すると、インターネット宛てのすべてのトラフィックを強制的に使用できます。たとえば、使用可能な最速のネットワーク インターフェイスを使用できます。
Metric メンバーで指定されたインターフェイス メトリックは、インターフェイスのメトリックのみを表します。 完全なルーティング メトリックは、このインターフェイスで指定されたルート エントリのMIB_IPFORWARD_ROW2構造の Metric メンバーで指定されたルート メトリック オフセットに追加される、このインターフェイス メトリックの組み合わせです。
セキュリティ要件が異なる複数のネットワークへの特権のない同時アクセスは、セキュリティ ホールを作成し、特権のないアプリケーションが 2 つのネットワーク間で誤ってデータを中継できるようにします。 一般的な例として、仮想プライベート ネットワーク (VPN) とインターネットへの同時アクセスがあります。 Windows Server 2003 と Windows XP では弱いホスト モデルが使用されます。RAS では、他のインターフェイス上のすべての既定のルートのルート メトリックを増やすことで、このような同時アクセスを防止します。 したがって、すべてのトラフィックは VPN インターフェイスを介してルーティングされ、他のネットワーク接続が中断されます。
Windows Vista 以降では、強力なホスト モデルが既定で使用されます。 GetBestRoute2 または GetBestRoute を使用してルート参照でソース IP アドレスが指定されている場合、ルート参照はソース IP アドレスのインターフェイスに制限されます。 RAS によるルート メトリックの変更は影響しません。潜在的なルートの一覧には VPN インターフェイスのルートがないため、インターネットへのトラフィックが許可されます。 MIB_IPINTERFACE_ROW構造体の DisableDefaultRoutes メンバーを使用すると、インターフェイスで既定のルートを使用して無効にすることができます。 このメンバーは、VPN クライアントによって分割トンネリングが必要ない場合に分割トンネリングを制限するために、VPN クライアントによるセキュリティ対策として使用できます。 VPN クライアントは SetIpInterfaceEntry 関数を呼び出して、必要に応じて DisableDefaultRoutes メンバーを TRUE に設定できます。 VPN クライアントは、GetIpInterfaceEntry 関数を呼び出すことによって、DisableDefaultRoutes メンバーの現在の状態を照会できます。
Netioapi.h ヘッダー ファイルは Iphlpapi.h ヘッダー ファイルに自動的に含まれることに注意してください。 Netioapi.h ヘッダー ファイルを直接使用しないでください。
例
MIB_IPINTERFACE_TABLE構造体を取得し、この表のMIB_IPINTERFACE_ROW構造体エントリのいくつかのメンバーを出力する例を表示するには、GetIpInterfaceTable 関数を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
Header | netioapi.h (Iphlpapi.h を含む) |