Partager via


MIB_IPINTERFACE_ROW structure (netioapi.h)

La structure MIB_IPINTERFACE_ROW stocke les informations de gestion d’interface pour une famille d’adresses IP particulière sur une interface réseau.

Syntaxe

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;

Membres

Family

Type : ADDRESS_FAMILY

Famille d’adresses. Les valeurs possibles pour la famille d’adresses sont répertoriées dans le fichier d’en-tête Winsock2.h . Notez que les valeurs de la famille d’adresses AF_ et des constantes de famille de protocole PF_ sont identiques (par exemple , AF_INET et PF_INET), de sorte que l’une ou l’autre constante peut être utilisée.

Sur Windows Vista et versions ultérieures ainsi que sur le SDK Windows, la organization des fichiers d’en-tête a changé et les valeurs possibles pour ce membre sont définies dans le fichier d’en-tête Ws2def.h. Notez que le fichier d’en-tête Ws2def.h est automatiquement inclus dans Winsock2.h et ne doit jamais être utilisé directement.

Les valeurs actuellement prises en charge sont AF_INET ou AF_INET6, qui sont les formats de famille d’adresses Internet pour IPv4 et IPv6.

Valeur Signification
AF_UNSPEC
0
La famille d’adresses n’est pas spécifiée.
AF_INET
2
Famille d’adresses IPv4 (Internet Protocol version 4).
AF_INET6
23
Famille d’adresses IPv6 (Internet Protocol version 6).

InterfaceLuid

Type : NET_LUID

Identificateur local unique (LUID) pour l’interface réseau.

InterfaceIndex

Type : NET_IFINDEX

Valeur d’index local pour l’interface réseau. Cette valeur d’index peut changer lorsqu’une carte réseau est désactivée, puis activée, ou dans d’autres circonstances, et ne doit pas être considérée comme persistante.

MaxReassemblySize

Type : ULONG

Taille maximale de réassemblage, en octets, d’un paquet IP fragmenté. Ce membre est actuellement défini sur zéro et réservé pour une utilisation ultérieure.

InterfaceIdentifier

Type : ULONG64

Réservé pour un usage futur. Ce membre est actuellement défini sur zéro.

MinRouterAdvertisementInterval

Type : ULONG

Intervalle minimal de publication du routeur, en millisecondes, sur cette interface IP. Ce membre est défini par défaut sur 200 pour IPv6. Ce membre s’applique uniquement si le membre AdvertisingEnabled est défini sur TRUE.

MaxRouterAdvertisementInterval

Type : ULONG

Intervalle maximal de publication du routeur, en millisecondes, sur cette interface IP. Ce membre est défini par défaut sur 600 pour IPv6. Ce membre s’applique uniquement si le membre AdvertisingEnabled est défini sur TRUE.

AdvertisingEnabled

Type : BOOLEAN

Valeur qui indique si la publicité du routeur est activée sur cette interface IP. La valeur par défaut pour IPv6 est que la publication de routeur n’est activée que si l’interface est configurée pour agir en tant que routeur. La valeur par défaut pour IPv4 est que la publicité du routeur est désactivée.

ForwardingEnabled

Type : BOOLEAN

Valeur qui indique si le transfert IP est activé sur cette interface IP.

WeakHostSend

Type : BOOLEAN

Valeur qui indique si le mode d’envoi de l’hôte faible est activé sur cette interface IP.

WeakHostReceive

Type : BOOLEAN

Valeur qui indique si le mode de réception de l’hôte faible est activé sur cette interface IP.

UseAutomaticMetric

Type : BOOLEAN

Valeur qui indique si l’interface IP utilise une métrique automatique.

UseNeighborUnreachabilityDetection

Type : BOOLEAN

Valeur qui indique si la détection de non-accessibilité du voisin est activée sur cette interface IP.

ManagedAddressConfigurationSupported

Type : BOOLEAN

Valeur qui indique si l’interface IP prend en charge la configuration d’adresses managées à l’aide de DHCP.

OtherStatefulConfigurationSupported

Type : BOOLEAN

Valeur qui indique si l’interface IP prend en charge une autre configuration avec état (configuration de routage, par exemple).

