MIB_IPINTERFACE_ROW-Struktur (netioapi.h)
Die MIB_IPINTERFACE_ROW-Struktur speichert Schnittstellenverwaltungsinformationen für eine bestimmte IP-Adressfamilie auf einer Netzwerkschnittstelle.
Syntax
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;
Member
Family
Typ: ADDRESS_FAMILY
Die Adressfamilie. Mögliche Werte für die Adressfamilie sind in der Winsock2.h-Headerdatei aufgeführt. Beachten Sie, dass die Werte für die AF_ Adressfamilie und PF_ Protokollfamilienkonstanten identisch sind (z. B. AF_INET und PF_INET), sodass beide Konstanten verwendet werden können.
Unter Windows Vista und höher sowie auf dem Windows SDK hat sich die organization der Headerdateien geändert, und mögliche Werte für diesen Member werden in der Ws2def.h-Headerdatei definiert. Beachten Sie, dass die Ws2def.h-Headerdatei automatisch in Winsock2.h enthalten ist und niemals direkt verwendet werden sollte.
Die derzeit unterstützten Werte sind AF_INET oder AF_INET6, d. h. die Internetadressfamilienformate für IPv4 und IPv6.
Wert | Bedeutung |
---|---|
|
Die Adressfamilie ist nicht angegeben. |
|
Die IPv4-Adressfamilie (Internet Protocol Version 4). |
|
Die IPv6-Adressfamilie (Internet Protocol Version 6). |
InterfaceLuid
Typ: NET_LUID
Der lokal eindeutige Bezeichner (LUID) für die Netzwerkschnittstelle.
InterfaceIndex
Typ: NET_IFINDEX
Der lokale Indexwert für die Netzwerkschnittstelle. Dieser Indexwert kann sich ändern, wenn ein Netzwerkadapter deaktiviert und dann aktiviert wird, oder unter anderen Umständen, und er sollte nicht als persistent betrachtet werden.
MaxReassemblySize
Typ: ULONG
Die maximale Größe der Neuassembly eines fragmentierten IP-Pakets in Byte. Dieser Member ist derzeit auf 0 (null) festgelegt und für die zukünftige Verwendung reserviert.
InterfaceIdentifier
Typ: ULONG64
Für die zukünftige Verwendung reserviert. Dieser Member ist derzeit auf 0 (null) festgelegt.
MinRouterAdvertisementInterval
Typ: ULONG
Das minimale Router-Ankündigungsintervall in Millisekunden für diese IP-Schnittstelle. Dieser Member ist für IPv6 standardmäßig 200. Dieser Member ist nur anwendbar, wenn das AdvertisingEnabled-Element auf TRUE festgelegt ist.
MaxRouterAdvertisementInterval
Typ: ULONG
Das maximale Router-Ankündigungsintervall in Millisekunden auf dieser IP-Schnittstelle. Dieser Member ist für IPv6 standardmäßig 600. Dieser Member ist nur anwendbar, wenn das AdvertisingEnabled-Element auf TRUE festgelegt ist.
AdvertisingEnabled
Typ: BOOLEAN
Ein Wert, der angibt, ob Routerwerbung auf dieser IP-Schnittstelle aktiviert ist. Die Standardeinstellung für IPv6 ist, dass router advertisement nur aktiviert ist, wenn die Schnittstelle so konfiguriert ist, dass sie als Router fungiert. Die Standardeinstellung für IPv4 ist, dass router advertisement deaktiviert ist.
ForwardingEnabled
Typ: BOOLEAN
Ein -Wert, der angibt, ob die IP-Weiterleitung auf dieser IP-Schnittstelle aktiviert ist.
WeakHostSend
Typ: BOOLEAN
Ein -Wert, der angibt, ob der schwache Host-Sendemodus für diese IP-Schnittstelle aktiviert ist.
WeakHostReceive
Typ: BOOLEAN
Ein -Wert, der angibt, ob der schwache Host-Empfangsmodus auf dieser IP-Schnittstelle aktiviert ist.
UseAutomaticMetric
Typ: BOOLEAN
Ein -Wert, der angibt, ob die IP-Schnittstelle eine automatische Metrik verwendet.
UseNeighborUnreachabilityDetection
Typ: BOOLEAN
Ein -Wert, der angibt, ob die Erkennung der Nichterreichbarkeit von Nachbarn auf dieser IP-Schnittstelle aktiviert ist.
ManagedAddressConfigurationSupported
Typ: BOOLEAN
Ein -Wert, der angibt, ob die IP-Schnittstelle die Konfiguration verwalteter Adressen mithilfe von DHCP unterstützt.
OtherStatefulConfigurationSupported
Typ: BOOLEAN
Ein -Wert, der angibt, ob die IP-Schnittstelle eine andere zustandsbehaftete Konfiguration (z. B. Routenkonfiguration) unterstützt.
AdvertiseDefaultRoute
Typ: BOOLEAN
Ein -Wert, der angibt, ob die IP-Schnittstelle die Standardroute angibt. Dieser Member ist nur anwendbar, wenn das AdvertisingEnabled-Element auf TRUE festgelegt ist.
RouterDiscoveryBehavior
Typ: NL_ROUTER_DISCOVERY_BEHAVIOR
Das Verhalten der Routerermittlung. Dieser Member kann einer der Werte aus dem NL_ROUTER_DISCOVERY_BEHAVIOR Enumerationstyp sein, der in der Headerdatei Nldef.h definiert ist. Das Element wird in RFC 2461 beschrieben. Weitere Informationen finden Sie unter http://www.ietf.org/rfc/rfc2461.txt.
DadTransmits
Typ: ULONG
Die Anzahl der aufeinanderfolgenden Nachrichten, die bei der Erkennung doppelter Adressen für eine vorläufige IP-Unicastadresse gesendet werden. Der Wert 0 (null) gibt an, dass die Erkennung doppelter Adressen für vorläufige IP-Adressen nicht durchgeführt wird. Der Wert 1 gibt eine einzelne Übertragung ohne Folgeweiterübertragungen an. Für IPv4 ist der Standardwert für dieses Element 3. Für IPv6 ist der Standardwert für dieses Element 1. Für IPv6 werden diese Nachrichten als Nachbaranfragen gesendet. Dieses Element ist in RFC 2462 als DupAddrDetectTransmits definiert. Weitere Informationen finden Sie unter http://www.ietf.org/rfc/rfc2462.txt.
BaseReachableTime
Typ: ULONG
Die Basis für zufällig erreichbare Zeit in Millisekunden. Das Element wird in RFC 2461 beschrieben. Weitere Informationen finden Sie unter http://www.ietf.org/rfc/rfc2461.txt.
RetransmitTime
Typ: ULONG
Das Timeout für die Nachbaranfrage in Millisekunden. Das Element wird in RFC 2461 beschrieben. Weitere Informationen finden Sie unter http://www.ietf.org/rfc/rfc2461.txt.
PathMtuDiscoveryTimeout
Typ: ULONG
Das Pfad-MTU-Ermittlungstimeout in Millisekunden.
LinkLocalAddressBehavior
Typ: NL_LINK_LOCAL_ADDRESS_BEHAVIOR
Das Linkverhalten der lokalen Adresse. Dieser Member kann einer der Werte aus dem NL_LINK_LOCAL_ADDRESS_BEHAVIOR Enumerationstyp sein, der in der Headerdatei Nldef.h definiert ist.
LinkLocalAddressTimeout
Typ: ULONG
Das Timeout für die lokale IP-Adresse des Links in Millisekunden.
ZoneIndices[ScopeLevelCount]
Typ: ULONG[ScopeLevelCount]
Ein Array, das den Zonenteil der Bereichs-IDs angibt.
SitePrefixLength
Typ: ULONG
Die Standortpräfixlänge in Bits der IP-Schnittstellenadresse. Die Länge des Standortpräfixes oder des Netzwerkteils der IP-Schnittstellenadresse in Bits. Bei einer IPv4-Adresse ist jeder Wert größer als 32 ein unzulässiger Wert. Bei einer IPv6-Adresse ist jeder Wert größer als 128 ein unzulässiger Wert. Ein Wert von 255 wird häufig verwendet, um einen ungültigen Wert darzustellen.
Metric
Typ: ULONG
Die Schnittstellenmetrik. Beachten Sie, dass die tatsächliche Routenmetrik, die zum Berechnen der Routeneinstellung verwendet wird, die Summe des Routingmetrikenoffsets ist, der im Metrikelement der MIB_IPFORWARD_ROW2-Struktur und der in diesem Element angegebenen Schnittstellenmetrik angegeben ist.
NlMtu
Typ: ULONG
Die MTU-Größe auf Netzwerkebene in Bytes.
Connected
Typ: BOOLEAN
Ein Wert, der angibt, ob die Schnittstelle mit einem Netzwerkzugriffspunkt verbunden ist.
SupportsWakeUpPatterns
Typ: BOOLEAN
Ein Wert, der angibt, ob die Netzwerkschnittstelle Wake on LAN unterstützt.
SupportsNeighborDiscovery
Typ: BOOLEAN
Ein Wert, der angibt, ob die IP-Schnittstelle die Nachbarermittlung unterstützt.
SupportsRouterDiscovery
Typ: BOOLEAN
Ein Wert, der angibt, ob die IP-Schnittstelle die Routerermittlung unterstützt.
ReachableTime
Typ: ULONG
Das erreichbare Timeout in Millisekunden.
TransmitOffload
Typ: NL_INTERFACE_OFFLOAD_ROD
Eine Reihe von Flags, die die Übertragungsauslagerungsfunktionen für die IP-Schnittstelle angeben. Die NL_INTERFACE_OFFLOAD_ROD-Struktur ist in der Headerdatei Nldef.h definiert.
ReceiveOffload
Typ: NL_INTERFACE_OFFLOAD_ROD
Eine Reihe von Flags, die die Empfangsauslagerungsfunktionen für die IP-Schnittstelle angeben. Die NL_INTERFACE_OFFLOAD_ROD-Struktur ist in der Headerdatei Nldef.h definiert.
DisableDefaultRoutes
Typ: BOOLEAN
Ein Wert, der angibt, ob die Verwendung der Standardroute für die Schnittstelle deaktiviert werden soll. Dieses Element kann von VPN-Clients verwendet werden, um das Split Tunneling einzuschränken.
Hinweise
Die MIB_IPINTERFACE_ROW-Struktur wird unter Windows Vista und höher definiert.
Die Member Family, InterfaceLuid und InterfaceIndex identifizieren einen MIB_IPINTERFACE_ROW Eintrag eindeutig.
Wenn ein Unicastpaket auf einem Host eintrifft, muss die IP-Adresse ermitteln, ob das Paket lokal bestimmt ist (sein Ziel entspricht einer Adresse, die einer Schnittstelle des Hosts zugewiesen ist). IP-Implementierungen, die einem schwachen Hostmodell folgen, akzeptieren alle lokal bestimmten Pakete, unabhängig von der Schnittstelle, über die das Paket empfangen wurde. IP-Implementierungen, die dem starken Hostmodell folgen, akzeptieren nur lokal bestimmte Pakete, wenn die Zieladresse im Paket mit einer Adresse übereinstimmt, die der Schnittstelle zugewiesen ist, auf der das Paket empfangen wurde. Das schwache Hostmodell bietet eine bessere Netzwerkkonnektivität. Dies macht Hosts jedoch auch anfällig für Angriffe auf mehrere Heimnetzwerke.
Die aktuelle IPv4-Implementierung in Windows Server 2003 und Windows XP verwendet das schwache Hostmodell. In diesem Fall werden alle Unicastpakete über die Schnittstelle mit der niedrigsten Metrik für eine Route gesendet.
Der TCP/IP-Stapel unter Windows Vista und höher unterstützt das starke Hostmodell sowohl für IPv4 als auch für IPv6 und ist standardmäßig für die Verwendung des starken Hostmodus konfiguriert (die Member WeakHostReceive und WeakHostSend sind auf FALSE festgelegt). Mit dem starken Hostmodus kann ein Unicastpaket an eine bestimmte Schnittstelle gesendet werden, die nicht über die niedrigste Metrik für eine Route verfügt, indem der Socket an die Quelladresse der spezifischen Schnittstelle gebunden wird.
Der TCP/IP-Stapel unter Windows Vista und höher kann für die Verwendung eines schwachen Hostmodells konfiguriert werden.
Eine Metrik ist ein Wert, der einer IP-Route für eine bestimmte Netzwerkschnittstelle zugewiesen ist, die die Kosten identifiziert, die mit der Verwendung dieser Route verbunden sind. Die Metrik kann beispielsweise in Bezug auf Linkgeschwindigkeit, Hopanzahl oder Zeitverzögerung geschätzt werden. Die automatische Metrik ist ein Feature unter Windows XP und höher, das automatisch die Metrik für die lokalen Routen konfiguriert, die auf der Verbindungsgeschwindigkeit basieren. Das Feature für automatische Metriken ist unter Windows XP und höher standardmäßig aktiviert ( UseAutomaticMetric ist auf TRUE festgelegt). Sie kann auch manuell konfiguriert werden, um einer IP-Route eine bestimmte Metrik zuzuweisen.
Das Feature für automatische Metriken kann nützlich sein, wenn die Routingtabelle mehrere Routen für dasselbe Ziel enthält. Beispielsweise verfügt ein Computer mit einer 10-Megabit-Netzwerkschnittstelle und einer 100-Megabit-Netzwerkschnittstelle über ein Standardgateway, das auf beiden Netzwerkschnittstellen konfiguriert ist. Wenn UseAutomaticMetricTRUE ist, kann dieses Feature den gesamten Datenverkehr erzwingen, der für das Internet bestimmt ist, z. B. die schnellste verfügbare Netzwerkschnittstelle zu verwenden.
Die im Metrikelement "Metrik " angegebene Schnittstellenmetrik stellt nur die Metrik für die Schnittstelle dar. Die vollständige Routingmetrik ist eine Kombination dieser Schnittstellenmetrik, die dem Routingmetrikoff hinzugefügt wird, der im Metrikelement der MIB_IPFORWARD_ROW2 Struktur eines Routeneintrags angegeben ist, der für diese Schnittstelle angegeben ist.
Ein nicht privilegierter gleichzeitiger Zugriff auf mehrere Netzwerke mit unterschiedlichen Sicherheitsanforderungen schafft eine Sicherheitslücke und ermöglicht es einer nicht privilegierten Anwendung, Daten versehentlich zwischen den beiden Netzwerken weiterzuspeichern. Ein typisches Beispiel ist der gleichzeitige Zugriff auf ein virtuelles privates Netzwerk (VPN) und das Internet. Windows Server 2003 und Windows XP verwenden ein schwaches Hostmodell, bei dem RAS einen solchen gleichzeitigen Zugriff verhindert, indem die Routenmetrik aller Standardrouten über andere Schnittstellen erhöht wird. Daher wird der gesamte Datenverkehr über die VPN-Schnittstelle weitergeleitet, was die andere Netzwerkkonnektivität beeinträchtigt.
Unter Windows Vista und höher wird standardmäßig ein starkes Hostmodell verwendet. Wenn eine Quell-IP-Adresse in der Routensuche mithilfe von GetBestRoute2 oder GetBestRoute angegeben wird, ist die Routensuche auf die Schnittstelle der Quell-IP-Adresse beschränkt. Die Änderung der Routenmetrik durch RAS hat keine Auswirkungen, da die Liste der potenziellen Routen nicht einmal die Route für die VPN-Schnittstelle enthält, wodurch Datenverkehr ins Internet zugelassen wird. Das DisableDefaultRoutes-Element der MIB_IPINTERFACE_ROW-Struktur kann verwendet werden, um die Standardroute für eine Schnittstelle zu deaktivieren. Dieser Member kann als Sicherheitsmaßnahme von VPN-Clients verwendet werden, um das Split Tunneling einzuschränken, wenn das Split Tunneling vom VPN-Client nicht erforderlich ist. Ein VPN-Client kann die SetIpInterfaceEntry-Funktion aufrufen, um den DisableDefaultRoutes-Member bei Bedarf auf TRUE festzulegen. Ein VPN-Client kann den aktuellen Zustand des DisableDefaultRoutes-Members abfragen, indem er die GetIpInterfaceEntry-Funktion aufruft .
Beachten Sie, dass die Headerdatei Netioapi.h automatisch in der Headerdatei Iphlpapi.h enthalten ist. Die Netioapi.h-Headerdatei sollte nie direkt verwendet werden.
Beispiele
Ein Beispiel, das die MIB_IPINTERFACE_TABLE-Struktur abruft und dann einige Member der MIB_IPINTERFACE_ROW Struktureinträge in dieser Tabelle ausgibt, finden Sie in der GetIpInterfaceTable-Funktion .
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Kopfzeile | netioapi.h (include Iphlpapi.h) |