Το VPN του ρούτερ λειτουργεί, αλλά οι πελάτες LAN δεν έχουν internet
Το ρούτερ φτάνει στο internet μέσω της σήραγγάς του, ενώ οι συσκευές πίσω του όχι. Η προώθηση, η μετάφραση και οι διαδρομές επιστροφής είναι ξεχωριστές άδειες.
Η κατάσταση λέει ότι η σήραγγα είναι ενεργή, ένα πρόγραμμα περιήγησης στο ίδιο το ρούτερ φορτώνει σελίδες, και κάθε συσκευή πίσω του εξακολουθεί να λήγει σε χρονικό όριο. Αυτός ο συνδυασμός περιορίζει το πρόβλημα σε ένα επίπεδο που οι περισσότεροι οδηγοί VPN δεν αναφέρουν ποτέ: το ρούτερ δεν είναι ο μόνος υπολογιστής του οποίου τα πακέτα πρέπει να επιβιώσουν από τη σήραγγα. Η τοπικά παραγόμενη κίνηση και η προωθούμενη κίνηση ακολουθούν διαφορετικές διαδρομές μέσα στο ίδιο κουτί. Δοκιμάστε από έναν πελάτη και η διαφορά παύει να είναι θεωρητική.
Διαβάστε την αποτυχία από έναν υπολογιστή LAN
Ξεκινήστε από τη συσκευή που αποτυγχάνει, γιατί μια διαγνωστική εκτέλεση στο ρούτερ απαντά σε άλλη ερώτηση. Επιβεβαιώστε ότι η προεπιλεγμένη πύλη του πελάτη είναι αυτό το ρούτερ, σημειώστε τη διεύθυνση προέλευσης και το υποδίκτυό του, και μετά δείτε τι βγαίνει από τη διεπαφή σήραγγας του ρούτερ.
Αν η διεύθυνση του πελάτη μεταφράζεται, η απομακρυσμένη πλευρά βλέπει τη διεύθυνση της σήραγγας, και από εκεί όλα φαίνονται υγιή ενώ ο πελάτης εξακολουθεί να αποτυγχάνει. Αν δεν μεταφράζεται, η απομακρυσμένη πλευρά πρέπει να γνωρίζει διαδρομή επιστροφής προς το υποδίκτυο του πελάτη, και πολλές πύλες δεν έχουν τέτοια διαδρομή εξ ορισμού. Σε κάθε περίπτωση η δική του επιτυχία του ρούτερ είναι άσχετη, γιατί τα πακέτα του παράχθηκαν τοπικά και δεν πέρασαν ποτέ από τη διαδρομή προώθησης.
Η τοπική κίνηση και η προωθούμενη κίνηση είναι διαφορετικές
Το Linux και τα περισσότερα firmware ρούτερ αντιμετωπίζουν τα πακέτα που δημιουργεί το ίδιο το κουτί διαφορετικά από τα πακέτα που το διασχίζουν. Η αλυσίδα output βλέπει το πρώτο είδος, η αλυσίδα forward βλέπει το δεύτερο, και μια πολιτική προσαρμοσμένη στην κίνηση του ίδιου του ρούτερ μπορεί να αφήσει την προώθηση ανέγγιχτη.
sysctl net.ipv4.ip_forward
ip -4 address show br-lan
ip route get 203.0.113.9
nft list ruleset | grep -A 6 'chain forward'
Ελέγξτε αν η προώθηση είναι καθόλου ενεργοποιημένη και μετά διαβάστε την αλυσίδα forward αντί για την output. Ένας κανόνας που επιτρέπει την κρυπτογραφημένη εξωτερική σύνδεση δεν είναι κανόνας που επιτρέπει την προώθηση αποκρυπτογραφημένων πακέτων, και η σύγχυση των δύο παράγει ακριβώς αυτό το σύμπτωμα. Το ότι η σήραγγα είναι ενεργή αποδεικνύει μόνο το πρώτο.
Πρέπει να υπάρχει και η διαδρομή επιστροφής
Η μετάφραση προέλευσης αποφασίζει αν χρειάζεται διαδρομή επιστροφής. Με masquerading στη διεπαφή σήραγγας, οι απαντήσεις επιστρέφουν στη διεύθυνση της σήραγγας και το ρούτερ αίρει τη μετάφραση. Χωρίς αυτό, η απομακρυσμένη πύλη χρειάζεται ρητή διαδρομή προς το υποδίκτυο του πελάτη, και η δική της πολιτική πρέπει να επιτρέπει αυτή την κατεύθυνση.
Καταγράψτε ποιο από τα δύο σχέδια χρησιμοποιεί η ανάπτυξη πριν αλλάξετε οτιδήποτε, γιατί οι επιδιορθώσεις δείχνουν σε αντίθετες κατευθύνσεις. Η προσθήκη μετάφρασης κρύβει μια απούσα διαδρομή επιστροφής και σπάει εφαρμογές που χρειάζονται την αρχική διεύθυνση προέλευσης. Η προσθήκη διαδρομής επιστροφής χωρίς μετάφραση αποτυγχάνει σιωπηλά όταν το απομακρυσμένο τείχος προστασίας απορρίψει την άγνωστη προέλευση. Διαλέξτε ένα, τεκμηριώστε το και κάντε την άλλη πλευρά να ταιριάξει.
Το DNS του πελάτη ανήκει στην ίδια εξέταση. Ο resolver του ρούτερ μπορεί να απαντά ενώ ένας πελάτης που δείχνει σε άλλον διακομιστή δεν παίρνει τίποτα απολύτως.
Επαληθεύστε μία επιτρεπόμενη και μία απορριπτόμενη ροή
Μετά τη διόρθωση, δοκιμάστε μια νέα σύνδεση από πελάτη αντί για μια υπάρχουσα συνεδρία του ρούτερ. Στη συνέχεια επιβεβαιώστε ότι ένα τμήμα που δεν πρέπει να χρησιμοποιεί τη σήραγγα εξακολουθεί να μην τη χρησιμοποιεί.
curl -sS --max-time 8 https://api.ipify.org
ip route get 203.0.113.9
dig +short intranet.example.net
Ελέγξτε τη διεύθυνση προέλευσης που παρατηρείται στο απομακρυσμένο άκρο, γιατί αυτή σας λέει ποιο σχέδιο εκτελείται στην πραγματικότητα. Επαληθεύστε και μια αναζήτηση ονόματος εκτός από μια διεύθυνση, γιατί η συμπεριφορά του resolver είναι ξεχωριστή διαδρομή μέσα από το ίδιο κουτί.
Κρατήστε τους κανόνες περιορισμένους στα δίκτυα πελατών που χρειάζονται τη σήραγγα, και αντισταθείτε στον πειρασμό να απενεργοποιήσετε το φίλτρο προώθησης για να περάσει μία δοκιμή. Αυτή η αλλαγή επιδιορθώνει τη δοκιμή και αφαιρεί το όριο που υποτίθεται ότι παρείχε η σήραγγα. Γράψτε τη διεύθυνση προέλευσης, την απόφαση μετάφρασης και τη διαδρομή επιστροφής σε ένα σημείωμα, με ημερομηνία.