DNS HOWTO

Obsah | Zpět | Další

7. Příklad skutečné domény

Kde ukážeme některé skutečné soubory zón

Uživatelé navrhli, abych do svého dokumentu kromě ukázkových příkladů zahrnul i skutečný příklad fungující domény.

Tento příklad uvádím se souhlasem Davida Bullocka z LAND-5. Níže uváděné soubory jsou z 24. září 1996 a byly následně upraveny tak, aby splňovaly omezení BIND 8 a používají moje rozšíření. To, co uvídíte zde, je trochu odlišné od toho, co uvidíte pokud se teď dotážete jmenného serveru LAND-5.

7.1 /etc/named.conf (nebo /var/named/named.conf)

V této části vidíme sekce master zón pro dvě potřebné reverzní zóny: síť 127.0.0, stejně jako podsíť LAND-5 206.6.177, a primární řídek pro LAND-5 forward zónu land-5.com. Všimněte si, že místo vkládání souborů do adresáře nazvaného pz, jak to dělám v tomto HOWTO, dává je do adresáře zone.

// Boot file for LAND-5 name server

options {
        directory "/var/named";
};

controls {
        inet 127.0.0.1 allow { localhost; } keys { rndc_key; };
};

key "rndc_key" {
        algorithm hmac-md5;
        secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
};

zone "." {
        type hint;
        file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
        type master;
        file "zone/127.0.0";
};

zone "land-5.com" {
        type master;
        file "zone/land-5.com";
};

zone "177.6.206.in-addr.arpa" {
        type master;
        file "zone/206.6.177";
};

Pokud vložíte výše uvedené řádky do vašeho souboru named.conf, abyste si s tím pohráli, PROSÍM vložte „notify no;' “ do částí 'zone' pro obě zóny land-5, aby se předešlo nehodám.

7.2 /var/named/root.hints

Zapamatujte si, že tento soubor je dynamický a zde uvedený obsah je již zastaralý. Měli byste použít nový, jak bylo vysvětleno dříve.

; <<>> DiG 8.1 <<>> @A.ROOT-SERVERS.NET. 
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUERY SECTION:
;;      ., type = NS, class = IN

;; ANSWER SECTION:
.                       6D IN NS        G.ROOT-SERVERS.NET.
.                       6D IN NS        J.ROOT-SERVERS.NET.
.                       6D IN NS        K.ROOT-SERVERS.NET.
.                       6D IN NS        L.ROOT-SERVERS.NET.
.                       6D IN NS        M.ROOT-SERVERS.NET.
.                       6D IN NS        A.ROOT-SERVERS.NET.
.                       6D IN NS        H.ROOT-SERVERS.NET.
.                       6D IN NS        B.ROOT-SERVERS.NET.
.                       6D IN NS        C.ROOT-SERVERS.NET.
.                       6D IN NS        D.ROOT-SERVERS.NET.
.                       6D IN NS        E.ROOT-SERVERS.NET.
.                       6D IN NS        I.ROOT-SERVERS.NET.
.                       6D IN NS        F.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
G.ROOT-SERVERS.NET.     5w6d16h IN A    192.112.36.4
J.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.10
K.ROOT-SERVERS.NET.     5w6d16h IN A    193.0.14.129
L.ROOT-SERVERS.NET.     5w6d16h IN A    198.32.64.12
M.ROOT-SERVERS.NET.     5w6d16h IN A    202.12.27.33
A.ROOT-SERVERS.NET.     5w6d16h IN A    198.41.0.4
H.ROOT-SERVERS.NET.     5w6d16h IN A    128.63.2.53
B.ROOT-SERVERS.NET.     5w6d16h IN A    128.9.0.107
C.ROOT-SERVERS.NET.     5w6d16h IN A    192.33.4.12
D.ROOT-SERVERS.NET.     5w6d16h IN A    128.8.10.90
E.ROOT-SERVERS.NET.     5w6d16h IN A    192.203.230.10
I.ROOT-SERVERS.NET.     5w6d16h IN A    192.36.148.17
F.ROOT-SERVERS.NET.     5w6d16h IN A    192.5.5.241

;; Total query time: 215 msec
;; FROM: roke.uio.no to SERVER: A.ROOT-SERVERS.NET.  198.41.0.4
;; WHEN: Sun Feb 15 01:22:51 1998
;; MSG SIZE  sent: 17  rcvd: 436

