GCP HA VPN: η συνεδρία BGP κολλάει στο Waiting for peer, η αντιμετάθεση του ζεύγους διευθύνσεων
Μια συνεδρία BGP του Cloud VPN που έχει κολλήσει στο Waiting for peer έχει συνήθως αντιμεταθεμένη τη διεύθυνση της σήραγγας και του ομολόγου. Ελέγξτε το ζεύγος πριν ξαναχτίσετε οτιδήποτε.
Μια συνεδρία BGP που δεν φτάνει ποτέ σε κατάσταση Established σε μια σήραγγα Cloud VPN συνήθως δεν είναι πρόβλημα δρομολόγησης. Είναι πρόβλημα καλωδίωσης: δύο διευθύνσεις που πρέπει να αντικατοπτρίζονται εισήχθησαν με λάθος σειρά, ή το ζεύγος της πρώτης σήραγγας επαναχρησιμοποιήθηκε στη δεύτερη. Η ίδια η σήραγγα μπορεί να είναι απολύτως υγιής ενώ η συνεδρία κάθεται στο Waiting for peer, επειδή το IPsec και το BGP είναι ξεχωριστές διαπραγματεύσεις μεταξύ των ίδιων δύο άκρων. Αποφασίστε ποιο από τα δύο είναι χαλασμένο πριν ξαναχτίσετε οτιδήποτε.
Μια ερώτηση λύνει τις περισσότερες περιπτώσεις: βλέπει η συσκευή ομολόγου τη διεύθυνση του Cloud Router καθόλου?
Η κατάσταση της σήραγγας και η κατάσταση της συνεδρίας είναι διαφορετικοί έλεγχοι
Το IKE και το ESP έρχονται πρώτα. Αν η σήραγγα δεν έχει εδραιωθεί, τίποτα στο εσωτερικό της δεν έχει σημασία και η συζήτηση για τη διεύθυνση BGP είναι πρόωρη. Διαβάστε την κατάσταση και την αναλυτική κατάσταση της σήραγγας και μετά την κατάσταση ομολόγου BGP του δρομολογητή για την ίδια σήραγγα.
Μια σήραγγα που είναι ενεργή ενώ το ομόλογο BGP της είναι ανενεργό περιορίζει τη βλάβη στη συνεδρία: διεύθυνση ομολόγου, ASN ή TCP 179 που φτάνει στην εσωτερική διεύθυνση. Σήραγγα ενεργή, συνεδρία ενεργή και ακόμη καμία διαδρομή στο VPC είναι μια τρίτη περίπτωση. Η αλλαγή διευθύνσεων δεν θα βοηθήσει εκεί, επειδή η συνεδρία λειτουργεί ήδη και το πρόθεμα απλώς δεν διαφημίζεται ή δεν προτιμάται. Το να κρατάτε αυτές τις τρεις περιπτώσεις χωριστά είναι το μεγαλύτερο μέρος της δουλειάς.
Κάθε σήραγγα χρειάζεται το δικό της /30, με γεμάτα και τα δύο άκρα
Κάθε σήραγγα HA VPN παίρνει ένα link-local /30 από το 169.254.0.0/16, με τη μία διεύθυνση στη διεπαφή του Cloud Router και την άλλη στο ομόλογό σας. Το πεδίο ομολόγου πρέπει να ονομάζει το μακρινό άκρο, ποτέ τη διεύθυνση του ίδιου του δρομολογητή.
Δύο σήραγγες σημαίνουν δύο διεπαφές στο Cloud Router, καθεμία με διαφορετικό /30. Η επαναχρησιμοποίηση του ζεύγους της σήραγγας 0 στη σήραγγα 1 είναι το λάθος που φαίνεται τακτοποιημένο σε έναν συνοπτικό πίνακα και πεθαίνει στο πακέτο OPEN.
| Tunnel | Router interface | Peer address | What a swap produces |
|---|---|---|---|
| tunnel 0 | 169.254.1.1/30 | 169.254.1.2 | OPEN sent to itself or to nothing; session waits |
| tunnel 1 | 169.254.1.5/30 | 169.254.1.6 | same failure on the second session |
| both | one pair reused | one address reused | one session up, the other never leaves waiting |
Διαβάστε το ζεύγος από τον πόρο του δρομολογητή και όχι από τη σύνοψη της κονσόλας. Η σύνοψη εμφανίζει τη διεύθυνση ομολόγου σε στήλη που διαβάζεται εύκολα λάθος, και το ipRange της διεπαφής μαζί με το peerIpAddress του ομολόγου πρέπει να περιγράφουν αντίθετα άκρα ενός /30.
Η αντιμετάθεση συμβαίνει συνήθως κατά την ανακατασκευή
Είναι όταν ξαναχτίζεται μια σήραγγα που τα ζεύγη διασταυρώνονται. Η διεύθυνση ομολόγου της παλιάς σήραγγας αντιγράφεται στο πεδίο διεπαφής της νέας, ή η νέα συνεδρία δείχνει στο ομόλογο της προηγούμενης. Και στις δύο περιπτώσεις το Cloud Router στέλνει πακέτα OPEN σε μια διεύθυνση που τώρα είναι το ίδιο ή σε μια διεύθυνση χωρίς σήραγγα από πίσω.
Γράψτε τα ζεύγη πριν ανοίξετε την κονσόλα: όνομα σήραγγας, διεπαφή, διεύθυνση δρομολογητή, διεύθυνση ομολόγου, ASN ομολόγου. Έπειτα δημιουργήστε και τις δύο σήραγγες σε ένα πέρασμα, ώστε η δεύτερη να μη γεμίσει από τα απομεινάρια της πρώτης.
Τρεις ακόμη λόγοι για τους οποίους περιμένει μια συνεδρία
Το ASN του ομολόγου είναι ο πρώτος: κάθε πλευρά πρέπει να ρυθμιστεί με το ASN της άλλης, και μια ασυμφωνία φτάνει στο ομόλογο αλλά δεν εδραιώνεται ποτέ. Ο δεύτερος είναι το τείχος προστασίας του ίδιου του ομολόγου, που πρέπει να επιτρέπει TCP 179 στη διεπαφή της σήραγγας, και ένας κανόνας IKE ή ESP δεν το καλύπτει. Ο τρίτος είναι ένα ομόλογο που απαντά από διαφορετική διεύθυνση προέλευσης από εκείνη που έχει ρυθμιστεί ως γείτονάς του.
Το ίδιο το αρχείο καταγραφής του ομολόγου είναι ο διακριτής. Αν η σύνοψη BGP του δεν απαριθμεί γείτονα για εκείνη τη διεύθυνση, τα πακέτα δεν φτάνουν και το ζεύγος ή η διαδρομή είναι λάθος. Αν ο γείτονας βρίσκεται σε Active ή Connect, τα πακέτα φτάνουν και οι παράμετροι της συνεδρίας διαφωνούν.
Ελέγξτε με τη σειρά που ταξιδεύουν τα πακέτα
Δουλέψτε προς τα έξω: κατάσταση σήραγγας, μετά κατάσταση ομολόγου BGP του δρομολογητή, μετά η σύνοψη BGP του ομολόγου, μετά οι διαδρομές. Αν τα δύο πρώτα είναι υγιή, σταματήστε να επεξεργάζεστε την πλευρά του Cloud VPN και δουλέψτε στη συσκευή ομολόγου. Αν ο δρομολογητής αναφέρει το ομόλογο ως ανενεργό και η συσκευή σας δεν έχει κανένα γείτονα, το ζεύγος είναι λάθος ή η θύρα BGP φιλτράρεται. Μια σύλληψη πακέτων στη διεπαφή της σήραγγας του ομολόγου το λύνει με μια ματιά, επειδή τα πακέτα OPEN είτε φτάνουν εκεί είτε δεν φτάνουν ποτέ.
Το gcloud compute routers get-status ROUTER --region=REGION εκτυπώνει την κατάσταση ομολόγου δίπλα στη διεύθυνση που χρησιμοποιεί, και αυτό είναι ακριβώς το ζεύγος που πρέπει να συγκρίνετε.
Μόλις εδραιωθεί η συνεδρία, επιβεβαιώστε ότι το πρόθεμα που μάθατε εμφανίζεται στον πίνακα διαδρομών του VPC και ότι ένας κεντρικός υπολογιστής σε κάθε πλευρά απαντά. Έπειτα καταγράψτε τα τελικά ζεύγη δίπλα στα ονόματα των σηράγγων, ώστε η επόμενη ανακατασκευή να ξεκινά από έναν δοκιμασμένο πίνακα και όχι από τη σύνοψη της κονσόλας.