tutorial linux 08 romana

37
DNS HOWTO Nicolai Langfeldt [email protected] v2.2, 11 February 1999 Traducerea în româneşte Silviu Simen [email protected] 22 August 1999 Cum să deveniţi rapid un administrator DNS. ______________________________________________________________________ 1. Preambul .................................................................................................................................................................. 2 1.1. Chestiuni legale ................................................................................................................................................. 2 1.2. Credite şi cerere pentru ajutor ........................................................................................................................... 2 1.3. Dedicaţie ........................................................................................................................................................... 2 2. Introducere .............................................................................................................................................................. 2 3. Un server de nume care realizează doar cache..................................................................................................... 4 3.1. Pornirea named.................................................................................................................................................. 7 3.2. O configuraţie şi mai bună ................................................................................................................................ 8 3.3 Felicitări ............................................................................................................................................................. 9 4. Un domeniu simplu ................................................................................................................................................. 9 4.1. Dar la început nişte teorie aridă ......................................................................................................................... 9 4.2. Propriul nostru domeniu .................................................................................................................................. 13 4.3. Zona inversă .................................................................................................................................................... 20 4.4. La ce să aveţi grijă........................................................................................................................................... 22 4.5. De ce căutările inverse nu lucrează ................................................................................................................. 22 5. Exemplu de domeniu adevărat ............................................................................................................................ 24 5.1. /etc/named.conf (sau /var/named/named.conf) ................................................................................................ 24 5.2. /var/named/root.hints....................................................................................................................................... 25 5.3. /var/named/zone/127.0.0 ................................................................................................................................. 26 5.4. /var/named/zone/land-5.com ........................................................................................................................... 26 5.5. /var/named/zone/206.6.177 ............................................................................................................................. 28 6. Întreţinerea ............................................................................................................................................................ 29 7. Conversia de la versiunea 4 la versiunea 8 ......................................................................................................... 31 8. Întrebări şi răspunsuri.......................................................................................................................................... 33 1. named doreşte un fişier named.boot ................................................................................................................... 33 2. Cum să folosim DNS în spatele unui firewall? .................................................................................................. 33 3. cum să facem DNS să rotească prin adresele disponibile pentru un serviciu, să spunem www.site.încarcat pentru a obţine un efect de balansare a încarcării, sau ceva similar? ..................................................................... 33 4. Vreu să configurez DNS pe un intranet închis. Ce trebuie să fac? ..................................................................... 33 5. Cum să configurez un server de nume secundar?............................................................................................... 34 6. Doresc ca bind să ruleze atunci când sunt deconectat de la reţea ....................................................................... 34 7. Unde stochează servrul de nume cache-ul? Există vreo posibilitate de control a mărimii acestui cache? ......... 35 8. Salvează named cache-ul între restartări? Pot să îl fac să îl salveze? ................................................................. 36 9. Cum pot obţine un domeniu? Doresc să-mi configurez un domeniu numit (de examplu) linux-rules.net. Cum pot obţine ca domeniul pe care îl doresc să fie asignat mie? .................................................................................. 36

Upload: ackept

Post on 18-Jun-2015

386 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Tutorial LINUX 08 Romana

DNS HOWTONicolai Langfeldt [email protected], 11 February 1999

Traducerea în româneşteSilviu Simen [email protected] August 1999

Cum să deveniţi rapid un administrator DNS.______________________________________________________________________

1. Preambul.................................................................................................................................................................. 21.1. Chestiuni legale ................................................................................................................................................. 21.2. Credite şi cerere pentru ajutor ........................................................................................................................... 21.3. Dedicaţie ........................................................................................................................................................... 2

2. Introducere .............................................................................................................................................................. 2

3. Un server de nume care realizează doar cache..................................................................................................... 43.1. Pornirea named.................................................................................................................................................. 73.2. O configuraţie şi mai bună ................................................................................................................................ 83.3 Felicitări ............................................................................................................................................................. 9

4. Un domeniu simplu ................................................................................................................................................. 94.1. Dar la început nişte teorie aridă......................................................................................................................... 94.2. Propriul nostru domeniu.................................................................................................................................. 134.3. Zona inversă .................................................................................................................................................... 204.4. La ce să aveţi grijă........................................................................................................................................... 224.5. De ce căutările inverse nu lucrează ................................................................................................................. 22

5. Exemplu de domeniu adevărat ............................................................................................................................ 245.1. /etc/named.conf (sau /var/named/named.conf)................................................................................................ 245.2. /var/named/root.hints....................................................................................................................................... 255.3. /var/named/zone/127.0.0 ................................................................................................................................. 265.4. /var/named/zone/land-5.com ........................................................................................................................... 265.5. /var/named/zone/206.6.177 ............................................................................................................................. 28

6. Întreţinerea............................................................................................................................................................ 29

7. Conversia de la versiunea 4 la versiunea 8 ......................................................................................................... 31

8. Întrebări şi răspunsuri.......................................................................................................................................... 331. named doreşte un fişier named.boot................................................................................................................... 332. Cum să folosim DNS în spatele unui firewall? .................................................................................................. 333. cum să facem DNS să rotească prin adresele disponibile pentru un serviciu, să spunem www.site.încarcatpentru a obţine un efect de balansare a încarcării, sau ceva similar? ..................................................................... 334. Vreu să configurez DNS pe un intranet închis. Ce trebuie să fac? ..................................................................... 335. Cum să configurez un server de nume secundar?............................................................................................... 346. Doresc ca bind să ruleze atunci când sunt deconectat de la reţea....................................................................... 347. Unde stochează servrul de nume cache-ul? Există vreo posibilitate de control a mărimii acestui cache? ......... 358. Salvează named cache-ul între restartări? Pot să îl fac să îl salveze?................................................................. 369. Cum pot obţine un domeniu? Doresc să-mi configurez un domeniu numit (de examplu) linux-rules.net. Cumpot obţine ca domeniul pe care îl doresc să fie asignat mie?.................................................................................. 36

Page 2: Tutorial LINUX 08 Romana

9. Cum să deveniţi un administrator DNS "adevărat".......................................................................................... 36

______________________________________________________________________

1. PreambulCuvinte cheie: DNS, bind, bind-4, bind-8, named, dialup, ppp, slip, isdn, Internet, domain, name,hosts, resolving, caching.

Acest document face parte din Proiectul de Documentare a Linux-ului (Linux DocumentationProject).

1.1. Chestiuni legale(C)opyright 1995-1999 Nicolai Langfeldt. A nu se modifica fară îmbunătăţirea copyright-ului, sedistribuie gratuit dacă se păstrează mesajul copyright.

1.2. Credite şi cerere pentru ajutorVreu să-i mulţumesc lui Arnt Gulbrandsen care m-a facut să suport schiţele acestui document şicare mi-a furnizat sugestii utile. Vreu de asemenea să mulţumesc numeroşilor oameni care mi-autrimis e-mail-uri cu sugestii şi note.

Acest document nu va fi niciodată unul final, vă rog să îmi trimiteţi mail-uri cu problemele şisuccesele, aşa încât să pot realiya un HOWTO mai bun. Deci vă rog trimiteţi comentariile si/sauîntrebările sau banii lui [email protected]. Dacă trimiteţi un e-mail şi doriţi răspuns vă rog săarătaţi simplaconsideraţie de a fi siguri ca adresa de retur este corectă şi deasemena căfuncţionează. De asemenea, vă rog citiţi secţiunea "Întrebări şi răspunsuri" înainte de a îmitrimite mail. Alt lucru, eu pot înţelege doar Norvegiana sau Engleză.

Dacă doriţi să traduceţi acest HOWTO vă rog anunţaţi-mă astfel încât să pot ţine evidenţalimbilor în care a fost publicat, şi de asemea să vă pot anunţa atunci când acest HOWTO a fostîmbunătăţit.

1.3. DedicaţieAcest HOWTO îi este dedicat lui Anne Line Norheim Langfeldt. Desi ea nu îl va citi probabilniciodată pentru că nu este felul acela de fata.

2. IntroducereCe este şi ce nu este

Page 3: Tutorial LINUX 08 Romana

DNS este Sitemul Numelor de Domenii (Domain Name System). DNS converteşte numelemaşinilor în adrese IP pe care toate maşinile din reţea le au. El mapează din nume în adrese şi dinadrese în nume, precum şi alte lucruri. Acest HOWTO explică modul de definire a acestormapări pe un sistem Linux. O mapare este o simplă asociere între două lucruri, în cazul de faţănumele unei maşini, ca ftp.linux.org, şi adresa (sau adresele) IP a maşinii 199.249.150.4.

DNS este pentru neiniţiat una dintre ariile cele mai întunecate ale administrării reţelelor. AcestHOWTO încearcă să facă câteva lucruri clare. El descrie cum să puneţi în funcţiune un server denume DNS simplu, începând cu un server care realizează doar cache şi mergând până la setareaunui DNS primar pentru un domeniu. Pentru situaţii mai complexe vă rog citiţi secţiunea"Întrebări şi răspunsuri" din acest document. Dacă nu este descris acolo citiţi DocumentaţiaAdevărată. Voi reveni să explic ce este Documentaţia Adevărată în ultimul capitol.

Înainte de a începe trebuie să configuraţi maşina dumneavoastră astfel încât să puteţi realizatelnet în şi din ea, şi să faceţi toate felurile de conexiuni la reţea, şi în mod special să fiţi în staresă faceţi telnet pe 127.0.0.1 şi să ajungeţi pe masina proprie (testaţi acum!). Aveţi de asemeneanevoie de fişierele /etc/nsswitch.conf (sau /etc/host.conf), /etc/resolv.conf şi/etc/hosts în stare bună ca un punct de start, pentru că nu voi explica aici funcţia lor. Dacă nule aveţi pe toate setate în regulă şi funcţionale NET-3-HOWTO şi-sau PPP-HOWTO vă explicăcum să le setaţi. Citiţi-le.

