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

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

Το σύμπτωμα: απαντά τοπικά και όχι από έξω

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

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

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

Τι αντιστοιχίζει πραγματικά ένας επιλογέας προέλευσης

Στη δρομολόγηση πολιτικής του Linux, ένας κανόνας όπως from 192.168.50.2 αντιστοιχίζει πακέτα των οποίων η προέλευση είναι αυτή η διεύθυνση. Δεν κωδικοποιεί το γεγονός ότι το πακέτο συνεχίζει μια συνομιλία που εισήλθε μέσω του οικιακού δρομολογητή, και δεν γνωρίζει ποια διεργασία το δημιούργησε. Η διεύθυνση σε αυτό το παράδειγμα είναι ενδεικτική· αντικαταστήστε την με τη διεύθυνση που χρησιμοποιεί πραγματικά ο κεντρικός υπολογιστής σας. Αντιμετωπίστε τη γραμμή ως δήλωση για διευθύνσεις και τίποτα παραπάνω.

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

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

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

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

ip rule show
ip route show table 100
ip route get 203.0.113.44 from 192.168.50.2
ss -ltnp '( sport = :443 )'

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

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

Αποφασίστε πόσο στενή μπορεί να είναι η εξαίρεση

Δύο σχέδια είναι υπερασπίσιμα και πρέπει να επιλεγούν συνειδητά. Αν ο κεντρικός υπολογιστής υπάρχει για να δημοσιεύει αυτή την υπηρεσία και η εξερχόμενη κίνησή του είναι ασήμαντη, μια αποκλειστική τοπική διεύθυνση με πολιτική μόνο για WAN είναι λογική ρύθμιση, εφόσον αποδέχεστε όλο το εύρος. Αν μόνο συγκεκριμένες εισερχόμενες συνδέσεις πρέπει να πληρούν τις προϋποθέσεις, η επιλογή διεύθυνσης είναι πολύ χονδρή και μπροστά της ανήκει ένα σχέδιο που λαμβάνει υπόψη τις συνδέσεις.

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

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

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