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

Τι πραγματικά αποφασίζει ένα εξερχόμενο πακέτο

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

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

Γιατί κερδίζει το τοπικό υποδίκτυο

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

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

Η κάλυψη των peer δεν είναι το ίδιο με τις εγκατεστημένες διαδρομές

Στην πλευρά της σήραγγας, τα επιτρεπόμενα εύρη ενός peer περιγράφουν τι επιτρέπεται να σταλεί στη σήραγγα και ποιες πηγές γίνονται δεκτές από αυτήν. Δεν λένε τίποτα για το πού θα στείλει ένα πακέτο ο τοπικός πίνακας δρομολόγησης.

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

Επιλέξτε τον πίνακα με βάση τη διεύθυνση πηγής

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

ip -6 route add default dev wg0 table 200
ip -6 rule add priority 32000 from 2001:db8:aa::20/128 lookup 200
ip -6 rule add priority 32001 from 2001:db8:aa::20/128 unreachable

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

Επιβεβαιώστε τη διαδρομή και μετά την υπηρεσία

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

ip -6 route get 2001:db8:bb::30 from 2001:db8:aa::20

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

Τι δεν διορθώνει αυτό

Αφήστε την προώθηση, τους κανόνες τείχους προστασίας και τη συμπεριφορά ICMPv6 στην πύλη όπως ήταν, γιατί μια διαδρομή πηγής δεν αντικαθιστά κανένα από αυτά. Ένα απόν μήνυμα Packet Too Big εξακολουθεί να σπάει μεγάλες απαντήσεις ανεξάρτητα από το ποιος πίνακας κέρδισε την αναζήτηση. Διορθώστε το πριν προσθέσετε κανόνες δρομολόγησης, αλλιώς το σύμπτωμα θα επιβιώσει της αλλαγής.

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

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

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