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 数据包的最大重新组合大小(以字节为单位)。 此成员当前设置为零,并保留供将来使用。

  • InterfaceIdentifier
    保留供将来使用。 此成员当前设置为零。

  • 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 单播地址执行重复地址检测时发送的连续消息数。 如果值为零,则表示未对暂定 IP 地址执行重复地址检测。 值为 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 大小(以字节为单位)。

  • 已连接
    一个 值,该值指示接口是否连接到网络接入点。

  • SupportsWakeUpPatterns
    一个 值,该值指定网络接口是否支持 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 的强主机模型,并配置为默认使用强主机模式, (WeakHostReceiveWeakHostSend 成员设置为 FALSE) 。 可以在 Windows Vista 及更高版本上配置 TCP/IP 堆栈,以使用弱主机模型。

指标是分配给特定网络接口的 IP 路由的值,用于标识与使用该路由关联的成本。 例如,可以根据链接速度、跃点计数或时间延迟来评估指标。 自动指标是 Windows XP 及更高版本上的一项功能,可自动配置基于链路速度的本地路由的指标。 默认情况下,在 Windows XP 及更高版本上 将 UseAutomaticMetric 设置为 TRUE () 时,将启用自动指标功能。 还可以手动配置此功能,以将特定指标分配给 IP 路由。

当路由表包含同一目标的多个路由时,自动指标功能非常有用。 例如,具有 10 兆位网络接口和 100 兆位网络接口的计算机具有在两个网络接口上配置的默认网关。 当 UseAutomaticMetricTRUE 时,此功能可以强制发往 Internet 的所有流量(例如)使用可用的最快网络接口。

Metric 成员中指定的接口指标仅表示接口的指标。 完整的路由指标是此接口指标的组合,添加到在此接口上指定的路由条目的MIB_IPFORWARD_ROW2结构的 Metric 成员中指定的路由指标偏移量。

无特权同时访问具有不同安全要求的多个网络会产生安全漏洞,并使无特权驱动程序能够在两个网络之间意外地中继数据。 典型示例是同时访问虚拟专用网络 (VPN) 和 Internet。 Windows Server 2003 和 Windows XP 使用弱主机模型,其中远程访问服务 (RAS) 通过增加其他接口上所有默认路由的路由指标来阻止此类同时访问。 因此,所有流量都通过 VPN 接口路由,从而中断其他网络连接。

在 Windows Vista 及更高版本上,默认使用强主机模型。 如果使用 GetBestRoute2 函数在路由查找中指定了源 IP 地址,则路由查找仅限于源 IP 地址的 接口。 RAS 的路由指标修改不起作用,因为潜在路由列表甚至没有 VPN 接口的路由,从而允许流量发往 Internet。 驱动程序可以使用 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