Γιατί ο πελάτης Tailscale του Linux αγνοεί τις διαφημιζόμενες διαδρομές υποδικτύου
Ο πίνακας 52 είναι η ένδειξη: ένας πελάτης Tailscale σε Linux εγκαθιστά μια διαφημιζόμενη διαδρομή υποδικτύου μόνο μετά το --accept-routes, και η έγκριση της συσκευής είναι ξεχωριστή πύλη.
Βρίσκεστε σε φορητό υπολογιστή Linux, το tailscale status εμφανίζει τα άλλα μηχανήματα, και το NAS στη διεύθυνση 10.80.0.25 εξακολουθεί να λήγει σε χρονικό όριο. Το tailnet είναι υγιές, ο δρομολογητής υποδικτύου είναι συνδεδεμένος, και τίποτα στην έξοδο του πελάτη δεν λέει γιατί το LAN πίσω του είναι απρόσιτο. Η παρακάτω περιήγηση κινείται προς τα έξω από αυτό το σύμπτωμα: η σημαία σε αυτόν τον πελάτη, μετά η διαφήμιση στον δρομολογητή, μετά η έγκριση, μετά η πολιτική, και μόνο τότε ο ίδιος ο προορισμός. Κάθε πύλη αποτυγχάνει με το ίδιο χρονικό όριο, γι' αυτό η σειρά μετράει περισσότερο από τις εντολές.
Τι αρνείται να εγκαταστήσει ο πελάτης Linux
Οι πελάτες Tailscale στο Linux δεν δέχονται διαφημιζόμενες διαδρομές υποδικτύου αν δεν τους το ζητήσετε. Χωρίς αυτή τη ρύθμιση ο πελάτης εντάσσεται στο tailnet και φτάνει στις διευθύνσεις των ομοτίμων, ενώ κάθε πρόθεμα που διαφημίζει ο δρομολογητής μένει αχρησιμοποίητο. Η προεπιλογή είναι σκόπιμη, και γι' αυτό το σύμπτωμα μοιάζει με χαλασμένο δρομολογητή και όχι με τοπική απόφαση.
Δύο διαφορετικά πράγματα ονομάζονται εδώ δρομολόγηση, και μόνο το ένα είναι δικό σας. Ο δρομολογητής διαφημίζει ένα πρόθεμα στο tailnet· το μηχάνημά σας αποφασίζει αν θα το εγκαταστήσει. Μια αποτυχία σε οποιοδήποτε από τα δύο παράγει το ίδιο χρονικό όριο, γι' αυτό οι εικασίες σπαταλούν ένα απόγευμα. Βρείτε ποια πλευρά αρνείται πριν επεξεργαστείτε οτιδήποτε.
Ενεργοποιήστε την αποδοχή διαδρομών για αυτό το μηχάνημα
Ορίστε την προτίμηση στον πελάτη και μετά δείτε τι άλλαξε αντί να υποθέσετε ότι η εντολή εφαρμόστηκε. Η τρέχουσα μορφή εφαρμόζει τη ρύθμιση χωρίς να επαναλαμβάνει τη ροή σύνδεσης, κάτι που μετράει όταν βρίσκεστε στη μέση μιας συνεδρίας.
sudo tailscale set --accept-routes
tailscale status
ip route show table 52
Το Tailscale εγκαθιστά τις αποδεκτές διαδρομές στον δικό του πίνακα στο Linux, οπότε ένα πρόθεμα που εμφανίζεται στον πίνακα 52 είναι άμεση απόδειξη ότι αυτός ο πελάτης εγκατέστησε τη διαφήμιση. Αν το εύρος σας λείπει από αυτόν τον πίνακα, σταματήστε: το πρόβλημα είναι τοπικό και καμία εργασία στον δρομολογητή δεν θα το αλλάξει.
Οι παλαιότεροι πελάτες εκθέτουν την ίδια προτίμηση ως σημαία στην εντολή σύνδεσης, οπότε το sudo tailscale up --accept-routes είναι η εναλλακτική όταν λείπει το tailscale set. Χρησιμοποιήστε το αντί να επεξεργάζεστε διαδρομές με το χέρι, γιατί ο δαίμονας ξαναγράφει τον δικό του πίνακα και η αλλαγή σας εξαφανίζεται στην επόμενη επανασύνδεση. Ελέγξτε την έκδοση πριν αντιγράψετε μια εντολή από παλαιότερη ανάρτηση.
Ελέγξτε τη διαφήμιση και την έγκριση ξεχωριστά
Στον δρομολογητή υποδικτύου το πρόθεμα πρέπει να διαφημίζεται, και ο πυρήνας πρέπει να προωθεί πακέτα μεταξύ των διεπαφών. Η διαφήμιση χωρίς προώθηση σας δίνει μια εγκεκριμένη διαδρομή που ρίχνει αθόρυβα την κίνηση, και αυτή είναι η πιο συχνή μισοτελειωμένη ρύθμιση.
sudo tailscale up --advertise-routes=10.80.0.0/24
sysctl net.ipv4.ip_forward
ip -br addr
Συγκρίνετε το διαφημιζόμενο πρόθεμα με τη διεύθυνση που πραγματικά προσπαθείτε να φτάσετε, χαρακτήρα προς χαρακτήρα. Ένας δρομολογητής που διαφημίζει 10.70.0.0/24 δεν λέει τίποτα για ένα NAS στη διεύθυνση 10.80.0.25, και η αναντιστοιχία είναι αόρατη σε κάθε έξοδο κατάστασης επειδή και οι δύο αριθμοί φαίνονται εξίσου πιθανοί. Οι περισσότερες αναφορές για σπασμένη διαδρομή τελειώνουν εδώ. Διορθώστε τη διαφήμιση πριν αγγίξετε οτιδήποτε πιο κάτω.
Η έγκριση είναι η επόμενη πύλη, και είναι εύκολο να την παραλείψετε όταν ο δρομολογητής ρυθμίστηκε από κέλυφος. Η διαφήμιση πρέπει να ενεργοποιηθεί για αυτή τη συσκευή στην κονσόλα διαχείρισης πριν άλλα μηχανήματα μπορούν να τη χρησιμοποιήσουν. Η αποδοχή διαδρομών στον πελάτη δεν εγκρίνει τίποτα και δεν παρακάμπτει κανέναν κανόνα πρόσβασης.
Δοκιμάστε την ιδιωτική διεύθυνση πριν από το όνομα κεντρικού υπολογιστή
Μια επιτυχημένη σύνδεση στη διεύθυνση tailnet του ίδιου του δρομολογητή αποδεικνύει ότι το tailnet λειτουργεί, κάτι που ήδη γνωρίζατε. Η χρήσιμη δοκιμή είναι η υπηρεσία που πραγματικά χρειάζεστε, πρώτα στη διεύθυνση ιδιωτικού δικτύου, ώστε μια αποτυχία DNS να μην μπορεί να περάσει για αποτυχία δρομολόγησης.
tailscale ping 10.80.0.1
ping -c 2 10.80.0.25
nc -vz 10.80.0.25 445
getent hosts nas.internal.example
Αν η διεύθυνση απαντά και το όνομα κεντρικού υπολογιστή όχι, έχετε πρόβλημα επίλυσης ονομάτων και πρέπει να πάψετε να το αντιμετωπίζετε ως πρόβλημα διαδρομής. Αν δεν απαντά κανένα, γυρίστε μια ενότητα πίσω και επιβεβαιώστε ότι η διαφήμιση καλύπτει τη διεύθυνση. Οι δύο αποτυχίες φαίνονται ίδιες από την εφαρμογή και διορθώνονται σε διαφορετικά σημεία.
Αξίζει έναν τοπικό έλεγχο πριν κατηγορήσετε το tailnet. Όταν το τρέχον LAN σας χρησιμοποιεί το ίδιο πρόθεμα με το απομακρυσμένο υποδίκτυο, ο πυρήνας προτιμά την άμεσα συνδεδεμένη διαδρομή και η κίνηση δεν φεύγει ποτέ από το μηχάνημα· αυτό συμβαίνει όταν ένα σπίτι και ένα γραφείο επιλέγουν και τα δύο 192.168.1.0/24.
Γιατί μια σημαία πελάτη δεν είναι ρύθμιση δρομολογητή
Αυτοί είναι διαφορετικοί ρόλοι με διαφορετικές απαιτήσεις, και το να αντιγράψετε μια σημαία πελάτη σε έναν δρομολογητή είναι ο τρόπος με τον οποίο ένα λειτουργικό tailnet αποκτά βρόχο. Ένα μηχάνημα που διαφημίζει διαδρομές χρειάζεται προώθηση, κανόνες τείχους προστασίας που επιτρέπουν την προωθούμενη κίνηση και μια απόφαση για το ποια προθέματα διαφημίζει. Τίποτα από αυτά δεν υπονοείται από το --accept-routes.
Η τεκμηρίωση για τους δρομολογητές υποδικτύου προειδοποιεί να μην ενεργοποιείτε την αποδοχή διαδρομών σε πλεονάζοντες δρομολογητές που διαφημίζουν ένα πρόθεμα, αφού ένας εφεδρικός κόμβος μπορεί να σπρώξει κίνηση που είναι ήδη τοπική έξω από τον ενεργό. Αν τρέχετε ζεύγος HA, αντιμετωπίστε το ως περιορισμό σχεδίασης και όχι ως υποσημείωση, και αποφασίστε ποιος κόμβος κατέχει το πρόθεμα πριν το εγκρίνετε και στους δύο. Σε έναν μόνο δρομολογητή η ίδια προειδοποίηση διαβάζεται ως υπενθύμιση ότι η αποδοχή ανήκει στους πελάτες, όχι στο μηχάνημα που διαφημίζει. Σημειώστε ποια πύλη ήταν κλειστή.
Για έναν συνηθισμένο πελάτη η ακολουθία τελειώνει με τη δοκιμή εφαρμογής που απέτυχε στην αρχή. Για τον δρομολογητή, ελέγξτε προώθηση, διαφήμιση, έγκριση και τείχος προστασίας με αυτή τη σειρά, γιατί το πρώτο που λείπει παράγει ακριβώς το χρονικό όριο με το οποίο ξεκινήσατε.