AWS Site-to-Site VPN: εξωτερικές, εσωτερικές διευθύνσεις και πρόθεμα LAN
Τρεις ρόλοι διευθύνσεων μπερδεύονται σε ένα AWS VPN: εξωτερικοί ομότιμοι, ο εσωτερικός σύνδεσμος /30 και τα προστατευμένα προθέματα LAN. Διαβάστε τους από τη ληφθείσα διαμόρφωση.
Τα περισσότερα λάθη στο AWS Site-to-Site VPN είναι λάθη διευθύνσεων και γίνονται πριν κουνηθεί έστω ένα πακέτο. Οι εξωτερικές διευθύνσεις της σήραγγας φτάνουν στους ομότιμους IPsec, οι εσωτερικές διευθύνσεις σχηματίζουν τον σύνδεσμο δρομολόγησης μεταξύ τους, και τα προστατευμένα προθέματα είναι ο λόγος ύπαρξης αυτού του συνδέσμου. Αντιγράψτε έναν ρόλο σε άλλον και η σήραγγα σηκώνεται ενώ τίποτα δεν δρομολογείται. Ακολουθεί η αλληλουχία διάβασε-έλεγξε-ρύθμισε που χρησιμοποιώ σε πύλη πελάτη BGP, με τις τιμές παρμένες από τη ληφθείσα διαμόρφωση της συσκευής και όχι από μνήμης.
Τρεις ρόλοι διευθύνσεων, μία σήραγγα
Οι εξωτερικές διευθύνσεις είναι δημόσιες και ανήκουν στους ομότιμους IPsec: μία ανά σήραγγα στην πλευρά του AWS, και η προσβάσιμη ταυτότητα της πύλης πελάτη στη δική σας πλευρά, προσαρμοσμένη σε όποια διάταξη NAT έχετε στην πραγματικότητα. Οι εσωτερικές διευθύνσεις είναι ιδιωτικές και ανήκουν στον λογικό σύνδεσμο, τον οποίο το AWS τεκμηριώνει ως /30 παρμένο από το 169.254.0.0/16. Τα προστατευμένα προθέματα είναι τα δίκτυα VPC, εσωτερικά ή διέλευσης που δρομολογείτε και διαφημίζετε μέσω αυτού του συνδέσμου.
Το να δώσετε ένα πρόθεμα LAN ως διεύθυνση της διεπαφής της σήραγγας είναι η κλασική εκδοχή αυτού του λάθους. Η διεπαφή φαίνεται ρυθμισμένη, το LAN δεν διαφημίζεται και η απέναντι πλευρά δεν έχει διαδρομή γι’ αυτό. Η σήραγγα μπορεί ακόμη και να περάσει το δικό της εσωτερικό ping ενώ κάθε όνομα εφαρμογής λήγει σε timeout. Η αναφορά επιλογών σήραγγας απαριθμεί τους περιορισμούς του εσωτερικού CIDR, συμπεριλαμβανομένου του εύρους διευθύνσεων από το οποίο πρέπει να προέρχεται.
Διαβάστε τις τιμές από τη ληφθείσα διαμόρφωση
Κατεβάστε τη διαμόρφωση για το συγκεκριμένο μοντέλο συσκευής σας από τη σύνδεση και μετά θεωρήστε τον πίνακα διευθύνσεών της πηγή αλήθειας. Η κονσόλα δείχνει τις ίδιες τιμές ανά σήραγγα: εξωτερική IP, εσωτερικό CIDR και τη διεύθυνση του ομότιμου BGP στην πλευρά του AWS. Οι δύο σήραγγες είναι ξεχωριστά αντικείμενα με ξεχωριστά εξωτερικά σημεία τερματισμού και ξεχωριστά εσωτερικά /30, μολονότι και οι δύο μεταφέρουν τα ίδια προστατευμένα δίκτυα.
aws ec2 describe-vpn-connections --vpn-connection-ids vpn-0123456789abcdef0 \
--query 'VpnConnections[0].Options.TunnelOptions[].[OutsideIpAddress,TunnelInsideCidr]'
aws ec2 describe-customer-gateways --customer-gateway-ids cgw-0123456789abcdef0 \
--query 'CustomerGateways[0].[IpAddress,BgpAsn]'Αν το ληφθέν αρχείο και η ζωντανή κονσόλα διαφωνούν, το αρχείο είναι παρωχημένο. Κατεβάστε το ξανά αντί να επεξεργαστείτε διευθύνσεις με το χέρι, γιατί μια αναντιστοιχία ανάμεσα στο εσωτερικό ζεύγος και τον ρυθμισμένο γείτονα του ομότιμου είναι σιωπηλή αποτυχία BGP.
Χτίστε τον σύνδεσμο με τη σωστή διεύθυνση πάνω του
Σε πύλη Linux η σήραγγα είναι διεπαφή VTI ή XFRM και το εσωτερικό /30 πηγαίνει σε αυτή τη διεπαφή. Δύο σήραγγες σημαίνουν δύο διεπαφές και δύο γείτονες BGP, έναν ανά σημείο τερματισμού του AWS. Η σύμβαση που εκτυπώνει το AWS στη ληφθείσα διαμόρφωση συσκευής βάζει την εικονική ιδιωτική πύλη στην πρώτη διεύθυνση κάθε εσωτερικού /30 και την πύλη πελάτη σας στη δεύτερη, οπότε παίρνετε την υψηλότερη διεύθυνση και κάνετε peering με τη χαμηλότερη. Τίποτα εδώ δεν χρειάζεται διεύθυνση LAN.
ip tunnel add tun0 mode vti local 203.0.113.10 remote 18.230.1.1 key 42
ip addr add 169.254.10.2/30 dev tun0
ip link set tun0 up mtu 1400
ip tunnel add tun1 mode vti local 203.0.113.10 remote 18.230.2.1 key 43
ip addr add 169.254.10.6/30 dev tun1
ip link set tun1 up mtu 1400Αν το αρχείο για το μοντέλο συσκευής σας εκτυπώνει το αντίστροφο ζεύγος, χρησιμοποιήστε τους αριθμούς του και κρατήστε τον κανόνα: η διεύθυνση στη διεπαφή είναι δική σας, η διεύθυνση του ομότιμου ανήκει στο AWS. Το αντίστροφο δίνει σήραγγα που δεν φτάνει ποτέ σε Established, γιατί ο γείτονας που ρυθμίσατε είναι η διεύθυνση που κρατά ήδη η δική σας διεπαφή.
Κρατήστε το mark και το κλειδί VTI ευθυγραμμισμένα με ό,τι χρησιμοποιεί ο δαίμονας IKE για να δέσει ένα child SA στη διεπαφή, αλλιώς η κίνηση φτάνει στη σήραγγα χωρίς διεπαφή να προσγειωθεί. Ελέγξτε το MTU ως προς τη διαδρομή και ως προς τις δικές του ρυθμίσεις του δαίμονα IKE αντί να αντιγράψετε έναν αριθμό από άλλη τοποθεσία.
Επαληθεύστε το BGP πριν επαληθεύσετε τις διαδρομές
Το ότι σηκώνεται το IPsec αποδεικνύει πως οι ομότιμοι συμφωνούν σε μια συσχέτιση ασφαλείας και τίποτα άλλο. Η συνεδρία BGP είναι ξεχωριστή διαπραγμάτευση πάνω από τον εσωτερικό σύνδεσμο, οπότε διαβάστε την κατάσταση του γείτονα και τους μετρητές προθεμάτων και μετά συγκρίνετέ τους με ό,τι σκοπεύατε να διαφημίσετε.
ip -s addr show dev tun0
vtysh -c 'show bgp summary'
vtysh -c 'show bgp neighbors 169.254.10.1'
vtysh -c 'show ip bgp neighbors 169.254.10.1 advertised-routes'Κατάσταση Established με μηδέν προθέματα που ελήφθησαν είναι πρόβλημα πολιτικής ή διαφήμισης, όχι σήραγγας. Επαναλάβετε όλο τον έλεγχο στη δεύτερη σήραγγα· μια σήραγγα που δουλεύει σας λέει ότι οι διευθύνσεις είναι εύλογες, όχι ότι η δεύτερη σήραγγα ρυθμίστηκε καθόλου.
Ακολουθήστε ένα δρομολογημένο πακέτο και μετά σταματήστε
Μόλις η συνεδρία μεταφέρει τα προθέματα, δοκιμάστε τη διαδρομή και προς τις δύο κατευθύνσεις από την πύλη: διεύθυνση προέλευσης, επόμενο άλμα και την πολιτική ασφαλείας που επιτρέπει την κίνηση. Μια συνεδρία BGP μπορεί να είναι πάνω ενώ το συγκεκριμένο πρόθεμα που χρειάζεται η εφαρμογή σας φιλτράρεται, συνοψίζεται ή δείχνει σε λάθος διεπαφή.
Το Reachability Analyzer είναι το εργαλείο της πλευράς AWS που παίρνει μια πηγή, έναν προορισμό και μια διαδρομή και αναφέρει ποιο στοιχείο σε υποστηριζόμενη διαμόρφωση την εμπόδισε. Χρησιμοποιήστε το για να δοκιμάσετε τη διαδρομή από το VPC στη διεύθυνση της πύλης πελάτη σας, όχι από κεντρικό υπολογιστή εφαρμογής. Αναλύει διαμόρφωση και δεν στέλνει πακέτο μέσα από τοπικό τείχος προστασίας, οπότε κρατήστε την ετυμηγορία του χωριστά από τους δικούς σας μετρητές διεπαφής και τις συλλήψεις πακέτων.
Καταγράψτε το εξωτερικό ζεύγος, το εσωτερικό /30 και τα διαφημιζόμενα προθέματα για κάθε σήραγγα σε έναν πίνακα. Αυτός ο πίνακας κάνει την επόμενη αλλαγή αναθεωρήσιμη.