AdvertiseDefaultRoute

Type : BOOLEAN

Valeur qui indique si l’interface IP publie l’itinéraire par défaut. Ce membre s’applique uniquement si le membre AdvertisingEnabled est défini sur TRUE.

RouterDiscoveryBehavior

Type : NL_ROUTER_DISCOVERY_BEHAVIOR

Comportement de découverte du routeur. Ce membre peut être l’une des valeurs du type d’énumération NL_ROUTER_DISCOVERY_BEHAVIOR défini dans le fichier d’en-tête Nldef.h . Le membre est décrit dans RFC 2461. Pour plus d’informations, consultez http://www.ietf.org/rfc/rfc2461.txt.

Valeur Signification
RouterDiscoveryDisabled
0
La découverte du routeur est désactivée.
RouterDiscoveryEnabled
1
La découverte du routeur est activée. Il s’agit de la valeur par défaut pour IPv6.
RouterDiscoveryDhcp
2
La découverte du routeur est configurée en fonction du protocole DHCP. Il s’agit de la valeur par défaut pour IPv4.
RouterDiscoveryUnchanged
-1
Cette valeur est utilisée lors de la définition des propriétés d’une interface IP lorsque la valeur de découverte du routeur doit être inchangée.

DadTransmits

Type : ULONG

Nombre de messages consécutifs envoyés lors de la détection d’adresses en double sur une adresse de monodiffusion IP provisoire. La valeur zéro indique que la détection des adresses en double n’est pas effectuée sur les adresses IP provisoires. La valeur 1 indique une transmission unique sans retransmission de suivi. Pour IPv4, la valeur par défaut de ce membre est 3. Pour IPv6, la valeur par défaut de ce membre est 1. Pour IPv6, ces messages sont envoyés en tant que demandes de sollicitation de voisins. Ce membre est défini en tant que DupAddrDetectTransmits dans RFC 2462. Pour plus d’informations, consultez http://www.ietf.org/rfc/rfc2462.txt.

BaseReachableTime

Type : ULONG

Base pour le temps aléatoire accessible, en millisecondes. Le membre est décrit dans RFC 2461. Pour plus d’informations, consultez http://www.ietf.org/rfc/rfc2461.txt.

RetransmitTime

Type : ULONG

Délai d’expiration de sollicitation du voisin, en millisecondes. Le membre est décrit dans RFC 2461. Pour plus d’informations, consultez http://www.ietf.org/rfc/rfc2461.txt.

PathMtuDiscoveryTimeout

Type : ULONG

Délai d’expiration de la découverte MTU du chemin, en millisecondes.

LinkLocalAddressBehavior

Type : NL_LINK_LOCAL_ADDRESS_BEHAVIOR

Comportement de l’adresse locale de lien. Ce membre peut être l’une des valeurs du type d’énumération NL_LINK_LOCAL_ADDRESS_BEHAVIOR défini dans le fichier d’en-tête Nldef.h .

Valeur Signification
LinkLocalAlwaysOff
0
N’utilisez jamais d’adresse IP locale de lien.
LinkLocalDelayed
1
Utilisez une adresse IP locale de lien uniquement si aucune autre adresse n’est disponible. Il s’agit du paramètre par défaut pour une interface IPv4.
LinkLocalAlwaysOn
2
Utilisez toujours une adresse IP locale de lien. Il s’agit du paramètre par défaut pour une interface IPv6.
LinkLocalUnchanged
-1
Cette valeur est utilisée lors de la définition des propriétés d’une interface IP lorsque la valeur du comportement de l’adresse locale de liaison doit être inchangée.

LinkLocalAddressTimeout

Type : ULONG

Délai d’expiration de l’adresse IP locale du lien, en millisecondes.

ZoneIndices[ScopeLevelCount]

Type : ULONG[ScopeLevelCount]

Tableau qui spécifie la partie zone des ID d’étendue.

SitePrefixLength

Type : ULONG

