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 地址执行重复地址检测。 一个值表示单个传输,且没有后续重新传输。 对于 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 结构和此成员中指定的接口指标的求和。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 客户端可以使用此成员来限制拆分隧道。
言论
系列、InterfaceLuid和 InterfaceIndex 成员唯一标识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 及更高版本上启用自动指标功能(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。 驱动程序可以使用 DisableDefaultRoutes MIB_IPINTERFACE_ROW 结构的成员来禁用在接口上使用默认路由。 当 VPN 客户端不需要拆分隧道时,VPN 客户端可以使用此成员作为安全措施来限制拆分隧道。 VPN 客户端可以调用 SetIpInterfaceEntry 函数,以在需要时将 DisableDefaultRoutes 成员设置为 TRUE。 VPN 客户端可以通过调用 GetIpInterfaceEntry 函数来查询 DisableDefaultRoutes 成员的当前状态。
要求
版本 |
在 Windows Vista 和更高版本的 Windows作系统中可用。 |
页眉 |
Netioapi.h (包括 Netioapi.h) |