7.3 /var/named/zone/127.0.0

Jenom základy, povinný záznam SOA a záznam který mapuje 127.0.0.1 na localhost. Oba jsou potřebné. Nic víc by v tomto souboru být nemělo. Pravděpodobně nebude muset být nikdy změněn, pokud se adresa vašeho jmenného serveru nebo hostmasteru nezmění.

$TTL 3D
@               IN      SOA     land-5.com. root.land-5.com. (
                                      199609203       ; Serial
                                      28800   ; Refresh
                                      7200    ; Retry
                                      604800  ; Expire
                                      86400)  ; Minimum TTL
                 NS                 land-5.com.

1 PTR localhost.

Pokud se podíváte na náhodnou instalaci BIND, pravděpodobně zjistíte, že řádek s $TTL chybí. Dříve totiž nebyl používán a až verze 8.2 BIND začala upozorňovat na jeho absenci. BIND 9 vyžaduje $TTL.

7.4 /var/named/zone/land-5.com

Tady vidíme povinný SOA záznam a potřebné NS záznamy. Můžeme také vidět, že má sekundární jmenný server na ns2.psi.net. Tak by to mělo být, vždy mějte sekundární server v jiné lokalitě jako zálohu. Také můžeme vidět, že má master host se jménem land-5, který se stará o mnoho dalších internetových služeb, a že to udělal s pomocí CNAME (alternativou je použití A záznamů).

Jak vidíte ze SOA záznamu, soubor zón pochází z land-5.com, kontaktní osobou je root@land-5.com. hostmaster je další často používaná adresa pro kontaktní osobu. Sériové číslo je v obvyklém formátu yyyymmdd s přidaným dnešním sériovým číslem; jedná se pravděpodobně o šestou verzi souboru zóny z 20. září 1996. Zapamatujte si, že sériové číslo musí růst monotónně, v tomto případě je vyčleněna pouze jedna číslice pro sériové číslo, takže po devítí úpravách je potřeba počkat do druhého dne, než je možné soubor znovu upravit. Zvažte použití dvou cifer.

$TTL 3D
@       IN      SOA     land-5.com. root.land-5.com. (
                        199609206       ; serial, todays date + todays serial #
                        8H              ; refresh, seconds
                        2H              ; retry, seconds
                        4W              ; expire, seconds
                        1D )            ; minimum, seconds
                NS      land-5.com.
                NS      ns2.psi.net.
                MX      10 land-5.com.  ; Primary Mail Exchanger
                TXT     "LAND-5 Corporation"

localhost       A       127.0.0.1

router          A       206.6.177.1

land-5.com.     A       206.6.177.2
ns              A       206.6.177.3
www             A       207.159.141.192

ftp             CNAME   land-5.com.
mail            CNAME   land-5.com.
news            CNAME   land-5.com.

funn            A       206.6.177.2

;
;       Workstations
;
ws-177200       A       206.6.177.200
                MX      10 land-5.com.   ; Primary Mail Host
ws-177201       A       206.6.177.201
                MX      10 land-5.com.   ; Primary Mail Host
ws-177202       A       206.6.177.202
                MX      10 land-5.com.   ; Primary Mail Host
ws-177203       A       206.6.177.203
                MX      10 land-5.com.   ; Primary Mail Host
ws-177204       A       206.6.177.204
                MX      10 land-5.com.   ; Primary Mail Host
ws-177205       A       206.6.177.205
                MX      10 land-5.com.   ; Primary Mail Host
; {Many repetitive definitions deleted - SNIP}
ws-177250       A       206.6.177.250
                MX      10 land-5.com.   ; Primary Mail Host
ws-177251       A       206.6.177.251
                MX      10 land-5.com.   ; Primary Mail Host
ws-177252       A       206.6.177.252
                MX      10 land-5.com.   ; Primary Mail Host
ws-177253       A       206.6.177.253
                MX      10 land-5.com.   ; Primary Mail Host
ws-177254       A       206.6.177.254
                MX      10 land-5.com.   ; Primary Mail Host

