MyDNS – DNS oparty na bazie danych

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.

Dodaj komentarz