Portál AbcLinuxu, 26. dubna 2024 11:04

Nastavení DNS

22. 1. 2003 | Petr Novosad
Články - Nastavení DNS  

Komentovaný příklad nastavení DNS.

Myslím si, že DNS je užitečná věc, a to nejen na internetu, ale i v malé domácí síti. Už třeba jenom kvůli proxy serveru, ke kterému se možná dostaneme v dalším článku. Tento článek se budu snažit psát pro začátečníky, protože se za začátečníka pořád považuji. Vím, jaké jsem měl problémy se sháněním informací. Buď jsem si je musel překládat, nebo nebyly úplné a nebo napsané tak, že jsem z toho pochopil jen málo. A co si budeme povídat, nastaveni DNS patří k těm těžším úkolům.

Takže, co bychom se v tomto článku měli naučit?

  1. Pochopení principu DNS
  2. Porozumět konfiguračním souborům
  3. Spustit danou službu
  4. Nakonfigurovat svůj milovaný Linux, aby využíval DNS služeb
  5. Nakonfigurovat nenáviděný OS, který stejně všichni používají, aby využíval DNS služeb

Historie

Co to vlastně DNS je? Jednoduše řečeno, slouží k převodu jmenných adres na IP adresy a naopak. Nejlépe se to chápe na příkladu. Co si zapamatujete lépe?

www.abclinuxu.cz nebo 80.95.102.12

www.abclinuxu.cz je jmenná adresa a 80.95.102.12 je IP adresa. Pokud nejste kybernetik, budete určitě volit první možnost. Kdysi na to existoval soubor /etc/hosts, který se šířil pomocí služby FTP a musel být uložen na každém počítači připojeném do Internetu. Jenže postupem času začalo být jasné, že to takhle dál nepůjde, a tak se začala hledat náhradní řešení. A vymyslelo se DNS (Domain Name System), jenž si udržuje informace o počítačích, které se v síti nacházejí. Neboli, každá síť má jeden počítač, který zná všechny počítače v síti. Adresa daného počítače je uložena v centrální tabulce a ostatní stroje se ho mohou dotazovat na adresy počítačů, které obsluhuje.

Tak, teď se vrhněme na instalaci. Nainstalujte si BIND verze 9.x. Měl by ve vaší distribuci být. Pokud chcete kompilovat, hledejte zde ftp://ftp.isc.org/isc/. Kompilací se zde zabývat nebudu; předpokládám, že ten, kdo kompiluje ze zdrojových kódů, ví co dělá a co má číst, a proto pro tento článek předpokládám instalaci z balíčku (jsem začátečník :o)).

Konfigurace

Po instalaci se podívejte do souboru /etc/named.conf. Pokud jste modemisti, případně máte jednoduchou síť jako já, měli byste tento soubor upravit asi takhle:

Malá poznámka: text který je uveden za '//' nemusíte opisovat. Místo yakuza.net a mé IP dosazujte vaše správné údaje.

options {
directory "/var/named";
// Zde bude BIND hledat své konfigurační soubory
// Obecně to tu bývá přednastaveno vaší distribucí
// (v Debianu /etc/bind), takže neměnit!

// Moje nastavení
// Pokud DNS nezná odpověd použije DNS od Contactelu

auth-nxdomain no;
// Server neposkytuje informace o naší síti

query-source port 53;
// Pro komunikaci s jinou DNS použij port 53

forward first;
// Pokud něco neví, ptá se nejprve serverů
// uvedených ve forwarders

forwarders {
212.65.193.6;
212.65.242.210;
};

cleaning-interval 259200;
// Pročišťuje tabulku pomocného serveru od záznamů,
// na které se nikdo neptal (v sekundách)
};

// a caching only nameserver config

zone "." IN {
type hint;
file "named.ca";
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};

// Informace o DNS ns.yakuza.net

