Dräi Bedingunge bestëmmen, ob e Wiechter hëlleft oder schuet: wat d’Prüfung ënnerscheede kann, wéi vill Feeler hannereneen eng Handlung justifizéieren, an ob d’Handlung eng Neiverbindung oder e Wiessel ass. Eng Cron-Zeil, déi eng ëffentlech Adress pingt, äntwert op keng vun hinnen gutt. Et verbënnt Tunnelen nei, déi an der Rei sinn, a léisst Tunnelen, déi abrochen sinn, stoen, an et mécht béides ouni eng Opzeechnung. Den Design, deen et wäert ass ze behalen, mécht déi dräi Wieler explizit.

D’Prüfung ass den Deel, deen alles anescht entscheet.

Wat e Ping an den Internet tatsächlech beweist

E ping op en ëffentleche Resolver weist, datt den lokalen Internetwee lieweg ass. Et beweist net, datt den Tunnel Verkéier dréit, an op engem Profil mat vollem Tunnel reest de Ping selwer duerch den Tunnel, sou datt eng gesond Äntwert an een abrochenen Tunnel gläichzäiteg kënne bestoen, wärend de Client nach Pakete viru schéckt. Wann de Profil Numm-Sich duerch den Tunnel schéckt, gëtt e DNS-Fehler als doudege Link gelies an et fänkt eng Neiverbindung un, déi näischt ka reparéieren.

Keng vun de béide Richtunge vum Feeler erschéngt am Ausgangscode. En Wiechter, deen op deem Signal opgebaut ass, ass e Mënzworf mat engem Cron-Zäitplang.

Prüft eppes, wat hannert dem Tunnel lieft

ip -brief addr show tun0
ip route get 10.100.20.10
nc -z -w3 10.100.20.10 443

Prüft vu bannen, déi bëllegst Kontroll fir d’éischt. Ob d’Schnittstell existéiert, seet, datt den Tunnel steet; eng Routen-Sich op eng bekannt intern Adress seet, datt Verkéier géif eragoe; eng TCP-Prüfung op en Host op der anerer Säit seet, datt wierklech eppes äntwert. Nëmmen Echo-Ufroen täuschen: vill intern Hosten äntweren gäre op TCP, werfen awer ICMP ewech, sou datt en Wiechter op Ping-Basis en Tunnel ëmmer nei verbënnt, deen ni opgehalen huet ze funktionéieren.

Halt d’Prüfung an der Zäit begrenzt a gitt hir en eegene Ausgangsstatus. Eng Prüfung, déi drësseg Sekonnen hänkt, mécht aus engem Wiechter en Ausfalldetektor mat agebauter Verzögerung.

Wielt tëscht enger Zeil an enger Schleif

* * * * * nc -z -w5 10.100.20.10 443 || myvpn reconnect

En Cron-Antrag ass eng eenzeg Zeil ouni Gediechtnis, wat zu engem Laptop passt, wou eng zousätzlech Neiverbindung näischt kascht. Eng bewaacht Schleif hält en Zähler a handelt eréischt no e puer Feeler, wat verhënnert, datt e wackelegen Uschloss e Stuerm vun Neiverbindungen ausléist. Op alle Fall sollt een et ënner engem Supervisor lafe loossen, datt et e Crash iwwerlieft an an de Journal schreift. Entscheet drop, ob eng iwwerflësseg Neiverbindung wichteg ass, net drop, wéi eng Versioun méi kuerz ass.

failures=0
while sleep 30; do
  if nc -z -w5 10.100.20.10 443; then failures=0
  else failures=$((failures+1)); fi
  if [ $failures -ge 3 ]; then myvpn reconnect; failures=0; fi
done

Déi Schleif zielt hannereneen Feeler amplaz vun engem Brochdeel iwwer eng Fënster. Eng Fënster brauch eng Auer an e Gediechtnis vu Proben, a méi vun de Feeler a mëndlech gebauten Wiechter liewen an där Arithmetik.

De Serverwiessel ass eng aner Entscheidung

De Serverwiessel ass anescht wéi Neiverbindung. Rappt d’ale Verbindung fir d’éischt of, well en zweeten Client, deen ufänkt, während den éischten nach d’Adress hält, wäert kollidéieren. Ziel hannereneen Feeler virum Wiessel, begrenz d’Versich, a prüf nach eng Kéier, wann déi nei Verbindung steet, amplaz dem Ausgangsstatus vum connect-Befehl ze vertrauen. Eng falsch Konfiguratioun sollt net an enger Schleif duerch all Server rotéieren.

Prüft net d’ëffentlech Adress vum VPN-Server selwer vun bannen aus engem volle Tunnel. Déi Kontroll hänkt vun deem of, wat se testt, an se mellt Succès, während de Wee, deen se sollt validéieren, fort ass.

Schreift op, wéi eng Prüfung gelaf ass, wat se zréckginn huet a wéi eng Handlung duerno koum. Déi Opzeechnung mécht aus enger mysteriéiser Neiverbindung en diagnostizéierbaren Evenement.

Ähnlech Artikelen