Μια κοντινή απάντηση DNS μοιάζει με λυμένο πρόβλημα μέχρι η σύνδεση να προσγειωθεί αλλού. Το γεωγραφικό DNS και το άνικαστ προσπαθούν και τα δύο να συντομεύσουν τη διαδρομή και παίρνουν αυτή την απόφαση από διαφορετικές πληροφορίες. Κανένα δεν εγγυάται ότι η πύλη που φτάνετε είναι προσβάσιμη, ότι παρουσιάζει την ταυτότητα που περιμένει ο πελάτης σας ή ότι η συνεδρία σας επιβιώνει από αλλαγή κόμβου. Οι έλεγχοι παρακάτω χωρίζουν αυτά τα τέσσερα ερωτήματα.

Ελέγξτε ποια τοποθεσία αναφέρει πραγματικά ο επιλυτής

Ένας αυθεντικός διακομιστής που απαντά σε ερώτημα ευαίσθητο στην τοπολογία βλέπει συνήθως τη διεύθυνση του αναδρομικού επιλυτή που ρώτησε, όχι τη διεύθυνση του ατόμου που πληκτρολόγησε το όνομα. Ένας συγκεντρωτικός επιλυτής μπορεί να βρίσκεται μακριά από τους πελάτες που εξυπηρετεί, και η απάντηση αντανακλά τον επιλυτή και όχι αυτούς. Δεν πρόκειται για ελάττωμα· έτσι συμπεριφέρεται το πρωτόκολλο, εκτός αν δοθούν πρόσθετες πληροφορίες. Προδιαγραφή του υποδικτύου πελάτη στο EDNS περιγράφει και τον περιορισμό και την προαιρετική διόρθωση.

Το υποδίκτυο πελάτη του EDNS μπορεί να μεταφέρει πληροφορίες δικτύου προέλευσης όταν κάθε συμμετέχων το υποστηρίζει και το ενεργοποιεί. Είναι προαιρετικό, έχει συνέπειες για την ιδιωτικότητα και την προσωρινή μνήμη, και δεν αποτελεί άδεια να υποθέσετε ότι οποιοσδήποτε δημόσιος επιλυτής αναφέρει ακριβή τοποθεσία χρήστη. Ρωτήστε τους διαχειριστές επιλυτών πριν σχεδιάσετε γύρω από αυτό.

dig +short vpn.example.com @1.1.1.1
dig +short vpn.example.com @9.9.9.9
dig +subnet=203.0.113.0/24 +short vpn.example.com

Ελέγξτε τι αποφάσισε η δρομολόγηση άνικαστ

Με το άνικαστ, πολλές τοποθεσίες διαφημίζουν προσβασιμότητα για μία διεύθυνση υπηρεσίας και το δίκτυο παραδίδει κάθε πελάτη στον κόμβο που προτιμά η δρομολόγησή του. Αυτή την επιλογή την κάνουν το BGP και η γύρω πολιτική, όχι η απόσταση στον χάρτη. Η τοπολογική εγγύτητα επίσης δεν ισούται γενικά με καλύτερη απόδοση μετ επιστροφής, γιατί η διαδρομή που φαίνεται κοντινή μπορεί να είναι συμφορημένη ή ασύμμετρη. Η διεύθυνση που σας δόθηκε δεν λέει τίποτα για το ποιος κόμβος απάντησε.

Επιβεβαιώστε την τοποθεσία εξυπηρέτησης από την πλευρά της υπηρεσίας ή από μια απάντηση που την ονομάζει, όχι μόνο από την απάντηση DNS. Το traceroute -n 198.51.100.20 δείχνει τη διαδρομή που ακολουθήσατε και πάλι δεν ονομάζει τον υπολογιστή στο τέλος της, οπότε διαβάστε το ως διαδρομή και όχι ως απάντηση.

Ελέγξτε ότι η συνεδρία επιβιώνει από αλλαγή κόμβου

