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.

Valor Significado
AF_UNSPEC
0
La familia de direcciones no está especificada.
AF_INET
2
Familia de direcciones del Protocolo de Internet versión 4 (IPv4).
AF_INET6
23
Familia de direcciones del Protocolo de Internet versión 6 (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.

Valor Significado
RouterDiscoveryDisabled
0
La detección del enrutador está deshabilitada.
RouterDiscoveryEnabled
1
La detección del enrutador está habilitada. Este es el valor predeterminado de IPv6.
RouterDiscoveryDhcp
2
La detección de enrutadores se configura en función de DHCP. Este es el valor predeterminado de IPv4.
RouterDiscoveryUnchanged
-1
Este valor se usa al establecer las propiedades de una interfaz IP cuando el valor de detección de enrutadores no debe modificarse.

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 .

Valor Significado
LinkLocalAlwaysOff
0
Nunca use una dirección IP local de vínculo.
LinkLocalDelayed
1
Use una dirección IP local de vínculo solo si no hay ninguna otra dirección disponible. Esta es la configuración predeterminada para una interfaz IPv4.
LinkLocalAlwaysOn
2
Use siempre una dirección IP local de vínculo. Esta es la configuración predeterminada para una interfaz IPv6.
LinkLocalUnchanged
-1
Este valor se usa al establecer las propiedades de una interfaz IP cuando el valor del comportamiento de la dirección local de vínculo no debe modificarse.

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)

Consulte también

GetBestRoute

GetBestRoute2

GetIpInterfaceEntry

GetIpInterfaceTable

MIB_IPFORWARD_ROW2

MIB_IPINTERFACE_TABLE

NET_LUID

NL_INTERFACE_OFFLOAD_ROD

SetIpInterfaceEntry