Domena na własnych serwerach DNS

Osoby posiadaj─ůce w┼éasn─ů domen─Ö internetow─ů konfiguruj─ů j─ů z regu┼éy w podstawowym zakresie, aby wskazywa┼éa na konkretny adres URL lub adres IP serwera, na kt├│rym umieszczona jest strona.

┼╣r├│d┼éem do wydobycia drzemi─ůcych mo┼╝liwo┼Ťci z wykorzystania domeny s─ů serwery nazw DNS. Przekierowuj─ůc domen─Ö na w┼éasne serwery DNS, otrzymujemy pe┼én─ů swobod─Ö co do jej konfiguracji, mo┼╝liwo┼Ťci przypisywania alias├│w, przekierowywania cz─Ö┼Ťci z nich na inne adresy sieciowe itp. Mo┼╝liwo┼Ťci jest sporo, ale najpierw trzeba wiedzie─ç od czego zacz─ů─ç.

Czym jest DNS, mo┼╝na poczyta─ç w Wikipedii.

Aby domena mog┼éa by─ç poprawnie skonfigurowana i obs┼éugiwana przez zewn─Ötrzne serwery nazw, potrzebujemy postawi─ç co najmniej ich parzyst─ů ilo┼Ť─ç.

Pierwszy serwer, stanowi tzw. Primary, czyli G┼é├│wny serwer nazw, gdzie wprowadzamy po┼╝─ůdane warto┼Ťci, kt├│re nast─Öpnie s─ů przesy┼éane s─ů do serwer├│w Podrz─Ödnych.

Serwery podrz─Ödne, czyli Secondary i dalsze, to ka┼╝de kolejne, kt├│re pobieraj─ů warto┼Ťci wpis├│w z serwera podstawowego i dalej komunikuj─ů si─Ö ze ┼Ťwiatowymi serwerami nazw. Serwery te, stanowi─ů jednocze┼Ťnie pewnego rodzaju kopi─Ö zapasow─ů wpis├│w, na wypadek, gdyby podstawowy serwer nazw uleg┼é awarii lub by┼é niedost─Öpny w sieci. W├│wczas, gdy podstawowy serwer nie dzia┼éa, domena kt├│ra jest przez niego obs┼éugiwana nadal funkcjonuje poprawnie, w oparciu o zast─Öpcze serwery.

Postawienie serwer├│w DNS mo┼╝e by─ç bardziej lub mnie z┼éo┼╝one. Mo┼╝na postawi─ç do w oparciu o w┼éasny lub u┼╝yczony serwer w oparciu czy to o Windowsa czy inny system tj. Linux (np. Debian i pakiet BIND). Jednak┼╝e, nie ka┼╝dy ma takie rozwi─ůzanie do dyspozycji, w zwi─ůzku z tym nale┼╝a┼éo by pos┼éu┼╝y─ç si─Ö innymi rozwi─ůzaniami.

Poni┼╝ej opisz─Ö pokr├│tce konfiguracj─Ö domeny w BIND, jednak┼╝e skupi─Ö si─Ö g┼é├│wnie na rozwi─ůzaniu nieco bardziej prostszym i co wa┼╝niejsze, darmowym.

Bind #

Bind jest serwerem nazw na platform─Ö tj. Linux. Dzi─Öki niemu, mo┼╝na bez problemu uruchomi─ç serwer nazw.

Posiadaj─ůc uruchomiony serwer Bind wraz z mo┼╝liwo┼Ťci─ů komunikacji z internetem na porcie 53, pozostaje nam ustawienie w nim odpowiednich wpis├│w. Wpisy dotycz─ůce domeny i wszystkich sub-domen uj─Öte s─ů w tzw. strefie. Stref─Ö dla domeny okre┼Ťlamy w odr─Öbnym pliku konfiguracyjnym. Dodatkowo, odniesienie do strefy, wraz informacj─ů techniczn─ů okre┼Ťlamy w konfiguracji serwera Bind, z regu┼éy w pliku named.conf.local.

Ale zacznijmy od pocz─ůtku.