Când spun "maşina dumneavoastră" înţeleg maşina pe care încercaţi să setaţi DNS-ul. Nici o altămaşină pe care o puteţi avea şi este împlicată în efortul dumneavostară de configurare a reţelei.

De asemenea, presupun că nu sunteţi în spatele nici unui fel de firewall care blochează cererilede nume. Dacă sunteţi aveţi nevoie de o configuraţie specială, vedeţi secţiunea de la "Întrebări şirăspunsuri".

Servirea numelor în Unix este făcută de un program numit named. El este parte a pachetului"bind" care este coordonat de Paul Vixie pentru The Internet Software Consortium. named esteinclus în majoritatea distribuţiilor Linux şi este uzual instalat ca /usr/sbin/named. Dacă aveţiun named puteţi probabil să îl folosiţi; dacă nu puteţi să luaţi un binar de pe un site ftp pentruLinux, sau să luaţi ultima şi cea mai bună versiune în format sursă de laftp://ftp.isc.org:/isc/bind/src/cur/bind-8/. Acest HOWTO este despre bind versiunea 8. Versiuneaveche, despre bind 4, este incă disponibilă la http://www.math.uio.no/~janl/DNS/, în cazul încare folosiţi bind 4. Dacă pagina de manual vorbeşte despre (aproape de sfârşit, la secţiuneaFILES) named.conf aveţi bind 8, dacă vorbeşte despre named.boot aveţi bind 4. Dacă aveţi 4 şisunteţi preocupat de securitate ar trebui să treceţi spre o versiune recentă 8.

Dacă pagina de manual named vorbeşte despre (la sfârşit, în secţiunea fişiere) named.conf aveţiversiunea bind 8, dacă vorbeşte despre named.boot aveţi bind 4. Dacă aveţi versiunea 4 şisunteţi preocupat de securitate ar trebui să aveţi în vedere trecerea la o versiune recentă 8.

DNS este o bază de date distribuită. Aveţi grijă ce puneţi în ea. Dacă puneţi gunoi,dumneavoastră şi alţii veţi obţine gunoi. Păstraţi DNS-ul în ordine şi consistent şi veţi obţine un

Page 4: Tutorial LINUX 08 Romana

serviciu bun de la el. Învăţaţi cum să-l folosiţi, cum să-l depanaţi, să-l administraţi şi veţi vi unalt administrator care opreşte reţeaua de la sugrumare prin prost management.

În acest document afirm cu tărie câteva lucruri care nu sunt complet adevărate (dar sunt cel puţinpe jumătate). Totul în scopul simplificării. Lucrurile vor funcţiona (probabil ;-) dacă veţi crede cevă spun.

Tip: Faceţi copii de siguranţă ale tuturor fişierelor pe care vă voi pune să le modificaţi dacă dejale aveţi, pentru că dacă după cele ce vor urma lucrurile nu funcţionează, să puteţi reveni la stareaveche, în care ele funcţionau.

3. Un server de nume care realizează doarcacheO primă configurare DNS, foarte folositoare utilizatorilor de dialup.

Un server de nume care realizează doar cache va găsi răspunsurile la cererile de nume şi îşi vaaminti răspunsurl data următoare când va fi nevoie. Aceasta va scurta timpul de aşteptare destulde mult, în mod special dacă sunteţi pe o conexiune înceată.

Întâi aveţi nevoie de un şişier numit /etc/named.conf. Acesta este citit când named porneşte.Pentru început el trebuie să conţină doar următoarele:____________________________________________________________________// Fişier de configurare pentru un server de nume care realizează doar cache

