GCP Classic VPN στο Terraform: κάντε τη σήραγγα βάσει διαδρομής
Στο Classic VPN η ετικέτα δεν καθορίζει τη συμπεριφορά. Βάσει διαδρομής σημαίνει τοπικός επιλογέας 0.0.0.0/0, αντίστοιχοι απομακρυσμένοι επιλογείς και ρητή διαδρομή.
Το σχέδιο εφαρμόζεται καθαρά, η σήραγγα ανεβαίνει και η κονσόλα την αποκαλεί βάσει πολιτικής. Η κίνηση εξακολουθεί να μην περνά, και η αναζήτηση διακόπτη βάσει διαδρομής στον πόρο του Terraform δεν οδηγεί πουθενά, επειδή δεν υπάρχει τέτοιο πεδίο. Στο Classic VPN, η συμπεριφορά βάσει διαδρομής δεν είναι λειτουργία που επιλέγετε. Είναι αυτό που παίρνετε όταν ο τοπικός επιλογέας κίνησης είναι 0.0.0.0/0, οι απομακρυσμένοι επιλογείς απαριθμούν τα δίκτυα που θέλετε πραγματικά και μια διαδρομή δείχνει στη σήραγγα. Τρία πράγματα, και η ετικέτα ακολουθεί.
Ο μύθος: πεδίο λειτουργίας σήραγγας
Η ετικέτα της κονσόλας αντικατοπτρίζει αυτό που βλέπει το API στους επιλογείς. Τίποτα στον πόρο δεν λέει βάσει διαδρομής, άρα δεν υπάρχει τίποτα να οριστεί σε αληθές.
Η αναζήτηση αυτού του πεδίου καταναλώνει την πρώτη ώρα του προβλήματος, ενώ η ανάγνωση των τιμών των επιλογέων παίρνει τα τελευταία πέντε λεπτά.
Τι σημαίνει εδώ βάσει διαδρομής
Η Google τεκμηριώνει τις σήραγγες Classic VPN βάσει διαδρομής ως σήραγγες βάσει πολιτικής των οποίων ο τοπικός επιλογέας είναι 0.0.0.0/0. Μόνο τα απομακρυσμένα εύρη ονομάζονται, και η τοπική πλευρά αντιμετωπίζεται ως οποιαδήποτε διεύθυνση. Γι’ αυτό ο δείκτης στη διαμόρφωσή σας είναι τιμή και όχι λειτουργία. Γράψτε και τους δύο επιλογείς ρητά και διαβάστε τους στην έξοδο του σχεδίου:
local_traffic_selector = ["0.0.0.0/0"]
remote_traffic_selector = ["10.20.0.0/16"]
Το πρόθεμα του ομολόγου σε αυτό το απόσπασμα είναι ενδεικτικό· το σχήμα είναι το σημαντικό.
Η διαδρομή είναι ξεχωριστό αντικείμενο
Ένα αντικείμενο σήραγγας δεν εγκαθιστά διαδρομή. Τα πακέτα μπορούν να ταιριάζουν με την πολιτική της σήραγγας και παρόλα αυτά να μην έχουν πού να πάνε, επειδή ο πίνακας δρομολόγησης του VPC καθορίζει το επόμενο άλμα. Η διαδρομή χρειάζεται το εύρος προορισμού, το δίκτυο, τη σήραγγα ως επόμενο άλμα και προτεραιότητα που κερδίζει οτιδήποτε ευρύτερο. Αν το ξεχάσετε, παίρνετε σήραγγα που αναφέρει εδραιωμένη σύνδεση και έναν έλεγχο που δεν φεύγει ποτέ από το VPC.
resource "google_compute_route" "office" {
name = "office-via-vpn"
dest_range = "10.20.0.0/16"
network = google_compute_network.vpc.name
next_hop_vpn_tunnel = google_compute_vpn_tunnel.to_office.id
priority = 1000
}
Δημιουργήστε τη διαδρομή στην ίδια ενότητα με τη σήραγγα, ώστε τα δύο να μην αποκλίνουν στην αναθεώρηση.
Καθρεφτίστε τους επιλογείς στον ομόλογο
Η απομακρυσμένη συσκευή πρέπει να διαμορφωθεί με κατοπτρική εικόνα: το τοπικό της εύρος είναι ο απομακρυσμένος επιλογέας σας, και το απομακρυσμένο της εύρος πρέπει να καλύπτει τα υποδίκτυα GCP που σκοπεύετε να χρησιμοποιήσετε. Αν οποιαδήποτε πλευρά στενέψει, η φάση 2 αποτυγχάνει παρόλο που η φάση 1 πετυχαίνει. Αυτή είναι η πιο κοινή μορφή διαμόρφωσης που φαίνεται σωστή στην κονσόλα και δεν μεταφέρει κίνηση.
Εκτυπώστε τους επιλογείς των δύο πλευρών δίπλα-δίπλα κατά την αναθεώρηση της αλλαγής.
Χωρίστε τη στατική διεύθυνση σε δύο εφαρμογές
Η δημιουργία της δεσμευμένης διεύθυνσης και της σήραγγας που την αναφέρει σε μία εφαρμογή είναι γνωστή πηγή αναταραχής, επειδή η διεύθυνση πρέπει να υπάρχει πριν ο κανόνας προώθησης μπορέσει να τη χρησιμοποιήσει. Εφαρμόστε πρώτα μόνο τον πόρο της διεύθυνσης, μετά προσθέστε την πύλη, τους κανόνες προώθησης και τη σήραγγα και εφαρμόστε ξανά. Το Terraform διαβάζει την υπάρχουσα διεύθυνση από την κατάσταση στη δεύτερη εκτέλεση και την επαναχρησιμοποιεί. Αν το παραλείψετε, η σήραγγα μπορεί να πάρει νέα δημόσια διεύθυνση σε κάθε εφαρμογή, κάτι που σπάει τη διαμόρφωση του ομολόγου κάθε φορά.
Δύο εφαρμογές τώρα είναι φθηνότερες από μια αλλαγή ομολόγου σε κάθε έκδοση.
Επαληθεύστε τη διαπραγμάτευση, όχι την ετικέτα
Μετά την εφαρμογή, ελέγξτε τρία ξεχωριστά γεγονότα: η σήραγγα αναφέρει εδραιωμένη σύνδεση, η διαδρομή υπάρχει με το επιδιωκόμενο επόμενο άλμα και ο ομόλογος αναφέρει ότι η φάση 1 και η φάση 2 είναι ενεργές.
Σήραγγα που είναι ενεργή με τη φάση 2 κάτω σημαίνει ότι οι δύο πλευρές διαφωνούν για τους επιλογείς:
- Η μία πλευρά απαριθμεί υποδίκτυο που η άλλη δεν απαριθμεί.
- Η μία πλευρά χρησιμοποιεί άθροισμα που η άλλη έχει στενέψει.
- Η διαδρομή υπάρχει αλλά δείχνει σε άλλη σήραγγα.
Το Classic VPN είναι μία σήραγγα με χαμηλότερο SLA από το HA VPN, και το HA VPN χρησιμοποιεί δύο διεπαφές, δύο σήραγγες και BGP με διαφορετικούς τύπους πόρων. Το να αντιγράψετε ένα κλασικό παράδειγμα σε διαμόρφωση HA και να περιμένετε τα πεδία επιλογέα να συμπεριφέρονται το ίδιο είναι ξεχωριστό λάθος που αξίζει να αποφύγετε. Τα ίδια τα πεδία της σήραγγας τεκμηριώνονται στην αναφορά του google_compute_vpn_tunnel.