PDA

Επιστροφή στο Forum : Zone transfers σε master/slave DNS Servers



wintech2003
09-05-06, 22:53
Καλησπέρα,

Παιζει το εξής σκηνικό:

Εχω εναν Windows Server 2003 με Plesk 7.5 ο οποίος έχει BIND ως DNS Server.

Επίσης έχω εναν Linux server με CentOS 4.2 και Plesk 8.0 (πάλι με BIND για DNS Server).

Εχω λοιπον ενα κάρο domains που ειναι ρυθμισμένα με nameservers ns1.domain.gr και ns2.domain.gr. To domain.gr αυτή τη στιγμή φιλοξενείται σε εναν server στο εξωτερικό.

Στοχος μου ειναι να μεταφέρω τα data απο τον server στο εξωτερικό στον Linux server μου και να "μετακομίσω" ολα τα domains (μαζι και το domain.gr) στον Linux server μου με CentOS.

Τώρα αυτό που θέλω να κάνω ειναι το εξής. Μέχρι τώρα ns1.domain.gr και ns2.domain.gr ειναι στον ίδιο server (διαφορετικές IP στο ίδιο μηχανημα). Αυτό που θέλω να κάνω ειναι να κάνω τον ns1.domain.gr να ειναι στον Linux server, και το ns2.domain.gr στον Windows server.

Τώρα ο ενας server ας πουμε έχει τα μισα domains, και ο άλλος τα άλλα μισα. Όμως τα domains αυτά θα έχουν ρυθμισμένα και τα δυο ns1.domain.gr και ns2.domain.gr.

Οπότε αυτό που θέλω να επιτύχω ειναι συγχρονισμό μεταξύ των δύο DNS Servers με σκοπό να έχουν και οι δυο servers τα DNS records όλων των domains, ασχετα αν γινεται το hosting στον windows server ή στον linux server.

Δηλαδή αν φτιαχνω ενα account στο Plesk του Linux server, και δημιουργούνται τα zones στο DNS server του Linux server, μετά απο κάποια στιγμή να γίνεται transfer του zone αυτου και στον Windows server, ωστε είτε στον Windows server κάνεις query ειτε στον Linux server γινεται, να κάνει resolve σωστα. Το ίδιο να συμβαινει και αντίστροφα.

Εχει κανεις ιδεα τί θα πρέπει να προσθέσω στο named.conf το ενός και του άλλου server για να το επιτύχω αυτό?

chatasos
10-05-06, 00:22
http://www.zytrax.com/books/dns/ch4/
http://www.zytrax.com/books/dns/ch6/

axeman
10-05-06, 00:24
Για να γίνει αυτό θα πρεπει καθε ζωνη να εχει σαν master τον ενα και σαν slave τον αλλο. Αλλα τοτε τα zone transfers - updates θα γινονται μόνο απο τον master της καθε ζωνης προς τον slave της ιδιας ζωνης και οχι αντιστροφα.

Για κάθε ζώνη που ειναι master στον αντιστοιχο nameserver βαζεις απλως "type master;". Για την αντιστοιχη slave ζωνη στον άλλο βαζεις το ιδιο ονομα ζώνης και "type slave;" και οριζεις ποιοι ειναι οι master με το option "masters { master_ip; };"

