Windows ignoriert sporadisch Metrik bei mehreren Default-Gateways
Hallo zusammen,
ich nutze seit vielen Jahren regelmäßig VPNs, darunter früher Hamachi, OpenVPN, Cisco und ZeroTier. Manche VPNs konfigurieren einen Default-Gateway der allerdings nicht ins Internet routet.
An sich ist das kein Problem, denkt man. Ich sorge dafür dass die Schnittstellenmetrik der VPN Adapter höher ist als die meines (W-)LAN über das ich ins Internet gehe, und dann sollte das eigentlich funktionieren (meist ist das mit der auto-metrik eh der Fall). route print listet mir entsprechend zwei 0.0.0.0/0 routen mit Metriken analog der Schnittstellenmetriken (VPN deutlich größer als (W-)LAN).
Leider sieht die Realität anders aus. Sowohl unter Windows 10 als auch früher Windows 8 habe ich das Problem dass sporadisch "das Internet ausfällt".
Ein Blick in Wireshark zeigt dann, dass Windows den gesamten Traffik plötzlich über das VPN routet.
Dies passiert gänzlich ohne Schema, mal alle paar Minuten, mal ein paar Stunden garnicht. Mal löst sich das Problem innerhalb ein paar Sekunden von selbst, mal dauert es bis ich die Geduld verliere und den VPN Adapter deaktiviere und reaktiviere.
Ich kann dieses Verhalten weder erklären, noch habe ich bisher irgendwo Beschreibungen dazu gefunden. Trotzdem ist es mir allgegenwärtig, auf unterschiedlichen PCs und mit unterschiedlicher VPN und Windows Software.
Mit OpenVPN hatte ich die Möglichkeit selbst festzulegen, wie die Routen konfiguriert werden. Aber nicht jedes VPN lässt das zu.
Eine Lösung war, die Default-Route aufzusplitten. Statt 0.0.0.0/0 hatte ich einfach 0.0.0.0/1 + 128.0.0.0/1 konfiguriert.
Dies löste das Problem und führte dazu, dass der Default-Gateway des VPN nur angesprungen wurde, wenn keiner mit 0.0.0.0/0 existierte.
Edit: Äh moment, wenn ich recht drüber nachdenke sorgte das dafür dass immer der GW des VPN angesprungen wurde, da die Netzmaske spezifischer ist...
Nun stehe ich mit ZeroTier wieder vor dem Problem... Und es nervt ;)
Gibt es andere, die Ähnliche Erfahrungen gemacht haben? Wie löst ihr das Problem?
Besten Dank!
ich nutze seit vielen Jahren regelmäßig VPNs, darunter früher Hamachi, OpenVPN, Cisco und ZeroTier. Manche VPNs konfigurieren einen Default-Gateway der allerdings nicht ins Internet routet.
An sich ist das kein Problem, denkt man. Ich sorge dafür dass die Schnittstellenmetrik der VPN Adapter höher ist als die meines (W-)LAN über das ich ins Internet gehe, und dann sollte das eigentlich funktionieren (meist ist das mit der auto-metrik eh der Fall). route print listet mir entsprechend zwei 0.0.0.0/0 routen mit Metriken analog der Schnittstellenmetriken (VPN deutlich größer als (W-)LAN).
Leider sieht die Realität anders aus. Sowohl unter Windows 10 als auch früher Windows 8 habe ich das Problem dass sporadisch "das Internet ausfällt".
Ein Blick in Wireshark zeigt dann, dass Windows den gesamten Traffik plötzlich über das VPN routet.
Dies passiert gänzlich ohne Schema, mal alle paar Minuten, mal ein paar Stunden garnicht. Mal löst sich das Problem innerhalb ein paar Sekunden von selbst, mal dauert es bis ich die Geduld verliere und den VPN Adapter deaktiviere und reaktiviere.
Ich kann dieses Verhalten weder erklären, noch habe ich bisher irgendwo Beschreibungen dazu gefunden. Trotzdem ist es mir allgegenwärtig, auf unterschiedlichen PCs und mit unterschiedlicher VPN und Windows Software.
Mit OpenVPN hatte ich die Möglichkeit selbst festzulegen, wie die Routen konfiguriert werden. Aber nicht jedes VPN lässt das zu.
Eine Lösung war, die Default-Route aufzusplitten. Statt 0.0.0.0/0 hatte ich einfach 0.0.0.0/1 + 128.0.0.0/1 konfiguriert.
Dies löste das Problem und führte dazu, dass der Default-Gateway des VPN nur angesprungen wurde, wenn keiner mit 0.0.0.0/0 existierte.
Edit: Äh moment, wenn ich recht drüber nachdenke sorgte das dafür dass immer der GW des VPN angesprungen wurde, da die Netzmaske spezifischer ist...
Nun stehe ich mit ZeroTier wieder vor dem Problem... Und es nervt ;)
Gibt es andere, die Ähnliche Erfahrungen gemacht haben? Wie löst ihr das Problem?
Besten Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 360420
Url: https://administrator.de/contentid/360420
Ausgedruckt am: 24.11.2024 um 19:11 Uhr
22 Kommentare
Neuester Kommentar
Hi,
ich fürchte, Du hast hier ein Mißverständnis bei der "0.0.0.0" Route. Das ist die Default-Route (Default Gateway) und davon sollte ein Host nur eine haben.
Die VPN haben doch alle einen Sinn? Bestimmte, bekannte Netze zu erreichen? Wenn der Rest weiter über Internet gehen soll ("die Welt") dann darf man für diese VPN keine Default Gateways einstellen. Statt dessen jeweils explizite Routen für die jeweiligen Zielnetze.
E.
ich fürchte, Du hast hier ein Mißverständnis bei der "0.0.0.0" Route. Das ist die Default-Route (Default Gateway) und davon sollte ein Host nur eine haben.
Die VPN haben doch alle einen Sinn? Bestimmte, bekannte Netze zu erreichen? Wenn der Rest weiter über Internet gehen soll ("die Welt") dann darf man für diese VPN keine Default Gateways einstellen. Statt dessen jeweils explizite Routen für die jeweiligen Zielnetze.
Statt 0.0.0.0/0 hatte ich einfach 0.0.0.0/1 + 128.0.0.0/1
Ähhh ... Hä?E.
eführt dass der Default-GW des VPN gegenüber dem des (W-)LAN bevorzugt wurde, weil er ja spezifischer ist...
Eben.0.0.0.0/1 -> Route für 0.0.0.1 bis 127.255.255.255
128.0.0.0/1 -> Route für 128.0.0.0 bis 255.255.255.254
Ja schon klar. Ich sehe da bloß keinen Sinn. Es sei denn, man will da sowas wie Last-Verteilung erreichen. Aber darum geht es doch bei Dir nicht.128.0.0.0/1 -> Route für 128.0.0.0 bis 255.255.255.254
Software wie früher Hamachi oder heute ZeroTier erlaubt dir nicht den Default Gateway zu entfernen oder umzukonfigurieren (jedenfalls nicht über vorgesehene Wege).
Warum sollte das nicht gehen? Einfach ein Script im Hintergrund laufen lassen, welches ständig die Routen überprüft. Und wenn eine "falsche" 0.0.0.0-Route auftaucht dann diese entfernen und durch gezielte Routen ersetzen.
Moin,
Ganz einfach: Windows spinnt, wenn man mehr als eind default route setzt, egal wascdie Metriken sagen.
Deshalb ist es eine Binsenweosheit, unter Windows das niemals zu machen.
Eigentlich macht man das am client gar nicht, sondern überläßt das routen der Routinginfrastruktur, sprich den Routern.
lks
Ganz einfach: Windows spinnt, wenn man mehr als eind default route setzt, egal wascdie Metriken sagen.
Deshalb ist es eine Binsenweosheit, unter Windows das niemals zu machen.
Eigentlich macht man das am client gar nicht, sondern überläßt das routen der Routinginfrastruktur, sprich den Routern.
lks
Windows benutzt meines Wissens immer das Default Gateway jener NIC, deren Bindung an oberster Stelle steht. Egal, was man da an Metric eingetragen hat.
Wenn Du da also VPN hast, die zu- und abgeschaltet werden, dann landet u.U. immer eine ander Schnittstelle an oberster Stelle und damit deren GW.
Du müsstest also dafür sorgen, dass die NIC mit dem gewünschten Default Gateway immer an erster Stelle steht.
Wenn Du da also VPN hast, die zu- und abgeschaltet werden, dann landet u.U. immer eine ander Schnittstelle an oberster Stelle und damit deren GW.
Du müsstest also dafür sorgen, dass die NIC mit dem gewünschten Default Gateway immer an erster Stelle steht.
Ganz einfach: Windows spinnt, wenn man mehr als eind default route setzt
Spinnen in der Hinsicht das Windows es primär abhängig von der Bindungsreihenfolge macht. Das Gateway mit der höheren Bindungsreihenfolge gewinnt und das sind in der Regel nicht die virtuellen Interfaces der VPNs.Da stellt sich jetzt die Frage wie Windows dann spezifisch bei Konflikten zw. Bindungsreihenfolge und Route Metriken umgeht.
Diese Logik müsste man kennen. Spannend wäre dann sicher mal ein Vergleich mit einem unixoiden OS wie sich dort ein Client unter gleichen Bedingungen verhält bzw. wer da mehr Standard konformer ist.
Letztlich hat Kollege emeriks aber Recht in der Grundeinschätzung. Ein Endgerät ist eben kein Router und verhält sich dementsprechend auch (etwas) anders.
Danke, hilft mir aber nicht.
Nein mir auch nicht. Denn die Metrik ist bei einem Router das einzige Kriterium. Bei Windows aber eben nicht, denn dort ist es primär eben die Bindungsreihenfolge. Da aber keiner so richtig weiss WIE diese beiden Parameter dort interagieren was das layer 3 Forwarding anbetrifft bleibt es wohl bei Raterei. Bei wechselnden sich ab- und aufbauenenden virtuellen VPN Interfaces ist genau die Bindungsreihenfolge eben kein statischer Wert. Die Metrik ja.
gibt es bei Windows 10 keine separate Bindungsreihenfolge mehr
Kann ich hier nicht bestätigen... Mehrere Laptops mit Creators Update 1709 stoppen sofort das Internet via WLAN (def. Gate) wenn ihnen z.B. von einem testweise aufgesteckten DHCP am LAN Port ein weiteres blindes Default Gateway gleicher Metrik angeboten wird. Statisches Gateway ebenso.Laut deiner Theorie sollte das ja dann nicht passieren. Wäre das Gateway nicht blind müsste Windows ein Session basiertes Balancing machen bei gleicher Metrik. Das passiert bei Windows logischerweise auch nicht.
Mit standartisiertem Verhalten hat das also weniger zu tun, denn irgendwie spielt immer eine Bindungsreihenfolge in die L3 Forwarding Entscheidung mit rein.
da ist in der Theorie glasklar was zu tun ist.
In der Theorie schon. Aber seit wann hält sich MS an bekannte Standards. Mit Netzwerk haben die das ja bekanntermaßen nicht so. Man denke da nur an das Drama mit dem Lastenausgleich (NLB) und anderen Katastrophen.Dort konformes Verhalten zu erwarten ist wohl Utopie.
Mal ernsthaft anders herum betrachtet:
Diese Einstellung des Standard Gateways beim Aufbau einer VPN-Verbindung über Internet von einem Client auf das Gateway des VPN-Tunnels hat auch etwas mit Selbstschutz zu tun. Man will damit i.A. verhindern, dass der Client damit zum "Router" zwischen einem fremden Netz (u.U. gar dem Internet) und dem privaten Netzwerk, in welches das VPN eingewählt ist, wird. Genau so, wie man nicht will, dass ein interner Client parallel zum internen Netzwerk noch unkontrolliert über eine andere Leitung "an der IT vorbei" im Internet hängt.
Wofür braucht dieser Client eigentlich gleich mehrere VPN-Tunnel gleichzeitig? Wäre das nicht besser bei einem entsprechenden Router aufgehoben?
Diese Einstellung des Standard Gateways beim Aufbau einer VPN-Verbindung über Internet von einem Client auf das Gateway des VPN-Tunnels hat auch etwas mit Selbstschutz zu tun. Man will damit i.A. verhindern, dass der Client damit zum "Router" zwischen einem fremden Netz (u.U. gar dem Internet) und dem privaten Netzwerk, in welches das VPN eingewählt ist, wird. Genau so, wie man nicht will, dass ein interner Client parallel zum internen Netzwerk noch unkontrolliert über eine andere Leitung "an der IT vorbei" im Internet hängt.
Wofür braucht dieser Client eigentlich gleich mehrere VPN-Tunnel gleichzeitig? Wäre das nicht besser bei einem entsprechenden Router aufgehoben?
Ich habe jetzt keine Quelle zur Hand, aber ausgedacht habe ich mir das nicht. Das ist mir vor Jahren schon "über den Weg gelaufen".
Es muss kein Routing sein. Proxy geht auch. Man stelle sich vor, der Client ist infiziert. Jemand kann sich draufschalten, wenn der Client im Internet ist. Wenn der Client Verbindung zu einem Netzwerk hat, dann kann man den Client u.U. als Bastion Host benutzen und sich in dieses Netzwerk weiterhangeln.
Wenn beim Aufbau des VPN durch das Setzen des VPN Standard Gateways an erster Stelle erfolgt, dann würde der Client seine "normale" Kommunikation mit dem Internet verlieren. Ein Externer könnte also nicht gleichzeitig von außen initiert auf den Client zugreifen und sich in das VPN hinein weiterhangeln.
Habe soeben bei Mutti etwas gefunden:
You Cannot Connect to the Internet After You Connect to a VPN Server
Das bezieht sich zwar noch auf Win2000 und NT4 aber es gilt sicher immer noch.
Und hier noch ein Beispiel:
Can’t connect to Internet while VPN is connected
Es muss kein Routing sein. Proxy geht auch. Man stelle sich vor, der Client ist infiziert. Jemand kann sich draufschalten, wenn der Client im Internet ist. Wenn der Client Verbindung zu einem Netzwerk hat, dann kann man den Client u.U. als Bastion Host benutzen und sich in dieses Netzwerk weiterhangeln.
Wenn beim Aufbau des VPN durch das Setzen des VPN Standard Gateways an erster Stelle erfolgt, dann würde der Client seine "normale" Kommunikation mit dem Internet verlieren. Ein Externer könnte also nicht gleichzeitig von außen initiert auf den Client zugreifen und sich in das VPN hinein weiterhangeln.
Habe soeben bei Mutti etwas gefunden:
You Cannot Connect to the Internet After You Connect to a VPN Server
Das bezieht sich zwar noch auf Win2000 und NT4 aber es gilt sicher immer noch.
Und hier noch ein Beispiel:
Can’t connect to Internet while VPN is connected