Google API μέσω VPN: δρομολογήστε το VIP, όχι μόνο το υποδίκτυο
Μια διαδρομή προς υποδίκτυο VPC δεν επιλέγει τις διευθύνσεις VIP του API. Επιλύστε τα σωστά ονόματα, διαφημίστε το πρόθεμα VIP, κρατήστε την επιστροφή στο VPC και μετά δοκιμάστε HTTPS.
Συνδεθείτε με SSH στον τοπικό διακομιστή, σηκώστε το τούνελ και η ιδιωτική VM απαντά· μετά η πρώτη κλήση σε Google API αποτυγχάνει χωρίς διαδρομή. Το υποδίκτυο της VM και οι διευθύνσεις VIP του API είναι διαφορετικοί προορισμοί, οπότε μια διαδρομή για το ένα δεν επιλέγει το άλλο. Τρεις προϋποθέσεις πρέπει να ισχύουν πριν δουλέψει μια ιδιωτική κλήση API. Το όνομα του API πρέπει να επιλύεται σε VIP, το πρόθεμα VIP πρέπει να διαφημίζεται μέσα από το τούνελ και το VPC πρέπει να ξέρει πώς να στείλει την απάντηση πίσω. Ένα ping δεν σας λέει τίποτα από αυτά, ούτε μια λειτουργική συνεδρία SSH σε μηχάνημα μέσα στο υποδίκτυο.
Οι διευθύνσεις VIP του API είναι ξεχωριστοί προορισμοί
Η Google δημοσιεύει αποκλειστικές διευθύνσεις VIP για πρόσβαση στο API από το τοπικό δίκτυο, και αυτές είναι οι διευθύνσεις που πρέπει να επιστρέφει το DNS σας για τα ονόματα του API. Και τα δύο είναι μικρά προθέματα και κανένα δεν ανήκει στον χώρο RFC 1918:
| Record | Resolves to | What it does not give you |
|---|---|---|
| private.googleapis.com | 199.36.153.8/30, the general front door for Google APIs | not a bypass around a service perimeter |
| restricted.googleapis.com | 199.36.153.4/30, reachable only for services a perimeter allows | not the whole API surface, so some names stay out of reach |
Διευθύνσεις που μοιάζουν δημόσιες δεν σημαίνουν ότι η διαδρομή πρέπει να φύγει από το τούνελ για το συνηθισμένο διαδίκτυο. Τα προθέματα υπάρχουν ώστε ένας τοπικός πελάτης να φτάνει στις μπροστινές υπηρεσίες της Google μέσα από υποστηριζόμενη διαδρομή αντί για αυθαίρετο σημείο εξόδου. Αντιμετωπίστε τα ως προορισμούς που ανήκουν στο τούνελ, όχι ως hosts για δοκιμές. Ένας κανόνας τείχους προστασίας γραμμένος για έξοδο στο διαδίκτυο συνήθως τα απορρίπτει, και αυτός είναι ένας συχνός λόγος που μια κλήση αποτυγχάνει πριν καν ξεκινήσει.
Το DNS αποφασίζει σε ποιο τελικό σημείο φτάνετε
Στρέψτε τον τοπικό resolver στις εγγραφές που τεκμηριώνει η Google για το επιλεγμένο τελικό σημείο, ώστε τα ονόματα που χρειάζεται η εφαρμογή να απαντούν με αυτό το VIP. Η απλή googleapis.com δεν είναι απογραφή: τα μητρώα πακέτων, τα μητρώα containers και οι σύνδεσμοι μετεγκατάστασης έχουν τα δικά τους τεκμηριωμένα ονόματα. Το περιορισμένο VIP επίσης δεν μεταφέρει κάθε υπηρεσία, οπότε ένα όνομα που επιλύεται μπορεί να μην υποστηρίζεται. Καταγράψτε τους τομείς που επικοινωνεί πραγματικά η εφαρμογή πριν αγγίξετε τον resolver.
Το να μαντέψετε μια διεύθυνση VM στο VPC ως υποκατάστατο ονόματος υπηρεσίας δεν είναι διόρθωση, και συνήθως κρύβει το κενό του DNS μέχρι να αποτύχει άλλος πελάτης.
Διαφημίστε το πρόθεμα VIP, κρατήστε τα υπόλοιπα
Με σύνδεση βασισμένη σε BGP, το Cloud Router πρέπει να διαφημίζει το επιλεγμένο πρόθεμα VIP ώστε ο τοπικός δρομολογητής να μάθει αυτό το εύρος μέσα από την προβλεπόμενη συνεδρία. Η διαφήμιση μόνο των υποδικτύων VPC δεν προσθέτει αυτό το εύρος, και ο τοπικός δρομολογητής συνεχίζει να χρησιμοποιεί την προεπιλεγμένη του διαδρομή για αυτές τις διευθύνσεις. Το πρόθεμα στον πίνακα δρομολόγησης είναι η μόνη απόδειξη ότι η διαφήμιση πέρασε τη συνεδρία.
Διατηρήστε τις υπάρχουσες διαφημίσεις όσο προσθέτετε τη νέα, γιατί οι επιλογές σε επίπεδο δρομολογητή και σε επίπεδο peer έχουν διαφορετική εμβέλεια, και η αλλαγή του συνόλου μπορεί να αποσύρει δίκτυα που ήδη δούλευαν. Έπειτα ελέγξτε την πραγματική διαφήμιση σε κάθε συνεδρία και όχι στον δρομολογητή συνολικά. Ένα πρόθεμα που λείπει και ένα πρόθεμα που αποσύρθηκε φαίνονται ίδια από την τοπική πλευρά, οπότε η προβολή της συνεδρίας είναι αυτό που ξεχωρίζει μια παράλειψη από μια παλινδρόμηση.
Η πλευρά του VPC χρειάζεται δική της διαδρομή και επιστροφή
Μέσα στο VPC, η διαδρομή προς το VIP πρέπει να χρησιμοποιεί την προεπιλεγμένη πύλη διαδικτύου ως επόμενο άλμα, και παρά το όνομα αυτή η κίνηση μένει μέσα στο δίκτυο της Google. Το VPC χρειάζεται επίσης διαδρομή επιστροφής προς την τοπική πηγή μέσω του VPN, που είναι ξεχωριστό αντικείμενο από το διαφημιζόμενο πρόθεμα. Λάβετε υπόψη τις τεκμηριωμένες περιφερειακές απαιτήσεις δρομολόγησης όταν το τούνελ και ο πελάτης δεν βρίσκονται στην ίδια περιοχή.
Ελέγξτε την επιστροφή ανεξάρτητα, γιατί μια λειτουργική κατεύθυνση αιτήματος μπορεί να κρύψει μια χαλασμένη κατεύθυνση απάντησης. Δύο κατευθύνσεις, δύο διαδρομές, και καθεμία αποτυγχάνει με το δικό της σύμπτωμα.
Δοκιμάστε το αίτημα και μετά διαβάστε την απόρριψη
Το ICMP echo δεν παίρνει απάντηση από αυτές τις διευθύνσεις VIP, οπότε ένα αποτυχημένο ping δεν αποδεικνύει τίποτα και ένα επιτυχημένο ελάχιστα. Από τον πραγματικό πελάτη, εξετάστε την απάντηση του ονόματος και τη διαδρομή που επιλέχθηκε, και μετά κάντε ένα εξουσιοδοτημένο αίτημα HTTPS στην υπηρεσία που σας ενδιαφέρει. Αν το αίτημα φτάσει στην υπηρεσία και απορριφθεί, κοιτάξτε τα διαπιστευτήρια, το IAM και οποιαδήποτε πολιτική περιμέτρου υπηρεσίας ισχύει.
Η ιδιωτική δρομολόγηση δεν παρέχει εξουσιοδότηση API και δεν αλλάζει τι επιτρέπεται να κάνει η ταυτότητα. Η επιτυχία μεταφοράς και μια εξουσιοδοτημένη απάντηση είναι ξεχωριστά αποτελέσματα και χρειάζεστε και τα δύο. Κρατήστε ρητή και τη διαδρομή IPv6, γιατί η ρύθμιση των προθεμάτων IPv4 δεν λέει τίποτα για πελάτη που προτιμά IPv6.
Ο οδηγός της Google για Private Google Access από το τοπικό δίκτυο καλύπτει μαζί τις εγγραφές DNS και τις απαιτήσεις δρομολόγησης, οπότε συγκρίνετε τις ρυθμίσεις resolver και διαφήμισης με αυτόν και όχι με μια ανάρτηση φόρουμ. Έπειτα επαναλάβετε το ίδιο αίτημα και σημειώστε την απάντηση και τη διαδρομή στο ίδιο εισιτήριο.