Windows Interface Metrik
Eine IP-Verbindung ist nicht mehr genug. Mittlerweile haben Computer zwei oder sogar mehr Netzwerkkarten, die sogar parallel aktiv sein können. Das führt zu allerlei Herausforderungen, für die sie auch wissen müssen, wie Windows die "Metrik" eines Interface ermittelt. Das hat durchaus Auswirkungen beim Einsatz von WLAN, VPN aber auch wie Skype, Teams u.a. mit Audio-Übertragungen umgehen.
Achtung: Das Verhalten hat sich mit dem Windows 10 gegenüber 8.x und früher umfangreich geändert.
Outbound Routing
Wenn ein Client nur genau eine Netzwerkverbindung hat, dann ist der Weg für ausgehende Pakete, egal ob vom Client initiiert oder als Antwort gesendet, klar beschrieben. Alles muss durch diese Netzwerkkarte gehen. Interessanter wird es, wenn ein Client mehr als eine Netzwerkkarte hat. Schon mein Notebook ist mit vielen Schnittstellen gesegnet, die sich als Netzwerkkarte dem IP-Stack zu erkennen geben. Die grafische Anzeige liefert dabei nur eine Teilmenge:
Erst in der erweiterten Ansicht finde ich alle Netzwerkkarten als Liste:
Ab jetzt geht es aber mit der PowerShell weiter. Zuerst noch einmal die Schnittstellen.
Um die Listen übersichtlicher zu halten, beschränke ich mit auf IPv4. Die Aussagen gelten natürlich auch für IPv6.
PS C:\> Get-NetIPInterface ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp ConnectionState PolicyStore ------- -------------- ------------- ------------ --------------- ---- --------------- ----------- 46 vEthernet (Extern) IPv4 1500 25 Enabled Connected ActiveStore 38 vEthernet (Intern Switch) IPv4 1500 15 Enabled Connected ActiveStore 59 vEthernet (Default Switch) IPv4 1500 5000 Disabled Connected ActiveStore 19 LAN-Verbindung* 3 IPv4 1500 25 Enabled Disconnected ActiveStore 40 Bluetooth-Netzwerkverbindung IPv4 1500 65 Enabled Disconnected ActiveStore 45 LAN-Verbindung* 1 IPv4 1500 25 Disabled Connected ActiveStore 41 T480s-LAN IPv4 1500 5 Enabled Disconnected ActiveStore 32 Mobilfunk IPv4 1500 25 Disabled Disconnected ActiveStore 37 WLAN IPv4 1500 50 Enabled Connected ActiveStore 1 Loopback Pseudo-Interface 1 IPv4 4294967295 75 Disabled Connected ActiveStore
Mein Notebook hat zu dem Zeitpunkt insgesamt 10! IP-Schnittstellen, von denen sogar sechs den ConnectionState = Connected" haben. Allerdings sehen Sie in der PowerShell das "Loopback-Interface", welches in der GUI fehlt. Dafür erscheint hier die VPN-Verbindung nicht, wenn das VPN nicht aktiv ist. Interessant ist hier die "InterfaceMetric", welche individuelle Werte angenommen hat. Das Verfahren hat Microsoft ausführlich dokumentiert:
- Erläuterung der Funktion „Automatische
Metrik“ für IPv4-Routen
https://support.microsoft.com/de-de/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes
Ich habe mal die vier Tabellen nebeneinander gestellt. Nicht jedes OS nutzt jede Abstufung. Ich habe die Felder dann passend gefüllt und grau hinterlegt und als Grafik ausgegeben:
Es ist gut zu sehen, dass WLAN-Schnittstellen unter Windows immer höhere Metriken haben als andere Windows 10 Schnittstellen". Die WLAN-Schnittstelle muss immer eine Stufe schneller sein als die kabelgebundene Schnittstelle, ehe sie verwendet wird.
Bandbreite | Win2000 | XP/7/8/8.1 | Win10 Wireless | Win10 Wired | |
---|---|---|---|---|---|
>=100GB |
5 |
5 |
25 |
5 |
|
>=400GB |
5 |
5 |
25 |
10 |
|
>=10GB |
5 |
5 |
25 |
15 |
|
>=2GB |
5 |
5 |
25 |
20 |
|
>500MB |
10 |
10 |
30 |
25 |
|
>200MB |
10 |
10 |
35 |
25 |
|
>150MB |
20 |
|
40 |
35 |
|
>80MB |
20 |
20 |
45 |
35 |
|
>50MB |
20 |
25 |
50 |
45 |
|
>20MB |
20 |
25 |
55 |
45 |
|
>10MB |
30 |
30 |
60 |
55 |
|
>4MB |
30 |
30 |
65 |
55 |
|
>2M |
40 |
40 |
70 |
65 |
|
>500k |
40 |
40 |
75 |
65 |
|
>200k |
50 |
50 |
80 |
75 |
|
<=200k |
50 |
50 |
85 |
75 |
|
Aber das sind noch nicht alle Schnittstellen, denn es gibt im Betriebssystem auch noch Geräte, die für IP nicht relevant sind. Die bekommen wir mit Get-NetAdapter:
PS C:\> Get-NetAdapter Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- Mobilfunk 15 Fibocom L830-EB 49 Not Present 0 bps vEthernet (Extern) Hyper-V Virtual Ethernet Adapter #3 46 Up F2-20-7A-B3-66-42 1 Gbps LAN-Verbindung* 1 Microsoft Wi-Fi Direct Virtual Adapter 45 Up D6-6D-6D-FF-39-0D 0 bps Mobilfunk 20 Fibocom L830-EB 44 Not Present 0 bps Mobilfunk 13 Fibocom L830-EB 43 Not Present 0 bps T480s-LAN Intel(R) Ethernet Connection (4) I219-V 41 Disconnected 8C-16-45-70-A0-EF 0 bps Bluetooth-Netzwerkverbin… Bluetooth Device (Personal Area Networ… 40 Disconnected D4-6D-6D-FF-39-11 3 Mbps vEthernet (Intern Switch) Hyper-V Virtual Ethernet Adapter #2 38 Up 00-15-5D-66-94-05 10 Gbps WLAN Intel(R) Dual Band Wireless-AC 8265 37 Up D4-6D-6D-FF-39-0D 144.4 Mbps Mobilfunk Fibocom L830-EB 32 Disconnected 98-B0-88-49-5E-53 0 bps FC Dock ThinkPad USB-C Dock Ethernet 31 Up E0-4F-43-5D-79-E1 1 Gbps Mobilfunk 21 Fibocom L830-EB 28 Not Present 0 bps Mobilfunk 12 Fibocom L830-EB 26 Not Present 0 bps Mobilfunk 16 Fibocom L830-EB 21 Not Present 0 bps vEthernet (Default Switc… Hyper-V Virtual Ethernet Adapter 59 Up 00-15-5D-E8-CF-40 10 Gbps Mobilfunk 14 Fibocom L830-EB 17 Not Present 0 bps Mobilfunk 18 Fibocom L830-EB 13 Not Present 0 bps Mobilfunk 17 Fibocom L830-EB 12 Not Present 0 bps Mobilfunk 19 Fibocom L830-EB 4 Not Present 0 bps
Sie sehen hier schon die unterschiedlichen Geschwindigkeit.
Auf meinem Notebook habe ich die HyperV
Rolle installiert. Aber auch ohne "sichtbare" HyperV
Installation kann es diese Netzwerkkarte geben. Erweiterte
Funktion wie z.B. "Credential Guard" nutzen die Windows
Virtualisierung als Sandbox und liefern diese Netzwerkkarte
mit
https://docs.microsoft.com/de-de/windows/security/identity-protection/credential-guard/credential-guard-requirements
Der IP-Stack nutzt für die Bestimmung des "Next Hop" und des ausgehenden Interfaces eines Pakets nicht nur die Routing-Tabelle sondern auch die Metrik. Bei mehreren Wegen zu einem Ziel gilt die Reihenfolge:
- Firewall erlaubt das Paket
Über die Windows Firewall können Sie Pakete erlauben aber auch blockieren. Windows schaut also zuerst einmal, welche Wege für ein Paket durch die Firewall überhaupt möglich sind. - Route ist am "genausten"
Wenn dann noch mehrere Wege übrig sind, dann wird die Zieladresse mit der Routing-Tabelle abgeglichen. Es wird immer die Route genutzt, die am genausten auf das Ziel passt. Die "Default Route 0.0.0.0" kommt also irgendwann ganz hinten. - Niedrigste Metrik zuerst
Sollte es aber mehrere Routen geben, die die gleiche Eignung aufweisen, dann kommt die Metrik ins Ziel
Selbst nach dem Ablaufen der drei Schritte ist es nicht sichergestellt, dass es nur genau ein Ergebnis gibt. Windows kann also durchaus mehrere Verbindungen zur Lastverteilung und Bündelung nutzen.
- Get-NetAdapter
https://docs.microsoft.com/en-us/powershell/module/netadapter/get-netadapter?view=win10-ps - Find-NetRoute
https://docs.microsoft.com/en-us/powershell/module/nettcpip/Find-NetRoute?view=win10-ps
WLAN/LAN Wechsel
Die Metrik wird nicht statisch anhand der Geschwindigkeit zugewiesen, sondern auch der Interface-Typ ist relevant. Das ist ein durchaus abgewogenes System. Stellen Sie sich folgende Konfiguration vor.
- LAN1: Ethernet an einem 100Megabit Port
Es ist selbst im Jahr 2020 nicht mal so selten, dass Desktops noch mit 100MBit betrieben werden. Das kann auch einfach eine Fritz!Box zuhause sein, bei der nur LAN1 mit 1GBit arbeitet und LAN2-4 im Energiesparmode auf 100MBit gedrosselt sind.
- LAN1: WLAN mit >100 Megabit
Windows kann hier ja nur die "ausgehandelte" Geschwindigkeit melden und nicht den real erreichbaren Durchsatz
Wenn beide Netzwerkverbindungen nun auch die gleichen Zugriffe erlauben und die Metric nur an der Geschwindigkeit festgemacht würde, dann wäre das "shared WLAN" günstiger als die LAN-Verbindung. Da war bei früheren Windows-Versionen bis Windows 8.1 sogar der Fall. Erst ab Windows 10 hat Microsoft diese Verhalten verbessert.
- Erläuterung der Funktion „Automatische
Metrik“ für IPv4-Routen
https://support.microsoft.com/de-de/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes
Mit dem Hintergrundwissen können Sie nun vielleicht besser verstehen, warum zumindest "Business-Notebooks" von HP, IBM/Lenovo, Dell, u.a. eine Funktion hatten, um das WLAN abzuschalten, sobald ein LAN-Link vorhanden ist. Einige WLAN-Treiber kenne die Funktion heute noch:
Oder sie planen einen Windows Task ein, der entsprechend getriggert wird.
- So deaktivieren Sie eine kabellose
Netzwerkverbindung, wenn eine kabelgebundene
Verbindung erkannt wird
https://www.dell.com/support/article/de-de/how11386/so-deaktivieren-sie-eine-kabellose-netzwerkverbindung-wenn-eine-kabelgebundene-verbindung-erkannt-wird?lang=de
Mittlerweile kann das ein Administrator für Client mit Windows 8 oder neuer per Gruppenrichtlinie vorgeben:
Damit können Sie in solchen besonderen Situationen das Netzwerk einfacher machen. solche Clients sind dann bei einer LAN-Verbindung auch "sicher" im LAN unterwegs, selbst wenn es nur 10/100 Megabit hat und nutzen nicht ein theoretisch schnelleres WLAN, welches aber andere Herausforderungen an Verfügbarkeit, Abdeckung, Durchsatz u.a. hat.
Sackgassen
Sie brauchen sich auch nicht zu sorgen, wenn es Schnittstellen gibt, die viel niedrigere Metriken haben. Hier sehen Sie mein Interface 38, welches eine HyperV-Netzwerkschnittstelle ist, mit der mein Host mit den Gästen kommunizieren könnte. Die ist, da es ein "internes Netzwerk" mit angezeigten 10GBit ist, sehr schnell und günstig.
PS C:\> Get-NetIPInterface -ConnectionState connected -AddressFamily ipv4 -InterfaceIndex 38 ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp ConnectionState PolicyStore ------- -------------- ------------- ------------ --------------- ---- --------------- ----------- 38 vEthernet (Intern Switch) IPv4 1500 15 Enabled Connected ActiveStore
Aber es gibt natürlich keinen größeren Leitweg und schon gar keine Default Route über diesen Adapter, der mir in die Quere kommt.
PS C:\> Get-NetRoute -InterfaceIndex 38 -AddressFamily ipv4 | ft -AutoSize ifIndex DestinationPrefix NextHop RouteMetric ifMetric PolicyStore ------- ----------------- ------- ----------- -------- ----------- 38 255.255.255.255/32 0.0.0.0 256 15 ActiveStore 38 224.0.0.0/4 0.0.0.0 256 15 ActiveStore 38 169.254.255.255/32 0.0.0.0 256 15 ActiveStore 38 169.254.155.68/32 0.0.0.0 256 15 ActiveStore 38 169.254.0.0/16 0.0.0.0 256 15 ActiveStore
Insofern besteht hier kein Risiko. Kritisch sind also immer Umgebungen, bei denen der Automatismus von Windows 10 nicht ausreichend ist oder Sie noch Windows 8.1 oder älter nutzen, die nur auf die gemeldete Bandbreite schauen.
- Get-NetIPInterface
https://docs.microsoft.com/en-us/powershell/module/nettcpip/Get-NetIPInterface?view=win10-ps - Get-NetRoute
https://docs.microsoft.com/en-us/powershell/module/nettcpip/get-netroute?view=win10-ps
Viele NICs und VoIP
Einfache Clients, die eine TCP/UDP-Verbindung zu einem bekannten Server aufbauen, sind einfach zu erklären. VoIP, d.h. Skype for Business, Teams und andere Produkte nutzen natürlich einen Server für die Signalisierung aber bei der Übertragung von Sprache, Video und Bildschirmen kommen andere Techniken zum Einsatz. Das Verfahren habe ich unter dem Begriff ICE, Kandidaten, STUN und TURN beschrieben und eigene Seiten für die Teams RTP Kommunikation und SfB Media Flow erstellt. VoIP-Produkte nutzen nämlich erst einmal alle Netzwerkarten, um sich da entsprechende Ports zu öffnen und der Gegenseite anzubieten. Mein Client hat eine ganze Menge von IP-Adressen.
PS C:\> Get-NetIPAddress -AddressFamily ipv4 | ft ifIndex IPAddress PrefixLength PrefixOrigin SuffixOrigin AddressState PolicyStore ------- --------- ------------ ------------ ------------ ------------ ----------- 46 192.168.178.91 24 Dhcp Dhcp Preferred ActiveStore 38 169.254.155.68 16 WellKnown Link Preferred ActiveStore 59 172.17.89.49 28 Manual Manual Preferred ActiveStore 19 169.254.109.66 16 WellKnown Link Tentative ActiveStore 40 169.254.75.218 16 WellKnown Link Tentative ActiveStore 45 192.168.137.1 24 Manual Manual Preferred ActiveStore 41 169.254.16.184 16 WellKnown Link Tentative ActiveStore 32 169.254.15.23 16 WellKnown Link Tentative ActiveStore 37 192.168.178.36 24 Dhcp Dhcp Preferred ActiveStore 1 127.0.0.1 8 WellKnown WellKnown Preferred ActiveStore
Von all den IPv4-Adressen ist keine direkte aus dem Internet direkt erreichbar. Die IPv6-Adressen habe ich hier ausgeblendet. Dennoch wird mein Client auch diese Adressen als Kandidaten anbieten. Es könnte sich ja um eine 1:1-Verbindung zwischen zwei Teilnehmern am gleichen Firmen-Standort handeln. Dann kommt die Verbindung idealerweise auch intern zustande.
Um das auszuprobieren, wird der Client die von der Gegenstelle angebotenen Adressen natürlich ansprechen. In der Regel wird RTP aber auch hier über die eine primäre Netzwerkkarte gehen.
VPN - Split oder Tunnel
Bislang habe ich das Thema VPN erst mal außen vorgelassen, da speziell mit Office 365, Exchange, Outlook, ActiveSync ein VPN gar nicht erforderlich oder möglich ist. Die Dienste nutzen einfach HTTPS. Für Desktop-Clients im Homeoffice ist ein VPN aber ein üblicher Weg eine sichere Verbindung zur Firma aufzubauen. Hierbei gibt es zweimal zwei Kriterien:
- Technik
Damit meine ich weniger die Frage nach dem Produkte sondern mehr die Art und Weise, wie das VPN sich auf dem Client darstellt- Virtuelle Netzwerkkarte
Ein normales Windows VPN wird bei aktivier Verbindung als eigene Netzwerkkarte sichtbar. Entsprechend kann es IP-Routen mit Kosten geben, die über die Richtung von ausgehenden IP-Paketen entscheidet. Das normale Windows VPN nutzt z-B. diese Technik. (vormals Routing&RAS) - Paket Filter
Eine andere Option besteht bei der Veränderung des Pakets bei der Übertragung durch den Netzwerk-Stack. So ist eine Verschlüsselung per IPSec-Tunnel ein Beispiel. Windows Direct Access arbeitet z.B. so. Die IP-Routen werden dabei aber nicht angepasst.
- Virtuelle Netzwerkkarte
- IP-Routing
hier sind die beiden Varianten zu unterscheiden- TunnelVPN
Diese lange Zeit bevorzugte Option hat alle Pakete, d.h. DNS-Abfragen und andere Nutzdaten, immer durch den VPN-Tunnel gesendet. Das Routing der Pakete wird in der Regel über eine Anpassung der "Default Route" und niedrige Metriken realisiert. Denken Sie aber daran, dass Verbindungen zu Systemen im gleichen Netzwerk weiterhin direkt möglich sind. So kann der Mitarbeiter im Homeoffice weiterhin z.B. seinen Drucker verwenden. - SplitVPN
Hierbei werden eben nicht alle Pakete durch das VPN gesendet, sondern z.B. nur die Systeme mit privaten Adressen in der FIrma oder zu bestimmten Hostnamen oder DNS-Domänen. Aber alle andere Daten können am VPN vorbei in das Internet gehen. Dieser Weg ist besser, wenn die Anwender verschiedne Clouddienste, insbeosndere Konferenzlösungen aus der Cloud, nutzen. Aber Sie ist auch unsicherer, da eine Malware auf dem Clients als Gateway zwischen Internet und LAN missbraucht werden kann
- TunnelVPN
Ein weiteres Augenmerk müssen Sie auf DNS legen. Ein Client mit VPN kann genaugenommen mehrere DNS-Server haben
- DNS der realen Netzwerkkarte
Ihr Client bekommt meist per DHCP nicht nur eine IP-Adresse und Gateway sondern auch die Adressen der DNS-Server - DNS-Server beim VPN
Sobald ein VPN-Adapter aktiv ist, kann dieser natürlich auch die DNS-Auflösung bestimmen.
Bei einem "Tunnel-VPN" möchte man gerade nicht, dass der Client vielleicht noch einen lokalen DNS-Server fragt, der sicher nichts über die per VPN erreichbaren internen Systeme weiß.
Brauch ich das?
Ich denke ja, denn sowohl bei Servern als auch Clients sind mehrere Netzwerkkarten gar nicht mal untypisch und sie sie sollten schon genau wissen, welchen Weg die Pakete gehen. Denken Sie mal einen Client, der per LAN und WLAN in ihrem Netzwerk ist und über einen 2-Arm-Loadbalancer auf einen Exchange Server-Cluster zugreift, der neben dem MAPI-Netzwerk zu den Clients und Domain Controllern auch noch eine eigene LAN-Verbindung für den Replikationsverkehr hat. Und schon haben wir drei Stationen, die alle mehrere Netzwerkkarten mit unterschiedlichen Kosten haben. Wenn dann noch eine Firewall mit mehreren Netzwerkkarten im Boot ist, dann sollte das IP-Routing sitzen, damit die die maximale Performance und Stabilität liefern können und die Firewall ihnen keine Pakete verwirft, die aus deren Sicht über den falschen Weg kommen.
Weitere Links
- ICE, Kandidaten, STUN und TURN
- SfB Media Flow
- Teams RTP Kommunikation
- Erläuterung der Funktion „Automatische
Metrik“ für IPv4-Routen
https://support.microsoft.com/de-de/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes - Windows Defender Credential Guard: Requirements
https://docs.microsoft.com/de-de/windows/security/identity-protection/credential-guard/credential-guard-requirements