DNS Domain Name Service CEZARY SOBANIEC mailto:sobaniec@cs.put.poznan.pl $Id: dns-folie.lyx,v 1.5 2002/11/06 21:00:49 sobaniec Exp $
DNS DNS ang. Domain Name Service, system nazewnictwa domen mechanizm przydzielania nazw mechanizm efektywnego tłumaczenia nazw na adresy DNS jest używany globalnie w sieci Internet praktyczna implementacja dużej, rozproszonej bazy danych typu klient serwer Adres numeryczny (liczba 32 bitowa): 150.254.30.35 Nazwa komputera: sirius.cs.put.poznan.pl Domain Name Service (1/40)
Motywacje powstania DNS Adresy numeryczne sa wygodne dla systemu operacyjnego, ale nie dla użytkowników Adresy numeryczne zmieniaja się dużo częściej niż nazwy komputerów Liczba komputerów w sieci gwałtownie rośnie: system nazewnictwa musi być skalowalny Nazwy musza być tłumaczone efektywnie, w minimalnym stopniu obciażaj ac sieć dodatkowa komunikacja System musi być odporny na awarie pojedynczych maszyn Adresy numeryczne adresy niskiego poziomu Nazwy komputerów adresy wysokiego poziomu Domain Name Service (2/40)
Płaska przestrzeń nazw Poczatkowo stosowano tzw. płaska przestrzeń nazw: nazwy nie odzwierciedlały struktury organizacyjnej centralne zarzadzanie: Network Information Center (NIC) Zalety Prostota użytkowania: nazwy sa wygodne i krótkie Prostota implementacji: centralna baza zawierajaca dane o wszystkich komputerach Wady Duża liczba komputerów: duże prawdopodobieństwo wystapienia konfliktu nazw Obciażenie centralnego ośrodka obowiazkiem rejestrowaniawszystkich komputerów Centralne odwzrorowywanie nazwy Domain Name Service (3/40)
Częściowe rozwiazanie problemu: replikacja Zalety Rozproszenie obciażenia (skalowalność) Możliwość dodawania nowych serwerów Replikacja, decentralizacja Wady Konieczność uspójniania kopii centralnej bazy Rozwiazanie docelowe: decentralizacja zarzadzania nazwami Analogia do hierarchii organizacyjnej instytucji: dyrektor, kierownicy oddziałów, szefowie jednostek, itd. Domain Name Service (4/40)
Rodzaje informacji w DNS Systemem ogólny: wiele hierarchii nazw jednocześnie typ zwiazany z każda jednostka danych Najczęściej używane typy danych to: adres komputera adres serwera pocztowego adres serwera nazw Rodziny protokołów: w praktyce tylko TCP/IP Domain Name Service (5/40)
Nazwy w systemie DNS Zbiór etykiet oddzielonych separatorem (kropka): cs.put.poznan.pl domena Instytutu Informatyki (cs ang. Computer Science) Politechniki Poznańskiej (put ang. Poznań University of Technology) Brak rozróżnienia dużych i małych liter cs.put.poznan.pl cs.put.poznan.pl Każda nazwa określa domenę: jednostka organizacyjna konkretny komputer Nazwa w systemie DNS odzwierciedla hierarchię organizacyjna Składnia nazwy nie determinuje typu obiektu: cs.put.poznan.pl sirius.put.poznan.pl Domain Name Service (6/40)
Hierarchia domen Rodzaje hierarchii hierarchia organizacyjna: root cornell.edu microsoft.com gov edu com pl hierarchia geograficzna: man.poznan.pl put.poznan.pl cornel amu ibm poznan waw put cs ph Domain Name Service (7/40)
Główne domeny w Internecie Główne domeny organizacyjne Nazwa com edu gov mil net org int info biz Znaczenie organizacje komercyjne instytucje edukacyjne instytucje rzadowe grupy wojskowe główne centra kontroli pracy sieci organizacjenon profit organizacje międzynarodowe serwisy informacyjne biznes Główne domeny geograficzne us dla USA fr dla Francji pl dla Polski de dla Niemiec, itd. Domain Name Service (8/40)
Odwzorowywanie nazw (i) Mechanizm: sprawny niezawodny ogólny rozproszony skalowalny Domain Name Service (9/40)
Odwzorowywanie nazw (II) Main server.gov server.edu server.com server.pl server.poznan.pl server Niezależne, współdziałajace serwery nazw (ang. name server). Uwaga! Krawędzie drzewa nie maja nic wspólnego z fizycznymi połacze- niami między sieciami..put.poznan.pl server.cs.put.poznan.pl server Domain Name Service (10/40)
Odwzorowywanie nazw (III) System typu klient serwer klient zapytuje o nazwy serwer odpowiada Metody odpytywania serwerów Metoda rekurencyjna Jeżeli serwer nie jest w stanie odpowiedzieć, przekazuje pytanie kolejnemu serwerowi Metoda iteracyjna Jeżeli serwer nie zna odpowiedzi, odpowiada natychmiast klientowi wskazujac na inny serwer, który prawdopodobnie zna odpowiedź Domain Name Service (11/40)
Zapytanie nierekurencyjne caper.sales.ibm.com ibm.com NS galio.ibm.com terp.umd.edu Klient caper.sales.ibm.com sales.ibm.com NS lupus.sales.ibm.com galio.ibm.com caper.sales.ibm.com caper.sales.ibm.com A 120.45.23.76 lupus.sales.ibm.com Domain Name Service (12/40)
Zapytanie rekurencyjne caper.sales.ibm.com caper.sales.ibm.com A 120.45.23.76 terp.umd.edu caper.sales.ibm.com A 120.45.23.76 caper.sales.ibm.com Klient galio.ibm.com caper.sales.ibm.com A 120.45.23.76 caper.sales.ibm.com lupus.sales.ibm.com Domain Name Service (13/40)
Efektywność tłumaczenia Zapytanie wędruje od serwera głównego do serwerów odpowiedzialnych za poszczególne domeny Wady Duże obciażenie serwera głównego Konieczność odwzorowywania nazw lokalnych Wrażliwość na awarie serwera głównego Rozwiazanie replikacja serwera głównego dwustopniowe tłumaczenie nazw: najpierw lokalny serwer, później serwery główne Dodatkowa optymalizacja pamięć podręczna unieważnianie przedawnionej informacji Domain Name Service (14/40)
Zapytania odwrotne Serwer otrzymuje odpowiedź i odsyła zapytanie, jakie by ja wywołało. Rzadko używane. Zapytania o nazwę komputera W pytaniu zawarty jest znany adres. Dla adresu: 150.254.31.58 w celu uzyskania pytania o nazwę, klient musi przekształcić go do następujacej postaci: 58.31.254.150.in-addr.arpa gdzie.in-addr.arpa jest pseudodomena odwzorowujac a adresy IP na nazwy Domain Name Service (15/40)
Konfiguracja W systemach Unix: oprogramowanie o nazwie BIND (ang. Berkeley Internet Name Domain). Istnieja 4 możliwe konfiguracje oprogramowania BIND: systemy tylko z oprogramowaniem klienta ang. resolver only serwery pomocnicze ang. caching only serwery pierwotne ang. primary serwery wtórne ang. secondary Domain Name Service (16/40)
Konfiguracja resolvera Konfiguracja domyślna Konfiguracja w oparciu o plik /etc/resolv.conf # Plik konfiguracyjny resolvera # domain cs.put.poznan.pl search cs.put.poznan.pl put.poznan.pl # najpierw antares nameserver 150.254.32.66 # później sirius nameserver 150.254.31.18 Dodatkowe opcje options timeout:3 attempts:2 rotate Domain Name Service (17/40)
Name Service Switch Plik /etc/nsswitch.conf # Example Name Service Switch config file # Legal entries are: compat nisplus nis dns files db # See nsswitch.conf(5) for help. passwd: group: hosts: networks: services: files files files dns files dns files Domain Name Service (18/40)
Plik /etc/hosts # Syntax: # IP Full-Qualified-Hostname Aliases 127.0.0.1 localhost 150.254.30.16 venus.cs.put.poznan.pl venus 150.254.30.25 mars.cs.put.poznan.pl mars ftp Domain Name Service (19/40)
Konfiguracja demona named Pliki konfiguracyjne named.conf Podstawowe parametry procesu named, lokalizacja plików źródłowych baz danych domen root.hint Lista serwerów domeny głównej (ang. root) tzw. plik notatnikowy 127.0.0.zone. Translacja adresu lokalnego 127.0.0.1 na nazwę localhost cs.put.poznan.pl Plik strefowy domeny: odwzorowania nazw komputerów na adresy IP 150.254.30.zone Plik strefowy domeny odwrotnej: odwzorowania adresów IP na nazwy komputerów Domain Name Service (20/40)
Plik named.conf (i) Serwer pomocniczy options { directory "/var/named"; }; zone "." in { type hint; file "root.hint"; }; zone "0.0.127.in-addr.arpa" in { type master; file "127.0.0.zone; } Domain Name Service (21/40)
Plik named.boot (II) Serwer pierwotny i wtórny zone "cs.put.poznan.pl" in { type master; file "cs.put.poznan.pl.zone"; }; zone "30.254.150.in-addr.arpa" in { type master; file "150.254.30.zone"; }; Server wtórny:... type slave;... Domain Name Service (22/40)
Rekordy zasobowe Format rekordów zasobowych [ nazwa ] [ ttl ] klasa typ dane nazwa ttl klasa typ dane Nazwa obiektu w domenie. Symbol @ oznacza bieżacy adres poczatkowy (ang. time to live) Maksymalny czas życia rekordu w sekundach Klasa rekordu źródłowego (IN dla TCP/IP) Typ rekordu źródłowego Specyficzne dla danego typu rekordu Przykład mars 3600 IN A 150.254.30.7 Domain Name Service (23/40)
Typy rekordów zasobowych Typ Nazwa Funkcja A Address Adres IP komputera CNAME Canonical Name Nazwa alternatywna HINFO Host Information Platforma i system operacyjny MX Mail Exchange Wymiennik poczty NS Name Server Serwer nazw dla domeny PTR Pointer Nazwa komputera SOA Start Of Authority Parametry dla całej strefy TXT Text Komentarz WKS Well Known Services Lista dostępnych usług sieciowych Domain Name Service (24/40)
Plik root.hint ; ; Serwery domeny root ;. 3600000 IN NS TERP.UMD.EDU. TERP.UMD.EDU. 3600000 IN A 128.8.10.90. 3600000 IN NS NIC.NORDU.NET. NIC.NORDU.NET. 3600000 IN A 192.36.148.17. 3600000 IN NS AOS.BRL.MIL. AOS.BRL.MIL. 3600000 IN A 192.5.25.82 Domain Name Service (25/40)
Plik 127.0.0.zone @ 1D IN SOA localhost. root.localhost. ( 5; Numer seryjny 3H; odświeżanie (3 godziny) 15M; powtórka (15 minut) 1W; przedawnienie (1 tydzień) 1D ) minimalny TTL (1 dzień) 1D IN NS localhost. 1 1D IN PTR localhost. Domain Name Service (26/40)
Plik 150.254.30.zone $TTL 1D @ IN SOA sirius.cs.put.poznan.pl root.sirius.cs.put.poznan.pl. ( 20021018; numer seryjny 86400; odświeżanie 7200; ponawianie 2592000; ważność 345600 ) minimalny TTL IN NS sirius.cs.put.poznan.pl. 30 IN PTR sirius.cs.put.poznan.pl. 44 IN PTR scorpio.cs.put.poznan.pl. 50 IN PTR spica.cs.put.poznan.pl 66 IN PTR antares.cs.put.poznan.pl. Domain Name Service (27/40)
Plik cs.put.poznan.pl.zone $TTL 1D @ IN SOA sirius.cs.put.poznan.pl. root.sirius.cs.put.poznan.pl. ( 20001018; numer seryjny 86400; odświeżanie 7200; ponawianie 2592000; ważność 345600 ) minimalny TTL IN NS sirius ; ; serwer pocztowy ; IN MX 10 antares.cs.put.poznan.pl. IN MX 20 sirius.cs.put.poznan.pl. ; ; definicja nazwy localhost ; localhost IN A 127.0.0.1 Domain Name Service (28/40)
Plik cs.put.poznan.pl.zone (II) ; ; definicja komputerów danej strefy ; sirius IN A 150.254.30.30 unixlab IN CNAME sirius.cs.put.poznan.pl. www IN CNAME sirius.cs.put.poznan.pl. antares IN A 150.254.30.66 scorpio IN A 150.254.30.44 spica IN A 150.254.30.50 IN MX 5 antares.cs.put.poznan.pl. ; ; definicja poddomen ; ph IN NS zeus.ph.cs.put.poznan.pl. ; ; rekordy łączące ; zeus.ph IN A 150.254.30.130 Domain Name Service (29/40)
DNS a IPv6 Nowe rekordy zasobowe host6 IN AAAA 2343:1:2:3:4:5:6:ab1f Domena ip6.int dla mapowania odwrotnego Domain Name Service (30/40)
Uruchamianie i testowanie Uruchamianie named -b /etc/namedb/named.boot Obsługa sygnałów SIGHUP SIGUSR1 SIGUSR2 SIGINT Ponowne zainicjowanie demona (lub ndc reload) Właczenie diagnostyki (plik named.run) Wyłaczenie diagnostyki Zrzucenie zawartości pamięci podręcznej do pliku named dump.db Odpytywanie DNS-u # nslookup sirius Server: localhost Address: 127.0.0.1 Name: sirius.cs.put.poznan.pl Address: 150.254.31.18 Domain Name Service (31/40)
Dynamiczna aktualizacja Serwer DHCP (Dynamic Host Configuration Protocol) dynamiczne przydzielanie adresów do komputerów brak statycznych odwzorowań nazw na adresy Serwery bind8 i bind9 obsługa dynamicznych aktualizacji (program nsupdate) dyrektywa allow-update zone "cs.put.poznan.pl" { type master; file "cs.put.poznan.pl.zone" allow-update { 150.254.30.30; }; } Współpraca z serwerem DHCP przydzielenie nowego adresu IP powoduje aktualizację systemu DNS Domain Name Service (32/40)
WINS Windows Internet Name Service DNS a WINS funkcjonalny odpowiednik DNS dla systemów Windows serwer nazw NetBIOS-u Dynamiczna aktualizacja klient DHCP (ang. Dynamic Host Configuration Protocol) serwer DHCP Windows aktualizuje dynamicznie serwer WINS, ale nie DNS Konfiguracja serwera DNS Windows NT serwer DNS odwołuje się do serwera WINS specjalny rekord zasobowy: @ 0 IN WINS 150.254.30.15 @ 0 IN WINS-R cs.put.poznan.pl Domain Name Service (33/40)
Równoważenie obciażenia www.abc.pl 134.12.57.3 www.abc.pl Klient 1 Klient 2 Serwer DNS 134.12.57.5 Farma serwerów Serwer WWW 1 Serwer WWW 2 Serwer WWW 3 Serwer WWW 4 134.12.57.3 134.12.57.4 134.12.57.5 134.12.57.6 Domain Name Service (34/40)
Bezpieczeństwo DNS Transaction Signatures TSIG funkcja haszujaca MD5 (HMAC-MD5: dane + klucz) hasło znane nadawcy i odbiorcy kodowanie całej wiadomości + aktualny czas Przykład konfiguacji key pierwszy.klucz { algorithm hmac-md5; secret "skrkc4twy/cigiykqu7jza=="; }; server 192.249.249.1 { keys { pierwszy.klucz; }; }; zone "cs.put.poznan.pl" { type master; file "cs.zone"; allow-transfer { key pierwszy.klucz; }; }; Domain Name Service (35/40)
Bezpieczeństwo DNS Ograniczanie dostępności serwera (Access Control Lists) Odpytywanie serwera options { allow-query { 192.249.249/24; }; }; Transfer danych strefowych zone "cs.put.poznan.pl" { type master; file "cs.zone"; allow-transfer { 150.254.30.35; 150.254.30.37;}; }; serwer podrzędny: zone "cs.put.poznan.pl" { type slave; file "cs.zone"; allow-transfer { none; }; }; Domain Name Service (36/40)
Bezpieczeństwo DNS Sposoby zwiększenia bezpieczeństwa serwerów DNS: 1. proces named pracujacy jako inny użytkownik niż root 2. zmiana katalogu głównego: chroot 3. podział serwerów na wewnętrzny i zewnętrzny (split namespace) galio.cs.put.poznan.pl comp1.cs.put.poznan.pl Domain Name Service (37/40)
DNSSEC DNS Security Extensions zastosowanie technik kryptograficznych do szyfrowania przesyłanych danych autoryzacja dynamicznych aktualizacji dostępne praktycznie w bind w wersji 9 Domain Name Service (38/40)
DNS a X.500 X.500 mechanizmy bezpieczeństwa zdalne zarzadzanie kontrola dostępu struktura zorientowana obiektowo LDAP Lightweighted Directory Access Protocol odchudzony interfejs dostępu do bazy X.500 serwer LDAP nie przechowuje informacji kontaktuje się z serwerami X.500 Domain Name Service (39/40)
Literatura 1. RFC 1033. Stahl M., Domain Administrators Guide. 2. RFC 1034. Mockapetris P., Domain Names Concepts and Facilities. 3. RFC 1035. Mockapetris P., Domain Names Implementation and Specification. 4. RFC 1101. Mockapetris P., DNS Encoding of Network Names and Other Types. Poprzednie wersje tego dokumentu to RFC 882, RFC 883 i RFC 973. 5. RFC 920. Postel J., Reynolds J., Domain Requirements. 6. RFC 1032. Stahl M., Domain Administrators Guide. 7. RFC 974. Patridge C., Mail Routing and the Domain System. 8. RFC 1296. Lottor M., Internet Growth (1981-1991). 9. Dodatkowa dokumentacja dostępna on line w systemie, czyli po wydaniu polecenia man dla następujacych haseł: resolver(5), named(8), hosts(5), hostname(1), hostname(7). Domain Name Service (40/40)