MIB_IPINTERFACE_ROW struttura (netioapi.h)
La struttura MIB_IPINTERFACE_ROW archivia le informazioni di gestione delle interfacce per una determinata famiglia di indirizzi IP in un'interfaccia di rete.
Sintassi
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;
Members
Family
Tipo: ADDRESS_FAMILY
Famiglia di indirizzi. I valori possibili per la famiglia di indirizzi sono elencati nel file di intestazione Winsock2.h . Si noti che i valori per la famiglia di indirizzi AF_ e le costanti della famiglia di protocolli di PF_ sono identiche (ad esempio, AF_INET e PF_INET), in modo che sia possibile usare una costante.
In Windows Vista e versioni successive, nonché nella Windows SDK, l'organizzazione dei file di intestazione è stata modificata e i valori possibili per questo membro vengono definiti nel file di intestazione Ws2def.h. Si noti che il file di intestazione Ws2def.h viene incluso automaticamente in Winsock2.h e non deve mai essere usato direttamente.
I valori attualmente supportati sono AF_INET o AF_INET6, ovvero i formati della famiglia di indirizzi Internet per IPv4 e IPv6.
InterfaceLuid
Tipo: NET_LUID
Identificatore univoco locale (LUID) per l'interfaccia di rete.
InterfaceIndex
Tipo: NET_IFINDEX
Valore dell'indice locale per l'interfaccia di rete. Questo valore di indice può cambiare quando una scheda di rete è disabilitata e quindi abilitata o in altre circostanze e non deve essere considerata persistente.
MaxReassemblySize
Tipo: ULONG
Dimensioni massime di riassemblaggio, in byte, di un pacchetto IP frammentato. Questo membro è attualmente impostato su zero e riservato per l'uso futuro.
InterfaceIdentifier
Tipo: ULONG64
Riservato per utilizzi futuri. Questo membro è attualmente impostato su zero.
MinRouterAdvertisementInterval
Tipo: ULONG
Intervallo minimo di annuncio router, in millisecondi, su questa interfaccia IP. Questo membro viene predefinito su 200 per IPv6. Questo membro è applicabile solo se il membro AdvertisingEnabled è impostato su TRUE.
MaxRouterAdvertisementInterval
Tipo: ULONG
Intervallo massimo di annunci router, in millisecondi, su questa interfaccia IP. Questo membro viene predefinito su 600 per IPv6. Questo membro è applicabile solo se il membro AdvertisingEnabled è impostato su TRUE.
AdvertisingEnabled
Tipo: BOOLEAN
Valore che indica se la pubblicità del router è abilitata in questa interfaccia IP. Il valore predefinito per IPv6 è che l'annuncio del router è abilitato solo se l'interfaccia è configurata per agire come router. Il valore predefinito per IPv4 è che l'annuncio del router è disabilitato.
ForwardingEnabled
Tipo: BOOLEAN
Valore che indica se l'inoltro IP è abilitato in questa interfaccia IP.
WeakHostSend
Tipo: BOOLEAN
Valore che indica se la modalità di invio host debole è abilitata in questa interfaccia IP.
WeakHostReceive
Tipo: BOOLEAN
Valore che indica se la modalità di ricezione host debole è abilitata in questa interfaccia IP.
UseAutomaticMetric
Tipo: BOOLEAN
Valore che indica se l'interfaccia IP usa la metrica automatica.
UseNeighborUnreachabilityDetection
Tipo: BOOLEAN
Valore che indica se il rilevamento dell'impossibilità vicina è abilitato in questa interfaccia IP.
ManagedAddressConfigurationSupported
Tipo: BOOLEAN
Valore che indica se l'interfaccia IP supporta la configurazione dell'indirizzo gestito tramite DHCP.
OtherStatefulConfigurationSupported
Tipo: BOOLEAN
Valore che indica se l'interfaccia IP supporta altre configurazioni con stato (ad esempio la configurazione della route).
AdvertiseDefaultRoute
Tipo: BOOLEAN
Valore che indica se l'interfaccia IP annuncia la route predefinita. Questo membro è applicabile solo se il membro AdvertisingEnabled è impostato su TRUE.
RouterDiscoveryBehavior
Tipo: NL_ROUTER_DISCOVERY_BEHAVIOR
Comportamento di individuazione del router. Questo membro può essere uno dei valori del tipo di enumerazione NL_ROUTER_DISCOVERY_BEHAVIOR definito nel file di intestazione Nldef.h . Il membro è descritto in RFC 2461. Per altre informazioni, vedere http://www.ietf.org/rfc/rfc2461.txt.
DadTransmits
Tipo: ULONG
Numero di messaggi consecutivi inviati durante l'esecuzione del rilevamento degli indirizzi duplicati in un indirizzo IP unicast tentativo. Un valore pari a zero indica che il rilevamento degli indirizzi duplicati non viene eseguito su indirizzi IP provvisori. Un valore di uno indica una singola trasmissione senza ritrasmissione di completamento. Per IPv4, l'impostazione predefinita per questo membro è 3. Per IPv6, l'impostazione predefinita per questo membro è 1. Per IPv6, questi messaggi verranno inviati come richieste di richiesta vicina. Questo membro viene definito come DupAddrDetectTransmits in RFC 2462. Per altre informazioni, vedere http://www.ietf.org/rfc/rfc2462.txt.
BaseReachableTime
Tipo: ULONG
Base per il tempo raggiungibile casuale, in millisecondi. Il membro è descritto in RFC 2461. Per altre informazioni, vedere http://www.ietf.org/rfc/rfc2461.txt.
RetransmitTime
Tipo: ULONG
Timeout di sollecitazione adiacente, espresso in millisecondi. Il membro è descritto in RFC 2461. Per altre informazioni, vedere http://www.ietf.org/rfc/rfc2461.txt.
PathMtuDiscoveryTimeout
Tipo: ULONG
Timeout di individuazione MTU del percorso, espresso in millisecondi.
LinkLocalAddressBehavior
Tipo: NL_LINK_LOCAL_ADDRESS_BEHAVIOR
Comportamento dell'indirizzo locale del collegamento. Questo membro può essere uno dei valori del tipo di enumerazione NL_LINK_LOCAL_ADDRESS_BEHAVIOR definito nel file di intestazione Nldef.h .
LinkLocalAddressTimeout
Tipo: ULONG
Timeout dell'indirizzo IP locale del collegamento, espresso in millisecondi.
ZoneIndices[ScopeLevelCount]
Tipo: ULONG[ScopeLevelCount]
Matrice che specifica la parte della zona degli ID ambito.
SitePrefixLength
Tipo: ULONG
Lunghezza del prefisso del sito, in bit, dell'indirizzo dell'interfaccia IP. Lunghezza, in bit, del prefisso del sito o parte di rete dell'indirizzo dell'interfaccia IP. Per un indirizzo IPv4, qualsiasi valore maggiore di 32 è un valore non valido. Per un indirizzo IPv6, qualsiasi valore maggiore di 128 è un valore non valido. Il valore 255 viene comunemente usato per rappresentare un valore non valido.
Metric
Tipo: ULONG
Metrica dell'interfaccia. Si noti che la metrica di route effettiva usata per calcolare la preferenza di route è la somma dell'offset della metrica di route specificato nel membro Metric della struttura MIB_IPFORWARD_ROW2 e la metrica di interfaccia specificata in questo membro.
NlMtu
Tipo: ULONG
Dimensioni MTU del livello di rete, in byte.
Connected
Tipo: BOOLEAN
Valore che indica se l'interfaccia è connessa a un punto di accesso di rete.
SupportsWakeUpPatterns
Tipo: BOOLEAN
Valore che specifica se l'interfaccia di rete supporta riattivazione LAN.
SupportsNeighborDiscovery
Tipo: BOOLEAN
Valore che specifica se l'interfaccia IP supporta l'individuazione adiacente.
SupportsRouterDiscovery
Tipo: BOOLEAN
Valore che specifica se l'interfaccia IP supporta l'individuazione del router.
ReachableTime
Tipo: ULONG
Timeout raggiungibile, espresso in millisecondi.
TransmitOffload
Tipo: NL_INTERFACE_OFFLOAD_ROD
Set di flag che indicano le funzionalità di offload di trasmissione per l'interfaccia IP. La struttura NL_INTERFACE_OFFLOAD_ROD è definita nel file di intestazione Nldef.h .
ReceiveOffload
Tipo: NL_INTERFACE_OFFLOAD_ROD
Set di flag che indicano le funzionalità di offload di ricezione per l'interfaccia IP. La struttura NL_INTERFACE_OFFLOAD_ROD è definita nel file di intestazione Nldef.h .
DisableDefaultRoutes
Tipo: BOOLEAN
Valore che indica se usare la route predefinita nell'interfaccia deve essere disabilitato. Questo membro può essere usato dai client VPN per limitare il split tunneling.
Commenti
La struttura MIB_IPINTERFACE_ROW è definita in Windows Vista e versioni successive.
I membri Family, InterfaceLuid e InterfaceIndex identificano in modo univoco una voce MIB_IPINTERFACE_ROW .
Quando un pacchetto unicast arriva a un host, l'indirizzo IP deve determinare se il pacchetto è destinato localmente (la destinazione corrisponde a un indirizzo assegnato a un'interfaccia dell'host). Le implementazioni IP che seguono un modello host debole accettano qualsiasi pacchetto destinato in locale, indipendentemente dall'interfaccia in cui è stato ricevuto il pacchetto. Le implementazioni IP che seguono il modello host sicuro accettano pacchetti destinati in locale solo se l'indirizzo di destinazione nel pacchetto corrisponde a un indirizzo assegnato all'interfaccia in cui è stato ricevuto il pacchetto. Il modello host debole offre una migliore connettività di rete. Tuttavia, rende gli host sensibili agli attacchi di rete multihome.
L'implementazione IPv4 corrente in Windows Server 2003 e Windows XP usa il modello host debole. In questo caso, tutti i pacchetti unicast vengono inviati all'interfaccia con la metrica più bassa per una route.
Lo stack TCP/IP in Windows Vista e versioni successive supporta il modello host sicuro sia per IPv4 che per IPv6 ed è configurato per l'uso della modalità host complessa per impostazione predefinita (i membri WeakHostReceive e WeakHostSend sono impostati su FALSE). Con la modalità host sicuro, è possibile inviare un pacchetto unicast a un'interfaccia specifica che non ha la metrica più bassa per una route associando il socket all'indirizzo di origine dell'interfaccia specifica.
Lo stack TCP/IP in Windows Vista e versioni successive può essere configurato per l'uso di un modello host debole.
Una metrica è un valore assegnato a una route IP per una particolare interfaccia di rete che identifica il costo associato all'uso di tale route. Ad esempio, la metrica può essere valutata in termini di velocità di collegamento, conteggio hop o ritardo di tempo. La metrica automatica è una funzionalità di Windows XP e versioni successive che configura automaticamente la metrica per le route locali basate sulla velocità di collegamento. La funzionalità di metrica automatica è abilitata per impostazione predefinita ( UseAutomaticMetric è impostata su TRUE) in Windows XP e versioni successive. Può anche essere configurato manualmente per assegnare una metrica specifica a una route IP.
La funzionalità di metrica automatica può essere utile quando la tabella di routing contiene più route per la stessa destinazione. Ad esempio, un computer con un'interfaccia di rete a 10 megabit e un'interfaccia di rete a 100 megabit ha un gateway predefinito configurato in entrambe le interfacce di rete. Quando UseAutomaticMetric è TRUE, questa funzionalità può forzare tutto il traffico destinato a Internet, ad esempio, per usare l'interfaccia di rete più veloce disponibile.
La metrica di interfaccia specificata nel membro Metric rappresenta solo la metrica per l'interfaccia. La metrica di routing completa è una combinazione di questa metrica di interfaccia aggiunta all'offset della metrica di route specificato nel membro Metric della struttura MIB_IPFORWARD_ROW2 di una voce di route specificata in questa interfaccia.
L'accesso simultaneo senza privilegi a più reti di requisiti di sicurezza diversi crea un foro di sicurezza e consente a un'applicazione senza privilegi di inoltrare accidentalmente i dati tra le due reti. Un esempio tipico è l'accesso simultaneo a una rete privata virtuale (VPN) e a Internet. Windows Server 2003 e Windows XP usano un modello host debole, in cui RAS impedisce tale accesso simultaneo aumentando la metrica di route di tutte le route predefinite su altre interfacce. Di conseguenza, tutto il traffico viene instradato attraverso l'interfaccia VPN, interrompendo la connettività di rete.
In Windows Vista e versioni successive viene usato un modello host sicuro per impostazione predefinita. Se un indirizzo IP di origine viene specificato nella ricerca della route usando GetBestRoute2 o GetBestRoute, la ricerca della route è limitata all'interfaccia dell'indirizzo IP di origine. La modifica della metrica di route da RAS non ha alcun effetto perché l'elenco di potenziali route non ha nemmeno la route per l'interfaccia VPN consentendo così il traffico verso Internet. Il membro DisableDefaultRoutes della struttura MIB_IPINTERFACE_ROW può essere usato per disabilitare l'uso della route predefinita in un'interfaccia. Questo membro può essere usato come misura di sicurezza da parte dei client VPN per limitare il split tunneling quando il split tunneling non è richiesto dal client VPN. Un client VPN può chiamare la funzione SetIpInterfaceEntry per impostare il membro DisableDefaultRoutes su TRUE quando necessario. Un client VPN può eseguire una query sullo stato corrente del membro DisableDefaultRoutes chiamando la funzione GetIpInterfaceEntry .
Si noti che il file di intestazione Netioapi.h viene incluso automaticamente nel file di intestazione Iphlpapi.h . Il file di intestazione Netioapi.h non deve mai essere usato direttamente.
Esempio
Per visualizzare un esempio che recupera la struttura MIB_IPINTERFACE_TABLE e quindi stampa alcuni membri delle voci della struttura MIB_IPINTERFACE_ROW in questa tabella, vedere la funzione GetIpInterfaceTable .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Intestazione | netioapi.h (include Iphlpapi.h) |