Το VM του Vagrant εξαφανίζεται όταν συνδέεται το VPN: ποιανού διαδρομή έσπασε
Ένα μηχάνημα που απαντούσε πριν από ένα λεπτό εξαφανίζεται τη στιγμή της σύνδεσης. Αποφασίστε ποιος κατέχει τη σπασμένη διαδρομή πριν αλλάξετε οτιδήποτε.
Το μηχάνημα απαντούσε πριν από ένα λεπτό, το VPN συνδέθηκε και τώρα η ίδια διεύθυνση λήγει σε χρονικό όριο. Τρεις βλάβες παράγουν αυτό το σύμπτωμα και κατοικούν σε διαφορετικά μηχανήματα. Ο κεντρικός υπολογιστής μπορεί να χάσει τη διαδρομή προς το ιδιωτικό δίκτυο, το εύρος NAT του φιλοξενούμενου μπορεί να συγκρουστεί με ένα εύρος που διαφημίζει τώρα η σήραγγα, ή μια πλήρης σήραγγα μπορεί να αναλάβει την κυριότητα κάθε διαδρομής στον κεντρικό υπολογιστή. Βρείτε ποια συνέβη πριν αλλάξετε οποιαδήποτε ρύθμιση, γιατί κάθε διόρθωση κατοικεί αλλού.
Παρατηρήστε τη διαδρομή, όχι το μηχάνημα
Κοιτάξτε την απόφαση δρομολόγησης του κεντρικού υπολογιστή για τη διεύθυνση του φιλοξενούμενου όσο η σήραγγα είναι ενεργή. Μια διαδρομή που δείχνει ακόμη στον προσαρμογέα μόνο για κεντρικό υπολογιστή δεν είναι το πρόβλημα. Μια διαδρομή που δείχνει τώρα στον προσαρμογέα VPN είναι το πρόβλημα, και την άλλαξε ο πελάτης, όχι εσείς. Το ότι ο προσαρμογέας κρατά τη διεύθυνσή του λέει ότι η διεπαφή επέζησε, γεγονός διαφορετικό από το ότι επέζησε η διαδρομή.
Μια συνεδρία SSH που πέφτει ακριβώς τη στιγμή της σύνδεσης είναι αναμενόμενη συμπεριφορά. Ο πελάτης ανακυκλώνει προσαρμογείς και εγκαθιστά διαδρομές, οπότε η σύνδεση πεθαίνει για λίγα δευτερόλεπτα. Η βλάβη είναι η σύνδεση που δεν επιστρέφει ποτέ, όχι αυτή που απλώς αναβόσβησε.
Καταγράψτε τον πίνακα πριν από τη σήραγγα και ξανά μετά από αυτήν, έπειτα συγκρίνετε τις δύο εξόδους. Η διαφορά είναι η διάγνωση και τυγχάνει επίσης να είναι το αποδεικτικό που θα ζητήσει ο ιδιοκτήτης του δικτύου.
ip -4 route get 192.168.56.10
ip -brief addr show
ip route show table main | head -20Διαβάστε τον πίνακα του κεντρικού υπολογιστή πριν και μετά
Στο Linux η προτίμηση μεταξύ επικαλυπτόμενων διαδρομών προκύπτει από το μήκος του προθέματος και τη μετρική, οπότε μια πιο ειδική διαδρομή VPN κερδίζει ακόμη και όταν είναι λάθος. Στα Windows η μετρική της διεπαφής αποφασίζει την ισοπαλία, και ο προσαρμογέας της σήραγγας συνήθως φτάνει με χαμηλότερη μετρική από τον εικονικό. Και στις δύο περιπτώσεις το ορατό σύμπτωμα είναι ίδιο: τα πακέτα φεύγουν από τον προσαρμογέα της σήραγγας και εξαφανίζονται.
Εκτυπώστε τους προσαρμογείς και τις μετρικές τους δίπλα στη διαδρομή για το πρόθεμα του φιλοξενούμενου. Αυτό το ζεύγος εξόδων απαντά στο ερώτημα της κυριότητας με μια ματιά.
Get-NetAdapter | Select-Object Name, InterfaceIndex, InterfaceMetric
Get-NetRoute -DestinationPrefix 192.168.56.0/24
route print -4 | Select-String '192.168.56'Αν η διαδρομή άλλαξε αλλά η μετρική του προσαρμογέα όχι, ο πελάτης εγκατέστησε ανταγωνιστική διαδρομή. Αν η μετρική άλλαξε, ο πελάτης αναδιέταξε τους προσαρμογείς. Και τα δύο διορθώνονται, και διορθώνονται σε διαφορετικά σημεία.
Όταν το εύρος NAT του φιλοξενούμενου είναι η σύγκρουση
Το VirtualBox NAT χρησιμοποιεί από προεπιλογή το 10.0.2.0/24, και μια σήραγγα που σπρώχνει το ίδιο εύρος κάνει τον φιλοξενούμενο να στέλνει αυτή την κίνηση στην πύλη NAT του αντί για τον πραγματικό προορισμό. Το πακέτο δεν φεύγει ποτέ από τον κεντρικό υπολογιστή, οπότε κανένα αρχείο καταγραφής τείχους προστασίας στην άλλη πλευρά δεν θα το δείξει. Το Docker Machine έχει την ίδια κατηγορία σύγκρουσης στο σχέδιο μόνο για κεντρικό υπολογιστή, και η αλλαγή αυτού του σχεδίου μπορεί να απαιτεί επαναδημιουργία του μηχανήματος μαζί με τα πιστοποιητικά του.
Διαλέξτε την αντικατάσταση απαριθμώντας τι διαφημίζει ήδη η σήραγγα, έπειτα τι χρησιμοποιεί το δίκτυο του γραφείου και έπειτα τι έχει διεκδικήσει κάθε εικονικός προσαρμογέας σε αυτόν τον κεντρικό υπολογιστή. Η επικάλυψη σπάει τη δρομολόγηση, και η ομοιότητα είναι άσχετη. Ένα εύρος μπορεί να κάθεται ολόκληρο μέσα σε άλλο ενώ με μια ματιά δεν μοιάζει καθόλου.
Ορίστε το νέο εύρος όταν δημιουργείται το μηχάνημα, ή αλλάξτε το και επαναφορτώστε, και έπειτα δοκιμάστε ξανά την αποτυχημένη σύνδεση από τον φιλοξενούμενο. Ο πίνακας του ίδιου του φιλοξενούμενου είναι η όψη που μετράει.
VBoxManage modifyvm devbox --natnet1 10.77.0.0/24
vagrant reload devbox --provision
vagrant ssh devbox -c 'ip route get 10.20.0.15'Επαναφέρετε τη διαδρομή χωρίς να παλέψετε με τον πελάτη
Κάθε πλατφόρμα προσφέρει έναν τρόπο να φέρει μπροστά ξανά το πρόθεμα μόνο για κεντρικό υπολογιστή. Στο macOS μια στατική διαδρομή προς τη διεπαφή μόνο για κεντρικό υπολογιστή λειτουργεί μέχρι την επόμενη σύνδεση. Στα Windows μια χαμηλότερη μετρική διεπαφής στον εικονικό προσαρμογέα τον κρατά προτιμώμενο. Στο Linux μια πράξη αντικατάστασης καλύπτει ένα μόνο πρόθεμα. Και τα τρία είναι προσωρινές λύσεις, γιατί ένας πελάτης που επιβάλλει ξανά τις διαδρομές του θα τις ακυρώσει.
Γράψτε τον έλεγχο ως σενάριο αντί για τυφλή επανασύνδεση κατά την εκκίνηση. Ένα μικρό σενάριο που εκτυπώνει τη διαδρομή για το πρόθεμα του φιλοξενούμενου μετά από κάθε σύνδεση μετατρέπει ένα μυστήριο σε γραμμή σε ένα αρχείο καταγραφής.
Αν το προφίλ είναι πλήρης σήραγγα, ζητήστε από τον ιδιοκτήτη του δικτύου διαχωρισμένη σήραγγα ή τεκμηριωμένη εξαίρεση. Το να προσθέτετε σιωπηλά διαδρομές που παρακάμπτουν μια πολιτική ασφαλείας δεν είναι διόρθωση, είναι δεύτερο πρόβλημα που φτάνει αργότερα με ελεγκτή.
Ελέγξτε τη διόρθωση και στις δύο πλευρές
Επαληθεύστε τρεις διαδρομές μετά την αλλαγή: κεντρικός υπολογιστής προς φιλοξενούμενο, φιλοξενούμενος προς τον εταιρικό κεντρικό υπολογιστή και φιλοξενούμενος προς το διαδίκτυο. Μια διόρθωση που επαναφέρει μία από αυτές και σπάει άλλη είναι αλλαγή ρύθμισης μεταμφιεσμένη σε επισκευή. Καταγράψτε τις ίδιες εξόδους που συλλέξατε πριν από την αλλαγή, ώστε η σύγκριση να είναι όμοια με όμοια.
Καταγράψτε τη διεπαφή, τη μετρική και τη διαδρομή που άλλαξαν, μαζί με την ώρα, ώστε η επόμενη εμφάνιση να είναι αναζήτηση και όχι ανοικοδόμηση. Αυτή η σημείωση αξίζει περισσότερο από ένα μακρύ νήμα δελτίου.
ip -4 route get 192.168.56.10
traceroute -n -m 4 10.20.0.15
curl -sS -o /dev/null -w '%{http_code}\n' https://example.comΌταν ο κεντρικός υπολογιστής φτάσει ξανά τον φιλοξενούμενο και ο φιλοξενούμενος φτάσει το LAN, έχετε επαναφέρει τη διαδρομή με την οποία ξεκινήσατε. Όταν λειτουργεί μόνο ένα από αυτά, η υπόλοιπη βλάβη βρίσκεται στην περιοχή του άλλου ιδιοκτήτη, και η διαφορά σάς λέει ποια περιοχή είναι.