Ένας κανόνας πολιτικής στέλνει τα σημασμένα πακέτα σε έναν ειδικό πίνακα, και η συνήθης προσδοκία είναι ότι η απώλεια της διαδρομής VPN τα μπλοκάρει. Ο μηχανισμός κάνει κάτι άλλο. Όταν ένας πίνακας δεν περιέχει αντίστοιχη διαδρομή, η αναζήτηση συνεχίζεται στον επόμενο κανόνα αντί να σταματήσει, και ο πίνακας main εξακολουθεί να κρατά μια συνηθισμένη προεπιλεγμένη διαδρομή για το uplink. Το αποτέλεσμα είναι μια διαμόρφωση που μοιάζει fail-closed και συμπεριφέρεται ως fail-open.

Τίποτα δεν είναι χαλασμένο· έτσι ορίζεται η δρομολόγηση βάσει πολιτικής.

Η αναζήτηση συνεχίζεται όταν ένας πίνακας δεν έχει τίποτα

100:   from all fwmark 0x36 lookup 42
110:   from all fwmark 0x36 lookup default
32766: from all lookup main

Πάρτε αυτό το σύνολο κανόνων: μια σημασμένη αναζήτηση πηγαίνει στον πίνακα 42, και ένας μεταγενέστερος κανόνας στέλνει το ίδιο σημάδι σε έναν πίνακα με όνομα default. Όσο ο πίνακας 42 κρατά μια χρησιμοποιήσιμη προεπιλεγμένη διαδρομή, η πρώτη αναζήτηση παρέχει τη διαδρομή. Όταν αυτή η διαδρομή εξαφανιστεί και τίποτα άλλο στον πίνακα 42 δεν ταιριάζει, η αναζήτηση δεν γίνεται απόρριψη· η επεξεργασία προχωρά στον επόμενο κανόνα, και όταν ούτε εκείνος βρει κάτι, φτάνει στον πίνακα main. Τίποτα σε αυτή την ακολουθία δεν αναφέρει ποιος κανόνας έδωσε την τελική απάντηση, οπότε μια σύνδεση που λειτουργεί μοιάζει με πολιτική που λειτουργεί.

Ο πίνακας 253, που συνήθως ονομάζεται default, είναι ένας συνηθισμένος πίνακας δρομολόγησης και κανονικά είναι κενός. Το όνομά του δεν είναι εντολή να απορρίπτονται πακέτα, και δεν είναι το ίδιο πράγμα με μια προεπιλεγμένη διαδρομή προορισμού μέσα σε έναν πίνακα.

Οι τελικές ενέργειες τερματίζουν την αναζήτηση

100:   from all fwmark 0x36 lookup 42
110:   from all fwmark 0x36 prohibit
32766: from all lookup main

Ένας τελικός κανόνας μπορεί να ακολουθεί την αναζήτηση VPN αντί για αναζήτηση σε κενό πίνακα. Με το ίδιο σημάδι, μια ενέργεια prohibit που τοποθετείται μετά τον κανόνα του πίνακα 42 τερματίζει την αναζήτηση όταν αυτός ο πίνακας δεν δίνει τίποτα, επιστρέφοντας μια διοικητική απόρριψη αντί να δώσει στον πίνακα main άλλη μια ευκαιρία. Τα unreachable και blackhole είναι επίσης τελικά, με διαφορετική συμπεριφορά σφάλματος για τον αποστολέα.

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

Επαληθεύστε με το πραγματικό σημάδι και τη διεπαφή

ip -4 rule show
ip -4 route show table 42
ip -4 route get 198.51.100.20 from 10.44.0.2 iif lan0 mark 0x36

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

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

Δύο καταστάσεις αστοχίας, όχι μία

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

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

Εφαρμόστε την πολιτική στο IPv6 ξεχωριστά, και κρατήστε τις εγκεκριμένες εξαιρέσεις τελικών σημείων ρητές αντί για σιωπηρές.

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