Γεφυρωμένοι πελάτες OpenVPN χωρίς internet; Ελέγξτε τον κανόνα NAT
Οι γεφυρωμένοι πελάτες OpenVPN βγαίνουν από τη συσκευή tap, οπότε ένας κανόνας masquerade που ονομάζει τη φυσική κάρτα δικτύου δεν ταιριάζει ποτέ και ο μετρητής μένει στο μηδέν.
Ο γεφυρωμένος διακομιστής είναι ενεργός, ο κανόνας masquerade υπάρχει, και το πρόγραμμα περιήγησης στον πελάτη ακόμη γυρίζει. Όλα μοιάζουν να πρέπει να δουλέψουν, και γι’ αυτό η πρώτη ώρα πηγαίνει στον έλεγχο της σήραγγας και των διαπιστευτηρίων. Έπειτα διαβάζετε τον μετρητή στον κανόνα NAT και βρίσκετε ένα μηδέν που δεν έχει μετακινηθεί. Ένας κανόνας που δεν μέτρησε ποτέ ούτε ένα πακέτο δεν ταίριαξε ποτέ με κανένα, και σε γεφυρωμένο διακομιστή ο λόγος είναι δομικός: η κίνηση του πελάτη βγαίνει από την εικονική συσκευή tap, ενώ ο κανόνας ονομάζει τη φυσική κάρτα που αντιγράψατε από έναν παλαιότερο οδηγό.
Ο μετρητής είναι η απόδειξη, όχι η γραμμή του πίνακα
Οι κανόνες που υπάρχουν και οι κανόνες που ταιριάζουν είναι διαφορετικά πράγματα, και ο μετρητής είναι αυτό που τα χωρίζει. Εμφανίστε τον πίνακα NAT με αναλυτικούς μετρητές και διαβάστε τους αριθμούς δίπλα σε κάθε κανόνα πριν αλλάξετε οτιδήποτε. Ένας μετρητής που μένει στο μηδέν ενώ η κίνηση ρέει σημαίνει ότι ο κανόνας παρακάμφθηκε, όσο λογικές κι αν φαίνονται οι διευθύνσεις του. Ένας μετρητής που ανεβαίνει ενώ η σύνδεση εξακολουθεί να αποτυγχάνει σας στέλνει αλλού: στην προώθηση, στην επιστροφή διαδρομή ή στο απομακρυσμένο άκρο.
iptables -t nat -L POSTROUTING -v -nΔιαβάστε πρώτα τον μετρητή δίπλα στην αντιστοίχιση διεπαφής. Αν το εύρος προέλευσης είναι σωστό και η πλευρά εξόδου λάθος, η διόρθωση είναι μία λέξη στον κανόνα και όχι ένας εντελώς νέος κανόνας.
Βρείτε το όνομα που καταγράφει πραγματικά ο πυρήνας
Προσδιορίστε τη συσκευή της σήραγγας με το όνομά της πριν γράψετε τον κανόνα, χρησιμοποιώντας τη λίστα διεπαφών και όχι τη μνήμη. Σε γεφυρωμένη εγκατάσταση OpenVPN η συσκευή είναι συνήθως μια διεπαφή tap που δημιουργεί ο διακομιστής, και το όνομά της είναι μέρος της τοπικής σας διαμόρφωσης, όχι μια παγκόσμια σταθερά. Επιβεβαιώστε ότι υπάρχει όσο η σήραγγα είναι ενεργή, γιατί μια συσκευή που εμφανίζεται μόνο αφού συνδεθεί ένας πελάτης θα κάνει μια προηγούμενη δοκιμή να μοιάζει με πρόβλημα κανόνα.
ip -brief linkΓράψτε το όνομα. Κάθε επόμενη εντολή σε αυτή τη διαγνωστική αναφέρεται σε αυτό, και ένα τυπογραφικό λάθος εδώ παράγει ακριβώς τον ίδιο μηδενικό μετρητή με το αρχικό λάθος.
Ξαναγράψτε τον κανόνα για τη συσκευή της σήραγγας
Στρέψτε τον κανόνα στη συσκευή της σήραγγας και κρατήστε το εύρος των πελατών ως συνθήκη αντιστοίχισης, ώστε να καλύπτει την κίνηση της σήραγγας και να αφήνει τις δικές του συνδέσεις του κεντρικού υπολογιστή ήσυχες. Αντικαταστήστε με το δικό σας εύρος και όνομα συσκευής, γιατί και τα δύο παραδείγματα παρακάτω είναι παραδείγματα και κανένα δεν μεταφέρεται μεταξύ εγκαταστάσεων.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tap0 -j MASQUERADEΈπειτα ελέγξτε τις δύο άλλες συνθήκες που κρύβει το ίδιο σύμπτωμα. Ελέγξτε αν η προώθηση είναι ενεργοποιημένη και, αν δεν είναι, ενεργοποιήστε την στη διαμόρφωση της διανομής και όχι με ένα echo που εξαφανίζεται στην επανεκκίνηση. Διαβάστε και τους μετρητές της αλυσίδας forward και, αν απορρίπτει την κίνηση της σήραγγας, επιτρέψτε ειδικά εκείνη τη διεπαφή και αφήστε την πολιτική της αλυσίδας ως έχει.
Η ανάγνωση της αλυσίδας forward με μετρητές κοστίζει μία εντολή και αποκλείει τις μισές από τις υπόλοιπες πιθανότητες πριν αγγίξετε άλλον κανόνα.
Γιατί η φυσική κάρτα δεν ταιριάζει ποτέ
Η γέφυρα είναι ένας μεταγωγέας λογισμικού που συναρμολογείται από τη συσκευή tap και μία φυσική διεπαφή. Το πλαίσιο του πελάτη μπαίνει σε αυτόν τον μεταγωγέα και βγαίνει προς το φυσικό δίκτυο ως μέλος της γέφυρας, όχι ως πακέτο στην κάρτα. Γι’ αυτό ο πυρήνας αποδίδει το πακέτο στη γέφυρα και στη θύρα της, και γι’ αυτό η κάρτα που είχατε στο μυαλό σας δεν εμφανίζεται ποτέ στην αντιστοίχιση. Τίποτα δεν είναι χαλασμένο στη φυσική διεπαφή· απλώς δεν είναι η συσκευή στην οποία ο πυρήνας αποδίδει αυτό το πακέτο.
Το επόμενο πρόβλημα που συναντούν οι άνθρωποι προέρχεται από την ίδια δομή: το φιλτράρισμα πλαισίων σε μια γέφυρα είναι ξεχωριστή λειτουργία από το φιλτράρισμα IP. Αν η απαίτηση είναι περιορισμός σε επίπεδο πλαισίου, ανήκει στο φιλτράρισμα της γέφυρας, όχι σε κανόνα πίνακα IP.
Αποδείξτε το από άκρη σε άκρη και μετά κάντε το μόνιμο
Σηκώστε έναν μόνο πελάτη και κάντε ping σε κάτι στο LAN του διακομιστή· αυτή η διαδρομή ασκεί την προώθηση χωρίς καμία μετάφραση. Έπειτα ζητήστε κάτι δημόσιο ώστε να πρέπει να χρησιμοποιηθεί ο κανόνας masquerade, και διαβάστε τον μετρητή άλλη μια φορά: θα έπρεπε να κινηθεί για αυτή τη δοκιμή και όχι για την προηγούμενη. Μια καταγραφή που λαμβάνεται στη συσκευή της σήραγγας δείχνει και πού εμφανίζεται το πλαίσιο και ποια διεύθυνση κουβαλά.
Τελευταίο βήμα: βάλτε τους κανόνες που δουλεύουν στη διαμόρφωση που διαβάζει μια επανεκκίνηση, και σημειώστε το όνομα της συσκευής που χρησιμοποιεί πραγματικά η γέφυρα αυτού του κεντρικού υπολογιστή. Ό,τι πληκτρολογήθηκε με το χέρι χάνεται μετά από επανεκκίνηση, και η ίδια βλάβη επιστρέφει χωρίς τίποτα να την εξηγεί.
Αν ο μετρητής εξακολουθεί να μην κινείται μετά την επανεγγραφή, συγκρίνετε το εύρος προέλευσης στον κανόνα με τη διεύθυνση που πήρε πραγματικά ο πελάτης, γιατί ένας γεφυρωμένος διακομιστής μπορεί να δίνει διευθύνσεις από εύρος που δεν σκοπεύατε.