Longueur du préfixe de site, en bits, de l’adresse de l’interface IP. Longueur, en bits, du préfixe de site ou de la partie réseau de l’adresse de l’interface IP. Pour une adresse IPv4, toute valeur supérieure à 32 est une valeur non conforme. Pour une adresse IPv6, toute valeur supérieure à 128 est une valeur non conforme. Une valeur de 255 est couramment utilisée pour représenter une valeur non conforme.

Metric

Type : ULONG

Métrique de l’interface. Notez que la métrique d’itinéraire réelle utilisée pour calculer la préférence d’itinéraire est la somme du décalage de la métrique d’itinéraire spécifié dans le membre de métrique de la structure MIB_IPFORWARD_ROW2 et de la métrique d’interface spécifiée dans ce membre.

NlMtu

Type : ULONG

Taille MTU de la couche réseau, en octets.

Connected

Type : BOOLEAN

Valeur qui indique si l’interface est connectée à un point d’accès réseau.

SupportsWakeUpPatterns

Type : BOOLEAN

Valeur qui spécifie si l’interface réseau prend en charge Wake on LAN.

SupportsNeighborDiscovery

Type : BOOLEAN

Valeur qui spécifie si l’interface IP prend en charge la découverte de voisins.

SupportsRouterDiscovery

Type : BOOLEAN

Valeur qui spécifie si l’interface IP prend en charge la découverte du routeur.

ReachableTime

Type : ULONG

Délai d’attente accessible, en millisecondes.

TransmitOffload

Type : NL_INTERFACE_OFFLOAD_ROD

Ensemble d’indicateurs qui indiquent les fonctionnalités de déchargement de transmission pour l’interface IP. La structure NL_INTERFACE_OFFLOAD_ROD est définie dans le fichier d’en-tête Nldef.h .

ReceiveOffload

Type : NL_INTERFACE_OFFLOAD_ROD

Ensemble d’indicateurs qui indiquent les fonctionnalités de déchargement de réception pour l’interface IP. La structure NL_INTERFACE_OFFLOAD_ROD est définie dans le fichier d’en-tête Nldef.h .

DisableDefaultRoutes

Type : BOOLEAN

Valeur qui indique si l’utilisation de l’itinéraire par défaut sur l’interface doit être désactivée. Ce membre peut être utilisé par les clients VPN pour restreindre le tunneling fractionné.

Remarques

La structure MIB_IPINTERFACE_ROW est définie sur Windows Vista et versions ultérieures.

Les membres Family, InterfaceLuid et InterfaceIndex identifient de manière unique une entrée MIB_IPINTERFACE_ROW .

Lorsqu’un paquet de monodiffusion arrive sur un hôte, l’adresse IP doit déterminer si le paquet est destiné localement (sa destination correspond à une adresse affectée à une interface de l’hôte). Les implémentations IP qui suivent un modèle d’hôte faible acceptent tout paquet destiné localement, quelle que soit l’interface sur laquelle le paquet a été reçu. Les implémentations IP qui suivent le modèle d’hôte fort acceptent uniquement les paquets destinés localement si l’adresse de destination dans le paquet correspond à une adresse affectée à l’interface sur laquelle le paquet a été reçu. Le modèle d’hôte faible fournit une meilleure connectivité réseau. Toutefois, cela rend également les hôtes vulnérables aux attaques réseau basées sur plusieurs domiciles.

L’implémentation IPv4 actuelle dans Windows Server 2003 et Windows XP utilise le modèle d’hôte faible. Dans ce cas, tous les paquets de monodiffusion sont envoyés à l’interface avec la métrique la plus faible pour un itinéraire.

La pile TCP/IP sur Windows Vista et ultérieurement prend en charge le modèle d’hôte fort pour IPv4 et IPv6 et est configurée pour utiliser le mode hôte fort par défaut (les membres WeakHostReceive et WeakHostSend sont définis sur FALSE). Avec le mode hôte fort, un paquet de monodiffusion peut être envoyé à une interface spécifique qui n’a pas la métrique la plus faible pour un itinéraire en liant le socket à l’adresse source de l’interface spécifique.

La pile TCP/IP sur Windows Vista et versions ultérieures peut être configurée pour utiliser un modèle hôte faible.