Prozkoumáte-li jmenný server land-5, zjistíte, že hostitelská jména mají tvar ws_číslo. Od verze BIND 4 začal named vynucovat omezení znaků, které mohou být ve jménech použity. Takže v BIND 8 toto nefunguje vůbec a musel jsem pro použití v tomto HOWTO dokumentu nahradit podtržítko '_' pomlčkou '-'. Jak jsem již ale dříve zmínil, BIND 9 již toto omezení nevynucuje.

Další věcí je, že pracovní stanice nemají individuální jména, ale jména jsou tvořena prefixem následovaným posledními dvěma čísly IP adres. Používaní této konvence může značně zjednodušit údržbu, ale může být trochu neosobní, a ve skutečnosti může být zdrojem podráždění vašich zákazníků.

Také vidíme, že funn.land-5.com je alias pro land-5.com, ale použitím A záznamu, nikoliv CNAME záznamu.

7.5 /var/named/zone/206.6.177

Tento soubor okomentuji níže.

$TTL 3D
@               IN      SOA     land-5.com. root.land-5.com. (
                                199609206       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      land-5.com.
                        NS      ns2.psi.net.
;
;       Servers
;
1       PTR     router.land-5.com.
2       PTR     land-5.com.
2       PTR     funn.land-5.com.
;
;       Workstations
;
200     PTR     ws-177200.land-5.com.
201     PTR     ws-177201.land-5.com.
202     PTR     ws-177202.land-5.com.
203     PTR     ws-177203.land-5.com.
204     PTR     ws-177204.land-5.com.
205     PTR     ws-177205.land-5.com.
; {Many repetitive definitions deleted - SNIP}
250     PTR     ws-177250.land-5.com.
251     PTR     ws-177251.land-5.com.
252     PTR     ws-177252.land-5.com.
253     PTR     ws-177253.land-5.com.
254     PTR     ws-177254.land-5.com.

Reverzní zóna zabere trochu nastavování, které, zdá se, způsobuje nejvíce trápení. Používá se pro nalezení jména hostitele, pokud máte IP adresu počítače. Příklad: jste FTP serverem a přijímáte připojení FTP klientů. Jelikož jste norský FTP server, chcete akceptovat více připojení od klientů z Norska a dalších skandinávských zemí a méně ze zbytku světa. Při přijetí požadavku o připojení od klienta je vám C knihovna schopná říct IP adresu připojujícího se klienta, protože IP adresa je obsažena ve všech paketech přenesených po síti. Nyní můžete zavolat funkci gethostbyaddr, která vyhledá jméno hostitele podle dané IP adresy. Gethostbyaddr se zeptá DNS serveru, který pak prochází DNS hledajíc počítač. Předpokládejme, že klient je připojen z ws-177200.land-5.com. IP adresa vrácená FTP serveru z C knihovny je 206.6.177.200. Abychom zjistili jméno tohoto počítače, potřebujeme najít 200.177.6.206.in-addr.arpa. DNS server nejdříve nalezne arpa. servery, pak najde in-addr.arpa. servery, následně jde zpětnou cestou přes 206, pak 6 a nakonec najde server pro zónu 177.6.206.in-addr.arpa na LAND-5. Z něj pak konečně získá odpověd na 200.177.6.206.in-addr.arpa, kde máme záznam „PTR ws-177200.land-5.com“, který znamená, že jméno, které patří k 206.6.177.200 je ws-177200.land-5.com.

FTP server upřednostňuje připojení ze skandinávských zemí, tj. S koncovkou .no, .se, .dk. Jméno ws-177200.land-5.com zjevně žádné z nich neodpovídá a server tudíž přiřadí připojení do třídy s nižším přenosovým pásmem a menším počtem povolených klientů. Kdyby neexistovalo reverzní mapování z 206.2.177.200 v zóně in-addr.arpa, nebyl by server schopný najít jméno vůbec a musel by porovnávat 206.2.177.200 s .no, .se a .dk, z nichž vůbec žádná neodpovídá; dokonce by mohl připojení pro nedostatek informací odmítnout úplně.

Někteří lidé vám budou tvrdit, že mapování pro reverzní vyhledání je důležité pouze pro servery nebo není důležité vůbec. Není tomu tak: mnoho ftp, news, IRC a dokonce některých http (WWW) serverů neakceptuje připojení z počítačů, ke kterým nejsou schopné najít jméno. Takže reverzní mapování je ve skutečnosti povinné.

Obsah | Zpět | Další