Ve většině případů je možno jméno a IP adresu vzájemně zaměnit. Pokud se chcete dostat např. na stránky věnované předmětu VPS, je jedno, zda prohlížeči zadáte http://os.felk.cvut.cz/vps nebo http://147.32.80.89/vps. Síťové spojení se uskuteční vždy na základě IP adresy, systém tedy vždy před navázáním spojení provede případnou konverzi jména počítače na IP adresu. V praxi zcela intuitivně platí, že jedna IP adresa odpovídá právě jednomu jménu a naopak. Vzájemný překlad jmen a IP adres může být někdy záměrně nejednoznačný, čímž lze řešit některé situace:
Přiřazování jmen IP adresám řídí internetová autorita NIC (Network Information Center). (Pozor: nepleťte si NIC a NIX-peeringové centrm českých ISP). Tak, jak jsou jména hiearchicky dělena do domén a poddomén, je i jejich správa svěřována podřízeným NIC autoritám. WWW stránky hlavní NIC autority naleznete na http://www.internic.net, NIC-CZ pro naši národní doménu spravuje společnost KPNQwest Czechia na adrese http://www.nic.cz. Každá doména druhé úrovně má vlastníka, technického administrátora a plátce. Za provoz domény druhého řádu se platí malý roční paušální poplatek.
Úloha: Navštivte stránky NIC-CZ a zjistěte informace o doméně cvut.cz.
Aktuální přiřazení jmen adresám bývalo kdysi uložené v souboru na disku. NIC autorita tyto informace shromažďovala a distribuovala v podobě souboru hosts.txt. Postupem času se Internet rozrostl natolik, že překladová tabulka nabyla gigantických rozměrů a stala se nepoužitelnou. V současné době je překlad implementován hlavně službou DNS (Domain Name Service). DNS je distribuovaná databáze, obsahující nejen informace o vzájemném překladu IP adres a jmen, ale i další doplňkové informace. Distribuovaná databáze především snižuje paměťovou náročnost překladu na jednotlivých počítačích, snižuje nároky na přenos dat (soubor hosts.txt) a zrychluje celkovou odezvu sítě na změny jmen. Každá distribuovaná databáze je však do jisté míry závislá na dostupnosti spojení, proto se používá i dnes statická tabulka pro některé nejdůležitější, nebo nejčastěji používané IP adresy či jména.
Resolver má na výběr, zda použije statickou překladovou tabulku uloženou v souboru /etc/hosts, nebo distribuovanou databázi DNS, případně jinou službu. V praxi většinou používá soubor hosts a teprve když tam informaci nenalezne, použije DNS. Toto chování lze ovlivnit řádkem hosts: files dns v souboru /etc/nsswitch.conf Hodnota files znamená prohledat soubor /etc/hosts, hodnota dns znamená použít službu DNS, a např. hodnota nis znamená použít služby NIS (yellow pages).
Tabulka adres /etc/hosts je jednoduchý textový soubor, který obsahuje dvojice IP adresa a jméno počítače. Každý řádek obsahuje IP adresu oddělenou mezerou od seznamu jmen, která této adrese odpovídají. Příkladem záznamů tabulky mohou být následující řádky:
# /etc/host serveru os.felk.cvut.cz 147.32.80.89 os.felk.cvut.cz os 127.0.0.1 localhost
IP adrese 147.32.80.89
tedy odpovídá jméno os.felk.cvut.cz
a alias
os
. Aliasy jsou užitečné pro zavádění obecných jmen (loghost,
mailhost, lphost, dumphost).
Není-li adresa v souboru nalezena, je vyslán dotaz na DNS server, který je specifikován v souboru /etc/resolv.conf. Kromě seznamu DNS serverů je tam uložen název implicitní domény počítače a seznam domén, které se prohledají, pokud není zadáno celé jméno počítače včetně domény.
Úkol 1: Přidejte záznam 147.32.80.37 cs.felk.cvut.cz cs do svého /etc/hosts. Pozorujte změny při navazování spojení ssh cs.felk.cvut.cz. Jak se změna projeví u již navázaných spojení?
S DNS serverem můžete přímo komunikovat pomocí programů dig,
host nebo nslookup. Např.: dig cs.felk.cvut.cz
Úkol 2: Prozkoumejte obsah a funkci DNS serveru ns.felk.cvut.cz. Tedy zobrazte všechny záznamy o serveru ns.felk.cvut.cz a obsah některé z domén, které obsluhuje.
dig @147.32.80.9 proxy.felk.cvut.cz // normalni dotaz dig @147.32.80.9 seznam.cz // dotaz na cizi domenu dig @147.32.80.9 sunray2.felk.cvut.cz MX // dotaz na MX zaznam dig @147.32.80.9 felk.cvut.cz ANY // jakykoli zaznam o domene dig @147.32.80.9 felk.cvut.cz AXFR // kompletni vypis cele domeny
Služba DNS zjišťuje především IP-adresu přidělenou dotazovanému jménu, ale může poskytnout i další informace (mail server pro doménu, DNS server pro doménu, ...). Ke každému jménu jsou přiděleny tzv. záznamy různých typů. Každý typ záznamu nese pro dotazovanou doménu nebo počítač jinou informaci:
Typ | Informace |
A | přidělená IP-adresa |
MX | odkaz na počítač zajišťující přenos el. pošty E-mail |
NS | odkaz na počítač zajišťující DNS |
CNAME | skutečné (kanonické) jméno počítače |
PTR | jméno počítače při zpětném překladu |
Hlavní konfigurační soubor je /etc/named.conf. Popisuje globální chování DNS serveru, implicitní hodnoty a deklaruje jednotlivé zóny. Zónou je libovolná skupina domén, která se zpracovává podobným způsobem. Existují tyto typy zón:
master | DNS server vlastní originál všech záznamů o všech počítačích dané zóny (domény). Bývá označován jako primární DNS |
slave | DNS server vlastní kopii všech záznamů o všech počítačích v zóně. Záznamy získává v pravidelných intervalech z předepsaného master serveru. Říká se mu sekundární DNS |
stub | Jako slave, ale kopíruje jen NS záznamy. Čili jen zrychluje přístup na NS dané domény. |
forward | Server neudržuje žádné informace, dotazy předává jinému serveru |
hint | Specifikuje počáteční množinu kořenových DNS serverů. |
Pozor: Ve všech konfiguračních souborech jsou domény zakončené tečkou považovány za absolutní, zatímco nezakončené za relativní, tedy za názvy poddomén, ke kterým se automaticky připojuje název aktuální domény. Konfigurační soubor /etc/named.conf může vypadat například takto:
zone "." { type hint; file "named.ca"; // definice korenovych DNS serveru }; zone "firma.cz." { type master; file "named.firma"; // preklad jmen v nasi domene }; zone "jinadomena.cz." { type slave; masters primarni-ns.jinadomena.cz; file "named.jinadomena"; // zalozni server pro jinoudomenu }; zone "333.222.111.in-addr.arpa." { type master; // zpetny preklad IP adres 111.222.333.* file "named.reverse"; // na jmena v nasi domene }; zone "0.0.127.in-addr.arpa." { // zpetny preklad adresy 127.0.0.1 type master; file "named.local"; };
Soubor named.ca obsahuje definice kořenových DNS. Obdržíte ho v rámci instalačního balíku BIND, nebo ho lze získat např. na www.nic.cz. Soubor named.jinadomena si server vytvoří sám po prvním stažení informací z primárního DNS.
Soubory named.firma, named.reverse a named.local mají velice
podobnou strukturu - na jednotlivých řádkách obsahují jednotlivé záznamy
ve formátu
jméno třída typ data
jméno | je náze počítače nebo domény, které se záznam týká. |
třída | používá se jen třída IN |
typ | typ záznamu - jakou informaci obsahuje |
data | dotyčná informace |
@ IN SOA ns.felk.cvut.cz. bily.felk.cvut.cz ( 2000121802 ; serial number 3600 ; refresh doporucen kazdou hodinu 900 ; retry - pri neuspechu opakuj za 15 minut 1209600 ; platnost dat pro slave DNS 14 dni 43200 ; platnost dat pro cache 12h ) @ IN MX 5 ns.felk.cvut.cz. ; mail server pro domenu felk s prioritou 5 @ IN NS ns.felk.cvut.cz. ; DNS server pro domenu @ IN A 147.32.80.1 ; default pocitac v domene ns IN A 147.32.80.9 ; preklady jednotlivych adres cs IN A 147.32.80.1 os IN A 147.32.80.89 vps IN CNAME os ; alias ; atd, atd, atd
Záznam SOA definuje určité společné vlastnosti záznamů následujících. Je to jednak název hlavního DNS serveru pro doménu a kontaktní e-mail (všiměte si, že @ je nahrazen tečkou). Podle serial number poznají sekundární (slave) servery aktuálnost dat - po každé změně by se mělo zvýšit. Časové hodnoty jsou v sekundách.
Úkol 3:
Nakonfigurujte si DNS server, staňte se sekundárním DNS serverem pro doménu
felk.cvut.cz
Nápověda: Na konec souboru /etc/named.conf přidejte konfiguraci
nové zóny:
zone "felk.cvut.cz" IN { type slave; file "slaves/felk.zone"; masters { 147.32.80.9; }; };Zde je ke stažení celý soubor /etc/named.conf.
Ačkoli můžete odstartovat DNS server příkazem service named start, tentokrát spouštějte server příkazem /usr/sbin/named -u named -f -g server poběží ve vašem terminálu a vy můžete ihned vidět protokol o činnosti a případné chyby. Server ukončíte stiskem CTRL-C.
Jakmile server běží, můžete zkusit překlad příkazem:
dig @127.0.0.1 cs.felk.cvut.cz
kde za znakem @ následuje IP adresa serveru, kterého se dotazujete.
Úkol 4:
Nyní si zahrajeme na skutečný Internet. Váš cvičící bude Internetová
autorita NIC a bude registrovat domeny druhého řádu, tak jak o ně budete
postupně žádat. Vaše počítače musí mít možnost spolu komunikovat, proto si
stáhněte skript net-setup a spusťte ho postupně
nejprve na hostitelském počítači a později ve virtuálním stroji FC4.
Na vašich FC4 strojích budete používat IP adresy přidělené síťové kartě
eth1, tj. adresy ve tvaru 10.6.XXX.1
.
Cvičící povede kořenový DNS server s touto
konfigurací: /etc/named.conf a definicí
kořenové zóny /var/named/root.zone.
Cvičící se zároveň stane registrátorem domén druhého řádu, poddomény
.vps
. Na tabuli bude evidovat požadavky na zřízení domény.
Každý student si nejprve zaregistruje svou doménu u registrátora na tabuli,
pak si nakonfiguruje svůj DNS server pro svou doménu, zaplatí registrátorovi
fiktivní poplatek za delegaci domény druhého řádu a požádá ho o delegaci
domény. Registrátor ověří funkčnost delegovaného DNS serveru a poté vloží
příslušný NS
záznam (případně i glue záznam) do zónového
souboru kořenového DNS. Tím je fyzicky provedena delegace domény.
Příklad nastavení studentského DNS serveru pro doménu druhého řádu
mydomain.vps
je zde: