Το Tailscale MagicDNS λειτουργεί, αλλά το nslookup αποτυγχάνει στο macOS
Οι εφαρμογές του macOS επιλύουν μέσω του resolver συστήματος· το nslookup διαβάζει ένα στατικό αρχείο. Δοκιμάστε το ίδιο όνομα tailnet και στις δύο διαδρομές πριν αλλάξετε οποιαδήποτε ρύθμιση DNS.
Σε ένα Mac, το ping επιλύει ένα όνομα μηχανήματος tailnet ενώ το nslookup επιστρέφει αποτυχία, και οι δύο εντολές λένε την αλήθεια. Οι εφαρμογές επιλύουν μέσω του resolver του συστήματος, τον οποίο το Tailscale ρυθμίζει ανά διεπαφή, ενώ τα nslookup και host διαβάζουν ένα στατικό αρχείο που το MagicDNS δεν αγγίζει ποτέ. Οι δύο διαδρομές μπορούν να διαφωνούν χωρίς να χαθεί ούτε ένα πακέτο. Αποφασίστε ποια διαδρομή ακολούθησε η εφαρμογή σας που αποτυγχάνει πριν αλλάξετε οποιαδήποτε ρύθμιση DNS.
Δύο διαδρομές επίλυσης, δύο διαφορετικές απαντήσεις
Η κίνηση των εφαρμογών στο macOS περνά από τον resolver του συστήματος, και οι καταχωρίσεις resolver που περιορίζονται ανά διεπαφή καθορίζουν ποιος διακομιστής απαντά για ποιον τομέα. Το Tailscale εγκαθιστά εκεί την καταχώριση MagicDNS του, γι’ αυτό το Safari και το ssh βρίσκουν ονόματα tailnet. Τα nslookup, host και dig αντίθετα διαβάζουν /etc/resolv.conf ή παίρνουν έναν διακομιστή από τη γραμμή εντολών, και αυτό το αρχείο συνήθως ονομάζει ακόμη τον δρομολογητή ή έναν διακομιστή γραφείου. Ένα όνομα tailnet που στέλνεται σε αυτό το αρχείο δεν έχει καμία έγκυρη απάντηση να το περιμένει, οπότε το εργαλείο αναφέρει αποτυχία ενώ η διαδρομή του συστήματος πετυχαίνει.
Κανένα από τα δύο εργαλεία δεν συμπεριφέρεται λάθος. Ρωτούν διαφορετικούς διακομιστές, και μόνο ένας από αυτούς τους διακομιστές γνωρίζει το tailnet σας.
Δοκιμάστε το ίδιο όνομα μέσω της διαδρομής του συστήματος
Χρησιμοποιήστε την κλήση αναζήτησης του συστήματος ως πρώτη δοκιμή και μετά συγκρίνετε τη με ένα ερώτημα που απευθύνεται απευθείας στον resolver του MagicDNS. Κρατήστε την ορθογραφία ίδια και στα δύο, μαζί με τον τομέα tailnet, γιατί ένα σύντομο όνομα και ένα πλήρως πιστοποιημένο όνομα είναι διαφορετικές ερωτήσεις με διαφορετικές απαντήσεις.
dscacheutil -q host -a name nas-01.tailnet-a1b2.ts.net
scutil --dns
dig @100.100.100.100 nas-01.tailnet-a1b2.ts.net
Αυτές οι τρεις έξοδοι απαντούν σε τρία ερωτήματα: τι επιστρέφει το σύστημα, ποιοι resolver είναι ρυθμισμένοι για ποιους τομείς και τι γνωρίζει το ίδιο το MagicDNS. Ένα όνομα που υπάρχει στο δεύτερο και στο τρίτο αλλά λείπει από το πρώτο δείχνει τοπική ρύθμιση και όχι το tailnet.
Μόλις το όνομα επιλυθεί, δοκιμάστε την υπηρεσία
Μια σωστή απάντηση DNS αποδεικνύει μόνο ότι ένα όνομα αντιστοιχεί σε μια διεύθυνση. Η υπηρεσία πίσω της μπορεί να είναι σταματημένη, η θύρα μπορεί να φιλτράρεται από έναν κανόνα πρόσβασης και ένα πιστοποιητικό μπορεί να ονομάζει διαφορετικό host από αυτό που πληκτρολογήσατε.
nc -vz nas-01.tailnet-a1b2.ts.net 445
ping -c 3 nas-01.tailnet-a1b2.ts.net
Κρατήστε το αρχικό κείμενο του σφάλματος, γιατί μια προειδοποίηση πιστοποιητικού, ένα χρονικό όριο σύνδεσης και ένα όνομα που δεν βρέθηκε οδηγούν καθένα αλλού. Η αλλαγή διακομιστών ονομάτων διορθώνει το τρίτο και σπαταλά ένα απόγευμα στα δύο πρώτα.
Το MagicDNS δεν αντικαθιστά το DNS γραφείου
Ένα όνομα μέσα σε ζώνη γραφείου δεν είναι όνομα συσκευής tailnet ακόμη και όταν ο ίδιος πελάτης μπορεί να φτάσει και τα δύο. Όταν ο προορισμός βρίσκεται πίσω από δρομολογητή υποδικτύου, ο πελάτης χρειάζεται split DNS για αυτή τη ζώνη που δείχνει στον εσωτερικό resolver, που είναι διαφορετική ρύθμιση από το MagicDNS και τεκμηριώνεται δίπλα του.
Και οι τομείς αναζήτησης έχουν σημασία. Σε ένα μη πλήρες σύντομο όνομα προσαρτάται κάθε ρυθμισμένο επίθημα με σειρά, οπότε ένας φορητός υπολογιστής που συνδέθηκε πρόσφατα σε άλλο δίκτυο μπορεί να επιλύσει μέσω ενός παρωχημένου επιθήματος. Ελέγξτε ποιο επίθημα εφαρμόστηκε πριν κηρύξετε τη ζώνη χαλασμένη.
Όταν αποτυγχάνουν και οι δύο διαδρομές, αποφασίζουν τα δεδομένα του tailnet
Αν τόσο η αναζήτηση του συστήματος όσο και το άμεσο ερώτημα αποτυγχάνουν για μια συσκευή που πιστεύετε ότι υπάρχει, το πρόβλημα βρίσκεται ανάντη του resolver του Mac.
Επιβεβαιώστε το όνομα μηχανήματος και τον τομέα tailnet στην κονσόλα διαχείρισης, επιβεβαιώστε ότι η συσκευή είναι σε σύνδεση και εγκεκριμένη, και επιβεβαιώστε ότι οι ρυθμίσεις DNS του πελάτη δεν απενεργοποιήθηκαν τοπικά. Μια συσκευή εκτός σύνδεσης κρατά το όνομά της και απλώς δεν έχει διεύθυνση να επιστρέψει.
Στη συνέχεια επιλέξτε με βάση τα στοιχεία. Ένα όνομα που επιλύεται στη διαδρομή του συστήματος και αποτυγχάνει στο nslookup είναι διαφορά διαδρομής εργαλείου· ένα όνομα που επιλύεται ενώ η υπηρεσία αρνείται είναι πρόβλημα πρόσβασης ή πιστοποιητικού· ένα όνομα που δεν επιλύεται πουθενά είναι πρόβλημα tailnet ή ρύθμισης DNS. Τρεις ιδιοκτήτες, τρεις διορθώσεις, και η τεκμηρίωση του MagicDNS καλύπτει τις λεπτομέρειες του macOS για την πρώτη περίπτωση.