Zainstalowany serwer BIND w systemie Debian za pomoc─ů repozytori├│w dostarczany jest w postaci skonfigurowanej i gotowej do dzia┼éania. Je┼╝eli tak nie jest, to z regu┼éy nale┼╝y zmodyfikowa─ç odpowiednio plik named.conf.options umieszczony w katalogu /etc/bind/

Przedstawiaj─ůc poni┼╝sz─ů konfiguracj─Ö, za┼éo┼╝y┼éem, ┼╝e konfigurujemy BIND jako Primary DNS.

Przyk┼éadowa zawarto┼Ť─ç pliku named.conf.options

options {
	directory "/var/cache/bind";
	listen-on { any; };
	listen-on-v6 { any; };
	auth-nxdomain yes;
	query-source address \* port 53;
	transfer-source \* port 53;
	notify-source \* port 53;
	version "Microsoft DNS Vista Server v6.5 (WinVista)";
	forwarders { 194.204.159.1; 194.204.152.34; };
	};

Kr├│tkie wyja┼Ťnienie powy┼╝szych zapis├│w:

directory "/var/cache/bind";

Powy┼╝szy wpis okre┼Ťla katalog roboczy serwera BIND, w kt├│rym to zapisywane s─ů tymczasowe pliki, aktualnie przez niego u┼╝ywane w trakcie pracy.

listen-on { any; }; listen-on-v6 { any; };

Listen-on, d┼éu┼╝y do nas┼éuchiwania ┼╝─ůda┼ä kierowanych do serwera. Tutaj wprowadzamy warto┼Ťci IP interfejs├│w sieciowych, na kt├│rych ma nas┼éuchiwa─ç, odpowiednio dla IPv4 i IPv6. W powy┼╝szej konfiguracji warto┼Ť─ç any odpowiada za dowolny adres interfejsu.

auth-nxdomain yes;

Okre┼Ťla, czy odpowiedzi serwera uznane za negatywne maj─ů mie─ç parametr autorytatywny czy te┼╝ nie.

query-source address \* port 53;
transfer-source \* port 53;
notify-source \* port 53;

Te wpisy odpowiadaj─ů za porty, na kt├│rych nas┼éuchiwa─ç b─Ödzie ┼╝─ůda┼ä serwer BIND.

version "Microsoft DNS Vista Server v6.5 (WinVista)";

Ten wpis jest swojego rodzaju zmy┼ék─ů, a s┼éu┼╝y do przedstawiania si─Ö na pro┼Ťb─Ö identyfikacji z zewn─ůtrz (Internetu). Maj─ůc na uwag─Ö pr├│by w┼éama┼ä, kt├│re b─Öd─ů dobierane w zale┼╝no┼Ťci od odpowiedzi version lepiej jest wpisa─ç co┼Ť, co utrudni mo┼╝liwo┼Ť─ç ┼éatwej identyfikacji.

forwarders { 194.204.159.1; 194.204.152.34; };

Tutaj wpisujemy serwery, do kt├│rych kierowane b─Öd─ů zapytania, g┼é├│wnie z naszej sieci lokalnej odno┼Ťnie nazw. Mimo tego, wszystko b─Ödzie przechodzi┼éo przez BIND i przy braku odpowiedniego wpisu, kierowane do forwarder├│w.

Je┼╝eli mamy to ju┼╝ ustawione, musimy ustawi─ç pliki stref, w kt├│rych to b─Öd─ů zapisane warto┼Ťci dla naszej domeny.

Pliki stref ustawiamy w named.conf.local.

I tak dla przykładu plik strefy dla domeny przykladowa-domena.pl:

zone "przykladowa-domena.pl" {
	type master;
	file "/etc/bind/strefa.przykladowa-domena-pl";
	allow-transfer { slaves; };
	};

Gdzie:

zone "przykladowa-domena.pl" {

Odpowiada za nazw─Ö domeny, jak─ů konfigurujemy.

type master;

Okre┼Ťlamy czy serwer ma by─ç master czy slave (tutaj Primary DNS i master).

file "/etc/bind/strefa.przykladowa-domena-pl";

Okre┼Ťlenie pliku, w kt├│rym zapisane b─Öd─ů warto┼Ťci dla domeny.

allow-transfer { slaves; };

Dopuszczenie wymiany zawarto┼Ťci pliku strefy dla konkretnych serwer├│w DNS - zapasowych typu Slave.

W moim przypadku, jako Secondary DNS korzystam z us┼éugi Xname, st─ůd dalej w pliku named.conf.local dopisuj─Ö odpowiedni─ů definicj─Ö dla warto┼Ťci slaves.

Xname posiada trzy główne serwery nazw:

ns0.xname.org, adres IP 195.234.42.1
ns1.xname.org, adres IP 87.98.164.164
ns2.xname.org, adres IP 88.191.64.64

I dla nich dopisujemy:

acl slaves {
	195.234.42.0/24;
	193.218.105.144/28;
	87.98.164.164;
	88.191.64.64;
	92.243.14.172;
};

Dla us┼éugi opartej o FreeDNS, serwery nazw s─ů nast─Öpuj─ůce:

fns1.42.pl, adres IP 79.98.145.35
fns2.42.pl, adres IP 195.80.237.194

I dla nich dopisujemy:

acl slaves {
	79.98.145.35;
	195.80.237.194;
};

Warto doda─ç zezwolenia dla Xname i FreeDNS, oraz zastosowa─ç jako Secondary DNS wpisy na obu portalach jednocze┼Ťnie. Dalej przechodzimy do konfiguracji pliku strefy konkretnej domeny. Odnosz─ůc si─Ö do wcze┼Ťniejszego przyk┼éadu, oto zawarto┼Ť─ç przyk┼éadowa pliku strefa.przykladowa-domena-pl.

; przykladowa-domena.pl
$TTL 3600
@       IN      SOA     ns1.server.pl. root.server.pl. (
2008112301  ; Serial
86400       ; Refresh
3600        ; Retry
3600000     ; Expire
10800)      ; Negative Cache TTL
;
IN      NS              ns1.server.pl.
IN      NS              ns0.xname.org.
IN      NS              ns1.xname.org.
;
@               IN      A               195.000..10
www             IN      CNAME           @

Powy┼╝szy plik sk┼éada si─Ö z kilku zmiennych, a domeny - co wa┼╝ne! - ko┼äcz─ů si─Ö kropk─ů "." I tak:

$TTL 3600

Warto┼Ť─ç okre┼Ťla czas w sekundach, przez jaki poszczeg├│lne warto┼Ťci wpis├│w s─ů buforowane.

@       IN      SOA     ns1.server.pl. root.server.pl. (

Okre┼Ťla nasz serwer, kt├│ry konfigurujemy jako Primary DNS pod nazw─ů ns1.server.pl.

Warto┼Ť─ç Serial okre┼Ťla indywidualny numer, kt├│ry nale┼╝y zmieni─ç po ka┼╝dej aktualizacji pliku na wy┼╝szy. Z regu┼éy sk┼éada si─Ö on z RRRRMMDDNN.

R - rok (np. 2008) M - miesi─ůc (11 - listopad) D - dzie┼ä (23) N - numer zmiany w danym dniu w pliku.

Refresh odpowiada za cz─Östotliwo┼Ť─ç od┼Ťwie┼╝ania wpis├│w w zapasowych serwerach nazw. Po tym czasie nast─Öpuje ponowne sprawdzenie czy nie zasz┼éy zmiany w strefach, i je┼╝eli zasz┼éy, nast─Öpuje ich od┼Ťwie┼╝enie i odpowiednie rozes┼éanie.

Retry okre┼Ťla cz─Östotliwo┼Ť─ç ponownego zapytania o zawarto┼Ť─ç pliku stref, je┼╝eli nie mo┼╝na by┼éo tego zrobi─ç w odpowiednim czasie, okre┼Ťlonym zmienn─ů Refresh.

Expire to czas wyga┼Ťni─Öcia wpis├│w w DNS, je┼╝eli nie uda┼éo si─Ö pobra─ç nowych danych. Po tym czasie usuwane s─ů stare wpisy w serwerach nazw.

Negative Cache TTL odpowiada za kontrolowanie czasu buforowania przez inne serwery odpowiedzi, m├│wi─ůcej, ┼╝e dana domena nie istnieje.

IN      NS              ns1.server.pl.
IN      NS              ns0.xname.org.
IN      NS              ns1.xname.org.

IN NS odpowiedzialny jest za okre┼Ťlenie nazwy serwera DNS w domenie. Dalsze wpisy okre┼Ťlaj─ů serwery typu Secondary.

@               IN      A               195.000..10
www             IN      CNAME           @

Powyższy wpis pokarzę na przykładzie:

Je┼╝eli kto┼Ť wprowadzi w przegl─ůdarce domen─Ö przykladowa-domena.pl to odnosi─ç si─Ö b─Ödzie ona do adresu/serwera IP 195.000..10 na kt├│rym to mo┼╝e znajdowa─ç si─Ö strona WWW.

Natomiast drugi wpis odnosi si─Ö do aliasu www, czyli, jak kto┼Ť wpisze www.przykladowa-domena.pl zostanie odniesiony do tej samej strony/adresu/serwera.

Nale┼╝y pami─Öta─ç, ┼╝e konfiguracj─Ö alias├│w nale┼╝y dokona─ç r├│wnie┼╝ po stronie serwera, np. Apache, gdy┼╝ inaczej, wszystkie b─Öd─ů odnosi┼éy si─Ö do adresu IP wskazuj─ůcego na jedn─ů lokalizacj─Ö.

Dalej pozostaje nam konfiguracja serwerów zapasowych. O tym piszę dalej, na przykładzie Xname oraz polski FreeDNS oparty na skrypcie Xname.

Je┼╝eli jednak dysponujemy innym serwerem BIND, mo┼╝emy wykorzysta─ç go jako zapasowy - secondary. W├│wczas konfiguracja jest podobna, z tym ┼╝e, w named.conf.local podajemy np.:

zone "przykladowa-domena.pl" IN {
type slave;
masters { 213.162.0.23; };
file "/etc/bind/strefa.secondary-przykladowa-domena-pl";
};

Tutaj, master okre┼Ťla adres IP serwera BIND pracuj─ůcego jako Primary DNS.

Dalej nale┼╝y utworzy─ç plik strefa.secondary-przykladowa-domena-pl i nada─ç mu odpowiednie prawa.

touch /etc/bind/strefa.secondary-przykladowa-domena-pl
chown bind /etc/bind/strefa.secondary-przykladowa-domena-pl
chmod 644 /etc/bind/strefa.secondary-przykladowa-domena-pl

Tyle, jeżeli chodzi o BIND - wystarczy jego przeładowanie.

Przejd┼║my dalej do Xname i Free DNS.

Xname i FreeDNS #

Aby skorzysta─ç z us┼éugi darmowych serwer├│w DNS trzeba si─Ö powa┼╝nie zastanowi─ç co wybra─ç. W tym przypadku nie mo┼╝emy sobie pozwoli─ç na takie, kt├│re cz─Östo siadaj─ů lub maj─ů inne problemy. Maj─ůc to na uwadze, m├│j wyb├│r pad┼é na Xname.org jako do┼Ť─ç stabilny i darmowy serwer DNS - FreeDNS::42.

Konfiguracja Xname i FreeDNS jest identyczna, więc odwołam się jedynie do jednego serwisu. Zaawansowane opcje postaram się przedstawić w innych artykułach.

Uwaga na wst─Öpie do zawarto┼Ťci stref! Je┼╝eli chodzi o BINDa, to aby ograniczy─ç sobie konieczno┼Ťci przepisywania naszej podstawowej domeny (np.: wieckiewicz.org.jpg) stosuje si─Ö symboliczn─ů “ma┼ép─Ö” (@). Niestety, w przypadku Xname i FreeDNS, takiego udogodnienia nie mo┼╝emy zastosowa─ç, gdy┼╝ powoduje to wyst─ůpienie b┼é─Ödu. Pozostaje nam wprowadzanie ca┼éej nazwy domeny z “kropk─ů” na ko┼äcu. Znajduje to zastosowanie tylko dla rekordu A i PTR.

Na pocz─ůtku musimy sobie za┼éo┼╝y─ç konto na stronie xname.org korzystaj─ůc z odno┼Ťnika po lewej stronie create a new user (utw├│rz nowego u┼╝ytkownika).

Maj─ůc ju┼╝ konto i b─Öd─ůc zalogowanym wybieramy Create zone (Utw├│rz stref─Ö).

Je┼╝eli chcemy utworzy─ç Secondary DNS, zone wpisujemy nasz─ů domen─Ö. Zaznaczamy typ jako secondary (zapasowe) i klikamy przycisk Create (Utw├│rz).

Tak mamy utworzon─ů nasz─ů stref─Ö na zapasowym serwerze DNS.

W konfiguracji serwera BIND nale┼╝y pami─Öta─ç, aby wpisa─ç odpowiednie odniesienie do serwer├│w DNS w warto┼Ťci acl slaves, o kt├│rym pisa┼éem wcze┼Ťniej.

Aby masz serwer komunikowa┼é si─Ö z Secondary DNS, wchodzimy w View zones (Lista stref) i wybieramy nasz─ů domen─Ö.

Dalej w:

primary name server IP(s) (use ';' as separator)

wpisujemy adres IP naszego serwera Primary DNS - nie adres ns1.server.pl tylko adres IP!

Wybieramy Modify (Modyfikuj) i czekamy a┼╝ serwery si─Ö skomunikuj─ů i pobior─ů odpowiednie dane. Przy pierwszym pobraniu otrzymamy stosown─ů wiadomo┼Ť─ç na maila podanego podczas rejestracji na stronie.

Tyle wystarczy.

Innym rozwi─ůzaniem, je┼╝eli nie mamy w┼éasnego serwera, mo┼╝emy ca┼ékowicie wykorzysta─ç Xname/FreeDNS jako serwer Primary DNS (podstawowe) i Secondary DNS (zapasowe). Dla os├│b mniej zaawansowanych, lub skupiaj─ůcych si─Ö na ustawieniu Primary DNS, polecam wybranie FreeDNS.

W takim przypadku, wybieramy Create zone (Utw├│rz stref─Ö).

W zone (Nazwa strefy) wpisujemy nazw─Ö naszej domeny, wybieramy typ primary (podstawowy) i klikamy Create (Utw├│rz).

Mo┼╝emy r├│wnie┼╝, podczas tworzenia strefy, pobra─ç odpowiednie wpisy z naszego serwera DNS aby, w dalszym etapie oszcz─Ödzi─ç dobie przepisywania konfiguracji. W├│wczas w polu Import zone from following authoritative server (Importuj strefy z autorytatywnego serwera) wpisujemy adres IP naszego serwera DNS.

Przechodzimy do View zones (Lista stref) i klikamy na nasz─ů domen─Ö aby odpowiednio skonfigurowa─ç stref─Ö, tak jak to robili┼Ťmy w przypadku serwera BIND.

Wi─Ökszo┼Ť─ç warto┼Ťci jest domy┼Ťlnie ustawiona, jednak┼╝e niekt├│re z nich musimy wprowadzi─ç.

G┼é├│wne - podstawowe warto┼Ťci do wprowadzenia znajduj─ů si─Ö w Address (A) records i tam dopisujemy:

Name: przykladowa-domena.pl. <— pami─Ötajmy o kropce na ko┼äcu! IP: XXX.xxx.XXX.xxx /nasz IP serwera

W przypadku dodawania aliasu do domeny, robimy to w Canonical Name (CNAME) records i wygl─ůda to tak:

Alias: www Name: przykladowa-domena.pl. IP: XXX.xxx.XXX.xxx /nasz IP serwera

Mo┼╝na te┼╝ zrobi─ç to w Address (A) records i wygl─ůda nast─Öpuj─ůco:

Alias: www IP: XXX.xxx.XXX.xxx /nasz IP serwera

Powy┼╝sze wpisy odnios─ů si─Ö do www.przykladowa-domena.pl na podanym IP.

Na koniec klikamy w Generate zone configuration (Utw├│rz konfiguracj─Ö strefy)

Jak wejdziemy ponownie do View zones (Lista stref) zobaczymy, ┼╝e mamy skonfigurowan─ů nasz─ů domen─Ö dla dw├│ch serwer├│w nazw xname.org, z czego pierwszy odpowiada za Primary DNS, a drugi za Secondary DNS.

Je┼╝eli korzystamy tylko z serwer├│w DNS w oparciu o FreeDNS/Xname, dla naszej domeny przypisane b─Öd─ů dwa serwery DNS. Warto na jednym (np. FreeDNS) utworzy─ç stref─Ö podstawow─ů (Primary) dla naszej domeny, a na innym (np. Xname) dla tej samej domeny stref─Ö zapasow─ů (Secondary). Czynno┼Ť─ç ta umo┼╝liwi szybsze rozg┼éoszenie naszej domeny oraz umo┼╝liwi ci─ůg┼ée jej dzia┼éanie, w przypadku gdy np. serwery FreeDNS b─Öd─ů mia┼éy problemy. W├│wczas, gdy serwery FreeDNS b─Öd─ů niedost─Öpne, zapytania do domeny nie zostan─ů bez odpowiedzi i w najgorszym wypadku nie zostan─ů usuni─Öte ze ┼Ťwiatowych serwer├│w DNS (wpisy), tylko przejm─ů ich funkcjonalno┼Ť─ç serwery DNS Xname do czasu powrotu do pe┼énej funkcjonalno┼Ťci.

Aby tego dokona─ç, nale┼╝y wykona─ç jeszcze jedn─ů czynno┼Ť─ç.

Wybieraj─ůc nasz─ů domen─Ö z listy domen (na Primary DNS), przechodzimy do jej konfiguracji. Na samym dole strony znajduje si─Ö sekcja Komputery, kt├│rym wolno transferowa─ç ca┼ée strefy. W tym miejscu wpisujemy adresy IP serwer├│w DNS, z kt├│rymi b─Öd─ů wymieniane informacje. Nie b─Öd─Ö si─Ö rozpisywa┼é, lecz zach─Öcam do cofni─Öcia si─Ö o kilka stron w niniejszym Artykule i przeczytanie cz─Ö┼Ťci o acl slaves dla BINDa, gdy┼╝ to jest to samo.

Wracaj─ůc do sedna sprawy, w tym miejscu wpisujemy adresy IP.

Je┼╝eli jako Primary DNS u┼╝ywamy FreeDNS a jako Secondary b─Ödziemy Xname, w├│wczas wpisujemy nast─Öpuj─ůce warto┼Ťci:

195.234.42.1; 87.98.164.164; 88.191.64.64

Teraz, tworzymy stref─Ö Secondary na Xname.

Jako serwery, kt├│re s┼éu┼╝─ů jako Primary DNS (primary name server IP(s)), w konfiguracji strefy na Xname wpisujemy:

79.98.145.34; 195.80.237.194

Co nam jeszcze zostało do zrobienia?

Ot├│┼╝ nale┼╝y przekierowa─ç nasz─ů domen─Ö na nasze serwery DNS. Dokona─ç tego mo┼╝emy u us┼éugodawcy, u kt├│rego wykupili┼Ťmy domen─Ö. W przypadku nazwa.pl po zalogowaniu si─Ö do panelu administracyjnego, dokonujemy tego w opcjach domeny.

To by było na tyle. W razie pytań proszę pisać i komentować.

Jak tylko czas pozwoli, postaram si─Ö doda─ç kilka wpis├│w odno┼Ťnie mo┼╝liwo┼Ťci wykorzystania domeny na w┼éasnych serwerach DNS do konfiguracji poczty Gmail we w┼éasnej domenie itp.

Pozdrawiam.

Kategorie