Nebula advertise_addrs ή static_host_map: επιλέξτε με βάση τον ιδιοκτήτη
Ο στατικός χάρτης συντηρείται από κάθε peer που τον καλεί· η αναγγελθείσα διεύθυνση δημοσιεύεται από τον κεντρικό υπολογιστή. Επιλέξτε με βάση ποιος γνωρίζει το τελικό σημείο.
Οι ρυθμίσεις static_host_map και advertise_addrs βάζουν και οι δύο μια διεύθυνση μπροστά από ένα peer, και απαντούν σε διαφορετικά ερωτήματα. Η μία είναι ένα τοπικό αρχείο που απαριθμεί μια διεύθυνση overlay και το τελικό σημείο underlay για κλήση. Η άλλη είναι ένας κεντρικός υπολογιστής που λέει στους φάρους του ποια επιπλέον τελικά σημεία μπορούν να τον φτάσουν. Η ιδιοκτησία είναι η πραγματική διαφορά: τον χάρτη τον συντηρούν όλοι όσοι τον χρειάζονται, και την αναγγελία ο ίδιος ο κεντρικός υπολογιστής.
Αποφασίστε με βάση ποιος κατέχει την πληροφορία
| Setting | Where it lives | Best for |
|---|---|---|
static_host_map | Every peer that needs the entry | Bootstrap endpoints, deliberately fixed paths |
advertise_addrs | The host's own config | Endpoints the host cannot otherwise discover |
Κάθε μεταβαλλόμενο peer στο στατικό αρχείο κάθε peer είναι μια εργασία συντήρησης που μεγαλώνει με το τετράγωνο του στόλου. Αυτός είναι ο πρακτικός λόγος να καταφύγετε στην άλλη ρύθμιση όταν ο ίδιος ο κεντρικός υπολογιστής γνωρίζει την απάντηση.
Το ζήτημα της ιδιοκτησίας προβλέπει επίσης τι συμβαίνει όταν αλλάζει μια διεύθυνση. Με στατικό χάρτη, κάποιος πρέπει να θυμάται κάθε peer που κρατά την παλιά εγγραφή. Με αναγγελία, ο κεντρικός υπολογιστής δημοσιεύει το νέο τελικό σημείο και οι φάροι του το μεταδίδουν, ώστε η αλλαγή να μένει τοπική στο μηχάνημα που μετακινήθηκε.
Το bootstrap χρειάζεται ακόμη στατικές εγγραφές
Ένας πελάτης πρέπει να φτάσει τουλάχιστον έναν φάρο προτού μπορέσει να ρωτήσει οποιονδήποτε για άλλα peer. Αυτό το πρώτο άλμα δεν μπορεί να προέλθει από την ανακάλυψη, οπότε προέρχεται από μια στατική εγγραφή στη διαμόρφωση του πελάτη. Κάντε αυτή την εγγραφή σωστή και το υπόλοιπο overlay μπορεί να μαθευτεί.
Μια εγγραφή χάρτη συνδυάζει μια διεύθυνση Nebula με ένα ή περισσότερα προσβάσιμα τελικά σημεία IP ή DNS και θύρες. Το να κρατάτε τους φάρους εκεί είναι φυσιολογικό· το να κρατάτε κάθε peer εκεί είναι το μοτίβο που γερνά άσχημα, επειδή κάθε νέο peer σημαίνει επεξεργασία αρχείων σε μηχανήματα που μπορεί να μην ελέγχετε. Κρατήστε τη λίστα αρκετά σύντομη ώστε ένας άνθρωπος να μπορεί ακόμη να την επαληθεύσει διαβάζοντάς την.
Αναγγείλετε όταν ο κεντρικός υπολογιστής γνωρίζει το τελικό σημείο
Ένας κεντρικός υπολογιστής πίσω από προώθηση θυρών είναι προσβάσιμος σε μια δημόσια διεύθυνση που δεν έχει εκχωρηθεί σε καμία από τις δικές του διεπαφές. Δεν μπορεί να ανακαλύψει αυτή τη διεύθυνση κοιτάζοντας τον εαυτό του. Το advertise_addrs τού επιτρέπει να δημοσιεύσει το τελικό σημείο μέσω των φάρων του, ώστε άλλα peer να μάθουν μια διαδρομή που πραγματικά λειτουργεί. Η ρύθμιση υπάρχει ακριβώς επειδή ο κεντρικός υπολογιστής είναι το μόνο μέρος που γνωρίζει ότι η αντιστοίχιση έγινε.
Χρησιμοποιήστε τη διεύθυνση και τη θύρα που άλλα peer μπορούν πραγματικά να φτάσουν. Το ίδιο σκεπτικό ισχύει για έναν κεντρικό υπολογιστή με πολλές διαδρομές δικτύου, όπου μία διαδρομή είναι προτιμότερη για peer σε συγκεκριμένο δίκτυο. Η αναγγελία είναι μια δήλωση για το underlay, όχι αίτημα για οτιδήποτε. Όταν αλλάξει η αντιστοίχιση, ενημερώστε την αναγγελία στον κεντρικό υπολογιστή και αφήστε την ανακάλυψη να τη μεταφέρει, αντί να επεξεργάζεστε στατικά αρχεία σε όλο τον στόλο.
Η αναγγελία δεν είναι προσβασιμότητα
Η δημοσίευση ενός τελικού σημείου δεν δημιουργεί τον κανόνα προώθησης του δρομολογητή, δεν ανοίγει firewall ανάντη και δεν κάνει ένα όνομα DNS να επιλυθεί. Αυτά είναι ξεχωριστά κομμάτια εργασίας, και μια σωστή αναγγελία με προώθηση θύρας που λείπει παράγει ακριβώς την αστοχία που προσπαθούσατε να διορθώσετε. Η αναγγελία είναι ένας ισχυρισμός για την προσβασιμότητα, όχι ένας μηχανισμός που την καθιερώνει.
Ελέγξτε τη διαδρομή από έξω πριν κατηγορήσετε την ανακάλυψη. Ένα peer που μαθαίνει το τελικό σημείο αλλά δεν μπορεί να ολοκληρώσει handshake έχει πρόβλημα δρομολόγησης ή φιλτραρίσματος στο underlay, και η επανάληψη της ίδιας διεύθυνσης και στις δύο ρυθμίσεις δεν θα το αλλάξει.
Κρατήστε τη διεύθυνση overlay χωριστά από το τελικό σημείο
Το πιστοποιητικό του κόμβου προσδιορίζει τη διεύθυνση Nebula του. Οι αναγγελθείσες διευθύνσεις ανήκουν στο υποκείμενο δίκτυο και επιτρέπεται να αλλάζουν χωρίς να αγγίζουν το πιστοποιητικό. Το Έκδοση νέου πιστοποιητικού με διαφορετική διεύθυνση overlay IP είναι διαφορετική λειτουργία, με τις δικές της συνέπειες για κάθε σχέση εμπιστοσύνης που καθήλωσε την παλιά. Κρατήστε τις δύο αλλαγές χωριστά στο runbook, αλλιώς μια μετακίνηση τελικού σημείου θα καταγραφεί ως επανέκδοση.
Όταν η διαλογή κολλήσει, διαχωρίστε ρητά τα δύο επίπεδα: επιστρέφει η ανακάλυψη το αναμενόμενο τελικό σημείο, και το φτάνει ένα handshake; Αν η ανακάλυψη είναι σωστή και τα πακέτα αποτυγχάνουν, το πρόβλημα είναι κάτω από το overlay. Αν η ανακάλυψη είναι λάθος, το πρόβλημα είναι στον χάρτη ή στην αναγγελία, και η διόρθωση ανήκει εκεί.