options {directory "/var/named";// Scoaterea comentariilor de pe această opţiune// poate ajuta dacă trebuie să treceţi printr-un firewall// şi lucrurile nu funcţionează cum ar trebui// query-source port 53;};zone "." {type hint;file "root.hints";};zone "0.0.127.in-addr.arpa" {type master;file "pz/127.0.0";};

______________________________________________________________________

Linia `directory' spune named-ului unde să se uite după fişiere. Toate fişierele numite ulterior vorfi relative la acest director. Astfel pz este un director în /var/named, adică, /var/named/pz./var/named este directorul corect în concordanţă cu Linux File system Standard.

Page 5: Tutorial LINUX 08 Romana

Fişierul numit /var/named/root.hints este numit aici./var/named/root.hints ar trebui să conţină :______________________________________________________________________;; Pot exista comentarii deschise aici dacă aveţi deja acest fişier; Dacă nu sunt, nu vă impacientaţi.;. 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.G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241

______________________________________________________________________ Fişierul descrie serverele de nume "principale" din lume. Acestea se schimbă în timp şi decifişierul trebuie să fie întreţinut. Referiţi-vă la secţiunea "Întreţinere" pentru a afla cum să îl ţineţiactualizat.

Următoarea secţiune în named.conf este ultima zonă. Voi explica folosirea ei într-un capitolurmător, pentru început creaţi fişierul numit 127.0.0 în subdirectorul pz.______________________________________________________________________@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (1 ; Serial8H ; Refresh2H ; Retry1W ; Expire1D) ; Minimum TTLNS ns.linux.bogus.1 PTR localhost.

______________________________________________________________________

Page 6: Tutorial LINUX 08 Romana

În continuare aveţi nevoie de un /etc/resolv.conf arătând cam aşa:______________________________________________________________________search subdomain.your-domain.edu your-domain.edunameserver 127.0.0.1

______________________________________________________________________ Linia `search' specifică ce domenii ar trebui căutate pentru orice nume de host la care doriţi săvă conectaţi. Linia `nameserver' specifică adresa serverului de nume, în cazul de faţă maşinadumneavoastră (127.0.0.1 este în regulă, chiar dacă maşina are şi alte adrese). Dacă doriţi sălistaţi mai multe servere de nume puneţi o linie `nameserver' pentru fiecare. (Notă: named nuciteşte niciodată acest fişier, resolver-ul care utilizează named o face).

Pentru a ilustra ce face acest fişier: dacă un client încearcă să găsească foo, atunci întâi esteîncercat foo.subdomain.your-domain.edu, apoi foo.your-fomain.edu, şi în fianl foo. Dacăun client caută sunsite.unc.edu, atunci sunsite.unc.edu.subdomain.your-domain.edueste încercat întâi (da, este stupid, dar acesta este modul de funcţionare), apoisunsite.unc.edu.your-domain.edu, şi în final sunsite.unc.edu. Nu este recomandat săpuneţi prea multe domenii în linia `search', pentru că ia timp cautarea în toate.

Acest exemplu presupune că aparţineţi domeniului subdomain.your-domain.edu, maşinadumneavoastră fiind atunci numită, probabil, your-machine.subdomain.your-domain.edu.Linia `search' nu trebuie să conţină domeniul de bază (TLD - Top Level Domain, `edu' în acestcaz). Dacă aveţi nevoie frecvent să conectaţi hosturi în alt domeniu puteţi adăuga acel domeniuîn lista de căutare astfel:______________________________________________________________________search subdomain.your-domain.edu your-domain.edu other-domain.com

______________________________________________________________________

şi aşa mai departe. Bineînţeles că va trebui să puneţi nume de domenii adevărate în fişiere. Vărog notaţi lipsa punctului la sfârşitul numelor de domenii. Aceasta este important.

În continuare, în funcţie de versiunea libc aveţi nevoie să modificaţi /etc/nsswitch.conf sau/etc/host.conf. Dacă aveţi nsswitch.conf atunci pe aceata o vom modifica, dacă nu vommodifica host.conf. /etc/nsswitch.conf

Acesta este un fişier mare în care se specifică de unde să se ia diferite tipuri de date, din ce fişiersau bază de date. În mod uzual conţine comentarii ajutătoare la început, pe care ar trebui săconsideraţi a le citi. După aceea gaşiţi linia care începe cu `hosts:', ar trebui să conţină:______________________________________________________________________hosts: files dns

______________________________________________________________________ Dacă nu există o asemenea linie care să înceapă cu `hosts:', atunci puneţi-o pe cea de mai sus.Ea spune că programele se vor uita mai întâi în fişierul /etc/hosts, apoi vor accesa DNS-ul înconformitate cu resolv.conf.

Page 7: Tutorial LINUX 08 Romana

/etc/host.conf

Acest fişier probabil conţine câteva linii, una dintre ele ar trebui să inceapă cu "order" şi să arateaşa:______________________________________________________________________order hosts,bind

______________________________________________________________________ Dacă nu există nici o linie `order', trebuie să adăugaţi una. Ea spune rutinelor pentru rezolvareanumelor ale hostului să se uite întâi în /etc/hosts, apoi să întrebe serverul de nume (care estespecificat în resolv.conf ca fiind la 127.0.0.1).

3.1. Pornirea namedDupă toate acestea este timpul să pornim named-ul. Dacă utilizaţi o conexiune dialup, întâiconectaţi-vă. Scrieţi `ndc start', şi apăsaţi return, fără opţiuni. Dacă aceasta nu funcţioneazăîncercaţi `/usr/sbin/ndc start'. Dacă nici aşa nu funcţionează citiţi secţiunea "Întrebări şirăspunsuri". Dacă citiţi fişierul de mesaje syslog (uzual /var/adm/messages, dar alt directorpoate fi /var/log şi alt fişier poate fi syslog) în timp ce porniţi named (utilizaţi tail -f

/var/log/messages) ar trebui să vedeţi ceva de genul:(liniile care se termină în \ continuă pe linia următoare)

Feb 15 01:26:17 roke named[6091]: starting. named 8.1.1 Sat Feb 14 \00:18:20 MET 1998 ^[email protected]:/var/tmp/bind-8.1.1/src/bin/namedFeb 15 01:26:17 roke named[6091]: cache zone "" (IN) loaded (serial 0)Feb 15 01:26:17 roke named[6091]: master zone "0.0.127.in-addr.arpa" \(IN) loaded (serial 1)Feb 15 01:26:17 roke named[6091]: listening [127.0.0.1].53 (lo)Feb 15 01:26:17 roke named[6091]: listening [129.240.230.92].53 (ippp0)Feb 15 01:26:17 roke named[6091]: Forwarding source address is [0.0.0.0].1040Feb 15 01:26:17 roke named[6092]: Ready to answer queries.

Dacă există vreun mesaj despre vreo eroare, atunci este o greşeală. named va scrie fişierul încare este aceasta (unul din named.conf sau root.hints). Omorâţi named şi verificaţi fişierele.

Acum puteţi testa configuraţia. Porniţi nslookup pentru a vă examina munca.

$ nslookupDefault Server: localhostAddress: 127.0.0.1

Dacă aceasta este ceea ce aţi obţinut, funcţionează. Să sperăm. Orice altceva, reveniţi şi verificaţitotul. De fiecare dată când modificaţi fişierul named.conf trebuie să restartaţi named utilizândcomanda ndc restart.

Acum putem introduce o cerere. Încercaţi să căutaţi o maşină aproape de dumneavoastră. pat.uio.no este aproape de mine, la Universitatea din Oslo:

Page 8: Tutorial LINUX 08 Romana

pat.uio.noServer: localhostAddress: 127.0.0.1Name: pat.uio.noAddress: 129.240.130.16

nslookup acum a cerut named-ului dumneavoastră să caute maşina pat.uio.no. El a contactatunul din serverele de nume specificate în fişierul root.hints, şi l-a întrebat calea de acolo.Poate dura puţin înainte ca răspunsul să sosească pentru că s-ar putea să se caute în toatedomeniile specificate în /etc/resolv.conf.

Dacă întrebaţi de acelaşi host din nou, veţi obţine:

pat.uio.noServer: localhostAddress: 127.0.0.1Non-authoritative answer:Name: pat.uio.noAddress: 129.240.2.50

Notaţi linia "Non-authoritative answer:" pe care am obţinut-o de data aceasta. Ea înseamnă cănamed nu s-a dus pe reţea să întrebe de data aceasta, informaţia fiind în cache acum. Darinformaţia din cache poate fi expirată (stale). Deci sunteţi informaţi fugar de această posibilitate:`Non-authorative answer:'. Când nslookup spune aceasta a doua oară când cereţi un host este unsemn sigur că named plasează informaţia în cache şi funcţionează. Ieşiţi din nslookup cucomanda `exit'.

3.2. O configuraţie şi mai bunăÎn reţele largi, bine organizate, academice sau ale ISP (Internet Service Provider - Ofertant deServicii Internet) veţi găsi că s-a definit o ierarhie de server DNS "forwarder", care ajută lauşurarea încărcării în reţeaua locală şi serverele de afară deasemenea. Nu este uşor de ştiut dacăsunteţi în interiorul unei asemenea reţele sau nu. Nu este însă aşa important, şi utilizând serverulDNS al ISP-ului dumneavoastră ca "forwarder" puteţi face răspunsurile la cererile de nume mairapide şi să micşoraţi încărcarea reţelei dumneavoastră. Dacă utilizaţi un modem aceasta poate fio victorie importantă. Pentru exemplul nostru, să considerăm că ISP-ul dumneavoastră are douăservere de nume pe care vă lasă sa le utilizaţi, cu adresa IP 10.0.0.1 şi 10.1.0.1. Atunci, înfişierul named.conf, în interiorul secţiunii de deschidere numită "options", inseraţi aceste linii:______________________________________________________________________forward first;forwarders {10.0.0.1;10.1.0.1;};

______________________________________________________________________ Restartaţi named şi testaţi cu nslookup. Ar trebui să funcţioneze bine.

Page 9: Tutorial LINUX 08 Romana

3.3 FelicităriAcum ştiţi cum să configuraţi un server de numa care realizează doar cache. Luaţi o bere, laptesau ce preferaţi pentru a sărbători aceasta.

4. Un domeniu simpluCum să configuraţi propriul domeniu

4.1. Dar la început nişte teorie aridăÎnainte să începem cu adevărat secţiunea aceasta vă voi prezenta nişte teorie şiun exemplu decum funcţionează DNS-ul. Şi o vom citi, pentru că este bună pentru dumneavoastră. Dacă nudoriţi ar trebui să o frunzăriţi cel puţin. Opriţi-vă din frunzărit când ajungeţi la ce ar trebui săpuneţi în fişierul named.conf.

DNS-ul este un sistem ierarhic, structurat ca un arbore. Rădăcina este numită `.' şi pronounţată`root'. Sub ea, se găsesc un număr de Top Level Domains (TLDs), cele mai cunoscute fiindORG, COM, EDU şi NET, dar mai sunt multe altele. Exact ca un arbore, el are o rădăcină care seramnifică. Dacă aveţi puţin idee de ştiinţa calculatoarelor veţi recunoaşte DNS ca pe un arbore decăutare, şi veţi fi capabili să găsiţi noduri, frunze şi muchii.

Când caută o maşină, cererea procesează recursiv ierarhia, începând de sus. Dacă doriţi să aflaţiadresa prep.ai.mit.edu, serverul de nume trebuie să găsească un server de nume care serveşteedu. El întreabă un server . (deja ştie serverele . pentru asta există fişierul root.hints),serverul . dă o listă cu serverele edu:

$ nslookupDefault Server: localhostAddress: 127.0.0.1

Începem prin a întreba un server din rădăcină:server c.root-servers.net.Default Server: c.root-servers.netAddress: 192.33.4.12

Setăm tipul cererii la NS (înregistrările cu servere de nume):set q=ns

Întrebăm despre edu:edu.

Page 10: Tutorial LINUX 08 Romana

Punctul de la sfârşit este aici important, el îi spune nslookup-ului că cerem pe edu de sub . (şinu sub vreunul din domeniile noastre de căutare, asta creşte viteza)

edu nameserver = A.ROOT-SERVERS.NETedu nameserver = H.ROOT-SERVERS.NETedu nameserver = B.ROOT-SERVERS.NETedu nameserver = C.ROOT-SERVERS.NETedu nameserver = D.ROOT-SERVERS.NETedu nameserver = E.ROOT-SERVERS.NETedu nameserver = I.ROOT-SERVERS.NETedu nameserver = F.ROOT-SERVERS.NETedu nameserver = G.ROOT-SERVERS.NETA.ROOT-SERVERS.NET internet address = 198.41.0.4H.ROOT-SERVERS.NET internet address = 128.63.2.53B.ROOT-SERVERS.NET internet address = 128.9.0.107C.ROOT-SERVERS.NET internet address = 192.33.4.12D.ROOT-SERVERS.NET internet address = 128.8.10.90E.ROOT-SERVERS.NET internet address = 192.203.230.10I.ROOT-SERVERS.NET internet address = 192.36.148.17F.ROOT-SERVERS.NET internet address = 192.5.5.241G.ROOT-SERVERS.NET internet address = 192.112.36.4

Acesta ne spune că toate serverele ROOT-SERVERS.NET servesc EDU., deci putem să întrebăm peoricare dintre ele. Vom continua prin a întreba C. Acum dorim să ştim care servere servescnivelul următor din numele de domeniu: mit.edu.:

mit.edu.Server: c.root-servers.netAddress: 192.33.4.12

Non-authoritative answer:mit.edu nameserver = W20NS.mit.edumit.edu nameserver = BITSY.mit.edumit.edu nameserver = STRAWB.mit.edu

Authoritative answers can be found from:W20NS.mit.edu internet address = 18.70.0.160BITSY.mit.edu internet address = 18.72.0.3STRAWB.mit.edu internet address = 18.71.0.151

steawb, w20ns şi bitsy servesc toate mit.edu, alegem una şi întrebăm despre numele un nivelmai sus: ai.mit.edu:

server W20NS.mit.edu.

Numele de host-uri nu sunt case sensitive, dar eu folosesc mouse-ul pentru cut and paste, deci l-am copiat cum era pe ecran.

Page 11: Tutorial LINUX 08 Romana

Server: W20NS.mit.eduAddress: 18.70.0.160

ai.mit.edu.Server: W20NS.mit.eduAddress: 18.70.0.160

Non-authoritative answer:ai.mit.edu nameserver = ALPHA-BITS.AI.MIT.EDUai.mit.edu nameserver = GRAPE-NUTS.AI.MIT.EDUai.mit.edu nameserver = TRIX.AI.MIT.EDUai.mit.edu nameserver = MUESLI.AI.MIT.EDUai.mit.edu nameserver = LIFE.AI.MIT.EDUai.mit.edu nameserver = BEET-CHEX.AI.MIT.EDUai.mit.edu nameserver = MINI-WHEATS.AI.MIT.EDUai.mit.edu nameserver = COUNT-CHOCULA.AI.MIT.EDUai.mit.edu nameserver = MINTAKA.LCS.MIT.EDU

Authoritative answers can be found from:AI.MIT.EDU nameserver = ALPHA-BITS.AI.MIT.EDUAI.MIT.EDU nameserver = GRAPE-NUTS.AI.MIT.EDUAI.MIT.EDU nameserver = TRIX.AI.MIT.EDUAI.MIT.EDU nameserver = MUESLI.AI.MIT.EDUAI.MIT.EDU nameserver = LIFE.AI.MIT.EDUAI.MIT.EDU nameserver = BEET-CHEX.AI.MIT.EDUAI.MIT.EDU nameserver = MINI-WHEATS.AI.MIT.EDUAI.MIT.EDU nameserver = COUNT-CHOCULA.AI.MIT.EDUAI.MIT.EDU nameserver = MINTAKA.LCS.MIT.EDUALPHA-BITS.AI.MIT.EDU internet address = 128.52.32.5GRAPE-NUTS.AI.MIT.EDU internet address = 128.52.36.4TRIX.AI.MIT.EDU internet address = 128.52.37.6MUESLI.AI.MIT.EDU internet address = 128.52.39.7LIFE.AI.MIT.EDU internet address = 128.52.32.80BEET-CHEX.AI.MIT.EDU internet address = 128.52.32.22MINI-WHEATS.AI.MIT.EDU internet address = 128.52.54.11COUNT-CHOCULA.AI.MIT.EDU internet address = 128.52.38.22MINTAKA.LCS.MIT.EDU internet address = 18.26.0.36

Deci museli.ai.mit.edu este un nameserver pentru ai.mit.edu:

server MUESLI.AI.MIT.EDUDefault Server: MUESLI.AI.MIT.EDUAddress: 128.52.39.7

Acum voi schimba tipul cererii, am găsit serverul de nume şi acum îl vom întreba tot ce ştiedespre prep.ai.mit.edu.

set q=anyprep.ai.mit.edu.Server: MUESLI.AI.MIT.EDUAddress: 128.52.39.7

Page 12: Tutorial LINUX 08 Romana

prep.ai.mit.edu CPU = dec/decstation-5000.25 OS = unixprep.ai.mit.eduinet address = 18.159.0.42, protocol = tcpftp telnet smtp fingerprep.ai.mit.edu preference = 1, mail exchanger = gnu-life.ai.mit.eduprep.ai.mit.edu internet address = 18.159.0.42ai.mit.edu nameserver = beet-chex.ai.mit.eduai.mit.edu nameserver = alpha-bits.ai.mit.eduai.mit.edu nameserver = mini-wheats.ai.mit.eduai.mit.edu nameserver = trix.ai.mit.eduai.mit.edu nameserver = muesli.ai.mit.eduai.mit.edu nameserver = count-chocula.ai.mit.eduai.mit.edu nameserver = mintaka.lcs.mit.eduai.mit.edu nameserver = life.ai.mit.edugnu-life.ai.mit.edu internet address = 128.52.32.60beet-chex.ai.mit.edu internet address = 128.52.32.22alpha-bits.ai.mit.edu internet address = 128.52.32.5mini-wheats.ai.mit.edu internet address = 128.52.54.11trix.ai.mit.edu internet address = 128.52.37.6muesli.ai.mit.edu internet address = 128.52.39.7count-chocula.ai.mit.edu internet address = 128.52.38.22mintaka.lcs.mit.edu internet address = 18.26.0.36life.ai.mit.edu internet address = 128.52.32.80

Deci începând cu ., am găsit succesiv servere de nume pentru fiecare nivel din numele dedomeniu. Dacă aţi fi folosit propriu dumneavoastra server DNS în loc să folosiţi toate acesteservere, named-ul dumneavoastră ar fi căutat aceste informaţii şi le-ar fi stocat în cache şi nu ar fifost nevoit să le ceară din nou pentru o perioadă.

În arbore, analog cu fiecare "." în nume, există un punct de ramnificaţie. Şi fiecare parte între "."reprezintă numele ramnificaţiilor individuale în arbore.

Noi parcurgem arborele luând numele pe care îl dorim (prep.ai.mit.edu), căutând rădăcina (.)şi apoi căutând următoarea ramură de parcurs, în acest caz edu. Odată găsită, o parcurgemutilizând serverul care ştie despre acea parte din nume. În continuare ne uităm peste ramura mitdin ramura edu (numele combinat este mit.edu) şi o parcurgem utilizând un server care ştiedespre mit.edu. Din nou ne uităm după următoarea ramură, ea este ai.mit.edu, şi din nouutilizăm serverul care ştie despre ea. Acum am ajuns la serverul bun, la dreapta punctului deramnificaţie. Ultima parte este găsirea prep.ai.mit.edu, care este simplă. În ştiinţacalculatoarelor numim în mod uzual prep frunza unui arbore.

O chestie despre care s-a vorbit puţin, dar care este importantă este domeniul in-addr.arpa. Eleste deasemena îmbricat, precum domeniile normale. in-addr.arpa ne permite să găsim numelehostului atunci când deţinem adresa. Un lucru important aici este acela că adresele sunt scriser înordinea inversă în domeniul in-addr.arpa. Dacă aveţi adresa unei maşini: 192.128.52.43,named procedează la fel ca în exemplul pentru prep.ai.mit.edu: caută servere pentru arpa.Caută servere in-addr.arpa., caută servere 192.in-addr.arpa., caută servere 128.192.in-

Page 13: Tutorial LINUX 08 Romana

addr.arpa., caută servere 52.128.192.in-addr.arpa. Caută înregistrările necesare pentru43.52.128.192.in-addr.arpa. Inteligent, nu ? (Spuneţi `da'.) Scrierea inversă a numerelorpoate duce la confuzii însă.

Tocmai am spus o minciună. DNS nu lucrează exact în modul în care v-am spus. Dar esteaproape aşa.

4.2. Propriul nostru domeniuAcum să definim propriul nostru domeniu. Vom face domeniul linux.bogus şi vom definimaşinile din el. Foloses un nume de domeniu total aiurea ca să fiu sigur că nu voi deranja penimeni Acolo Afară.

Încă un lucru înainte de a începe: nu toate caracterele sunt permise în numele de host-uri. Suntemrestricţionaţi la caracterele din alfabetul englezesc: a-z, şi numere: 0-9 şi caracterul '-' (dash).Limitaţi-vă la aceste caractere. Literele mari şi mici sunt identice pentru DNS, deci pat.uio.noeste identic cu Pat.UiO.No.

Deja am pus în named.conf această linie:

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

______________________________________________________________________

Vă rog notaţi lipsa caracterului "." la sfârşitul numelor de domenii în acest fişier. Se spune căvom defini zona 0.0.127.in-addr.arpa, că vom fi serverul principal pentru ea şi că estestocată într-un fişier numit pz/127.0.0. Deja am creat acest fişier, el conţine: ______________________________________________________________________@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (1 ; Serial8H ; Refresh2H ; Retry1W ; Expire1D) ; Minimum TTLNS ns.linux.bogus.1 PTR localhost.

______________________________________________________________________

Vă rog luaţi aminte la "." de la sfârşitul numelor de domenii din acest fişier, în comparaţie cu

Page 14: Tutorial LINUX 08 Romana

fişierul named.conf de mai sus. Unii preferă să înceapă fiecare zonă cu o directivă $ORIGIN, dareste superfluă. Originea unei zone (unde în ierarhia DNS aparţine) este specificată în secţiuneazone din fişierul named.conf, în acest caz 0.0.127.in-addr.arpa.

Acest fişier de zonă conţine 3 înregistrări de resurse (resource records, RRs): A SOA RR. A NSRR şi A PTR RR. SOA este prescurtarea pentru Start Of Authority (Început deAutoritate).Caracterul `@' este o notaţie specială, având sens de origine, şi deoarece coloanadomeniu pentru acest fişier este 0.0.127.in-addr.arpa; prima linie înseamnă de fapt:

0.0.127.in-addr.arpa. IN SOA ...

NS este Name Server RR. Nu este nici un '@' la începutul acestei linii, este implicit deoareceultima linia a început cu '@'. Se scrie mai puţin aşa. Deci linia NS ar putea fi scrisă şi aşa:

0.0.127.in-addr.arpa. IN NS ns.linux.bogus

Ea spune DNS care maşină este server de nume pentru domeniul 0.0.127.in-addr.arpa, eleste ns.linux.bogus. "ns" este un nume obişnuit pentru serverele de nume, la fel cum serverelede web sunt numite de obicei www.ceva.undeva, dar numele poate fi oricare altul. În final,înregistrarea PTR spune că host-ul la adresa 1 în subreţeaua 0.0.127.in-addr.arpa, adică,127.0.0.1 se numeşte localhost.

Înregistrarea SOA este preambulul tuturor fişierelor de zone, şi trebuie să existe fix una în fiecareasfel de fişier. Ea descrie zona, de unde vine (o maşină numită ns.linux.bogus) şi cine esteresponsabil de conţinutul ei ([email protected], trebuie să vă puneţi adresa de e-mail aici),ce versiune a fişierului zonă este (serial: 1) şi alte lucruri în legătură cu cache-ul şi servereleDNS secundare. Pentru celelalte câmpuri (refresh, retry, expire şi minimum) utilizaţi numereledin acest HOWTO şi ar trebui să fie în regulă.

Acum reporniţi named-ul (comanda este ndc restart) şi utilizaţi nslookup pentru a examinace aţi făcut.

$ nslookup

Default Server: localhostAddress: 127.0.0.1

Page 15: Tutorial LINUX 08 Romana

127.0.0.1Server: localhostAddress: 127.0.0.1

Name: localhostAddress: 127.0.0.1

deci ia localhost din 127.0.0.1, ceea ce este bine. Acum, pentru treaba principală, domeniullinux.bogus, inseraţi o nouă secţiune "zone" în named.conf:

______________________________________________________________________zone "linux.bogus" {notify no;type master;file "pz/linux.bogus";};

______________________________________________________________________

Din nou atenţie la lipsa caracterului "." din numele domeniului în fişierul named.conf.

În fişierul zonei linux.bogus vom pune date complet aiurea:

______________________________________________________________________;; Fişier pentru zona linux.bogus;; Întreg fişierul pentru zona;@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (199802151 ; serial, todays date + todays serial #8H ; refresh, seconds2H ; retry, seconds1W ; expire, seconds1D ) ; minimum, seconds;NS ns ; Inet Address of name serverMX 10 mail.linux.bogus ; Primary Mail ExchangerMX 20 mail.friend.bogus. ; Secondary Mail Exchanger;localhost A 127.0.0.1ns A 192.168.196.2mail A 192.168.196.4

______________________________________________________________________

Două lucruri trebuie să fie clare despre înregistrarea SOA. ns.linux.bogus trebuie să fie o maşinăexistentă cu o înregistrare A. Nu este permis să aveţi o înregistrare CNAME pentru maşinamenţionată în înregistrarea SOA. Numele nu trebuie să fie "ns", poate fi orice nume de hostpermis. În continuare, hostmaster.linux.bogus trebuie să fie citit [email protected], şi acesta trebuie să fie un mail alias sau un mailbox pe care persoanacare întreţine DNS-ul să-l citească frecvent. Orice mail în legătură cu domeniul va fi trimis la

Page 16: Tutorial LINUX 08 Romana

adresa listată aici. Numele nu trebuie să fie "hostmaster", poate fi adresa dumneavoastra de e-mail normală, dat adresa "hostmaster" este adeseori de aşteptat să fie validă.

Este un nou tip de înregistrare de resurse (RR) în acest fişier, MX, sau Mail eXchanger RR. Elspune sistemului de mail unde să trimită mail care este adresat cuiva [email protected], lanoi se trimite la mail.linux.bogus sau mail.friend.bogus. Numărul dinaintea fiecăreimaşini este prioritatea MX RR-ului. RR-ul cu cea mai mică prioritate (10) este acela la caremail-ul fa fi trimis dacă este posibil. Dacă apare vreo eroare mail-ul va fi trimis unui server cunumăr mai mare, un server secundar de mail, la noi mail.friend.bogus care are prioritatea 20aici.

Reporniţi named-ul cu comanda este ndc restart. Examina ce aţi făcut cu nslookup:

$ nslookupset q=anylinux.bogusServer: localhostAddress: 127.0.0.1

linux.bogusorigin = ns.linux.bogusmail addr = hostmaster.linux.bogusserial = 199802151refresh = 28800 (8 hours)retry = 7200 (2 hours)expire = 604800 (7 days)minimum ttl = 86400 (1 day)linux.bogus nameserver = ns.linux.boguslinux.bogus preference = 10, mail exchanger = mail.linux.bogus.linux.boguslinux.bogus preference = 20, mail exchanger = mail.friend.boguslinux.bogus nameserver = ns.linux.bogusns.linux.bogus internet address = 192.168.196.2mail.linux.bogus internet address = 192.168.196.4

După o examinare atentă veţi găsi un bug. Linia

linux.bogus preference=10, mail exchanger=mail.linux.bogus.linux.bogus

este greşită. Ar trebui să fie:

linux.bogus preference = 10, mail exchanger = mail.linux.bogus

Page 17: Tutorial LINUX 08 Romana

Am făcut această greşeală deliberat, ca să puteţi învăţa din ea :-) Uitându-vă în fişierul cu zonaveţi găsi că în linia

MX 10 mail.linux.bogus ; Primary Mail Exchanger

lipseşte un punct. Sau are un "linux.bogus" în plus. Dacă un nume de maşină nu se termină înpunct într-un fişier zonă originea este adăugată la sfârşit, ceea ce a dus la noi lalinux.bogus.linux.bogus. Deci sau:______________________________________________________________________MX 10 mail.linux.bogus. ; Primary Mail Exchanger

______________________________________________________________________sau______________________________________________________________________MX 10 mail ; Primary Mail Exchanger

______________________________________________________________________

sunt corecte. Eu prefer ultima forma, este mai puţin de scris. Sunt însă unii experţi în bind carenu sunt de acord cu asta, şi sunt unii care sunt de acord. Într-un fişier de zone domeniul trebuiesă fie scris şi terminat cu ".", sau nu trebuie scris deloc, caz în care el este substituit cu originea.

Trebuie să vă bat la cap că în fişierul named.conf nu trebuie să fie "." după numele de domenii.Nici nu aveţi habar de câte ori un "." în plus sau în minus au stricat lucrurile şi au adus confuzie.

Deci după aceasta, iată noul fişier zonă, cu câteva informaţii în plus:

______________________________________________________________________;; Fişier pentru zona linux.bogus;; Întreg fişierul pentru zona;@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (199802151 ; serial, todays date + todays serial #8H ; refresh, seconds2H ; retry, seconds1W ; expire, seconds1D ) ; minimum, seconds;TXT "Linux.Bogus, your DNS consultants"NS ns ; Inet Address of name serverNS ns.friend.bogus.MX 10 mail ; Primary Mail ExchangerMX 20 mail.friend.bogus. ; Secondary Mail Exchanger

localhost A 127.0.0.1

Page 18: Tutorial LINUX 08 Romana

gw A 192.168.196.1HINFO "Cisco" "IOS"TXT "The router"

ns A 192.168.196.2MX 10 mailMX 20 mail.friend.bogus.HINFO "Pentium" "Linux 2.0"www CNAME ns

donald A 192.168.196.3MX 10 mailMX 20 mail.friend.bogus.HINFO "i486" "Linux 2.0"TXT "DEK"

mail A 192.168.196.4MX 10 mailMX 20 mail.friend.bogus.HINFO "386sx" "Linux 1.2"

ftp A 192.168.196.5MX 10 mailMX 20 mail.friend.bogus.HINFO "P6" "Linux 2.1.86"

______________________________________________________________________ Există un număr de RR-uri noi aici: HINFO (Host INFOrmation) are două părţi, este un bunobicei să le menţionaţi pe amândouă. Prima parte este este hardware-ul sau CPU-ul de pemaşină. Maşina numită ns are un CPU Pentium şi rulează Linux 2.0. CNAME (CanonicalNAME) este o modalitate de a da fiecărei maşini mai multe nume. Deci www este un alias pentruns.

Folosirea înregistrarii CNAME este un pic controversată. Dar este "safe" de urmărit regula: oînregistrare MX, CNAME sau SOA nu trebuie să refere niciodată o înregistrare CNAME, eletrebuie să refere ceva dintr-o înregistrare A, deci este de nedorit să avem:

______________________________________________________________________foobar CNAME www ; NU!

______________________________________________________________________dar corect să avem:

______________________________________________________________________foobar CNAME ns ; Da!

______________________________________________________________________

Este de asemenea "safe" să presupunem că un CNAME nu este un nume legal pentru o adresă demail: [email protected] este o adresă de mail ilegală dată de configuraţia de amisus. Vă puteţi aştepta ca câţiva administratori de amil Acolo Afară să forţeze această regulă,chiar dacă ea lucrează pentru dumneavoastră. Modalitatea de evitare a acesteia este folosirea de

Page 19: Tutorial LINUX 08 Romana

înregistrări A (şi posibil altele deasemenea, ca înregistrările MX) în schimb.

______________________________________________________________________www A 192.168.196.2

______________________________________________________________________

Un număr de "arch-bind-wizards" recomandă evitarea completă a utilizării CNAME. Dardiscuţia despre cum sau cum să nu depăşeşte acest HOWTO.

Dar după cum vedeţi, acest HOWTO şi multe site-uri nu urmează această regulă.

Încărcaţi noua bază de date rulând ndc reload, aceasta forţâând named sa-şi recitească fişierele. $ nslookupDefault Server: localhostAddress: 127.0.0.1

ls -d linux.bogus

Aceasta înseamnă că toate înregistrările trebuie listate. Rezultatul este acesta:

[localhost]$ORIGIN linux.bogus.@ 1D IN SOA ns hostmaster (199802151 ; serial8H ; refresh2H ; retry1W ; expiry1D ) ; minimum

1D IN NS ns1D IN NS ns.friend.bogus.1D IN TXT "Linux.Bogus, your DNS consultants"1D IN MX 10 mail1D IN MX 20 mail.friend.bogus.gw 1D IN A 192.168.196.11D IN HINFO "Cisco" "IOS"1D IN TXT "The router"mail 1D IN A 192.168.196.41D IN MX 10 mail1D IN MX 20 mail.friend.bogus.1D IN HINFO "386sx" "Linux 1.0.9"localhost 1D IN A 127.0.0.1www 1D IN CNAME nsdonald 1D IN A 192.168.196.31D IN MX 10 mail1D IN MX 20 mail.friend.bogus.1D IN HINFO "i486" "Linux 1.2"1D IN TXT "DEK"ftp 1D IN A 192.168.196.51D IN MX 10 mail

Page 20: Tutorial LINUX 08 Romana

1D IN MX 20 mail.friend.bogus.1D IN HINFO "P6" "Linux 1.3.59"ns 1D IN A 192.168.196.21D IN MX 10 mail1D IN MX 20 mail.friend.bogus.1D IN HINFO "Pentium" "Linux 1.2"

Aceasta este bine. După cum vedeţi, arată cam ca fişierul zonă însuşi. Să vedem ce spune desprewww singur:

set q=anywww.linux.bogus.Server: localhostAddress: 127.0.0.1

www.linux.bogus canonical name = ns.linux.boguslinux.bogus nameserver = ns.linux.boguslinux.bogus nameserver = ns.friend.bogusns.linux.bogus internet address = 192.168.196.2

Cu alte cuvinte, numele adevărat pentru www.linux.bogus este ns.linux.bogus, şi deasemenea sunt date câteva informaţii despre ns, suficiente să vă conectaţi la el dacă aţi fi unprogram.

Acum suntem la jumătarea drumului.

4.3. Zona inversăAcum programele pot converti numele din linux.bogus în adrese la care se pot conecta. Dareste necesară însă şi o zonă înversă, una care să facă DNS-ul în stare să convertească dintr-oadresă la un nume. Acest nume este folosi de o mulţime de diferite servere (FTP, IRC, WWW şialtele) ca să decidă dacă vor să vorbească cu dumneavoastră sau nu, sau ce prioritate să văasocieze. Pentru acces deplin la Internet o zonă inversă este necesară.

Puneţi aceasta în named.conf:______________________________________________________________________zone "196.168.192.in-addr.arpa" {notify no;type master;file "pz/192.168.196";};

______________________________________________________________________

Page 21: Tutorial LINUX 08 Romana

Este exact la fel cu 0.0.127.in-addr.arpa, şi conţinutul este similar:______________________________________________________________________@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (199802151 ; Serial, todays date + todays serial8H ; Refresh2H ; Retry1W ; Expire1D) ; Minimum TTLNS ns.linux.bogus.

1 PTR gw.linux.bogus.2 PTR ns.linux.bogus.3 PTR donald.linux.bogus.4 PTR mail.linux.bogus.5 PTR ftp.linux.bogus.

______________________________________________________________________

Acum restartaţi named-ul (ndc restart) şi examinaţi-vă munca cu nslookup:______________________________________________________________________192.168.196.4Server: localhostAddress: 127.0.0.1

Name: mail.linux.bogusAddress: 192.168.196.4

______________________________________________________________________ deci pare OK, să vedem totul acum:______________________________________________________________________ls -d 196.168.192.in-addr.arpa[localhost]$ORIGIN 196.168.192.in-addr.arpa.@ 1D IN SOA ns.linux.bogus. hostmaster.linux.bogus. (199802151 ; serial8H ; refresh2H ; retry1W ; expiry1D ) ; minimum

1D IN NS ns.linux.bogus.1 1D IN PTR gw.linux.bogus.2 1D IN PTR ns.linux.bogus.3 1D IN PTR donald.linux.bogus.4 1D IN PTR mail.linux.bogus.5 1D IN PTR ftp.linux.bogus.@ 1D IN SOA ns.linux.bogus. hostmaster.linux.bogus. (199802151 ; serial8H ; refresh2H ; retry1W ; expiry1D ) ; minimum

______________________________________________________________________

Page 22: Tutorial LINUX 08 Romana

Arată bine ! Dacă ce vedeţi nu arată aşa atunci uitaţi-vă la erorile din syslogd, v-am explicat cumla începutul acestui capitol.

4.4. La ce să aveţi grijăSunt câteva lucruri pe care trbuie să le adaug aici. Adresele IP din exemple de mai sus sunt luatedin unul din blocurile de reţele private, adică nu sunt permise pe internet. Deci se pot folosi fărăprobleme într-un HOWTO. Al doilea lucru este linia notify no. Ea spune named să nu-şi anunţeserverele secundare (slaves) când s-a facut vre-un update la unul din fişierele cu zone.

În bind-8 named poate anunţa celelalte servere listate în înregistrările NS în fişierul zonă când ozonă s-a modificat. Aceasta este convenabil pentru uz ordinar, dar pentru experimentări cuzonele această facilitate trebuie să fie oprită, pentru că nu doim ca experimenul nostru să poluezeIneternetul, nu ?

Şi, de asemenea, acest domeniu este foarte aiurea, la fel şi adresele din el. Pentru un exemplu dinlumea reală vedeţi următoarea secţiune mare.

4.5. De ce căutările inverse nu lucreazăSunt câteva chestii care în mod normal sunt evitate cu căutările inverse care sunt deseori vazutecând se configurează zonele inverse. Înainte de a începe aveţi nevoie de căutările inverse alemaşinilor să funcţioneze pe serverul de nume al dumneavoastră. Dacă nu este aşa, reveniţi şiremediaţi înainte de a continua.

Voi discuta două eşecuri ale căutărilor inverse după cum sunt vazute din afara reţeleidumneavoastră.

4.5.1. Zona inversă nu este delegată

Când cereţi unui ISP o clasă de adrese şi un nume de domeniu numele de domeniu este în modnormal delegat ca master, desigur. O delegare este înregistrarea NS care vă ajută să ajungeţi de laun server de nume la altul, după cum am explicat în secţiunea de mai sus. Aţi citit-o, nu-i aşa ?Dacă zona inversă nu funcţionează reveniţi şi citiţi-o. Acum.

Zona inversă trebuie de asemenea să fie delegată. Dacă aţi obţinut reţeaua 192.168.196 cudomeniul linux.bogus de la ISP-ul dumneavoastră, este necesar ca el să pună înregistrări NSpentru dumneavoastră în zonele inverse la fel ca în zonele de înaintare. Dacă urmăriţi lanţul de lain-addr.arpa în sus până la reţeaua dumneavoastră veţi găsi probabil o verigă lipsă în lanţ.

Page 23: Tutorial LINUX 08 Romana

Foarte probabil la ISP-ul dumneavoastră. Odată găsită această ruptură, contactaţi-vă ISP-ul şicereţi-i să o corecteze.

4.5.2. Aveţi o subreţea ce are mai puţin de o clasă

Acesta este oarecum o chestiune avansată, dar astfel de subreţele sunt destul de comune în zilelenoastre şi este posibil să aveţi aşa ceva dacă nu sunteţi o companie de marime mijlocie.

O subreţea cu mai puţin de o clasă este ceea ce ţine Internet-ul în funcţiune astăzi. Cu câţiva aniînainte a fost mare agitaţie despre micşorarea adreselor de IP. Oamenii de la IETF (InternetEngineering Task Force, ei ţin Internet-ul în funcţiune) şi-au bătut capul şi au rezolvat problema.La un anume preţ. Preţul este că veţi primi mai puţin de o clasă "C" şi unele lucruri se vor strica.Vă rog vedeţi Ask Mr. DNS la http://www.acmebw.com/askmrdns/00007.htm pentru o explicaţiea acesteia şi cum să o rezolvaţi.

Aţi citit-o ? Nu am de gând să o explic deci vă rog citiţi-o.

Prima parte a problemei este aceea că ISP-ul dumneavoastră trebuie să înţeleagă tehnica descrisăde Mr. DNS. Nu toţi micii ISP-işti au o asemenea înţelegere. Dacă este aşa trebuie să le leexplicaţi şi să fiţi perseverent. Dar fiţi siguri mai întâi că o înţelegeţi ;-). Ei vor seta o zonăînversă pe serverul lor pe care o puteţi verifica pentru corectitudine cu nslookup.

A doua parte şi ultima a problemei este aceea că trebuie să înţelegeţi tehnica. Dacă nu sunteţisigur reveniţi şi citiţi-o din nou. Apoi vă puteţi seta propria dumneavoastă zonă inversă dup cumeste descris de Mr. DNS.

Mai este încă o capcană care vă pândeşte. Vechii resoveri nu sunt capabili să urmeze smecheriaCNAME în rezolvarea lanţului şi vor eşua în încercarea de a rezolva invers maşinadumneavoastră. Aceasta poate rezulta în asignarea unei adrese incorecte, refuzarea accesului sauceva asemănător. Dacă vă încurcaţi în aşa ceva singura soluţie (pe care o cunosc) este ca ISP-uldumneavostră să vă pună înregistrările PTR direct în fişierul lor cu clasa incompletă în loculutilizării smecheriei CNAME.

Unii ISP vă oferă alte moduri de a rezolva asta, ca de exemplu formuri Web în care veţiintroduce mapările inverse, sau alte sisteme magice.

Page 24: Tutorial LINUX 08 Romana

5. Exemplu de domeniu adevăratUnde vom prezenta nişte fişiere zonă adevărate

Utilizatorii mi-au sugerat să includ un exemplu real al unui domeniu care funcţionează, pe lângăexemplul didactic.

Folosesc acest exemplu cu permisiunea lui David Bullock de la LAND-5. Aceste fişiere au fostla zi în 24 septembrie 1996, şi au fost modificate pentru a fi conforme cu restricţiile bind 8 şi săfolosească extensiile de mine. Deci, ce vedeţi aici este puţin diferit de ceea ce veţi găsi dacăcăutaţi pe name serverul lui LAND-5 acum.

5.1. /etc/named.conf (sau /var/named/named.conf)Aici găsim secţiunea zonei primare pentru cele două zone inverse necesare: reţeaua 127.0.0 şisubreţeaua 206.6.177 a LAND-5. Şi o linie primară pentru zona de înaintare land-5.com. Deasemenea, observaţi că în loc să stocheze aceste fişiere într-un director numit pz, aşa cum amfăcut eu în acest HOWTO, el le pune într-un director numit zone.

______________________________________________________________________// Boot file for LAND-5 name server

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

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";};

______________________________________________________________________

Page 25: Tutorial LINUX 08 Romana

Dacă puneţi aceasta în fişierul named.conf al dumneavoastră, VA ROG puneţi "notify no;" însecţiunea zonelor pentru cele două zone land-5 pentru a evita accidentele.

5.2. /var/named/root.hintsNu uitaţi că acest fişier este dinamic, cel listat aici este vechi. Ar fi mai bine să utilizaţi unulprodus acum, cu dig, după cum voi explica.

______________________________________________________________________; << 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.4J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17F.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

______________________________________________________________________

Page 26: Tutorial LINUX 08 Romana

5.3. /var/named/zone/127.0.0Doar baza, înregistrarea SOA obligatorie, şi o înregistrare care mapează 127.0.0.1 pe localhost.Amândouă sunt necesare. Nu trebuie să fie mai multe în acest fişier. Nu va trebui să fie modificatniciodată, dacă nu se schimbă serverul de nume sau adresa hostmaster.

______________________________________________________________________@ IN SOA land-5.com. root.land-5.com. (199609203 ; Serial28800 ; Refresh7200 ; Retry604800 ; Expire86400) ; Minimum TTLNS land-5.com.

1 PTR localhost.

______________________________________________________________________

5.4. /var/named/zone/land-5.comAici vedem înregistrarea obligatorie SOA, şi înregistrările NS necesare. Putem vedea că el are unserver de nume secundar, ca fiind ns2.psi.net. Aceasta este aşa cum trebuie să fie, tot timpul săaveţi un server secundar ca backup. Putem vedea că are un host care realizează mai multeservicii Internet, şi că este făcut cu CNAME-uri (o alternativă ar fi utilizarea de înregistrări A).

Aşa cum puteţi vedea din înregistrarea SOA, fişierul zonă are originea în land-5.com, persoanade contact este [email protected]. hostmaster este un alt nume des utilizat pentru persoana decontact. Numărul serial este obişnuitul format yyyymmdd cu numărul serial al zilei la urmă;aceasta este probabil a şasea versiune a fişierului de pe 20 septembrie 1996. Nu uitaţi că numărulserial trebuie să crească monoton, aici este doar o cifră pentru numărul serial al zilei, deci după 9editări el trebuie să aştepte până mâine înainte de a edita fişierul din nou. Ar fi bine să utilizaţi 2cifre.

______________________________________________________________________@ IN SOA land-5.com. root.land-5.com. (199609206 ; serial, todays date + todays serial #8H ; refresh, seconds2H ; retry, seconds1W ; expire, seconds1D ) ; minimum, secondsNS land-5.com.NS ns2.psi.net.MX 10 land-5.com. ; Primary Mail ExchangerTXT "LAND-5 Corporation"

localhost A 127.0.0.1

Page 27: Tutorial LINUX 08 Romana

router A 206.6.177.1

land-5.com. A 206.6.177.2ns A 206.6.177.3www 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.200MX 10 land-5.com. ; Primary Mail Hostws-177201 A 206.6.177.201MX 10 land-5.com. ; Primary Mail Hostws-177202 A 206.6.177.202MX 10 land-5.com. ; Primary Mail Hostws-177203 A 206.6.177.203MX 10 land-5.com. ; Primary Mail Hostws-177204 A 206.6.177.204MX 10 land-5.com. ; Primary Mail Hostws-177205 A 206.6.177.205MX 10 land-5.com. ; Primary Mail Host; {Many repetitive definitions deleted - SNIP}ws-177250 A 206.6.177.250MX 10 land-5.com. ; Primary Mail Hostws-177251 A 206.6.177.251MX 10 land-5.com. ; Primary Mail Hostws-177252 A 206.6.177.252MX 10 land-5.com. ; Primary Mail Hostws-177253 A 206.6.177.253MX 10 land-5.com. ; Primary Mail Hostws-177254 A 206.6.177.254MX 10 land-5.com. ; Primary Mail Host

______________________________________________________________________ Dacă examinaţi serverul de nume al lui land-5 veţi găsi că numele hosturilor sunt de formaws_number. De la versiunile târzii de bind 4, named a începutsă forţere restricţiile pentru cecaractere pot fi utilizate în numele host-urilor. Deci asta nu funcţionează în bind 8 de loc, şi euam substituit "-" în locul "_" pentru utilizarea în acest HOWTO.

Alt lucru de notat este acela că staţiile de lucru nu au nume individuale, ci un prefix urmat deultimele două părţi ale adresei IP. Utilizând o asemenea convenţie poate simplifica întreţinereadestul de mult, dar poate fi puţin impersonal, şi, de fapt, poate fi o sursă de iritare pentru clienţi.

Vedem de asemenea că funn.land-5.com este un alias pentru land-5.com, dar cu înregistrare A,nu cu CNAME. Acesta este o politică bună, după cum am mai spus.

Page 28: Tutorial LINUX 08 Romana

5.5. /var/named/zone/206.6.177Voi comenta acest fişier mai jos

______________________________________________________________________@ IN SOA land-5.com. root.land-5.com. (199609206 ; Serial28800 ; Refresh7200 ; Retry604800 ; Expire86400) ; Minimum TTLNS 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.

______________________________________________________________________

Zona inveră este partea din configurare care pare să creezecele mai multe necazuri. Este utilizatăpentru a găsi numele host-urilor dacă aveţi adresa IP a acestora. Exemplu: sunteţi un server deIRC şi acceptaţi conexiuni de la clienţi IRC. Dar sunteţi un server IRC norvegian, şi deci doriţisă acceptaţi conexiuni doar de la clienţi din Norvegia şi alt ţări scandinave. Când primiţi oconexiune de la un client IRC, biblioteca C este capabilă să vă spună adresa IP a maşinii care s-aconectat, pentru că adresa IP este conţinută în toate pachetele care trec prin reţea. Acum puteţichema o fumcţie numită gethostbyaddr care caută numele unui host dat prin adresa IP.gethostbyaddr întreabă un server DNS, care va parcurge DNS-ul, căutând maşina.Presupunem că conexiunea clienului este de la ws-177200.land-5.com. Adresa IP pe carebiblioteca C o da serverului IRC este 206.6.177.200. Pentru a găsi numele maşinii respectivetrebuie să găsim 200.177.6.206.in-addr.arpa. Serverul DNS va găsi serverele arpa., apoiserverele in-addr.arpa., urmând calea inversă prin 206, apoi 6 şi apoi găsind serverul pentruzona 177.6.206.in-addr.arpa la LAND-5. De la care în final obţine răspunsul că pentru

Page 29: Tutorial LINUX 08 Romana

200.177.6.206.in-addr.arpa are o înregistrare "PTR ws-177200.land-5.com", adică numelepentru 206.6.177.200 este ws-177200.land-5.com. Ca şi explicaţia cum prep.ai.mit.edueste găsit, este puţin ficţionar.

Revenim la exemplul cu serverul IRC. Serverul IRC acceptă conexiuni de la ţările scandinave,adică *.no, *.se, *.dk, numele ws-177200.land-5.com în mod clar nu face parte din acestea, şiserverul va refuza coneziunea. Dacă nu ar fi existat o mapare inversă a 206.2.177.200 în zonain-addr.arpa, serverul nu ar fi fost în stare să găsească un nume şi ar fi avut de comparat206.2.177.200 cu *.no, *.se şi *.dk, nici unul din ele neprtrivindu-se.

Unii vă vor spune că mapările pentru căutarea inversă sunt importante doar pentru servere, saunu sunt importante deloc. Nu este aşa: multe servere ftp, news, IRC şi chiar http nu acceptăconexiuni de la maşini la care nu le pot găsi numele. Deci mapările inverse pentru maşini sunt defapt necesare.

6. ÎntreţinereaSă o menţii funcţională

Există o trabă de întreţinere pe care trebuie să o faceţi la named, alta decât să îl ţineţi înfuncţiune. Aceea este de a ţine fişierul root.hints la zi. Cel mai simplu este utilizând dig,prima dată rulaţi dig fără nici un argument, veţi obţine fişierul root.hints în conformitate cuserverul dumneavoastră. Apoi întrebaţi unul din serverele din root cu dig@rootserver. Veţiobserva că output-ul seamănă teribil cu un fişier root.hints. (dig @e.root-servers.net .

ns root.hints.new) şi înlocuiţi vechiul root.hints cu el.

Nu uitaţi să reîncarcaţi named după ce aţi înlocuit fişierul cache.

Al Longyear mi-a trimis acest script, care poate fi rulat automat pentru a ţine la zi root.hints,instalaţi o intrare în crontab pentru a-l rula o dată pe lună şi uitaţi de el. Scriptul presupune cămail-ul funcţionează şi că aliasul pentru mail "hostmaster" este definit. Trebuie să-l modificaţipentru configuraţia dumneavoastră.

______________________________________________________________________#!/bin/sh## Update the nameserver cache information file once per month.# This is run automatically by a cron entry.

Page 30: Tutorial LINUX 08 Romana

## Original by Al Longyear# Updated for bind 8 by Nicolai Langfeldt# Miscelanious error-conditions reported by David A. Ranch# Ping test suggested by Martin Foster#(echo "To: hostmaster <hostmaster"echo "From: system <root"echo "Subject: Automatic update of the root.hints file"echo

PATH=/sbin:/usr/sbin:/bin:/usr/bin:export PATHcd /var/named

# Are we online? Ping a server at your ISPcase `ping -qnc some.machine.net` in*'100% packet loss'*)echo "The network is DOWN. root.hints NOT updated"echoexit 0;;esac

dig @rs.internic.net . ns root.hints.new 2&1

case `cat root.hints.new` in*NOERROR*)# It worked:;;*)echo "The root.hints file update has FAILED."echo "This is the dig output reported:"echocat root.hints.newexit 0;;esac

echo "The root.hints file has been updated to contain the followinginformation:"echocat root.hints.new

chown root.root root.hints.newchmod 444 root.hints.newrm -f root.hints.oldmv root.hints root.hints.oldmv root.hints.new root.hintsndc restartechoecho "The nameserver has been restarted to ensure that the update iscomplete."echo "The previous root.hints file is now called/var/named/root.hints.old.") 2&1 | /usr/lib/sendmail -t

Page 31: Tutorial LINUX 08 Romana

exit 0

______________________________________________________________________

Unii dintre dumneavoastră aţi găsit că fişierul root.hints este disponibil de la Internic. Vă rognu utilizaţi ftp pentru menţinerea la zi a fişierului root.hints, metoda de mai sus este mult maiprietenoasă cu reţeaua şi deasemenea cu Internic.

7. Conversia de la versiunea 4 la versiunea 8Aceasta a fost inţia o secţiune despre utilizarea bind 8 scrisă de David E. Smith([email protected]). Am modificat-o puţin pentru a se potrivi cu noul nume al secţiunii

Nu este prea mare treabă. Doar cu utilizarea named.conf în loc de named.boot, totul esteidentic. Şi bind 8 vine cu un script perl care converteşte fişierele din stil vechi în stil nou.

Exemplu de named.boot (stil vechi) pentru un server de numa care face doar cache:

______________________________________________________________________directory /var/namedcache . root.hintsprimary 0.0.127.IN-ADDR.ARPA 127.0.0.zoneprimary localhost localhost.zone

______________________________________________________________________

În linia de comanda, în directorul bind8/src/bin/named (se presupune că aveţi sursele, dacăaveţi doar binarele are trebui să existe şi scriptul pe undeva, dar nu sunt sigur), scrieţi:______________________________________________________________________./named-bootconf.pl < named.boot named.conf

______________________________________________________________________

Aceasta creează named.conf:______________________________________________________________________// generated by named-bootconf.pl

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

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

Page 32: Tutorial LINUX 08 Romana

};

