estructura MIB_IPINTERFACE_ROW (netioapi.h)
La estructura MIB_IPINTERFACE_ROW almacena información de administración de interfaz para una familia de direcciones IP determinada en una interfaz de red.
Sintaxis
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;
Miembros
Family
Tipo: ADDRESS_FAMILY
Familia de direcciones. Los valores posibles para la familia de direcciones se enumeran en el archivo de encabezado Winsock2.h . Tenga en cuenta que los valores de la familia de direcciones AF_ y las constantes de familia de protocolos PF_ son idénticos (por ejemplo, AF_INET y PF_INET), por lo que se puede usar cualquier constante.
En Windows Vista y versiones posteriores, así como en el Windows SDK, la organización de los archivos de encabezado ha cambiado y los valores posibles para este miembro se definen en el archivo de encabezado Ws2def.h. Tenga en cuenta que el archivo de encabezado Ws2def.h se incluye automáticamente en Winsock2.h y nunca se debe usar directamente.
Los valores admitidos actualmente son AF_INET o AF_INET6, que son los formatos de familia de direcciones de Internet para IPv4 e IPv6.
InterfaceLuid
Tipo: NET_LUID
Identificador único local (LUID) de la interfaz de red.
InterfaceIndex
Tipo: NET_IFINDEX
Valor de índice local para la interfaz de red. Este valor de índice puede cambiar cuando un adaptador de red está deshabilitado y, a continuación, habilitado, o en otras circunstancias, y no debe considerarse persistente.
MaxReassemblySize
Tipo: ULONG
Tamaño máximo del ensamblado, en bytes, de un paquete IP fragmentado. Este miembro se establece actualmente en cero y se reserva para su uso futuro.
InterfaceIdentifier
Tipo: ULONG64
Reservado para uso futuro. Este miembro está establecido actualmente en cero.
MinRouterAdvertisementInterval
Tipo: ULONG
Intervalo mínimo de anuncios de enrutador, en milisegundos, en esta interfaz IP. Este miembro tiene como valor predeterminado 200 para IPv6. Este miembro solo es aplicable si el miembro AdvertisingEnabled está establecido en TRUE.
MaxRouterAdvertisementInterval
Tipo: ULONG
El intervalo de anuncio de enrutador máximo, en milisegundos, en esta interfaz IP. Este miembro tiene como valor predeterminado 600 para IPv6. Este miembro solo es aplicable si el miembro AdvertisingEnabled está establecido en TRUE.
AdvertisingEnabled
Tipo: BOOLEAN
Valor que indica si la publicidad del enrutador está habilitada en esta interfaz IP. El valor predeterminado para IPv6 es que el anuncio de enrutador solo está habilitado si la interfaz está configurada para actuar como enrutador. El valor predeterminado para IPv4 es que el anuncio del enrutador está deshabilitado.
ForwardingEnabled
Tipo: BOOLEAN
Valor que indica si el reenvío IP está habilitado en esta interfaz IP.
WeakHostSend
Tipo: BOOLEAN
Valor que indica si el modo de envío de host débil está habilitado en esta interfaz IP.
WeakHostReceive
Tipo: BOOLEAN
Valor que indica si el modo de recepción de host débil está habilitado en esta interfaz IP.
UseAutomaticMetric
Tipo: BOOLEAN
Valor que indica si la interfaz IP usa la métrica automática.
UseNeighborUnreachabilityDetection
Tipo: BOOLEAN
Valor que indica si la detección de falta de acceso del vecino está habilitada en esta interfaz IP.
ManagedAddressConfigurationSupported
Tipo: BOOLEAN
Valor que indica si la interfaz IP admite la configuración de direcciones administradas mediante DHCP.
OtherStatefulConfigurationSupported
Tipo: BOOLEAN
Valor que indica si la interfaz IP admite otra configuración con estado (configuración de ruta, por ejemplo).
AdvertiseDefaultRoute
Tipo: BOOLEAN
Valor que indica si la interfaz IP anuncia la ruta predeterminada. Este miembro solo es aplicable si el miembro AdvertisingEnabled está establecido en TRUE.
RouterDiscoveryBehavior
Tipo: NL_ROUTER_DISCOVERY_BEHAVIOR
Comportamiento de detección del enrutador. Este miembro puede ser uno de los valores del tipo de enumeración NL_ROUTER_DISCOVERY_BEHAVIOR definido en el archivo de encabezado Nldef.h . El miembro se describe en RFC 2461. Para obtener más información, vea http://www.ietf.org/rfc/rfc2461.txt.
DadTransmits
Tipo: ULONG
Número de mensajes consecutivos enviados al realizar la detección de direcciones duplicadas en una dirección de unidifusión IP provisional. Un valor de cero indica que la detección de direcciones duplicadas no se realiza en direcciones IP provisionales. Un valor de uno indica una única transmisión sin retransmisiones de seguimiento. Para IPv4, el valor predeterminado para este miembro es 3. Para IPv6, el valor predeterminado para este miembro es 1. En el caso de IPv6, estos mensajes se enviarán como solicitudes de solicitud de vecinos. Este miembro se define como DupAddrDetectTransmits en RFC 2462. Para obtener más información, vea http://www.ietf.org/rfc/rfc2462.txt.
BaseReachableTime
Tipo: ULONG
Base del tiempo accesible aleatorio, en milisegundos. El miembro se describe en RFC 2461. Para obtener más información, vea http://www.ietf.org/rfc/rfc2461.txt.
RetransmitTime
Tipo: ULONG
Tiempo de espera de solicitud vecino, en milisegundos. El miembro se describe en RFC 2461. Para obtener más información, vea http://www.ietf.org/rfc/rfc2461.txt.
PathMtuDiscoveryTimeout
Tipo: ULONG
Tiempo de espera de detección de MTU de ruta de acceso, en milisegundos.
LinkLocalAddressBehavior
Tipo: NL_LINK_LOCAL_ADDRESS_BEHAVIOR
Comportamiento de la dirección local del vínculo. Este miembro puede ser uno de los valores del tipo de enumeración NL_LINK_LOCAL_ADDRESS_BEHAVIOR definido en el archivo de encabezado Nldef.h .
LinkLocalAddressTimeout
Tipo: ULONG
Tiempo de espera de la dirección IP local del vínculo, en milisegundos.
ZoneIndices[ScopeLevelCount]
Tipo: ULONG[ScopeLevelCount]
Matriz que especifica la parte de zona de los identificadores de ámbito.
SitePrefixLength
Tipo: ULONG
Longitud del prefijo del sitio, en bits, de la dirección de la interfaz IP. Longitud, en bits, del prefijo de sitio o parte de red de la dirección de la interfaz IP. Para una dirección IPv4, cualquier valor mayor que 32 es un valor no válido. Para una dirección IPv6, cualquier valor mayor que 128 es un valor no válido. Un valor de 255 se usa normalmente para representar un valor no válido.
Metric
Tipo: ULONG
Métrica de interfaz. Tenga en cuenta que la métrica de ruta real utilizada para calcular la preferencia de ruta es la suma del desplazamiento de métrica de ruta especificado en el miembro Métrica de la estructura MIB_IPFORWARD_ROW2 y la métrica de interfaz especificada en este miembro.
NlMtu
Tipo: ULONG
Tamaño de MTU de la capa de red, en bytes.
Connected
Tipo: BOOLEAN
Valor que indica si la interfaz está conectada a un punto de acceso de red.
SupportsWakeUpPatterns
Tipo: BOOLEAN
Valor que especifica si la interfaz de red admite Wake on LAN.
SupportsNeighborDiscovery
Tipo: BOOLEAN
Valor que especifica si la interfaz IP admite la detección de vecinos.
SupportsRouterDiscovery
Tipo: BOOLEAN
Valor que especifica si la interfaz IP admite la detección de enrutadores.
ReachableTime
Tipo: ULONG
Tiempo de espera accesible, en milisegundos.
TransmitOffload
Tipo: NL_INTERFACE_OFFLOAD_ROD
Conjunto de marcas que indican las funcionalidades de descarga de transmisión para la interfaz IP. La estructura NL_INTERFACE_OFFLOAD_ROD se define en el archivo de encabezado Nldef.h .
ReceiveOffload
Tipo: NL_INTERFACE_OFFLOAD_ROD
Conjunto de marcas que indican las funcionalidades de descarga de recepción para la interfaz IP. La estructura NL_INTERFACE_OFFLOAD_ROD se define en el archivo de encabezado Nldef.h .
DisableDefaultRoutes
Tipo: BOOLEAN
Valor que indica si se debe deshabilitar el uso de la ruta predeterminada en la interfaz. Los clientes VPN pueden usar este miembro para restringir la tunelización dividida.
Comentarios
La estructura MIB_IPINTERFACE_ROW se define en Windows Vista y versiones posteriores.
Los miembros Family, InterfaceLuid e InterfaceIndex identifican de forma única una entrada de MIB_IPINTERFACE_ROW .
Cuando un paquete de unidifusión llega a un host, la dirección IP debe determinar si el paquete está destinado localmente (su destino coincide con una dirección asignada a una interfaz del host). Las implementaciones de IP que siguen un modelo de host débil aceptan cualquier paquete destinado localmente, independientemente de la interfaz en la que se recibió el paquete. Las implementaciones de IP que siguen el modelo de host seguro solo aceptan paquetes destinados localmente si la dirección de destino del paquete coincide con una dirección asignada a la interfaz en la que se recibió el paquete. El modelo de host débil proporciona una mejor conectividad de red. Sin embargo, también hace que los hosts sean susceptibles a ataques de red basados en varios hogares.
La implementación IPv4 actual en Windows Server 2003 y Windows XP usa el modelo de host débil. En este caso, todos los paquetes de unidifusión se envían a la interfaz con la métrica más baja para una ruta.
La pila TCP/IP en Windows Vista y versiones posteriores admite el modelo de host seguro para IPv4 e IPv6 y está configurado para usar el modo de host seguro de forma predeterminada (los miembros WeakHostReceive y WeakHostSend se establecen en FALSE). Con el modo host seguro, se puede enviar un paquete de unidifusión a una interfaz específica que no tenga la métrica más baja para una ruta enlazando el socket a la dirección de origen de la interfaz específica.
La pila TCP/IP en Windows Vista y versiones posteriores se puede configurar para usar un modelo de host débil.
Una métrica es un valor que se asigna a una ruta IP para una interfaz de red determinada que identifica el costo asociado al uso de esa ruta. Por ejemplo, la métrica se puede valorar en términos de velocidad de vínculo, recuento de saltos o retraso de tiempo. La métrica automática es una característica en Windows XP y versiones posteriores que configura automáticamente la métrica para las rutas locales que se basan en la velocidad del vínculo. La característica de métrica automática está habilitada de forma predeterminada ( UseAutomaticMetric está establecida en TRUE) en Windows XP y versiones posteriores. También se puede configurar manualmente para asignar una métrica específica a una ruta IP.
La característica de métrica automática puede ser útil cuando la tabla de enrutamiento contiene varias rutas para el mismo destino. Por ejemplo, un equipo con una interfaz de red de 10 megabits y una interfaz de red de 100 megabits tiene una puerta de enlace predeterminada configurada en ambas interfaces de red. Cuando UseAutomaticMetric es TRUE, esta característica puede forzar todo el tráfico destinado a Internet, por ejemplo, para usar la interfaz de red más rápida que está disponible.
La métrica de interfaz especificada en el miembro Métrica representa solo la métrica de la interfaz. La métrica de enrutamiento completa es una combinación de esta métrica de interfaz agregada al desplazamiento de la métrica de ruta especificado en el miembro Métrica de la estructura MIB_IPFORWARD_ROW2 de una entrada de ruta especificada en esta interfaz.
El acceso simultáneo sin privilegios a varias redes de diferentes requisitos de seguridad crea un agujero de seguridad y permite que una aplicación sin privilegios retransmita accidentalmente los datos entre las dos redes. Un ejemplo típico es el acceso simultáneo a una red privada virtual (VPN) e Internet. Windows Server 2003 y Windows XP usan un modelo de host débil, donde RAS impide ese acceso simultáneo aumentando la métrica de ruta de todas las rutas predeterminadas en otras interfaces. Por lo tanto, todo el tráfico se enruta a través de la interfaz VPN, lo que interrumpe otra conectividad de red.
En Windows Vista y versiones posteriores, se usa un modelo de host seguro de forma predeterminada. Si se especifica una dirección IP de origen en la búsqueda de rutas mediante GetBestRoute2 o GetBestRoute, la búsqueda de rutas está restringida a la interfaz de la dirección IP de origen. La modificación de la métrica de ruta por RAS no tiene ningún efecto, ya que la lista de rutas potenciales ni siquiera tiene la ruta para la interfaz VPN, lo que permite el tráfico a Internet. El miembro DisableDefaultRoutes de la estructura MIB_IPINTERFACE_ROW se puede usar para deshabilitar mediante la ruta predeterminada en una interfaz. Los clientes VPN pueden usar este miembro como medida de seguridad para restringir la tunelización dividida cuando el cliente VPN no requiere la tunelización dividida. Un cliente VPN puede llamar a la función SetIpInterfaceEntry para establecer el miembro DisableDefaultRoutes en TRUE cuando sea necesario. Un cliente VPN puede consultar el estado actual del miembro DisableDefaultRoutes llamando a la función GetIpInterfaceEntry .
Tenga en cuenta que el archivo de encabezado Netioapi.h se incluye automáticamente en el archivo de encabezado Iphlpapi.h . El archivo de encabezado Netioapi.h nunca debe usarse directamente.
Ejemplos
Para ver un ejemplo que recupera la estructura MIB_IPINTERFACE_TABLE y, a continuación, imprime algunos miembros de las entradas de estructura de MIB_IPINTERFACE_ROW de esta tabla, vea la función GetIpInterfaceTable .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Encabezado | netioapi.h (incluya Iphlpapi.h) |