Ιδιωτικό όνομα DNS ή απλώς μια διεύθυνση IP; Αποφασίστε πριν το μοιραστείτε
Επιλέξτε το όνομα από τη διαδρομή του resolver και τον κανόνα πρόσβασης από την πηγή που βλέπει η υπηρεσία. Είναι δύο ξεχωριστές αποφάσεις και καθεμιά έχει το δικό της τεστ.
Δύο ερωτήματα μπερδεύονται όταν μια ιδιωτική υπηρεσία ανοίγει σε απομακρυσμένους χρήστες. Το πρώτο είναι ποιο όνομα πρέπει να χρησιμοποιούν οι πελάτες· το δεύτερο είναι ποιες πηγές πρέπει να δέχεται η υπηρεσία. Απαντήστε τα με αυτή τη σειρά, γιατί ένα σωστό όνομα πίσω από λάθος κανόνα πρόσβασης αποτυγχάνει ακόμη, και ένας σωστός κανόνας πίσω από όνομα που δεν επιλύεται δεν δοκιμάζεται ποτέ.
Συνθήκη πρώτη: ποια διαδρομή resolver έχουν οι πελάτες;
Ένα ιδιωτικό όνομα λειτουργεί μόνο αν ο resolver του πελάτη μπορεί να το απαντήσει. Αυτό σημαίνει ότι ένας εξουσιοδοτημένος απομακρυσμένος πελάτης πρέπει να φτάσει σε διακομιστή DNS που κρατά τη ζώνη, είτε μέσω της σήραγγας είτε μέσω resolver που ο οργανισμός ήδη εκτελεί για απομακρυσμένους χρήστες. Η σήραγγα είναι μεταφορά, όχι κατάλογος. Δίνει στον πελάτη διαδρομή προς resolver και δεν του λέει ποια ζώνη να ρωτήσει.
resolvectl query files.corp.example
dig @10.20.30.10 +short files.corp.example
Ένας δημόσιος resolver δεν θα μάθει μια ιδιωτική ζώνη επειδή ο φορητός υπολογιστής συνδέθηκε σε VPN.
Το επίθημα αξίζει την ίδια προσοχή. Χρησιμοποιήστε υποτομέα τομέα που ελέγχει ο οργανισμός, ώστε η κυριότητα και ο σχεδιασμός πιστοποιητικών να μένουν σαφείς. Αποφύγετε το .local: η προδιαγραφή multicast DNS συνδέει αυτό το επίθημα με επίλυση link-local, και μια δρομολογημένη σήραγγα δεν αναπαράγει αυτή τη συμπεριφορά για εσάς.
Συνθήκη δεύτερη: ποια πηγή λαμβάνει η υπηρεσία;
Οι κανόνες εισδοχής γράφονται με βάση διευθύνσεις, άρα το χρήσιμο ερώτημα είναι ποια διεύθυνση βλέπει η υπηρεσία μετά τη δρομολόγηση και τη μετάφραση. Για μια παράδειγμα υπηρεσία στη 10.20.30.40, οι πελάτες γραφείου φτάνουν από το 10.20.30.0/24 και οι απομακρυσμένοι πελάτες από ξεχωριστή δεξαμενή όπως το 10.99.0.0/24.
Αν μια πύλη μεταφράζει την απομακρυσμένη δεξαμενή, η υπηρεσία βλέπει τον μεταφραστή, και ένας κανόνας γραμμένος για το 10.99.0.0/24 δεν θα ταιριάξει.
Διαβάστε το από την πλευρά της υπηρεσίας και όχι του πελάτη. Ένα αρχείο καταγραφής ακροατή ή μια σύλληψη πακέτων στον κεντρικό υπολογιστή της υπηρεσίας δείχνει την πηγή που έφτασε πραγματικά· η διεύθυνση του ίδιου του πελάτη είναι μόνο μια εικασία για το τι επέζησε της διαδρομής.
Συνθήκη τρίτη: το όνομα είναι δεμένο με υπηρεσία ή με κεντρικό υπολογιστή;
Ένα όνομα που δείχνει στη διεύθυνση μιας μηχανής συνδέει κάθε πελάτη με εκείνη τη μηχανή. Ένα όνομα που δείχνει σε εξισορροπητή φορτίου ή σε σταθερή διεύθυνση υπηρεσίας επιβιώνει από την αντικατάσταση του κεντρικού υπολογιστή πίσω του. Επιλέξτε συνειδητά, γιατί η αλλαγή αργότερα σημαίνει αλλαγή των σελιδοδεικτών κάθε πελάτη και του θέματος κάθε πιστοποιητικού.
Για μία εσωτερική υπηρεσία, μια άμεση εγγραφή είναι συνήθως καλή και απλούστερη στη σκέψη.
Για οτιδήποτε θα αντικατασταθεί, θα ξαναχτιστεί ή θα κλιμακωθεί, ένα σταθερό μέτωπο αξίζει την επιπλέον διαμόρφωση. Το τεστ είναι απλό: αν μπορείτε να αντικαταστήσετε το backend χωρίς να ενημερώσετε τους χρήστες, το όνομα είναι δεμένο με την υπηρεσία· αν δεν μπορείτε, είναι δεμένο με κεντρικό υπολογιστή.
Δοκιμάστε τις δύο αποφάσεις χωριστά
Επιλύστε πρώτα και μετά συνδεθείτε. Ένα τεστ επίλυσης που επιστρέφει την αναμενόμενη διεύθυνση αποδεικνύει τη διαδρομή του ονόματος και δεν λέει τίποτα για την εισδοχή. Ένα τεστ σύνδεσης αποδεικνύει τη διαδρομή και τον κανόνα μαζί, οπότε εκτελέστε το μόνο αφού πετύχει η επίλυση.
curl -sv --max-time 5 https://files.corp.example/health
Έπειτα δοκιμάστε μία φορά μια απαγορευμένη πηγή και καταγράψτε το αποτέλεσμα.
Κρατήστε τις δύο εγγραφές χωριστά στην τεκμηρίωσή σας: το όνομα και τη ζώνη του, τις αποδεκτές πηγές και τον ιδιοκτήτη του κανόνα. Όταν αλλάζει το ένα, το άλλο δεν χρειάζεται.
Πού συνήθως πάει στραβά η απόφαση
Η συχνή αποτυχία είναι μια υπηρεσία που δημοσιεύεται με όνομα που επιλύεται μόνο στο δίκτυο γραφείου, με κανόνα εισδοχής που δέχεται μόνο το εύρος γραφείου. Οι απομακρυσμένοι χρήστες αναφέρουν τότε μια χαλασμένη υπηρεσία που στην πραγματικότητα είναι δύο ξεχωριστές παραλείψεις. Η δεύτερη συχνή αποτυχία είναι η αντίστροφη: ένας ευρύς κανόνας εισδοχής που προστέθηκε για να εξαφανίσει ένα πρόβλημα ονόματος αφήνει την υπηρεσία προσβάσιμη από πηγές που κανείς δεν είχε σκοπό. Και τα δύο είναι παραλείψεις διαμόρφωσης, και από την καρέκλα του χρήστη φαίνονται ίδια.
Κανένα από τα λάθη δεν φαίνεται από ένα μόνο επιτυχημένο τεστ. Γι' αυτό οι δύο αποφάσεις αξίζουν ξεχωριστές εγγραφές και ξεχωριστά τεστ, ακόμη και όταν τα παίρνει το ίδιο άτομο.
Γράψτε και τα δύο πριν η υπηρεσία τεθεί σε λειτουργία, γιατί η επόμενη αλλαγή θα είναι ευκολότερο να τη σκεφτείτε. Η εγγραφή είναι σύντομη: μία γραμμή για το όνομα και τη ζώνη του, μία γραμμή για τις αποδεκτές πηγές και τον ιδιοκτήτη του κανόνα.