zone "0.0.127.IN-ADDR.ARPA" {type master;file "127.0.0.zone";};

zone "localhost" {type master;file "localhost.zone";};

______________________________________________________________________

Funcţionează pentru orice există în fişierul named.boot, dar nu adaugă noile îmbunătăţiri şiopţiuni de configurare care le permite bind 8. Iată un named.conf care face acelaşi lucru, darceva mai eficient.

______________________________________________________________________// This is a configuration file for named (from BIND 8.1 or later).// It would normally be installed as /etc/named.conf.// The only change made from the `stock' named.conf (aside from this// comment :) is that the directory line was uncommented, since I// already had the zone files in /var/named.

options {directory "/var/named";datasize 20M;};

zone "localhost" IN {type master;file "localhost.zone";};

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

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

______________________________________________________________________ În distribuţia de bind 8 în directorul bind8/src/bin/named/test veţi gasi acest fişier, precumşi copii ale zişierelor zonă, mulţi le pot doar copia şi utiliza imediat.

Formatul fişierelor zonă şi root.hints este identic, la fel şi comenzile pentru întreţinerea lor.

Page 33: Tutorial LINUX 08 Romana

8. Întrebări şi răspunsuriVă rog citiţi această secţiune înainte de a-mi trimite mail-uri.

1. named doreşte un fişier named.boot

