Δύο πελάτες πίσω από τον ίδιο δρομολογητή μιλούν με μία πύλη IPsec, και ο ένας πέφτει συνεχώς ενώ ο άλλος μένει συνδεδεμένος. Το εγγενές ESP είναι το πρωτόκολλο IP 50 χωρίς θύρες, οπότε ο μεταφραστής δεν έχει πού να βασίσει μια αντιστοίχιση όταν πολλοί πελάτες μοιράζονται μία διεύθυνση. Το NAT traversal κλείνει αυτό το κενό τυλίγοντας το ESP σε UDP στη θύρα 4500, και αυτή η κεφαλίδα εξηγεί τα περισσότερα από τα συμπτώματα που ακολουθούν. Δείχνει επίσης τη συσκευή που πρέπει να αλλάξει.

Γιατί το επίπεδο δεδομένων μετακινείται στη θύρα 4500

Κατά τη ρύθμιση, το IKEv2 συγκρίνει τις διευθύνσεις και τις θύρες που πιστεύει κάθε πλευρά ότι χρησιμοποιεί, ανταλλάσσοντας κατακερματισμούς στις ειδοποιήσεις ανίχνευσης NAT. Όταν οι κατακερματισμοί διαφωνούν, κάπου στη διαδρομή βρίσκεται ένας μεταφραστής, και οι δύο πλευρές μεταφέρουν την προστατευμένη κίνηση σε ενθυλάκωση UDP. Γι' αυτό μια συνεδρία που συνάντησε μεταφραστή φαίνεται διαφορετική από μία που δεν συνάντησε.

Το περιτύλιγμα είναι φάκελος, όχι αλλαγή πρωτοκόλλου: Το ESP διατηρεί την κεφαλίδα του, τον έλεγχο ακεραιότητας και την κρυπτογράφηση, και το UDP παρέχει μόνο τις θύρες που χρειάζεται ο μεταφραστής. Η θύρα 500 μεταφέρει την ανταλλαγή IKE· η 4500 μεταφέρει τα ενθυλακωμένα δεδομένα μετά την ανίχνευση, και συχνά και τα μεταγενέστερα μηνύματα IKE. Καμία από τις δύο θύρες δεν κάνει τη ροή σύνδεση TCP, μια παραδοχή που παραπλανά τους περισσότερους που διαβάζουν μια καταγραφή.

Ελέγξτε τα δύο στάδια με τη σειρά

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

Παρακολουθήστε και τις δύο θύρες με tcpdump -ni any 'udp port 500 or udp port 4500', και διαβάστε τον πίνακα μετάφρασης στον δρομολογητή όσο η συνεδρία είναι ενεργή. Ο πίνακας δείχνει τη θύρα προέλευσης που θα δει πραγματικά η πύλη, και μια καταγραφή στο φορητό υπολογιστή διαφωνεί εκ σχεδιασμού: ο φορητός πιστεύει 500 ενώ η πύλη βλέπει 4500 με μεταφρασμένη θύρα προέλευσης, και τα δύο είναι σωστά. Η ίδια ροή, πριν και μετά τη μετάφραση:

client 192.0.2.10:500 -> router 203.0.113.7:62000 -> gateway 198.51.100.9:4500

Συμπτώματα που εξηγεί το περιτύλιγμα, και δύο που δεν εξηγεί

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

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

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

Αλλάξτε τον ιδιοκτήτη της αντιστοίχισης και μετά δοκιμάστε ξανά

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

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

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