Opis programu
W przypadku zarządzania dużą ilością stref (domen internetowych) przydatnym byłoby posiadanie oprogramowania umożliwiającego wygodne zarządzanie. MyDNS pobiera informacje prosto z bazy danych i w przypadku dodania czy aktualizacji strefy nie występuje potrzeba jego restartowania. Umożliwia to stworzenie paneli administracyjnych w technologii PHP i udostępnienie ich klientom. MyDNS nie jest serwerem buforującym zapytania (ang. cache server) dzięki czemu nawet jak klient wprowadzi błędne dane (czyli po prostu głupoty) albo zrobi to na swoją niekorzyść (pomiesza w swojej strefie) albo doda domenę do której nie ma delegacji i nikt o jego głupotach się nie dowie.
Instalacja
Oprogramowanie dostępne jest w formie pakietów. W przypadku dystrybucji Debian Sarge wystarczy wydać polecenie:
apt-get install mydns
Program zainstaluje się, jednak będzie trzeba go skonfigurować tzn. utworzyć bazę danych i tabele z których będzie korzystał. W przypadku Debiania dokona tego debconf podczas instalacji komunikując się z użytkownikiem. Przykładowy plik konfiguracyjny to:
## AUTOMATICALLY GENERATED BY DEBCONF. DO NOT MODIFY DATABASE ## INFORMATION (database, db-*)... ## PLEASE RUN 'dpkg-reconfigure mydns-mysql' INSTEAD. ## ONLY THE FOLLOWING DIRECTIVES ARE PRESERVED: ## *cache*, listen, allow*, timeout, multicpu, ignore-minimum, *table ## ## /etc/mydns.conf ## Sat Mar 26 09:05:21 2005 ## For more information, see mydns.conf(5). ## # DATABASE INFORMATION db-host = localhost # SQL server hostname db-user = mydns # SQL server username db-password = mydnsola22 # SQL server password database = mydns # MyDNS database name # GENERAL OPTIONS user = nobody # Run with the permissions of this user group = nogroup # Run with the permissions of this group listen = 195.26.22.67 # Listen on these addresses ('*' for all) # CACHE OPTIONS zone-cache-size = 4096 # Maximum number of elements stored in the zone cache zone-cache-expire = 60 # Number of seconds after which cached zones expires reply-cache-size = 4096 # Maximum number of elements stored in the reply cache reply-cache-expire = 30 # Number of seconds after which cached replies expire # ESOTERICA log = LOG_DAEMON # Facility to use for program output (LOG_*/stdout/stderr) pidfile = /var/run/mydns.pid # Path to PID file timeout = 120 # Number of seconds after which queries time out multicpu = 1 # Number of CPUs installed on your system allow-axfr = no # Should AXFR be enabled? allow-tcp = no # Should TCP be enabled? ignore-minimum = no # Ignore minimum TTL for zone? soa-table = soa # Name of table containing SOA records rr-table = rr # Name of table containing RR data
Import stref do programu
Ręczne przenoszenie dziesiątek, setek czy tysięcy stref do tego rozwiązania mogłoby okazać się problematyczne. MyDNS posiada program ułatwiający migracje o nazwie mydnsimport. Jeżeli mamy uprawnienia do importu informacji o całej strefie (a jeżeli zarządzamy DNSem to zawsze będziemy mieli 🙂 ) możemy zażądać od niego wgrania informacji o całej strefie do bazy danych:
mydnsimport --axfr=adres.ip.serwera.dns interesująca.nas.strefa np. mydnsimport --axfr=212.176.98.20 linuxexpert.pl
Jeżeli program nie zakończy swego działania żadnym komunikatem oznacza to iż wgranie strefy odbyło się bezproblemowo. Możemy to sprawdzić wydając polecenie dig z odpowiednimi parametrami:
dig linuxexpert.pl @127.0.0.1
MyDNS i zapasowe serwery DNS
MyDNS nie ma zaimplementowanej obsługi slave DNS, czyli nie może być skonfigurowany jako zapasowy DNS (chyba że współdzieli bazę danych) ani nie potrafi określić komu zezwolić na transfer strefy a komu nie (albo wszyscy albo nikt). Wynika z tego fakt, że DNS podstawowy i zapasowy powinny pracować w parze korzystając z tej samej bazy danych. Inaczej każdy będzie mógł przetransferować strefę czyli dokładnie przejrzeć jakie mamy poddomeny. Nie należy traktować tego jako dużej niedogodności. Rozwiązania bazodanowe są przeznaczone dla dużych firm providerskich więc warunek pracy w parach czy współdzielenie baz danych (np. na zasadzie replikacji) nie powinien tutaj być problemem.