Citiţi HOWTO-ul greşit. Vă rog citiţi versiunea veche a acestui HOWTO, care acoperă bind 4, lahttp://www.math.uio.no/~janl/DNS/

2. Cum să folosim DNS în spatele unui firewall?

Un hint: forward only;, Probabil veţi avea nevoie de asemenea de

___________________________________________________________________query-source port 53;

___________________________________________________________________

în secţiunea "options" a fişierului named.conf după cum am sugerat în examplul din secţiunea"caching".

3. cum să facem DNS să rotească prin adresele disponibilepentru un serviciu, să spunem www.site.încarcat pentru aobţine un efect de balansare a încarcării, sau ceva similar?

Faceţi mai multe înregistrări A pentru www.site.încărcat şi utilizaţi bind 4.9.3 sau mai mare.Atunci bind va realiza automat un round-robin cu răspunsurile. Aceasta nu funcţionează cuversiunile mai vechi de bind.

4. Vreu să configurez DNS pe un intranet închis. Ce trebuiesă fac?

Aruncaţi fişierul root.hints şi faceţi doar fişierele zone. Asta înseamnă şi că nu trebuie să

Page 34: Tutorial LINUX 08 Romana

menţineţi la zi acest fişier.

5. Cum să configurez un server de nume secundar?