Une métrique est une valeur qui est affectée à un itinéraire IP pour une interface réseau particulière qui identifie le coût associé à l’utilisation de cette route. Par exemple, la métrique peut être évaluée en termes de vitesse de liaison, de nombre de tronçons ou de délai. La métrique automatique est une fonctionnalité sur Windows XP et versions ultérieures qui configure automatiquement la métrique pour les itinéraires locaux basés sur la vitesse de liaison. La fonctionnalité de métrique automatique est activée par défaut ( UseAutomaticMetric a la valeur TRUE) sur Windows XP et versions ultérieures. Il peut également être configuré manuellement pour affecter une métrique spécifique à un itinéraire IP.

La fonctionnalité de métrique automatique peut être utile lorsque la table de routage contient plusieurs itinéraires pour la même destination. Par exemple, un ordinateur avec une interface réseau de 10 mégabits et une interface réseau de 100 mégabits dispose d’une passerelle par défaut configurée sur les deux interfaces réseau. Lorsque UseAutomaticMetric a la valeur TRUE, cette fonctionnalité peut forcer tout le trafic destiné à Internet, par exemple, à utiliser l’interface réseau la plus rapide disponible.

La métrique d’interface spécifiée dans le membre Métrique représente uniquement la métrique de l’interface. La métrique de routage complète est une combinaison de cette métrique d’interface ajoutée au décalage de la métrique de routage spécifié dans le membre Métrique de la structure MIB_IPFORWARD_ROW2 d’une entrée de route spécifiée sur cette interface.

L’accès simultané non privilégié à plusieurs réseaux de différentes exigences de sécurité crée un trou de sécurité et permet à une application non privilégiée de relayer accidentellement des données entre les deux réseaux. Un exemple classique est l’accès simultané à un réseau privé virtuel (VPN) et à Internet. Windows Server 2003 et Windows XP utilisent un modèle d’hôte faible, où RAS empêche cet accès simultané en augmentant la métrique d’itinéraire de tous les itinéraires par défaut sur d’autres interfaces. Ainsi, tout le trafic est routé via l’interface VPN, ce qui perturbe d’autres connectivités réseau.

Sur Windows Vista et versions ultérieures, un modèle d’hôte fort est utilisé par défaut. Si une adresse IP source est spécifiée dans la recherche d’itinéraire à l’aide de GetBestRoute2 ou GetBestRoute, la recherche d’itinéraire est limitée à l’interface de l’adresse IP source. La modification de la métrique d’itinéraire par RAS n’a aucun effet, car la liste des itinéraires potentiels n’a même pas l’itinéraire pour l’interface VPN, ce qui autorise le trafic vers Internet. Le membre DisableDefaultRoutes de la structure MIB_IPINTERFACE_ROW peut être utilisé pour désactiver l’utilisation de l’itinéraire par défaut sur une interface. Ce membre peut être utilisé comme mesure de sécurité par les clients VPN pour restreindre le tunneling fractionné lorsque le tunneling fractionné n’est pas requis par le client VPN. Un client VPN peut appeler la fonction SetIpInterfaceEntry pour définir le membre DisableDefaultRoutes sur TRUE si nécessaire. Un client VPN peut interroger l’état actuel du membre DisableDefaultRoutes en appelant la fonction GetIpInterfaceEntry .

Notez que le fichier d’en-tête Netioapi.h est automatiquement inclus dans le fichier d’en-tête Iphlpapi.h . Le fichier d’en-tête Netioapi.h ne doit jamais être utilisé directement.

Exemples

Pour afficher un exemple qui récupère la structure MIB_IPINTERFACE_TABLE , puis imprime quelques membres des entrées de structure MIB_IPINTERFACE_ROW dans cette table, consultez la fonction GetIpInterfaceTable .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
En-tête netioapi.h (include Iphlpapi.h)

Voir aussi

GetBestRoute

GetBestRoute2

GetIpInterfaceEntry

GetIpInterfaceTable

MIB_IPFORWARD_ROW2

MIB_IPINTERFACE_TABLE

NET_LUID

NL_INTERFACE_OFFLOAD_ROD

SetIpInterfaceEntry