Bind 9 administrator reference manual (http://www.bind9.net/manuals)

wintech2003
10-05-06, 00:43
Hmm το διάβασα αυτό (απο τα πρώτα results του google) αλλα δεν με πολυβοήθησε κυρίως επειδη βλέπει το θέμα master/slave ποιο πολύ ανα zone και οχι globally.

Εγω ψάχνω εναν τρόπο π.χ. αν εγώ φτιάξω ενα account στον Windows server (ns2.domain.gr) και κατ'επέκτασην δημιουργηθουν και κάποια αντίστοιχα DNS records για το domain του account που εφτιαξα (π.χ. customer.gr) τότε θέλω ανα τακτά χρονικά διαστήματα ο ns1.domain.gr να τσεκάρει τον ns2.domain.gr αν έχει νεα zones, και αν ναι (οπως π.χ. τώρα που θα έχει το zone του customer.gr) να το κάνει transfer και στον ns1.domain.gr ωστε πλεον και οι δυο να μπορουν να απαντάνε για το συγκεκριμένο domain. Φυσικά να συμβαίνει και το αντίστροφο (Linux -> Windows). Ουσιαστικά θέλω να γινεται κάτι σαν sync μεταξύ των zones των δυο servers, ωστε και οι δυο να περιέχουν τα DNS records των domains και των δυο servers.

Αυτό λοιπον πρέπει να ειναι κάποιου είδους global configuration και οχι per zone, γιατι αν έπρεπε για κάθε domain να μπαινω στο named.conf και να αλλάζω ρυθμίσεις για το συγκεκριμένο zone που μόλις δημιουργησα και μετά να το φτιάχνω και χειροκίνητα στον άλλο server, ζήτω που καϊκαμε :D

Βασει λογικής πρέπει να ειναι εφικτό κάτι τέτοιο. Ας πουμε ενας hosting provider εχει δυο μηχανηματα που ειναι DNS Servers και τα έχει ονομάσει ns1.host.gr, και ns2.host.gr και απο πισω εχει 100 webservers που κάνουν host διάφορα domains ο καθένας. Ειναι λογικό λοιπον να υπάρχει κάποιος τρόπος με τον οποίο οι servers ns1 & ns2 να ενημερώνονται οτι δημιουργήθηκε κάποιο account σε κάποιον server και να μεταφερουν το zone αυτό σε αυτους, ωστε να απαντάνε στα queries. Δεν νομίζω ντε και καλά κάτι τετοιο να πρέπει να γινεται χειροκίνητα. Εδώ εγώ βαριέμαι να το κάνω για 40 domains. Μια εταιρία με 40.000 domains τί κανει δηλαδή? ;)

axeman
10-05-06, 00:49
Δηλαδή θέλεις 2 master servers οι οποίοι να εχουν τα ίδια records και να συγχρονίζονται οταν υπάρχουν αλλαγες ? Γιατι δεν γινεται να εχεις 2 master για την ιδια ζωνη.

wintech2003
10-05-06, 00:58
Δεν ξερω... :redface:
(τις περισσότερες φορές το πρόβλημα μου ειναι πως να εκφράσω αυτό που θέλω να κάνω, παρά το πώς να το κάνω... ;) )

Εγώ θέλω να κάνω αυτό που περιέγραψα παραπάνω:

Μολις φτιάχνω ενα account για κάποιο domain στον ενα server, και μιας και κάθε μερικά δευτερόλεπτα / λεπτά να checkαρει ο άλλος server ελέγχει αν υπάρχουν νεα zones (αυτο θέλω), όταν βλέπει οτι δημιουργήθηκε κάποιο νεο zone, να το τραβάει και να μπορει να το "εξυπηρετεί" και αυτός.

Δηλαδή είτε κάνεις nslookup στον ns1.domain.gr είτε στον ns2.domain.gr ανεξαρτήτως σε ποιον απο τους δυο βρίσκονται τα files του domain, να παιρνεις σωστή απάντηση.

Και το ίδιο να γίνεται και αντίστροφα. Δηλαδή ειτε κάνω το domain account στον ns1.domain.gr είτε στον ns2.domain.gr να συγχρονίζεται ο άλλος με αυτόν στον οποίο έγινε η δημιουργία του account.

axeman
10-05-06, 01:04
Oκ, μάλλον θέλεις κατι σαν dns cluster αλλα εδω ειμαι εξω απο τα νερά μου

Γιατί δεν μεταφερεις όλες τις ζωνες στον ενα και κανε τον master και τον άλλο slave, ώστε να εχεις να δημιουργεις ζωνες μόνο στον ενα ?

dhatz
10-05-06, 02:10
Βασικά αυτό που λές ειναι αν μπορείς να κάνεις edit μονο ένα named.conf.