Dacă serverul primar/master are adresa 127.0.0.1, puneţi o linie ca următoare în fişierulnamed.conf al serverului secundar:

___________________________________________________________________zone "linux.bogus" {type slave;file "sz/linux.bogus";masters { 127.0.0.1; };};

___________________________________________________________________

Puteţi lista mai multe servere primare din care zona poate fi copiată, separându-le prin ";".

6. Doresc ca bind să ruleze atunci când sunt deconectat de lareţea

Sunt trei puncte în legătură cu aceasta:

· Am primit un mail de la Ian Clark [email protected] în care el explică felul în care a realizataceasta.

Rulez named pe maşina mea care face "masquerading". Am două fişiere root.hints, unulnumit root.hints.real care conţine serverele root adevărate şi altul numit root.hints.fakecare conţine ...

___________________________________________________________________; root.hints.fake; this file contains no information

___________________________________________________________________

Când sunt deconectat copiez fişierul root.hints.fake în root.hints şi restartez named.

Page 35: Tutorial LINUX 08 Romana

Când sunt conectat copiez fişierul root.hints.real în root.hints şi restartez named.

Aceata este făcută în ip-down şi respectiv ip-up.

Prima dată când fac o cerere deconectat la un nume de domeniu despre care named nu are detaliiobţin aceasta în messages:

Jan 28 20:10:11 hazchem named[10147]: No root nameserver for class IN which Ican live with.

Cu certitudine se pare că funcţionează pentru mine. Pot utiliza serverul de nume pentru maşinilelocale în timp ce sunt deconectat fără întârzierea pentru domeniul extern şi când sunt conectatcererile funcţionează normal.

· Am primit de asemenea informaţii despre modul în care bind interacţionează cu portmapper peo maşină în general deconectată de la Karl-Max Wanger:

Utilizez propriul named pe toate maşinile care ocazional sunt conectate la Internet prinmodem.Serverul de nume rulează doar ca cache, nu are nici o arie de autoritate şi întreabă totulla serverele de nume din fişierul root.cache. În mod obişnuit pe Slackware, el este pornitînainte de nfsd and mountd. Pe una dintre maşinile mele (un notebook Libretto 30) amproblema următoare: uneori nu pot monta de pe alt sistem conectat la LAN-ul meu, dar înmajoritatea timpului nu se poate. Aceeaşi situaţie indiferent de utilizarea PLIP, un card PCMCIAethernet sau PPP peste o interfaţă serială. După ceva timp de ghciri şi experimentări am găsit căaparent named s-a încurcat cumva cu procesul de înregistrare pe care nfsd şi mountd trebuie să-laibă cu portmapper-ul la pornire (pornesc aceşti daemoni la boot-are, ca de obicei). Pornireanamed-ului după nfsd şi mountd a eliminat această problemă compet. Cum nu este nici undezavantaj de aşteptat de la asemenea secvenţă de boot sfătuiec pe toţi să facă la fel pentru apreveni acest potenţial necaz.

