Ένας χρήστης αναφέρει ότι το όνομα κεντρικού υπολογιστή του intranet δεν επιλύεται μέσω VPN. Μια δεύτερη αναφορά, από τον ίδιο φορητό υπολογιστή, λέει ότι μια δοκιμή διαρροής εξακολουθεί να δείχνει ερωτήματα που απαντά ο τοπικός resolver. Ακούγονται σαν ένα πρόβλημα και είναι δύο, με διαφορετικά στοιχεία, και η συνήθης επιδιόρθωση για το πρώτο χειροτερεύει το δεύτερο. Χωρίστε τα πριν αγγίξετε οποιαδήποτε ρύθμιση.

Δύο συμπτώματα που δεν είναι μία βλάβη

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

Η παγίδα είναι ότι η προσθήκη του resolver του γραφείου παντού διορθώνει το πρώτο και εγγυάται το δεύτερο. Η προσθήκη δημόσιου resolver παντού κάνει το αντίθετο.

Καταγράψτε και τις δύο παρατηρήσεις με χρονική σήμανση και μετά περάστε τους τέσσερις ελέγχους παρακάτω με τη σειρά.

Ποιος resolver του προσαρμογέα παίρνει το ερώτημα

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

Η σειρά σύνδεσης είναι μόνο το πρώτο μισό. Ο πελάτης πρέπει επίσης να ξέρει ποια ονόματα ανήκουν σε αυτόν τον προσαρμογέα, και αυτό είναι ζήτημα επιθήματος, όχι σειράς.

Βάλτε την έξοδο του ipconfig /all από το μηχάνημα που δουλεύει δίπλα σε εκείνη του φορητού, και οι δύο παρμένες με τη σήραγγα ενεργή. Το μηχάνημα που δουλεύει θα δείξει επίθημα DNS ειδικό για τη σύνδεση στον προσαρμογέα γραφείου του, και ο φορητός μπορεί να μη δείξει κανένα στη σήραγγα. Αυτή η διαφορά εξηγεί μια ολόκληρη κατηγορία αναφορών του τύπου ο διακομιστής είναι εκεί και το όνομα εξακολουθεί να αποτυγχάνει, γιατί χωρίς επίθημα το σύντομο όνομα δεν συμπληρώνεται ποτέ στη ζώνη που εξυπηρετεί ο resolver του γραφείου.

Ένα σύντομο όνομα χρειάζεται επίθημα πριν χρειαστεί διαδρομή

Η πληκτρολόγηση μη πλήρους ονόματος υπολογιστή ζητά από τον resolver να μαντέψει έναν τομέα. Η μαντεψιά προέρχεται από τη λίστα επιθημάτων που είναι συνδεδεμένη με τη σύνδεση, και αν αυτή η λίστα είναι κενή, το ερώτημα βγαίνει ως μία μόνο ετικέτα που καμία ιδιωτική ζώνη δεν θα ταιριάξει.

Αντιγράψτε το επίθημα του μηχανήματος που δουλεύει στις ιδιότητες IPv4 του προσαρμογέα VPN στην καρτέλα DNS και επανασυνδεθείτε. Στο Linux το αντίστοιχο είναι ο τομέας αναζήτησης στον σύνδεσμο της σήραγγας, τον οποίο το systemd-resolved εκθέτει ανά σύνδεσμο και όχι συνολικά.

Κρατήστε τις δύο ρυθμίσεις χωριστά στις σημειώσεις σας. Το επίθημα αλλάζει τι ρωτιέται· η διεύθυνση του resolver αλλάζει ποιος ρωτιέται. Η διόρθωση του ενός ενώ το άλλο είναι λάθος δίνει αποτέλεσμα που μοιάζει τυχαίο.

Ρωτήστε τον resolver απευθείας και μετά το όνομα

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

nslookup intranet.corp.example 10.20.0.53
nslookup intranet
resolvectl status

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

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

Στο Linux, ένας πελάτης VPN που ξαναγράφει το /etc/resolv.conf αντικαθιστά εντελώς τους τοπικούς resolvers. Το vpnc εκθέτει το DNSUpdate no για να το σταματήσει, και το systemd-resolved μπορεί να δρομολογήσει μόνο τους καταγεγραμμένους τομείς στον σύνδεσμο της σήραγγας. Και οι δύο προσεγγίσεις κρατούν τα δημόσια ονόματα στον τοπικό resolver και στέλνουν τα εσωτερικά ονόματα στο γραφείο.

Οι διαρροές είναι κανόνας, όχι πλαίσιο ελέγχου

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

sudo tcpdump -ni eth0 -c 20 'udp port 53'
resolvectl query example.com

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

Αυτό το τελευταίο μέρος μετράει περισσότερο απ' ό,τι φαίνεται. Ξεκινήστε το OpenVPN με route-nopull και η επιβεβλημένη επιλογή DNS εξαφανίζεται μαζί με τις διαδρομές, εκτός αν το φίλτρο έλξης διευρυνθεί για να τη κρατήσει. Και ένας πελάτης που αγνοεί το dhcp-option DNS θα συνεχίσει να χρησιμοποιεί ό,τι είχε πριν. Κάθε αλλαγή στην πλευρά του διακομιστή χρειάζεται νέα συνεδρία για να ισχύσει, γιατί η λίστα resolver παραδίδεται όταν σηκώνεται η σήραγγα και μια παλιά συνεδρία εξακολουθεί να δείχνει την παλιά κατάσταση.

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

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