DNS HOWTO
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é.