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.
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.
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 .
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) |