Poniższy opis przedstawia jak wydelegować domenę na własny serwer DNS. Na OpenWrt postawimy tzw. podstawowy DNS(primary), w przypadku dodatkowego(secondary) skorzystamy z darmowych usług ze strony http://freedns.42.pl. Nie trzeba chyba wspominać, że musimy posiadać wykupiona już domenę u dowolnego providera. W przypadku tego opisu będę używał domeny openwrt.pl
Serwer podstawowy postawimy na bind
opkg update opkg install bind-server
Otwieramy port 53 zarówno tcp jak i udp:
uci add firewall rule uci set firewall.@rule[-1]._name=bind uci set firewall.@rule[-1].src=wan uci set firewall.@rule[-1].target=ACCEPT uci set firewall.@rule[-1].proto=tcpudp uci set firewall.@rule[-1].dest_port=53
Otwieramy port 80 dla Luci lub innego serwera www:
uci add firewall rule uci set firewall.@rule[-1]._name=http uci set firewall.@rule[-1].src=wan uci set firewall.@rule[-1].target=ACCEPT uci set firewall.@rule[-1].proto=tcp uci set firewall.@rule[-1].dest_port=80 uci commit firewal /etc/init.d/firewall restart
W analogiczny sposób otwieramy wszystkie inne porty na których stawiane są usługi.
Z racji, że dnsmasq - nasz lokalny serwer DNS działa na porcie 53, trzeba go wyrzucic na inny wolny np:. 5353:
uci set dhcp.@dnsmasq[0].port=5353 uci commit /etc/init.d/dnsmasq restart
Podstawowa konfiguracja programu bind znajduje się w pliku /etc/bind/named.conf Po zainstalowaniu ten plik nie istnieje więc musimy go stworzyć lub przedytowac plik przykładowy
cp /etc/bind/named.conf.example /etc/bind/named.conf
Konfiguracja podstawowego serwera DNS w przypadku bind'a wygląda następująco:
zone "openwrt.pl" {
type master;
file "/etc/bind/db.openwrt.pl";
allow-transfer {79.98.145.34; 195.80.237.194; };
notify yes;
};
Zmienna file wskazuje na plik w których przechowywane są rekordy domen(CNAME, A, AAAA, MX itd.), allow-transfer - zgodnie z zaleceniami serwisu http://freedns.42.pl ustawiamy te właśnie numer IP. Pomiędzy tylko tymi adresami IP nasz serwer podstawowy będzie wymieniał się danymi z dodatkowym.
Rzecz kolejna to utworzenie pliku /etc/bind/db.openwrt.pl. W przypadku tej domeny zawartość jest następująca:
$TTL 86400
$ORIGIN openwrt.pl.
@ IN SOA openwrt.pl. root.openwrt.pl. (
2010090402 ;; serial
1200 ;; refresh
1200 ;; retry
2419200 ;; expire
86400 ;; TTL
)
openwrt.pl. IN NS fns1.42.pl.
openwrt.pl. IN NS fns2.42.pl.
@ IN A 80.XX.XX.XX
www IN A 80.XX.XX.XX
poczta IN A 80.XX.XX.XX
@ IN MX 10 poczta
Nie ma sensu powtarzać co oznaczają wszystkie rekordy, gdyż jest to wiedza ogólnie i powszechnie dostępna, dlatego polecam świetny opis z przykładami na stronie www.baseciq.org. Rekord IN NS jest wymagany w takiej postaci(poza domeną), gdyż oznacza to ze używamy zewnętrznych serwerów DNS (czyt. freedns.42.pl). Adres IP 80.XX.XX.XX to zewnętrzny(publiczny) adres routera/maszyny na której dana usługa będzie uruchomiona, w tym przypadku wszystko jest na routerze z OpenWrt.
Ostatecznie uruchamiamy nasz serwer podstawowy:
/etc/init.d/named start /etc/init.d/named enable
Z reguły dostawcy domen wymagają co najmniej dwóch serwerów DNS i to przeważnie w postaci nazwy, a nie adresu IP (np. home.pl). Dlatego też skorzystamy z darmowych usług http://freedns.42.pl, który jest klonem niedawno wyłączonego http://freedns.sgh.waw.pl.
Zakładamy konto na freedns.42.pl i przechodzimy do konfiguracji:
Wybieramy Dodaj nową strefę, następnie wpisujemy nazwę strefy, zaznaczamy Zapasowe i wpisujemy adres zewnętrzny routera. Kończymy tworzą strefę - Utwórz. W zasadzie wszystko jest już ustawione. Po lewej stronie serwisu możemy kliknąć na nazwę strefy (brak na powyższym obrazku) i zobaczyć logi, czy wszystko jest w porządku. Z reguły wydelegowanie domeny trochę trwa (nawet do 24h).
Po poprawnym wydelegowaniu powinien załadować się interfejs Luci(jeżeli używamy) lub inny zainstalowany serwer www.
Poprawność wydelegowanej domeny możemy też sprawdzić komendą dig (na Linuksie) lub poprostu pingiem na domenę