zone "yakuza.net" {
type master;
file "named.yakuza.net";
};
// konfigurační soubor named.yakuza.net
// (pojmenovat si ho můžete jakkoliv)
// je uložen v cestě uvedené v directory
// v tomto případě /var/named/named.yakuza.net

// Slouží ke zpětnému překladu. (IP -> jméno)
zone "4.168.192.in-addr.arpa" {
//toto jméno je složeno z IP adresy třídy
// C (192.168.4) a .in-addr.arpa
type master;
file "named.rev";
// opět konfigurační soubor
};

Všimněte si, že ve file "....." není celá cesta. To díky direktivě directory "/var/named". Pokud chcete konfigurační soubory dát do nějakého adresáře, např. /var/named/moje_sit, musíte v souboru named.conf v direktivě file napsat i ten adresář. file moje_sit/named.yakuza.net. Všimněte si, že prakticky každý příkaz končí středníkem ;! Opomenutí bývá nejčastější chybou.

Takže máme nakonfigurováno chování démona bind. Teď mu musíme ještě vytvořit databázi počítačů v síti. Ještě si vysvětlíme rozdíl mezi zónou a doménou a pak se vrhneme na konfigurační soubory. Mimochodem, pokud nejste v síti, stačí vám soubory, které jste našli už přednastavené k loopbacku. Prostě je jenom editujte a dopište tam, co potřebujete.

Doména je tvořena zónami. Například doména abclinuxu.cz může mít poddoménu firewall.abclinuxu.cz nebo router.abclinuxu.cz a každá z těchto domén má vlastní zónu. Takže doména abclinuxu.cz se v našem příkladu skládá ze 2 zón.

Soubor named.yakuza.net

$TTL 86400
@ IN SOA yakuza.net. metalman.yakuza.net. (
// jméno domény, email správce: místo @ je tu "."
2002102100 ; // Identifikační číslo (rok, měsíc, den)
10800 ; // Obnovovací frekvence (v sekundách)
1800 ; // Opakované pokusy (v sekundách)
1209600 ; // Expirace datových tabulek na
// sekundárním serveru, pokud nedojde k aktualizaci

604800 ) ;
// minimum - doba, po které prohlásí sekundarní
// server požadavek za nesplnitelný

IN NS ns.yakuza.net. // záznam typu NS (Name Server)
// nezapomenout na konci tečku!
IN MX 10 mail.yakuza.net.
// mail server MX (MailExchage)
// 10 (váha) přednostně se použije ten s nejnižší

ns IN A 192.168.4.13 ;
// Záznam typu A (Address)
// slouží k převodu jména na IP adresu.
mail IN A 192.168.4.13 ;
// k mail se automaticky připojí
// yakuza.net, takže vznikne mail.yakuza.net
hobitton IN A 192.168.4.13 ;

www IN CNAME hobitton
// Záznam typu CNAME (Canonical Name)
// funguje jako alias
smtp IN CNAME hobitton
pop3 IN CNAME hobitton

metalman IN A 192.168.4.11 ;
igis IN A 192.168.4.12 ;
myra IN A 192.168.4.14 ;
kess IN A 192.168.4.15 ;
notre IN A 192.168.4.16 ;
evik IN A 192.168.4.17 ;
pavla IN A 192.168.4.18 ;
darkstar IN A 192.168.4.20 ;

Pozor: ve 2. řádku na konci jména domény a emailu nezapomeňte napsat "." -> yakuza.net. metalman.yakuza.net. Dále by vás mohlo zmást www, smtp a pop3. Mám to, protože mi na serveru běží služba www a mail. Pokud tyto služby neposkytujete, tak to tam samozřejmě nepište.

Teď soubor named.rev k překladu IP na jména.

$TTL 604800
@ IN SOA 4.168.192.in-addr.arpa. metalman.yakuza.net. (
2002102101 ;
10800 ;
1800 ;
1209600 ;
604800 ) ;

IN NS ns.yakuza.net.

