Αντιγράφετε τη διεύθυνση από μία αναζήτηση στον κανόνα δρομολόγησής σας, ο ιστότοπος λειτουργεί, και μια εβδομάδα αργότερα δεν λειτουργεί. Τίποτα στον κανόνα δεν άλλαξε. Η υπηρεσία μετακινήθηκε σε άλλη διεύθυνση άκρης, ο πελάτης έλυσε διαφορετικό όνομα κεντρικού υπολογιστή, ή η συνεδρία πέρασε σε IPv6. Η απόφαση μπροστά σας είναι αν ένας κανόνας βάσει ονόματος ή ένα ρητό εύρος είναι το σωστό εργαλείο για αυτή την υπηρεσία, και τρεις συνθήκες το κρίνουν. Αυτό που ακολουθεί χωρίζει το όνομα από τη διεύθυνση, γιατί μόνο ένα από τα δύο είναι σταθερό.

Γιατί μία αναζήτηση δεν είναι απόθεμα

Ένα δίκτυο παράδοσης περιεχομένου απαντά με μια διεύθυνση που επιλέγεται για τον επιλυτή, την περιοχή και τη στιγμή. Ρωτήστε δύο φορές από διαφορετικά δίκτυα και μπορείτε να πάρετε διαφορετικές απαντήσεις. Ρωτήστε μία φορά και αντιμετωπίστε την απάντηση ως λίστα διευθύνσεων της υπηρεσίας, και ο κανόνας που γράφετε είναι στιγμιότυπο και όχι κανόνας. Αυτό είναι όλο το πρόβλημα με το να αντιμετωπίζετε μια απάντηση DNS ως διαμόρφωση.

Υπάρχει ένα δεύτερο κενό. Ένα ορατό όνομα κεντρικού υπολογιστή σπάνια καλύπτει ολόκληρη την εφαρμογή, γιατί η σύνδεση, τα μέσα και η κίνηση API συχνά χρησιμοποιούν ξεχωριστά ονόματα. Ένας κανόνας χτισμένος από το όνομα στη γραμμή διευθύνσεων μπορεί να καλύψει τη σελίδα και να χάσει το βίντεο, κάτι που διαβάζεται ως μερική αποτυχία και όχι ως σφάλμα δρομολόγησης.

Το τρίτο κενό είναι η οικογένεια διευθύνσεων. Ένας κανόνας μόνο για v4 δεν λέει τίποτα για την εγγραφή AAAA που μπορεί να προτιμήσει ο πελάτης.

Τρεις συνθήκες που κρίνουν κανόνα τομέα ή εύρη

Πρώτον, δημοσιεύει η υπηρεσία ένα σταθερό σύνολο προθεμάτων που μπορείτε να κατέχετε και να τεκμηριώσετε; Αν ναι, τα ρητά εύρη είναι έντιμα και φθηνά. Αν όχι, ένας κανόνας τομέα είναι ο μόνος μηχανισμός που μπορεί να ακολουθήσει την υπηρεσία.

Δεύτερον, ανανεώνεται ο μηχανισμός τομέα του πελάτη σας; Ένας κανόνας που επιλύεται μία φορά κατά τη σύνδεση και ποτέ ξανά είναι στιγμιότυπο με καλύτερο branding. Τρίτον, καλύπτει ο μηχανισμός υποτομείς και τις δύο οικογένειες διευθύνσεων, ή μόνο τα ονόματα που πληκτρολογήσατε;

Απαντήστε σε αυτά τα τρία και η επιλογή είναι συνήθως προφανής. Η εικασία παράγει έναν κανόνα που λειτουργεί στη δοκιμή και αποτυγχάνει στην παραγωγή.

Δοκιμάστε μια συνεδρία, όχι μια σελίδα

Φορτώστε τη σελίδα και μετά εκτελέστε τη λειτουργία που έχει σημασία: συνδεθείτε, ξεκινήστε αναπαραγωγή, ανεβάστε ένα αρχείο. Κάθε μία από αυτές μπορεί να φτάσει σε διαφορετικό κεντρικό υπολογιστή, και αυτή που αποτυγχάνει είναι αυτή που έχασε ο κανόνας σας.

Καταγράψτε με τι επικοινωνεί πραγματικά η συνεδρία αντί για το τι εμφανίζει η σελίδα:

dig +short example.com A
dig +short example.com AAAA
curl -sI https://example.com | head -5

Κρατήστε τον επιλυτή ορατό κατά τη σύγκριση, γιατί ένας κανόνας που λειτουργεί από έναν επιλυτή και αποτυγχάνει από άλλον σας λέει για την απάντηση του CDN, όχι για τη σήραγγα. Ένα σύντομο TTL σημαίνει επίσης ότι η απάντηση που καταγράψατε έχει ημερομηνία λήξης.

Τι καλύπτει πραγματικά κάθε μηχανισμός

Οι δύο μηχανισμοί φαίνονται ανταλλάξιμοι σε μια σελίδα ρυθμίσεων και συμπεριφέρονται διαφορετικά από κάτω.

MechanismWhat it matchesHow it fails
Domain ruleNames the client resolves, then their addressesMisses subdomains, or goes stale when refresh is off
Address routeA prefix you wrote downKeeps matching an address the service has left

Μια διαδρομή διεύθυνσης στον πυρήνα ταιριάζει προθέματα. Δεν έχει ιδέα τι είναι ένα όνομα κεντρικού υπολογιστή, οπότε δεν μπορεί να ακολουθήσει μια υπηρεσία που αλλάζει διευθύνσεις. Ένας κανόνας τομέα επιλύει ονόματα και δρομολογεί το αποτέλεσμα· ακολουθεί την υπηρεσία αλλά εξαρτάται από τον επιλυτή, τη συμπεριφορά ανανέωσης και τον χειρισμό υποτομέων από τον πελάτη, οπότε ένας κανόνας που ακολουθεί ονόματα πρέπει να δοκιμάζεται με τον επιλυτή που χρησιμοποιεί πραγματικά ο πελάτης.

Κανένας δεν είναι υπερσύνολο του άλλου, γι' αυτό η ανάμειξή τους χωρίς σημείωση δημιουργεί σύγχυση αργότερα.

Επανελέγξτε μετά την αλλαγή της υπηρεσίας

Μετά από ενημέρωση του πελάτη ή αλλαγή της υπηρεσίας, εκτελέστε ξανά την ίδια δοκιμή συνεδρίας. Μια λίστα διευθύνσεων που λειτουργούσε προηγουμένως είναι απόδειξη για εκείνη την περίοδο, όχι μόνιμο απόθεμα της υποδομής της υπηρεσίας.

Σημειώστε ποιος μηχανισμός καλύπτει ποιο όνομα κεντρικού υπολογιστή, και την ημερομηνία της τελευταίας επαλήθευσης.

Αυτή η σημείωση είναι η διαφορά ανάμεσα σε έναν κανόνα που μπορείτε να υπερασπιστείτε και σε έναν κανόνα που κανείς δεν τολμά να αγγίξει. Αν η υπηρεσία δημοσιεύει τη δική της λίστα προθεμάτων, χρησιμοποιήστε την και αναφέρετε την ημερομηνία. Αν όχι, πείτε το, και κρατήστε τον κανόνα τομέα με τη συμπεριφορά ανανέωσής του γραμμένη δίπλα.

Σχετικά άρθρα