· În final, există un HOWTO despre aceasta: Ask Mr. DNS lahttp://www.acmebw.com/askmrdns/-linux-ns. Este despre bind 4 totuşi, deci va trebui să adaptaţice spune pentru bind 8.

7. Unde stochează servrul de nume cache-ul? Există vreoposibilitate de control a mărimii acestui cache?

Cache-ul este păstrat compet în memorie, nu este scris pe disc deloc. De fiecare dată cândomorâţi named cache-ul este pierdut. Cache-ul nu este controlabil în nici un fel. named îlcontrolează prin câteva reguli simple şi atât. Nu puteţi controla cache-ul şi nici mărimea luipentru nici un motiv. Dacă doriţi aşa ceva vă puteţi "rezolva" prin modificarea named. Dar

Page 36: Tutorial LINUX 08 Romana

aceasta nu este recomandată.

8. Salvează named cache-ul între restartări? Pot să îl fac să îlsalveze?

Nu, named nu salvează cache-ul când moare. Aceasta înseamnă că cache-ul trebuie refăcut defiecare dată când reporniţi named. Nu există nici o modalitate de a face named să salveze cache-ul într-un fişier. Dacă doriţi aşa ceva vă puteţi "rezolva" prin modificarea named. Dar aceasta nueste recomandată.

9. Cum pot obţine un domeniu? Doresc să-mi configurez undomeniu numit (de examplu) linux-rules.net. Cum pot obţineca domeniul pe care îl doresc să fie asignat mie?

Contactaţi-vă ISP-ul. Acesta va fi în măsură să vă ajute. În majoritatea tărilor va fi nevoie săplatiţi bani pentru a obţine un domeniu.

9. Cum să deveniţi un administrator DNS"adevărat"Documentaţie şi unelte Documentaţie Adevărată există. Online şi tipărită. Citirea unei părţi din aceasta implică saltul dela un administrator mic la unul mare. Documentaţia tipărită standard este "DNS and BIND" deC. Liu şi P. Albitz de la O'Reilly & Associates, Sebastopol, CA, ISBN 0-937175-82-X. Am citit-o, este excelentă, şi deşi este bazată pe bind 4, aceasta nu este o problemă reală. Este deasemenea o secţiune despre DNS în "TCP/IP Network Administration", de Craig Hunt de laO'Reilly..., ISBN 0-937175-82-X. Altă necesitate pentru buna administrare DNS (sau bunăpentru orice de felul acesta) este "Zen and the Art of Motorcycle Maintenance" de Robert M.Pirsig. Disponibilă ca ISBN 0688052304 şi altele.

Online puteţi găsi documentaţie la: http://www.dns.net/dnsrd/ (DNS Resources Directory),http://www.isc.org/bind.html; un FAQ, un manual de referinţă (BOG - Bind Operations Guide) şide asemenea documente şi definiţiile protocoalelor şi hack-uri DNS (acestea şi majoritatea, dacănu toate RFC-urile menţionate mai jos sunt conţinute în distribuiţia bind-ului). Nu am citit multedin ele, deci nu sunt un administrator DNS adevarat. Arnt Gulbrandsen pe de altă parte a cititBOG şi a fost extaziat de el. Newsgroup-ul comp.protocols.tcp-ip.domains este despre DNS. În

Page 37: Tutorial LINUX 08 Romana

plus există un număr de RFC-uri despre DNS, cele mai importante fiind probabil acestea:

RFC 2052A. Gulbrandsen, P. Vixie, Un DNS RR pentru specificarea locaţiei serviciilor (DNS SRV),Octombrie 1996

RFC 1918Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de Groot, E. Lear, Alocarea adreselor pentru reţeleprivate, 02/29/1996.

RFC 1912D. Barr, Erori comune şi operaţionale de configurare a DNS-ului, 02/28/1996.

Erori în RFC 1912B. Barr Erori în RFC 1912, disponibil la http://www.cis.ohio-state.edu/~barr/rfc1912-errors.html. RFC 1713A. Romao, Unelte pentru depanarea DNS, 11/03/1994. RFC 1712C. Farrell, M. Schulze, S. Pleitner, D. Baldoni, Codarea DNS a locaţiilor geografice, 11/01/1994. RFC 1183R. Ullmann, P. Mockapetris, L. Mamakos, C. Everhart, Noi definiţii DNS RR, 10/08/1990. RFC 1035P. Mockapetris, Numele de domenii - implementare şi specificare, 11/01/1987. RFC 1034P. Mockapetris, Numele de domenii - concepte şi facilităţi, 11/01/1987. RFC 1033M. Lottor, Ghidul operaţiilor administratorilor de domenii, 11/01/1987. RFC 1032M. Stahl, Ghidul administratorilor de domenii, 11/01/1987. RFC 974C. Partridge, Rutarea mail-urilor şi sistemul de domenii, 01/01/1986.