11 IN PTR metalman.yakuza.net // Typ PTR (pointer); číslo
// na začátku je poslední v celé IP adrese (192.168.4.11)
13 IN PTR www.yakuza.net
13 IN PTR hobitton.yakuza.net
13 IN PTR mail.yakuza.net
13 IN PTR ns.yakuza.net
13 IN PTR smtp.yakuza.net
13 IN PTR pop3.yakuza.net
13 IN PTR www.metalman.yakuza.net
13 IN PTR www.myra.yakuza.net
13 IN PTR www.kess.yakuza.net
13 IN PTR www.notre.yakuza.net
13 IN PTR www.igis.yakuza.net
13 IN PTR www.satan.yakuza.net
14 IN PTR myra.yakuza.net
15 IN PTR kess.yakuza.net
16 IN PTR notre.yakuza.net
17 IN PTR evik.yakuza.net
18 IN PTR pavla.yakuza.net
20 IN PTR darkstar.yakuza.net

Tak, teď máme konfigurační soubory napsány a zkontrolujeme si jejich správnost:

Tyto soubory jsem viděl ve Slackware 8.1 a Debian 3.0, nevím, jestli jsou i v ostatních distribucích. Poté spustíme démona named. V Debianu: /etc/init.d/bind9start ve Slackware v /etc/rc.d/rc.inet2 najít a odkomentovat spuštění named, ostatní si poradí sami. Dá se spustit i ručně - /usr/sbin/named. Pokud ho chcete spouštět automaticky při startu, tak v Debianu se vám nastaví automaticky (pokud jste instalovali z *.deb balíčku), Slackwaristé už určitě editovali rc.inet2, RedHaťáci použijí chkconfig a SuSEovcirctab. Pokud si nebudete vědět rady, použijte man, nebo --help :o)

Teď naučíme využívat DNS, se kterou jsme si dali tolik práce, Linux a pak Windows. V Linuxu je třeba mrknout do souboru /etc/host.conf. Měli byste tam mít následující:

order hosts,bind
multi on

Pokud máte soubor hosts a chcete mu dát přednost, nechte to tak, v opačném případě prohoďte bind a hosts. Bind je naše slavná DNS. :o) A pak do /etc/resolv.conf připsat:

search yakuza.net
nameserver 192.168.4.13

Samozřejmě, že za yakuza.net a IP si dosadíte svoje údaje, které odpovídají vašim požadavkům a síti. Uložte a zkuste položit dotaz DNS programem host.

Příklad:

host hobitton
hobitton.yakuza.net has address 192.168.4.13

Pokud to nefunguje, zkontrolujte si, jestli vám DNS vůbec běží (ps -A| grep named). Pokud ne, projeďte si znova konfiguráky výše uvedenými programy, případně kontaktujte /var/log/messages. A pokud ani to neodhalí chybu, ptejte se v diskusi :o)

Teď se vrhneme na Windows:

Dostaňte se do okna Vlastnosti sítě, vyberte protokol TCP/IP a klikněte na Vlastnosti.

ukazka

V tomto okně zatrhneme Použít následující adresy serverů DNS, do pole Upřednostňovaný server DNS napíšeme IP adresu naší DNS, náhradní server jsme si nenastavovali. Po vyplnění klikneme na tlačítko Upřesnit...

Zde klepneme na kartu DNS, zvolíme možnost Připojit následující přípony DNS v tomto pořadí a klikneme na Přidat. Do nového okna napíšeme naší doménu. Pak už jenom potvrdíme kliknutím na OK naše nastavení.

ukazka

Zbývá už jen všechny okna zavřít, a pokud máme funkční DNS, tak ji Windows začnou používat. Výše uvedené nastavení je z Windows XP. Pro jiné druhy Windows je nastavení hodně podobné.

Závěr

Závěrem bych měl napsat důvody, proč si DNS dělat:

Odkazy a zdroje

DNS Resource Directory

Další články z této rubriky

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.