Το CIDR πελάτη του AWS Client VPN δεν μπορεί να επικαλύπτει την περιοχή VPC
Το AWS καθορίζει το pool του Client VPN κατά τη δημιουργία, και η επικάλυψη κρίνεται από περιοχές, όχι από αχρησιμοποίητες διευθύνσεις. Πέντε έλεγχοι πριν το χτίσετε.
Ένα endpoint του AWS Client VPN μοιράζει διευθύνσεις πελάτη από ένα pool που επιλέγετε εσείς, και το AWS ελέγχει αυτό το pool απέναντι στο δίκτυο προορισμού πριν δημιουργήσει το endpoint. Ο έλεγχος δεν αφορά το αν ένα subnet φαίνεται ελεύθερο. Αφορά το αν το pool επικαλύπτει την περιοχή VPC, και η απάντηση είναι η ίδια είτε μια παρουσία EC2 χρησιμοποιεί σήμερα αυτές τις διευθύνσεις είτε όχι. Η επικάλυψη είναι ζήτημα περιοχών, όχι κατανομών.
Περάστε πέντε ελέγχους με τη σειρά. Σταματήστε στον πρώτο που αποτυγχάνει, γιατί κανένα επόμενο βήμα δεν διορθώνει προηγούμενη απόφαση.
Η επικάλυψη είναι έλεγχος περιοχών, όχι έλεγχος ελεύθερων διευθύνσεων
Ξεκινήστε από το CIDR της VPC, όχι από το subnet που σκοπεύετε να συσχετίσετε. Ένα pool 172.20.0.0/22 βρίσκεται μέσα σε μια VPC 172.20.0.0/16 και απορρίπτεται ακόμη και όταν κανένα subnet δεν το καταλαμβάνει, γιατί η επικάλυψη είναι ιδιότητα των περιοχών και όχι των τρεχουσών κατανομών. Στη συνέχεια προσθέστε τους προορισμούς προς τους οποίους δρομολογεί το endpoint: peered VPC, transit gateway, τοπικές περιοχές μέσω σύνδεσης site-to-site. Κάθε περιοχή στην οποία ένας πελάτης μπορεί να χρειαστεί να φτάσει ανήκει στη λίστα.
Συλλέξτε τις από τον λογαριασμό και όχι από τη μνήμη: aws ec2 describe-vpcs --query "Vpcs[].CidrBlock", μαζί με τις εγγραφές του πίνακα δρομολόγησης για το subnet που θέλετε να συσχετίσετε.
Το μέγεθος του pool αποφασίζεται πριν το χτίσιμο
Το AWS δέχεται pool πελατών IPv4 μεταξύ /22 και /12 στο Client VPN. Ένα /24 είναι πολύ μικρό, ένα /8 είναι εκτός της τεκμηριωμένης περιοχής, και τα δύο λάθη προέρχονται από το να μετράτε το pool σαν subnet φόρτου εργασίας. Μετρήστε το με βάση τους αναμενόμενους ταυτόχρονους πελάτες συν περιθώριο και μετά στρογγυλοποιήστε σε επιτρεπόμενο πρόθεμα.
Ελέγξτε την αριθμητική πριν την πληκτρολογήσετε στην κονσόλα, γιατί ένα πρόθεμα με λάθος πληκτρολόγηση αλλάζει το μέγεθος του pool χωρίς καμία προειδοποίηση:
python3 -c "import ipaddress; p=ipaddress.ip_network('172.16.0.0/22'); print(p.num_addresses, p.prefixlen, p.overlaps(ipaddress.ip_network('172.20.0.0/16')))"Αυτό εκτυπώνει τον αριθμό διευθύνσεων, το μήκος του προθέματος και το αν ο υποψήφιος συγκρούεται με την περιοχή VPC, που είναι ταχύτερο από το να σκέφτεστε μάσκες δικτύου στο τέλος ενός παραθύρου αλλαγών.
Ο resolver έχει τον δικό του ρόλο διεύθυνσης
Ο resolver της VPC απαντά στη βασική διεύθυνση της περιοχής VPC συν δύο, που δεν είναι απαραίτητα μέσα στο subnet που συσχετίσατε. Το να υποθέσετε ότι ο resolver πρέπει να ζει στο pool πελατών, ή να χτίσετε subnet γύρω από αυτή τη διεύθυνση, προσθέτει αντικείμενα χωρίς να αλλάζει τίποτα. Το σημαντικό είναι το endpoint να φέρει ρύθμιση DNS που μπορεί να εφαρμόσει ο πελάτης και ο resolver να είναι προσβάσιμος από το tunnel.
Καταγράψτε τον resolver, το pool πελατών και το συσχετισμένο subnet ως τρία ξεχωριστά στοιχεία στο σχέδιο διευθύνσεων. Αποτυγχάνουν ανεξάρτητα, και το ότι ένα είναι σωστό δεν λέει τίποτα για τα άλλα δύο.
Τέσσερα πεδία που δεσμεύεστε κατά τη δημιουργία
Το CIDR IPv4 του πελάτη είναι σταθερό κατά τη δημιουργία. Η αλλαγή διακομιστή DNS, η προσθήκη συσχέτισης, η εναλλαγή της ομάδας ασφαλείας, η επεξεργασία κανόνων εξουσιοδότησης ή η μεταβολή των διαδρομών split-tunnel είναι όλες συνηθισμένες αλλαγές, και καμία τους δεν μετονομάζει το pool. Αυτή η ασυμμετρία είναι ο λόγος που αυτό αξίζει ανασκόπηση: οι φθηνές ρυθμίσεις είναι αυτές που θα θελήσετε να αλλάξετε αργότερα, και η ακριβή είναι αυτή στην οποία δεσμεύεστε πρώτη. Διαβάστε την περιγραφή του endpoint πριν σχεδιάσετε παράθυρο αλλαγών.
Επιθεωρήστε το αναπτυγμένο endpoint πριν υποθέσετε ανακατασκευή. Το aws ec2 describe-client-vpn-endpoints επιστρέφει το pool, το DNS, τη σημαία split-tunnel και τις συσχετίσεις σε μία απάντηση, που συνήθως αρκεί για να αποκλείσει ανακατασκευή.
Αντικαταστήστε το endpoint αντί να το μπαλώσετε
Ένα νέο endpoint είναι νέο endpoint, όχι μετανάστευση. Οι υπάρχουσες συνεδρίες δεν μεταφέρονται σε αυτό, τα προφίλ πελατών δείχνουν άλλο όνομα, και κάθε ρύθμιση που θεωρούσατε δεδομένη πρέπει να ξαναδημιουργηθεί: πιστοποιητικό διακομιστή, έλεγχος ταυτότητας, συσχετίσεις, διαδρομές, ομάδες εξουσιοδότησης, καταγραφή. Επαληθεύστε με έναν πελάτη απέναντι σε απαιτούμενη ιδιωτική υπηρεσία και απέναντι σε προορισμό που πρέπει να απορρίπτεται, και μετά διευρύνετε την πρόσβαση. Ό,τι παραλείψετε γίνεται αργότερα αίτημα υποστήριξης.
Κρατήστε το παλιό endpoint σε λειτουργία μέχρι να περάσει αυτή η επαλήθευση, και διατηρήστε διοικητική διαδρομή που δεν εξαρτάται από το νέο.
Ένα όριο που αξίζει να αναφερθεί: αυτό καλύπτει το pool πελατών IPv4. Οι ρυθμίσεις κίνησης dual-stack και IPv6 στο Client VPN ακολουθούν το δικό τους μοντέλο διευθυνσιοδότησης, οπότε μην αντιγράψετε αυτή τη λίστα χωρίς να διαβάσετε την τεκμηρίωση για αυτή τη λειτουργία.