DNS (Domain Name System)
- počítače v síti Internet jsou identifikovány číselnými IP adresami (např. 62.168.28.244 v rámci protokolu IP verze 4)
- protože v číselných IP adresách se těžko orientuje, existuje také systém doménových jmen označovaný zkratkou DNS (Domain Name System)
- v rámci tohoto systému jsou jednotlivé počítače seskupeny do určité hierarchie a každý má své jméno
- jednotkou hierarchie jsou domény, každá doména zahrnuje skupinu počítačů, které spolu nějak souvisejí
- domény mohou obsahovat další poddomény ( domény prvního, druhého, třetího, atd. řádu)
- na vrcholu hierarchie je tzv. kořenová doména, označovaná " . "
- FQDN (Fully Qualified Domain Name) = vlastní jméno počítače + jméno domény, např. lab.uzlabina.cz (lab = jméno počítače, uzlabina.cz = jméno domény)
- abychom mohli systém DNS používat, potřebujeme službu, která se bude starat o převod číselných adres na jména a naopak = jmenné servery (name servers)
- jmenné servery provozují DNS služby na vyhrazeném portu 53 (pro TCP i UDP)
- každá doména má alespoň jeden autoritativní server (tj. server, který má v daný okamžik zaručeně platné a aktuální informace o strojích v doméně), který se nazývá primární, ostatní jsou sekundární a synchronizují se s primárním
Postup požadavku na zjištění IP adresy počítače lab.uzlabina.cz:
- pošleme dotaz našemu lokálnímu jmennému serveru, ten požadavek převezme a nejprve se zeptá kořenového jmenného serveru, ten předá jména a IP adresy jmenných serverů pro doménu .cz, pak se zeptá některého z nich na jméno a IP adresu jmenného serveru pro doménu uzlabina.cz a nakonec se dotáže autoritativního jmenného serveru domény uzlabina.cz na IP adresu stroje lab.uzlabina.cz
- abychom se nemuseli pokaždé složitě doptávat na autoritativní jmenné servery jednotlivých domén (to by bylo značně pomalé a neefektivní), mohou si jmenné servery udržovat v paměti (cache) dotazy, které již zpracovaly a tak ušetřit často opakované dotazy
- existují i caching-only jmenné servery, které nejsou autoritativní pro žádnou doménu a slouží pouze k urychlení služby DNS v rámci lokální sítě
- v Linuxu se často používá DNS server BIND (Berkeley Name Domain server)
- stáhneme pořebné balíčky (BIND 8.x – 3 balíčky, BIND 9.0.0 – 1 balíček),
uložíme do adresáře (např. /usr/local/src), rozbalíme (podle typu archívu, např. příkazem tar –xvzf BIND-9.0.0.tar.gz), skočíme do adresáře s rozbalenými soubory, zahájíme konfiguraci (./configure), po dokončení konfigurace zadáme příkaz make a nakonec make install
- nainstaluje se (kromě jiného):
/usr/local/sbin/named - samotný jmenný server
/usr/local/bin/host – nástroj na předání jednoduchého dotazu jmennému serveru
/usr/local/bin/dig – nástroj pro nalezení cesty ke jmennému serveru
- pomocí startovacího skriptu v /etc/init.d/named, jestliže v adresáři /etc/rc.d/rc3.d existuje symbolický odkaz na tento skript a jméno tohoto odkazu začíná písmenem S
- BIND je třeba spustit jako první službu hned po nastavení IP adresy
- v případě, že byl BIND instalován z jiného adresáře, je potřeba ve startovacím skriptu přepsat cestu k nainstalovanému binárnímu souboru named
- ruční spuštění jmenného serveru:
/etc/init.d/named start
- klient – stroj, který požaduje od služby DNS převod názvu počítače na IP adresu
- nástroj klienta – resolver (je součástí knihovny glibc a ta je standardní součástí linuxových distribucí)
- konfigurace resolveru – soubory /etc/resolv.conf a /etc/nsswitch.conf
- odtud se systém dozví, kde hledat konfigurační údaje pro danou službu a v jakém pořadí je bude prohledávat
- v tomto případě pro jmennou službu (hosts) začne prohledávat záznamy DNS a když neuspěje, prohledá soubor /etc/hosts
- hlavní konfigurační soubor jmenného serveru BIND
- je umístěn různě, ale je vhodné překopírovat ho do adresáře /etc
- v tomto souboru jednotlivé domény a poddomény tvoří samostatnou zónu, jejíž definice se nachází v příslušném zónovém souboru
- zónové soubory, na které se odkazuje konfigurace, jsou umístěny v adresáři /var/named/
- zónové soubory named.ca a named.local se vygenerují při instalaci, soubor named.ca je vhodné stáhnout z internetu v nejnovější verzi
- po úpravách konfigurace je nutno DNS server restartovat příkazem
/etc/rc.d/init.d/named restart (nebo postupně stop a start)
- v případě, že DNS server nenastartuje správně, bude potřeba změnit v tomto souboru v sekci start nastavení tak, aby se služba named spouštěla pod uživatelem root a ne pod uživatelem named
- po změně opět restartovat službu named
- správnou funkci DNS serveru zkontrolujeme v logovacím souboru /var/log/messages
- pro počítače ve vnitřní síti je dobré zřídit interní doménu, ve které budou vyjmenována jejich jména, abychom nemuseli používat IP adresy
- může to být stejná doména, kterou používáme, protože pomocí direktivy listen-on můžeme dosáhnout stavu, kdy na venkovní dotazy DNS server odpoví jinak, než na vnitřní (není správné zveřejňovat privátní IP adresy našich vnitřních počítačů, protože jednak nejsou z Internetu skrz maškarádu dosažitelné a také to odporuje RFC)
- následující vzorová konfigurace platí pro jeden primární a cache jmenný server pro lokální doménu spse.edu, umístěný na stroji se jménem ucitel a IP adresou 192.168.0.10 na vnitřní síťové kartě, s neveřejnou adresou vnitřní sítě 192.168.0.0/24 a 6-ti stanicemi
options
{
directory
"/var/named";
#
umístění dalších konfiguračních souborů služby named
listen-on
{ #
definice rozhraní, na kterých má named naslouchat
192.168.0.10;
127.0.0.1;
};
forwarders { # IP adresy DNS serverů od providera, zrychlí to odezvu
10.10.3.1;
};
zone
"0.0.127.in-addr.arpa" { #
tato zóna se stará o zpětný překlad IP adres
type
master; #
na názvy
file
"named.local";
};
named.local
@ IN SOA localhost. root.localhost. (
2004030800 ;serial
8H ;refresh
2H ;retry
3W ;expiration
1D ) ;minimum
IN NS localhost.
1 IN PTR localhost.
spse.edu.zone
@
IN SOA ucitel.spse.edu. root.spse.edu.
(
2004030800
; serial
8H
; refresh
2h
; retry
3W
; expiry
1D
) ; minimum
IN NS ucitel.spse.edu.
ucitel IN A 192.168.0.10
b01
IN A 192.168.0.1
b02
IN A 192.168.0.2
b03
IN A 192.168.0.3
b04
IN A 192.168.0.4
b05
IN A 192.168.0.5
b06
IN A 192.168.0.6
www IN CNAME ucitel
mail IN CNAME ucitel
@
IN
SOA ucitel.spse.edu. root.spse.edu.(
2004030800
; serial
8H
; refresh
2h
; retry
3W
; expire
1D
) ; minimum
IN NS ucitel.spse.edu.
1
IN PTR b01.spse.edu.
2
IN PTR b02.spse.edu.
3
IN PTR b03.spse.edu.
4
IN PTR b04.spse.edu.
5
IN PTR b04.spse.edu.
6
IN PTR b06.spse.edu.
10
IN PTR ucitel.spse.edu.
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.root
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: Jan 29, 2004
; related version of root zone: 2004012900
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; operated by VeriSign, Inc.
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
;
; operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; operated by ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
Popis jednotlivých typů záznamů
SOA |
Start of Authority, zde se uvádí primární DNS, kontakt na správce, verze záznamu a časové závisosti |
A |
Address,slouží k převodu názvu stroje na IP adresu |
NS |
Name-server(y) pro danou doménu. |
CNAME |
Přezdívka. A-záznam je povolen pouze jeden pro jednu IP-adresu. Další jména se musí řešit položkou CNAME. |
PTR |
Pointer (ukazatel), slouží k zpětnému překladu z IP adresy na název. Používá se v reverzních záznamech |
MX |
Mail Exchange, dává informace o mail serveru v dané zóně |
HINFO |
údaje o hardware / software pro danou IP-adresu. Nepovinné, údajně by se toto mělo zobrazovat v dotazu programem nslookup |
- po změně konfiguračních souborů můžeme poslat procesu named signál HUP, aby znovu načetl konfigurační soubory
- nejprve zjistíme PID procesu named, např. příkazem ps –C named a pak zašleme procesu named s nejnižším PIDem signál:
# kill –HUP 1253
host
- používá se pro zjištění IP adresy z názvu stroje a naopak, např:
# host lab.uzlabina.cz
nebo
# host 213.151.91.187
nslookup
- pracuje buď jednorázově anebo v interaktivním režimu, do kterého vstoupíme zadáním příkazu nslookup bez dalších parametrů, objeví se výzva ve tvaru >, za kterou zadáváme příkazy, např. jméno stroje
- interaktivní režim ukončíme příkazem exit
- použití jako u nástroje host
dig
- flexibilní nástroj pro zjišťování údajů o DNS serverech:
# dig lab.uzlabina.cz
- formát příkazu pro použití jiného než výchozího jmenného serveru:
# dig @server doména typ_dotazu
kde @server – DNS server, kterému chceme dotaz zaslat
doména – název domény, která nás zajímá
typ_dotazu – spacifikuje typ záznamu, který chceme získat (A, SOA,..)
whois
- slouží k určení vlastníka domény
# whois uzlabina.cz
- podrobnosti o dalším použití všech nástrojů jsou v manuálu