Το ιδιωτικό DNS λειτουργεί στο VPC αλλά όχι μέσω VPN
Ένα ιδιωτικό όνομα που επιλύεται μέσα στο EC2 αλλά όχι μέσω VPN είναι πρόβλημα διαδρομής resolver. Διαβάστε τη μορφή της αποτυχίας πριν επεξεργαστείτε την εγγραφή ζώνης.
Ένα ιδιωτικό όνομα επιλύεται από μια παρουσία EC2 αλλά όχι από φορητό υπολογιστή συνδεδεμένο μέσω VPN, και η ζώνη φαίνεται σωστή στην κονσόλα. Η πρώτη παρόρμηση είναι να επεξεργαστείτε την εγγραφή, κάτι που σχεδόν ποτέ δεν είναι το πρόβλημα. Η εγγραφή απαντά σε κάποιον· απλώς δεν απαντά στον φορητό σας. Η διαφορά μεταξύ των δύο καλούντων είναι ποιον resolver ρωτούν και αν αυτός ο resolver έχει υποστηριζόμενη διαδρομή προς την προβολή DNS του VPC.
Ξεκινώ αποδεικνύοντας ότι η εγγραφή υπάρχει και περνώ τον υπόλοιπο χρόνο στη διαδρομή του ερωτήματος. Αυτά είναι ξεχωριστά συστήματα και αποτυγχάνουν με διαφορετικούς τρόπους.
Διαβάστε τη μορφή της αποτυχίας πριν αλλάξετε οτιδήποτε
Τρία αποτελέσματα σημαίνουν τρία διαφορετικά πράγματα, και ένα ερώτημα τα ξεχωρίζει: εκτελέστε dig για το όνομα απέναντι στον resolver που χρησιμοποιεί πραγματικά ο πελάτης.
| What you see | What it usually means | First thing to check |
|---|---|---|
| SERVFAIL, or a timeout after several seconds | No path to the resolver, or the resolver cannot reach AWS | Route to the endpoint and the security policy on port 53 |
| NXDOMAIN from a resolver that did answer | The resolver replied, but the zone is not in its view | Zone association or the forwarding rule for that namespace |
| A public address for an internal name | Split DNS is not in effect for this client | Which resolver the client is configured to use |
Το τέλος χρόνου είναι δήλωση για το δίκτυο. Το NXDOMAIN είναι δήλωση για την προβολή DNS. Μια δημόσια απάντηση είναι δήλωση για την πολιτική. Η επεξεργασία εγγραφής ζώνης όσο υπάρχει τέλος χρόνου πετάει το μοναδικό χρήσιμο στοιχείο της υπόθεσης.
Γιατί η διεύθυνση συν-δύο του VPC δεν είναι απομακρυσμένος resolver
Η διεύθυνση CIDR συν-δύο είναι τοπική υπηρεσία για πόρους μέσα στο VPC. Η AWS τεκμηριώνει ότι η προώθηση ερωτημάτων από τοπικά δίκτυα, ή από διακομιστές DNS άλλου VPC, απευθείας σε αυτή τη διεύθυνση δεν υποστηρίζεται και μπορεί να δώσει ασταθή αποτελέσματα.
Αυτό δεν σημαίνει ότι ένα πείραμα δεν φαίνεται ποτέ να λειτουργεί. Σημαίνει ότι η συμπεριφορά δεν είναι συμβόλαιο που μπορείτε να βάλετε σε σενάριο υποστήριξης. Η υποστηριζόμενη κατεύθυνση είναι ένα inbound Resolver endpoint: ένα ζεύγος διευθύνσεων μέσα στο VPC σας, προσβάσιμο από το δίκτυο που ελέγχετε, που δέχεται ερωτήματα που φτάνουν από έξω από την AWS.
Χτίστε τη διαδρομή με τη σειρά με την οποία αποτυγχάνει καθαρά
Πρέπει να υπάρχουν τρία άλματα, και το καθένα έχει τον δικό του τρόπο αποτυχίας.
VPN client -> approved DNS forwarder
forwarder -> forwarding rule for internal.example
forwarding rule -> Resolver inbound endpoint addressesΟ προωθητής χρειάζεται διαδρομή προς τις διευθύνσεις του endpoint μέσω VPN, και η διαδρομή επιστροφής πρέπει επίσης να λειτουργεί. Για συμβατικό DNS στη θύρα 53 το endpoint απαντά μέσω UDP και TCP, άρα και τα δύο πρωτόκολλα πρέπει να επιτρέπονται και τα δύο πρέπει να επιβιώνουν από οποιονδήποτε έλεγχο κατάστασης στη μέση.
Έπειτα ελέγξτε την προβολή DNS ξεχωριστά. Μια ιδιωτική φιλοξενούμενη ζώνη είναι ορατή μόνο στα VPC με τα οποία είναι συνδεδεμένη, ή μέσω μιας σκόπιμης ρύθμισης κοινής χρήσης. Ένα προσβάσιμο endpoint δεν κάνει από μόνο του κάθε ιδιωτική ζώνη επιλύσιμη στο πλαίσιο επίλυσής της.
Ένα εξερχόμενο endpoint εξυπηρετεί την αντίθετη κατεύθυνση και δεν θα απαντήσει σε ερώτημα που έρχεται από τον φορητό σας.
Επαληθεύστε από τα δύο άκρα
Ρωτήστε από τον πελάτη προς τον προωθητή και μετά από τον προωθητή προς το endpoint. Αν ο πελάτης αποτυγχάνει ενώ ο προωθητής πετυχαίνει, το κενό είναι μεταξύ των δύο.
Αν και τα δύο αποτυγχάνουν, κοιτάξτε την πολιτική ασφαλείας στο endpoint και τη διεύθυνση προέλευσης που βλέπει πραγματικά. Ένας προωθητής πίσω από NAT παρουσιάζει τη διεύθυνση NAT αντί για τη διεύθυνση VPN του φορητού, και μόνο αυτή η διαφορά αρκεί για να απορριφθεί το ερώτημα. Αν και τα δύο πετυχαίνουν αλλά η εφαρμογή αποτυγχάνει ακόμα, η εφαρμογή μπορεί να χρησιμοποιεί διαφορετικό resolver από αυτόν που δοκιμάσατε.
Κρατήστε τους δημόσιους και ιδιωτικούς χώρους ονομάτων σκόπιμα ξεχωριστούς. Το Split DNS είναι πολιτική που ρυθμίζετε, όχι παρενέργεια μιας αναζήτησης που τυχαίνει να επιστρέψει δεδομένα.
Τι δεν θα έκανα
Δεν θα πρόσθετα κανόνα NAT που έκανε μια αναζήτηση να λειτουργεί και δεν θα το αποκαλούσα σχεδιασμό.
Δεν θα έστελνα κάθε απομακρυσμένο πελάτη στη διεύθυνση συν-δύο μόνο επειδή μια δοκιμή επέστρεψε κάποτε μια εγγραφή. Και δεν θα διεύρυνα την πολιτική ασφαλείας του endpoint σε ολόκληρη τη δεξαμενή VPN όταν μόνο ένας προωθητής χρειάζεται πρόσβαση. Αν ο οργανισμός εκτελεί ήδη εγκεκριμένο προωθητή μέσα στο VPC, διαβάστε πρώτα αυτόν τον σχεδιασμό, γιατί το δεύτερο endpoint που προσθέτετε είναι αυτό που κανείς δεν τεκμηριώνει.