DNS to system serwerów oraz protokół komunikacyjny (działający w oparciu o UDP) zapewniający zamianę adresów symbolicznych (np. 0x1fff.com) znanych użytkownikom Internetu na adresy zrozumiałe dla urządzeń tworzących sieć komputerową (np. 192.168.0.1). Budowa systemu została opisana już w roku 1982 w dokumencie IETF-RFC819, natomiast dokumenty z roku 1983 RFC 882 i RFC 883 były oficjalną specyfikacją protokołu DNS, aż do roku 1989.
Obecnie system DNS jest zdefiniowany, przez następujące RFC: RFC 1034, RFC 1035, RFC 1918
Żeby zacząć przygodę z DNS, wypadało by poznać jeszcze parę pojęć:
Typy rekordów i ich przeznaczenie
By system DNS mógł działać, każda domena musi mieć swój serwer autorytatywny (master) dostarczający informacje o domenie. Serwer taki posiada rekord SOA - Start Of Authority Record - w którym są zapisane informacje techniczne o domenie.Parametry rekordu SOA
- Numer seryjny domeny - jakakolwiek zmiana w konfiguracji domeny, powinna być poprzedzona zmianą numeru seryjnego (najczęściej wpisywana jest data zmiany)
- Czas życia (Time To Live) decyduje o tym, jak długo serwery cachujące mogą przetrzymywać informację o rekordach w swoich buforach
- Częstość odświeżania (refresh) decyduje o tym, jak często serwery dodatkowe będą sprawdzać, czy ich dane na temat strefy są aktualne.
- Częstość powtórek (retry) jeśli serwerowi dodatkowemu nie uda się skontaktować z serwerem podstawowym po czasie odświeżania, to próbuje co co czas określony w polu retry.
- Czas wygaśnięcia (expire) Jeśli serwerowi dodatkowemu nie uda się skontaktować z serwerem podstawowym przez czas wygaśnięcia, to zaczyna usuwać stare dane. Czas wygaśnięcia zawsze powinien być znacznie większy od częstości odświeżania i powtórek.
$TTL 64
0x1fff.com. IN SOA batnet.pl. root.batnet.pl. (
2009032514 ; serial
8H ; refresh
2H ; retry
1W ; expire
1D) ; ttl
Najważniejsze typy rekordów DNS, oraz ich znaczenie
- Rekordy serwerów nazw (ang. name server record - NS)
- Rekordy NS pozwalają na mapowanie nazwy domenowej na listę serwerów DNS dla tej domeny. Wpis rekordu NS powinien zawierać adresy/nazwy serwerów, które obsługują domenę.
IN NS ns1.host.pl.
- Rekordy adresów (ang. address record - A)
- Rekordy A przypisują nazwom 32 bitowe adresy IPv4.
Pierwsze pole wpisu zawsze jest rozwijane do FQDN, aby temu zapobiec należy dodać użyć bezwzględnego wpisu z kropką na końcu lub znakiem '@' (at).
test IN A 127.0.0.1 ; to samo co niżej test.0x1fff.com. IN A 127.0.0.1 ; to samo co wyżej test.0x1fff.com@ IN A 127.0.0.1 ; to samo co wyżej test.0x1fff.com. IN A 192.168.0.1 ; i jeszcze to
Jest możliwość mapowania jednej nazwy na kilka adresów IP celem rozładowania obciążenia - algorytm miał być podobny do Round Robina, ale ze względu na specyfikę (rozproszoność, cachowanie) systemu DNS - średnio takie coś działa. Niemniej jednak, by uzyskać taką funkcjonalność należy wpisać różne rekordy A z taką samą nazwą, ale z różnymi adresami IP.IN A 192.168.0.1 ; wpis dla calej domeny 0x1fff.com => 192.168.0.1 test IN A 192.168.0.1 test IN A 192.168.0.2 test.0x1fff.com. IN A 192.168.0.3
- Rekordy adresów IPv6 (ang. IPv6 address record - AAAA)
- Rekordy AAAA przypisują nazwom 128-bitowe adresy IPv6. Wpisy wyglądają i mają taka samą funkcjonalności jak w przypadku rekordu A, oraz również zezwalają na load balancing.
testv6 IN AAAA 2001:db8::1428:57ab testv6.0x1fff.com. IN AAAA 2001:db8::1428:57ab ; to samo co wyzej @ IN AAAA 2001:db8::1428:57ab ; dla głównej domeny
- Rekordy aliasów (ang. canonical name record - CNAME)
- Rekord CNAME pozwala na stworzenie aliasu nazwy domeny. Wszystkie wpisy DNS oraz pod domeny są poprawne także dla aliasu.
Przykładem zastosowania rekordu typu CNAME, może być sytuacja w której rekord A "tp-link" wskazujący na adres IP 192.168.0.1, to kolejna nazwa (np. "router") wskazująca na ten sam aders IP powinna być rekordem CNAME wskazującym na istniejącą już nazwę. Inne przykłady zastosowania to:
- jest wiele nazw domenowych dla tego samego adresu IP.
- wskazywany rekord jest poza bieżącą strefą (np. przekierowanie usług na serwery Google) - tutaj trzeba pamiętać o kropce na końcu wpisu
- jeśli wymagane jest przechwycenie wszystkich odwołań do strefy (rekord CNAME wieloznaczny)
tp-link IN A 192.168.0.1 router IN CNAME tp-link moj-router IN CNAME tp-link.0x1fff.com. * IN CNAME tp-link ; rekord wieloznaczny
- Rekordy wymiany poczty (ang. mail exchange record - MX)
- Rekordy MX służą do obsługi poczty, wpis rekordu składa się adresu komputera do którego poczta ma być kierowana, oraz
tzw. liczby preferowanej - ustalającej priorytet w tym wypadku jest to kolejność łączenia się z serwerami poczty. Jeśli domena posiada kilka wpisów MX, domyślnym będzie ten z najniższą liczbą preferowaną.
IN MX 1 ASPMX.L.GOOGLE.COM. IN MX 5 ALT1.ASPMX.L.GOOGLE.COM. IN MX 5 ALT2.ASPMX.L.GOOGLE.COM. IN MX 10 ASPMX2.GOOGLEMAIL.COM. IN MX 10 ASPMX3.GOOGLEMAIL.COM. IN MX 10 ASPMX4.GOOGLEMAIL.COM. IN MX 10 ASPMX5.GOOGLEMAIL.COM.
- Rekordy PTR (ang. pointer record)
- Zamienia adres IPv4 lub IPv6 na nazwę kanoniczną hosta. Określenie rekordu PTR dla nazwy hosta (ang. hostname) w domenie in-addr.arpa (IPv4), bądź ip6.arpa (IPv6), który odpowiada adresowi IP, pozwala na dokonanie odwrotnej translacji adresów DNS (ang. reverse DNS lookup). By móc zmodyfikować strefę odwrotną trzeba mieć odpowiednie prawa. Jednemu adresowi IPv4 i IPv6 może być przypisana jedna nazwa kanoniczna (w przypadku innych rekordów nie ma takiego ograniczenia).
130 IN PTR rev130.0x1fff.com. 131 IN PTR rev131.0x1fff.com. 132 IN PTR rev132.0x1fff.com. 133 IN PTR rev133.0x1fff.com.
- Rekordy (TXT) tekstowe
- Rekordy TXT mogą służyć do dołączenia dowolnego tekstu i nazwy do rekordu DNS. Często są używane do zaimplementowania informacji o tym, które adresy z danej domeny mogą wysyłać pocztę (systemy antyspamowe - specyfikacja Sender Policy Framework).
TXT "v=spf1 ip4:195.82.172.129 ip4:195.82.172.28 a mx ~all"
- Rekordy serwisów (ang. service record - SRV)
- Zawierają dodatkowe informacje dotyczące usług, którą udostępnia serwer wskazywany przez adres DNS. Nazwy rekordów SRV powstają ze sklejenia nazwy usługi, protokołu (tcp lub udp) i nazwy domeny (w bieżącej strefie). Np. "_sip._tcp" dla rekordu SRV dla VoIP. Rekordy te sa powszechnie używane w usłudze Jabber.
; srvce.prot.name ttl class rr pri weight port target _xmpp-server._tcp.0x1fff.com. IN SRV 5 0 5269 xmpp-server.l.google.com. _xmpp-server._tcp.0x1fff.com. IN SRV 20 0 5269 xmpp-server1.l.google.com. _xmpp-server._tcp.0x1fff.com. IN SRV 20 0 5269 xmpp-server2.l.google.com. _xmpp-server._tcp.0x1fff.com. IN SRV 20 0 5269 xmpp-server3.l.google.com. _xmpp-server._tcp.0x1fff.com. IN SRV 20 0 5269 xmpp-server4.l.google.com. _jabber._tcp.0x1fff.com. IN SRV 5 0 5269 xmpp-server.l.google.com. _jabber._tcp.0x1fff.com. IN SRV 20 0 5269 xmpp-server1.l.google.com. _jabber._tcp.0x1fff.com. IN SRV 20 0 5269 xmpp-server2.l.google.com. _jabber._tcp.0x1fff.com. IN SRV 20 0 5269 xmpp-server3.l.google.com. _jabber._tcp.0x1fff.com. IN SRV 20 0 5269 xmpp-server4.l.google.com. _xmpp-client._tcp.0x1fff.com. IN SRV 5 0 5269 talk.l.google.com. _xmpp-client._tcp.0x1fff.com. IN SRV 20 0 5269 talk1.l.google.com. _xmpp-client._tcp.0x1fff.com. IN SRV 20 0 5269 talk2.l.google.com. _xmpp-client._tcp.0x1fff.com. IN SRV 20 0 5269 talk3.l.google.com. _xmpp-client._tcp.0x1fff.com. IN SRV 20 0 5269 talk4.l.google.com.
- Inne typy rekordów w systemie DNS
- To był opis najczęściej używanych typów rekordów DNS - by uzyskać więcej informacji, np. o tym jak działa cały system, jak przetwarzane są zapytania itp. polecam zajrzeć do referencji umieszczonych na dole artykułu.
zone "0x1fff.com" {
type master;
file "master/0x1fff.com";
allow-update { none; };
allow-query { any; };
allow-transfer { 193.111.27.194; 194.145.96.21; };
};
Rodzaje odpowiedzi na zapytania DNS
- autorytatywne
- dotyczące domeny w strefie, nad którą dany serwer DNS ma zarząd, pochodzą one bezpośrednio z bazy danych serwera
- nieautorytatywne
- dane które zwraca serwer pochodzą spoza zarządzanej przez niego strefy (np. serwer cachujący)
Narzędzia przydatne podczas testowania usług DNS
- dig - online, HowTo
- host
- Narzędzia on-line
Darmowe serwery DNS
Więcej informacji
- Bardzo dobry opis systemu DNS po Polsku.
- Książka o systemie DNS - dwa poniższe linki prowadzą do jej rozdziałów
- Dokładniejszy opis rekordu SOA
- Informacje o rekordzie SRV Strona wiki o rekordzie SRV
- Strona Wikipedii o systemie DNS


4 komentarzy:
Dobra. Przydało się :). Mogłem tylko dokładniej czytać.
Jak sprawdzić czy na *KONKRETNYM* serwerze istnieje wpis DNS?:
dig @fns1.sgh.waw.pl blog.0x1fff.com
Można w ten sposób odpytywać dowolne serwery. Chyba komuś brakowało tego w tym wpisie.
By przyspieszyć odpytywanie serwerów DNS w sieci lokalnej można skorzystać z paru programów:
dnsmasq (local dns cache)
Bind as remote DNS cache
djbdns as local/remote DNS cache
Istnieje też ciekawe forum o tematyce domenowej
Post a Comment