Ένα ερώτημα DNS είναι σύντομο και μια συνεδρία VPN είναι μακρά, και τα δύο έχουν εντελώς διαφορετικές απαιτήσεις κατάστασης. Η δρομολόγηση μπορεί να μετατοπιστεί στα μέσα της συνεδρίας και όταν συμβεί αυτό, μεταγενέστερα πακέτα μπορεί να φτάσουν σε κόμβο που δεν έχει δει ποτέ τη σήραγγά σας. Το αν αυτό είναι επιβιώσιμο εξαρτάται από την υλοποίηση: κοινή κατάσταση, σκόπιμη επανασύνδεση ή τεκμηριωμένη αποτυχία. Η διεύθυνση μόνη δεν παρέχει τίποτα από αυτά.

Παρατηρήστε τη μετατόπιση αντί να την υποθέσετε. Το sudo tcpdump -ni any -c 20 esp δείχνει τα εξωτερικά πακέτα καθώς αλλάζει η διαδρομή, και μια ξαφνική αλλαγή στη διεύθυνση του ομοτίμου είναι η ίδια η μετατόπιση. Ορίστε ρητά την επιδιωκόμενη συμπεριφορά για την υλοποίηση που εκτελείτε και μετά δοκιμάστε την επιβάλλοντας αλλαγή διαδρομής. Αν ο σχεδιασμός υποθέτει αναπαραγωγή συνεδρίας, ονομάστε τον μηχανισμό και ονομάστε την αποτυχία που δεν καλύπτει.

Ελέγξτε ότι η ταυτότητα εξακολουθεί να ταιριάζει

Κάθε σημείο εισόδου πρέπει να παρουσιάζει την ταυτότητα που περιμένει το προφίλ του πελάτη σας. Ένα πιστοποιητικό που εκδόθηκε για το όνομα της υπηρεσίας λειτουργεί σε όλους τους κόμβους, ενώ τα πιστοποιητικά ανά κόμβο αναγκάζουν τον πελάτη να δεχτεί κάτι νέο, και εκεί ακριβώς μαθαίνουν οι χρήστες να πατάνε τις προειδοποιήσεις. Κρατήστε την αναμενόμενη ταυτότητα και το προφίλ συνεπή με το μοντέλο εισόδου.

Ελέγξτε το από έναν πελάτη που έφτασε σε ασυνήθιστο κόμβο, γιατί εκείνη είναι η περίπτωση όπου ένα πιστοποιητικό ανά κόμβο γίνεται ορατό. Το openssl s_client -connect vpn.example.com:443 -servername vpn.example.com εκτυπώνει την αλυσίδα και τα ονόματα, που είναι ακριβώς αυτό που συγκρίνει ο πελάτης. Έπειτα αποφασίστε αν το προφίλ πρέπει να περιοριστεί ή το μοντέλο πιστοποιητικών να αλλάξει.

Ελέγξτε το αρχείο, όχι μόνο την πρώτη απάντηση

Αξιολογήστε τρία σενάρια και γράψτε τέσσερα γεγονότα για το καθένα: κανονική είσοδος, μία τοποθεσία μη διαθέσιμη και η συμφωνημένη περίπτωση ανάκαμψης. Τα τέσσερα γεγονότα είναι ο επιλυτής που χρησιμοποιήθηκε, η διεύθυνση που επιστράφηκε, η τοποθεσία που εξυπηρέτησε και ένα φρέσκο αποτέλεσμα εφαρμογής. Αυτό το αρχείο χωρίζει ένα πρόβλημα επιλογής DNS από πρόβλημα πύλης, πρόβλημα δρομολόγησης ή πρόβλημα κατάστασης συνεδρίας. Χωρίς αυτό, και τα τέσσερα φαίνονται ίδια από την πλευρά του πελάτη.

dig +short vpn.example.com
getent hosts vpn.example.com
curl -s -o /dev/null -w "%{http_code}
" https://vpn.example.com/health

Εκτελέστε τα σενάρια από αντιπροσωπευτικά δίκτυα πρόσβασης και όχι μόνο από το γραφείο, γιατί όλο το ζήτημα αφορά το ποιο σημείο εισόδου φτάνουν πραγματικά διαφορετικοί πελάτες. Ένα δίκτυο είναι δείγμα ενός.

Σχετικά άρθρα