Τι είναι το Dynamic DNS;
Προαπαιτούμενα
Εγκατάσταση και Ρύθμιση
Αυτοματοποίηση
Τι είναι το Dynamic DNS;
Ας πάρουμε ένα κοινό παράδειγμα εγκατάστασης DNS. Ο τομέας example.comσας είναι " A" και έχετε εγγραφές για server1.example.comκαι server2.example.com. Ο Server1 φιλοξενείται στο Vultr, αλλά ο διακομιστής2 φιλοξενείται σε τοπικό δίκτυο, όπως μέσα στην επιχείρησή σας ή ως μηχάνημα ανάπτυξης στο σπίτι σας. Συνήθως, αυτοί οι τύποι τοπικών περιβαλλόντων έχουν δημόσιες διευθύνσεις IP που έχουν εκχωρηθεί δυναμικά από τον πάροχο υπηρεσιών διαδικτύου (ISP) και ενδέχεται να αλλάξουν απροσδόκητα. Αυτό θα είχε ως αποτέλεσμα ο διακομιστής2 να υποδεικνύει ξαφνικά μια λάθος διεύθυνση IP που θα μπορούσε να επηρεάσει σοβαρά την υπηρεσία. Αυτό το άρθρο θα σας δείξει πώς να ρυθμίσετε τη δική σας δυναμική υπηρεσία DNS, η οποία εκτελείται σε τοπικό μηχάνημα και μπορεί να ενημερώσει αυτόματα την εγγραφή για τον διακομιστή2 στο Vultr DNS μετά από μια δημόσια αλλαγή IP.
While clients like ddclient and inadyn will work for some DNS providers, Vultr does not currently support these and instead uses its own custom API. This service will run locally on your machine and use GET and POST requests along with your access key.
Προαπαιτούμενα
- Πρόσβαση στον λογαριασμό σας Vultr για ρύθμιση DNS και διαχείριση κλειδιών πρόσβασης.
- Δυνατότητα σύνδεσης στο τοπικό μηχάνημα που έχει δυναμική διεύθυνση IP (ή πρόσβαση σε άλλο μηχάνημα στο ίδιο δίκτυο).
Εγκατάσταση και Ρύθμιση
Ρύθμιση του τομέα σας για χρήση της υπηρεσίας DNS του Vultr
- Εάν δεν χρησιμοποιείτε την υπηρεσία DNS του Vultr για τον τομέα σας, ακολουθήστε αυτό το άρθρο για να τροποποιήσετε τους διακομιστές ονομάτων σας για χρήση με το Vultr.
- Μόλις ρυθμιστεί το Vultr DNS, μεταβείτε στη σελίδα διαχείρισης DNS στην ενότητα "Διακομιστές -> DNS -> [το όνομα τομέα σας]".
- Εδώ θα βρείτε όλες τις εγγραφές που έχουν ρυθμιστεί για τον τομέα σας. Σημειώστε ποιες εγγραφές θέλετε να αλλάξετε, καθώς θα το χρειαστείτε αργότερα.
- Μόνο οι
Aεγγραφές " " υποστηρίζονται από αυτό το βοηθητικό πρόγραμμα. Εάν έχετε πολλές " A" εγγραφές που θέλετε να ενημερωθούν στην ίδια διεύθυνση IP, αλλάξτε τις σε " CNAME" εγγραφές και τοποθετήστε τις σε μία " A" εγγραφή. Αυτό θα απλοποιήσει τα πράγματα για εσάς μακροπρόθεσμα και θεωρείται ο σωστός τρόπος διαμόρφωσης του DNS.
Εγκατάσταση των απαραίτητων εργαλείων
- Συνδεθείτε στον τοπικό σας διακομιστή. Αυτό μπορεί να γίνει απευθείας ή μέσω SSH.
- Αυτό το εργαλείο απαιτεί Python 3. Οι περισσότερες διανομές Linux περιλαμβάνουν προεγκατεστημένη Python. Σε περίπτωση που δεν είναι εγκατεστημένο στο περιβάλλον σας, οι οδηγίες είναι διαθέσιμες στο επίσημο wiki της Python εδώ:
- Αυτή η διαδικασία απαιτεί επίσης Git, το οποίο μπορείτε να εγκαταστήσετε με τις παρακάτω οδηγίες:
Λήψη του προγράμματος-πελάτη Dynamic DNS
Χρησιμοποιήστε το Git για να κλωνοποιήσετε το αποθετήριο που περιέχει τον πελάτη python DDNS. Θα πρέπει να το κάνετε αυτό σε έναν ασφαλή κατάλογο στον οποίο έχετε πλήρη πρόσβαση. Ο οικιακός σας φάκελος πρέπει να είναι επαρκής. Εκτελέστε την ακόλουθη εντολή:
git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns
Δημιουργία προσωπικού διακριτικού πρόσβασης
Δημιουργήστε ένα προσωπικό διακριτικό πρόσβασης στο Vultr. Αυτό μπορεί να γίνει κάτω από το "Λογαριασμός -> API -> Προσωπικό διακριτικό πρόσβασης". Στην ίδια σελίδα, θα πρέπει να πάτε κάτω από το "Access Control" και να κάνετε κλικ στο κουμπί "Allow All IPv4", καθώς δεν θα γνωρίζετε την IP του τοπικού σας διακομιστή κάθε φορά, εξ ου και το σημείο του δυναμικού DNS.
Διαμόρφωση του εργαλείου για τον διακομιστή σας
- Διαβάστε το
config.json.exampleαρχείο για ένα παράδειγμα του πώς πρέπει να μοιάζει το αρχείο διαμόρφωσής σας.
- Ανοίξτε το
config.jsonαρχείο χρησιμοποιώντας το αγαπημένο σας πρόγραμμα επεξεργασίας κειμένου και συμπληρώστε τις τιμές με βάση τη συγκεκριμένη ρύθμιση του διακομιστή σας.
Το αρχείο θα πρέπει να περιέχει τα εξής:
{
"api_key": "",
"domain": "",
"dynamic_records": [
""
]
}
Εισαγάγετε το διακριτικό πρόσβασής σας στο πεδίο api_key.
- Εισαγάγετε τον βασικό τομέα σας στο
domainπεδίο. Για παράδειγμα, example.com.
- Τώρα εισάγετε τις
Aεγγραφές που θέλετε να αλλάξετε κάτω από το dynamic_recordsπεδίο. Χρησιμοποιώντας το προηγούμενο παράδειγμα, θα πρέπει να εισάγετε server2για να αλλάξετε αυτόματα server2τη διεύθυνση IP του. Μπορείτε να εισαγάγετε πολλούς υποτομείς. Εάν θέλετε να αλλάξετε τη βασική Aεγγραφή για τον τομέα σας (που συνήθως αναφέρεται ως @, η εγγραφή που αποκρίνεται όταν πλοηγείστε κατευθείαν στο example.com), απλώς αφήστε κενά εισαγωγικά.
Ένα σωστό αρχείο διαμόρφωσης μπορεί να μοιάζει με αυτό, όπου θέλετε να αλλάξετε δυναμικά την IP για example.comκαι server2.example.com:
{
"api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"domain": "example.com",
"dynamic_records": [
"",
"server2"
]
}
Τώρα αποθηκεύστε αυτές τις αλλαγές και το αρχείο σας θα είναι έτοιμο!
Δοκιμάστε τη διαμόρφωσή σας
- Δοκιμάστε το σενάριο και τη διαμόρφωση εκτελώντας το
python3 ddns.py. Εάν αυτό δεν εμφανίσει σφάλματα, η διαμόρφωσή σας είναι ονομαστική και μπορείτε να ξεκινήσετε τη διαδικασία αυτοματισμού.
Αυτοματοποίηση
Μετά την ολοκλήρωση της βασικής ρύθμισης, είναι σημαντικό να ρυθμίσετε μια επαναλαμβανόμενη εργασία, καθώς το σενάριο δεν το κάνει αυτό από προεπιλογή. Συνδεθείτε στο τοπικό σας μηχάνημα και ακολουθήστε τα παρακάτω βήματα με βάση το λειτουργικό σας σύστημα.
Linux και Mac OSX
Το Linux και το Mac έχουν cronήδη εγκατεστημένο το βοηθητικό πρόγραμμα, το οποίο σας επιτρέπει να καθορίσετε σενάρια για εκτέλεση σε καθορισμένα χρονοδιαγράμματα.
- Βρείτε την πλήρη διαδρομή του
ddns.pyαρχείου χρησιμοποιώντας realpath ddns.pyόσο είναι ακόμα στον vultrddnsκατάλογο.
- Τρέξτε
crontab -eγια να επεξεργαστείτε το crontab σας.
Προσθέστε την ακόλουθη γραμμή στο τέλος του αρχείου, προσθέτοντας στην πραγματική διαδρομή του ddns.pyαρχείου:
*/30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
Αυτό θα εκτελεί το σενάριο κάθε 30 λεπτά και θα ανακατευθύνει όλη την έξοδο του στο /dev/null.
- Αποθήκευση και έξοδος από το πρόγραμμα επεξεργασίας κειμένου. Το αρχείο crontab θα εγκατασταθεί αυτόματα και η IP σας θα ενημερωθεί αυτόματα.
Windows
Δημιουργήστε μια εργασία στο Task Scheduler για να εκτελείται κάθε 30 λεπτά. Ακολουθήστε τον οδηγό της Microsoft για τη δημιουργία βασικών εργασιών.
- Ανοίξτε το Task Scheduler και κάντε κλικ στο "Create Task...".
- Δώστε του ένα όνομα και δημιουργήστε ένα νέο έναυσμα.
- Κάντε κλικ στο "Καθημερινά". Κάτω από τις "Ρυθμίσεις για προχωρημένους" κάντε κλικ για να επαναλάβετε την εργασία κάθε 30 λεπτά και αλλάξτε το "για μια διάρκεια" σε "Επ' αόριστον".
- Προσθέστε μια νέα ενέργεια για να ξεκινήσετε ένα πρόγραμμα και να περιηγηθείτε στο εκτελέσιμο αρχείο Python. Προσθέστε το
ddns.pyσενάριο ως επιχείρημα.