Αυτό που ζητάς δεν γίνεται "αυτόματα" από το BIND αν τους θες master/slave. Μπορεις να φτιάξεις script-ακι που να κάνει transfer και αυτόματα edit (με awk / sed) το named.conf του βασικου σου server ns1, και να τροποποιεί τη γραμμή για το νέο domain στο named.conf του ns2. Αφου μπει η πληροφορία στο 2ο named.conf την πρωτη φορά, οι αλλαγές θα γινονται propagated αυτοματα.

Φαντάζομαι ότι θα κυκλοφορεί κάποιο τέτοιο scriptακι.

Αλλιως μπορείς απλά να κάνεις mirror (rsync) το /etc/named.conf το directory /var/named και να νομίζουν και οι δυο ότι ειναι primary. ΠΡΟΧΕΙΡΗ / ΛΑΘΟΣ λύση...

ΥΓ: Επισης να ξέρεις οτι οι παλιες εκδόσεις του BIND ειναι επιρρεπείς σε DNS poisoning...

axeman
10-05-06, 02:45
Νομίζω ότι δεν έιναι καθόλου καλή λύση να δοκιμάσεις να τρέχεις 2 dns servers σαν master με το ίδιο configuration. Καθως θα εχεις δηλώσει τον ενα primary και τον αλλο secondary για κάποιο domain, όταν κάποιος θα χτυπάει το secondary τότε θα του λέει ότι αυτός εχει το authority της ζώνης ενω θα το έχει και ο άλλος, οποτε θα γίνει ενα μικρό μπαχαλο...

wintech2003
10-05-06, 02:57
ΟΚ αν δεν γινεται ετσι μήπως θα μπορουσα αν εφτιαχνα 2 ακομα servers, μονο με BIND οι οποιοι να ειναι ο ns1.domain.gr και ο ns2.domain.gr (δηλαδη να ειναι απολειστικά nameservers) και να ειναι slaves στους master dns servers των hosting servers.

Η ολη ιστορία κολλάει στο γεγονός οτι το control panel (Plesk) φτιάχνει απο μονο του ολες τις ρυθμίσεις οταν κανεις setup ενα account και ειναι κάτι το οποίο δεν μπορώ να παραβλέψω.

Δηλαδή όπως και να έχει καθε server με Plesk αναγκαστικά τρέχει και DNS Services για τα domains που κάνει host. Οπότε τί κάνουμε στην περίπτωση που απλά θέλουμε να έχουμε 2 DNS Servers και οχι 200? Αν π.χ. ειχα 200 hosting servers, τί θα έπρεπε να κάνω ωστε σε οποιονδήποτε απο τους 200 servers και να έκανα το hosting ενος domain, να έδινα πάντα τους ίδιους nameservers?

Μια εταιρία δηλαδή με 200, 2000 ή 20.000 hosting servers πως έχει πάντα τους ίδιους nameservers?

Αρα με κάποιον τρόπο τα 2 μηχανήματα τους ns1 & ns2 ξέρουν αυτομάτως (διοτι αποκλείετε για κάθε πελάτη τους να πηγαινουν να ενημερώνουν και τους DNS servers χειροκίνητα) ειτε να κάνουν οι ίδιοι resolve κάποιο domain ή που να προωθήσουν το query για να το κάνει resolve τελικά o hosting server που εν τέλει κρατάει και τα data του domain για το οποίο έγινε το query και παράλληλα τρέχει BIND και κρατάει και τα DNS records του domain αυτου.

chatasos
10-05-06, 03:11
http://www.4psa.com/products/4psadnsmanager.php

wintech2003
10-05-06, 03:30
Centralize DNS information from multiple servers.
You will be able to offer two name servers no matter how many hosting servers you have and what platform or control panel is used on these. The centralization process is automatic and you do not have to add DNS Zone information to the 4PSA DNS Manager server. Interface scripts for Plesk, Cpanel, Cobalt, Ensim , DirectAdmin, InterWorx, and Helm included.


:worthy: :worthy: :worthy: :worthy: :respekt: :respekt:

Thnx a lot!

@ ADSLgr.com All rights reserved.