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

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

Διαχωρίστε τη χειραψία από την προωθημένη ροή

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

Σταματήστε μόλις πιάσετε τον εαυτό σας να συλλογίζεται από τη χειραψία. Είναι απόδειξη μόνο για τη διαδρομή προς το τελικό σημείο.

Διαβάστε τον κανόνα πολιτικής, όχι τον προεπιλεγμένο πίνακα

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

ip rule show
ip route show table main
ip -4 route get 203.0.113.9 from 10.30.8.2

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

Ελέγξτε τη σήμανση και τη μετάφραση μαζί

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

nft list chain inet filter prerouting
conntrack -L -s 10.30.8.2 2>/dev/null | head
ip -s link show dev eth1

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

Προσέξτε ποια διεπαφή μεταφέρει την απάντηση

Καταγράψτε και στα δύο uplinks όσο εκτελείται ένα αίτημα. Σημειώστε ποια διεπαφή μεταφέρει το αίτημα και ποια την απάντηση. Οι ασύμμετρες διαδρομές φαίνονται πολύ πιο εύκολα απ’ ό,τι προβλέπονται.

Αν η απάντηση φτάνει από το λάθος uplink, το πρόβλημα μετακινήθηκε από το WireGuard στην παρακολούθηση συνδέσεων ή τη μετάφραση. Καμία αλλαγή στη διαμόρφωση του peer δεν θα το διορθώσει.

Αλλάξτε ένα πράγμα με δρόμο επιστροφής

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

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

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