Configurare TCP- IP in linux

        In ciuda a ceea ce ati fi putut auzi, configurarea TCP/IP este un proces simplu, proces ce necesita doar putina munca de pregatire si cateva comenzi pentru a seta numele si adresele IP ale retelei.
Acest capitol va prezenta acest proces, setarea fisierelor de configurare, fisierele de rutare TCP/IP si interfata PLIP. Se va arata de asemenea 
cum puteti face ca sistemul dumneavoastra sa se comporte ca o poarta de aplicatii (gateway)
intre retele, sau cum sa folositi o alta masina ca si poarta. Majoritatea pasilor prin care trebuie sa treceti in acest capitol sunt necesari doar la 
instalarea sistemului sau cand faceti o schimbare a configuratiei retelei.
        Ultima sectiune a acestui capitol se va ocupa de serviciul de nume, 
serviciu pe care e posibil sa trebuiasca sa il instalati si configurati daca masina dumneavoastra e conectata la o multime de alte retele si masini. Serviciul de nume si resolverul de nume aferent sunt optionale si nu sunt necesare pentru configurarea dumneavoastra decat daca credeti ca vor spori utilitatea retelei. Veti gasi o scurta referire la serviciul de nume in preambulul sectiunii referitoare la pasii de configurare.
 
                       Pregatirea pentru configurarea TCP/IP
 
        Trebuie sa urmati cativa pasi preliminari inainte de a putea configura fisierele TCP/IP ale sistemului dumneavoastra. Acestia pasi sunt foarte simpli si nu trebuiesc urmati decat o singura data. Unii dintre acesti pasi e posibil sa fi fost realizati automat la instalarea sistemului, iar altii au fost discutati in capitolele anterioare.
        Referitor la suportul de retea, unele versiuni Linux folosesc sistemul de fisiere /proc (orice kernel Linux care utilizeaza Net-2 sau versiuni ulterioare au de obicei aceasta facilitate). Majoritatea kernelelor Linux care ofera suport de retea creeaza sistemul de fisiere /proc automat la instalarea sistemului, deci nu ar trebui sa aveti nimic altceva de facut decat sa va asigurati ca e montat corespunzator de kernel. Sistemul de fisiere /proc e in esenta un punct de interfata rapida pentru ca kernelul sa obtina cu usurinta informatii despre retea, precum si sa mentina tabelele importante (care sunt de obicei pastrate in subdirectorul /proc/net care este creat de rutina de instalare a retelei).  
        Ar trebui sa va asigurati ca sistemul de fisiere /proc e montat automat pe sistemul dumneavoastra examinand codul de pornire pentru kernel. Pentru a forta montarea automata a sistemului de fisiere /proc, modificati fisierul /etc/fstab si adaugati comanda de montare aici. (Fisierul /etc/fstab e discutat mai detaliat in Capitolul 18 - "Sisteme de fisiere si discuri"). Cautati in fisierul /etc/fstab o linie de forma:
 
none /proc proc defaults
 
        Daca nu exista o astfel de linie, trebuie sa o adaugati in fisierul /etc/fstab utilizand un editor ASCII. Daca sistemul de fisiere /proc nu e creat de kernelul Linux, va trebui sa recompilati kernelul si sa selectati optiunea /proc. In directorul care contine codul sursa al kernelului (precum /usr/src/Linux) rulati rutina de configurare cu urmatoarea comanda:
 
make config
 
        La intrebarea daca doriti suport procfs (sistemul de fisiere /proc) raspundeti "y". Daca nu sunteti intrebat despre suportul pentru sistemul de fisiere /proc, iar directorul /proc nu e creat in sistemul dumneavoastra de fisiere, atunci trebuie sa faceti upgrade la kernel pentru a permite suport pentru retea.
        Un alt pas pe care trebuie sa il realizati inainte de a configura TCP/IP este sa setati numele calculatorului. Am discutat despre acest lucru in Capitolul 17 - "Numele si Permisiunile de acces ale sistemului". Pentru a seta numele calculatorului, utilizati comanda 
 
hostname nume
 
        unde nume e numele pe care il doriti pentru masina locala. Daca aveti un intreg nume de domeniu atribuit retelei si masinii dumneavoastra, puteti utiliza acel nume pentru sistemul dumneavoastra. Spre exemplu, daca masina dumneavoastra Linux este atasata domeniului star.com si numele masinii dumneavoastra este dark, puteti seta numele complet al domeniului utilizand comanda:  
 
hostname dark.star.com
 
        Daca nu aveti un nume de domeniu "fully qualified" (unul aprobat de Internet Network Information Center), va puteti inventa propriul nume de domeniu atat timp cat nu sunteti conectat in vreun fel la Internet. Un astfel de nume de domeniu nu va avea nici o semnificatie in afara retelei locale. In mod alternativ, nu trebuie sa asignati nici un domeniu masinii dumneavoastra, pur si simplu introduceti numele scurt:
 
hostname dark
 
        Cand setati numele masinii locale utilizand comanda hostname, de obicei se creeaza o intrare in fisierul /etc/hosts. Ar trebui sa verificati ca numele masinii dumneavoastra apare in acest fisier.
        Ar trebui de asemenea sa cunoasteti adresa IP a masinii dumneavoastra. Despre adrese IP s-a discutat anterior in aceasta sectiune, in Cap. 28 - "TCP/IP si retele". Ar trebui sa aveti pregatita o unica adresa IP pentru masina dumneavoastra. 
        Un fisier care va poate fi util daca planuiti sa comunicati cu mai multe retele este fisierul /etc/networks. Acest fisier contine o lista cu numele retelelor si adresele lor IP. Aplicatiile de pe masina dumneavoastra pot utiliza acest fisier pentru a gasi retelele tinta bazandu-se pe numele acestora. Fisierul e constituit din 2 coloane, una pentru numele simbolic al retelei de la distanta si cealalta pentru adresa IP a acesteia. (minus alti identificatori ai gazdei). 
        Majoritatea fisierelor /etc/networks/ au macar o intrare pentru driverul "loopback". O parte dintr-un fisier /etc/networks ar putea arata astfel:
 
loopback 127.0.0.0
 
merlin-net 147.154.12.0
 
BNR 47.0.0.0
 
        Acest fisier contine 2 retele impreuna cu adresele lor IP. Intrarile sunt folosite in principal cand se porneste serviciul de retea, dar pot fi folosite si in alte scopuri inclusiv pentru stabilirea rutarii.
 
 
               Setari de baza
 
        Primul pas in configurarea TCP/IP-ului pe masina dumneavoastra Linux este sa faceti interfata de retea accesibila. Acest lucru se realizeaza cu ajutorul comenzii ifconfig.  La rulare, ifconfig face ca kernelul sa lucreze cu interfata de retea trimitandu-i acesteia o adresa IP si apoi ifconfig face interfata activa. Cand interfata este activa, kernelul poate trimite si primi date prin intermediul ei.  
        Trebuie sa instalati cateva interfete pentru masina dumneavoastra, inclusiv driverul de loopback si interfata Ethernet (sau orice alta interfata de retea pe care o utilizati). Comanda ifconfig e utilizata pentru fiecare interfata. Formatul general al comenzii ifconfig este
 
ifconfig interface_type IP_Address
 
        unde interface_type  este numele driverului de dispozitiv al interfetei, precum lo pentru loopback, ppp pentru PPP, sau eth pentru Ethernet. (vezi Cap. 29, "Configurarea dispozitivelor hardware si a kernellui", pentru numele interfetelor). IP_Address este adresa IP utilizata de acea interfata.
        Odata executata comanda ifconfig si interfata este activa, trebuie sa utilizati comanda route pentru a adauga sau elimina rutari in tabela de rutare a kernelului. Acest lucru este necesar pentru a permite masinii locale sa gaseasca alte masini. Sintaxa comenzii route este:
 
route add|del IP_Address
 
        unde e specificat fie add, fie del pentru a adauga respectiv elimina rutarea din tabela de rutare a kernelului, iar IP_Address specifica ruta afectata.
        Puteti afisa continutul curent al tabelei de rutare a kernelului oricand tastand doar comanda route la linia de comanda. De exemplu, daca sistemul dumneavoastra este instalat doar cu driverul de loopback, outputul obtinut va avea forma:
 
$ route
 
Kernel Routing Table
 
Destination Gateway Genmask Flags MSS Window Use Iface
 
loopback * 255.0.0.0 U 1936 0 16 lo
 
        Importante sunt coloanele destination name care arata numele "tintei" configurate (in acest caz loopback), masca care se va utiliza (Genmask) si interfata (Iface, in acest caz /dev/lo). Puteti forta comanda route sa afiseze adresele IP in locul numelor simbolice utilizand optiunea -n:
 
$ route -n
 
Kernel Routing Table
 
Destination Gateway Genmask Flags MSS Window Use Iface
 
127.0.0.1 * 255.0.0.0 U 1936 0 16 lo
 
        O configurarea tipica a retelei in Linux va include cateva interfete (mai mult de o interfata). Interfata loopback ar trebui sa existe pe orice masina. Interfata de retea, fie Ethernet sau alt dispozitiv, este de asemenea prezenta (in afara de cazul in care doriti doar un driver de loopback). Acest capitol pleaca de la prezumtia ca doriti sa va instalati sistemul pentru o interfata loopback si una Ethernet, ambele trebuind sa fie realizate separat.
        
                       Instalarea interfetei loopback        
 
        Interfata loopback ar trebui sa exite pe orice  masina conectata la retea (la fel ca si pe masinile neconectate la o retea). Interfata loopback are intotdeauna adresa IP 127.0.0.1, asadar fisierul /etc/hosts ar trebui sa aiba o intrare pentru aceasta interfata. Este posibil ca driverul de loopback sa fi fost creat de kernel la instalare, asa incat verificati fisierul /etc/hosts pentru o linie similara cu:
 
127.0.0.1 localhost
 
        Daca aceasta linie exista, atunci driverul de loopback este la locul lui. Asigurati-va ca linia nu are  un # la inceput. Daca linia nu exista in fisierul /etc/hosts, adaugati-o utilizand un editor ASCII. 
        Daca interfata loopback nu era in fisierul /etc/hosts, va trebui sa creati interfata utilizand comanda ifconfig. Utilizati linia de comanda de mai jos pentru a completa driverul de loopback:
 
ifconfig lo 127.0.0.1
 
        Daca nu sunteti sigur de configurare, puteti utiliza comanda ifconfig pentru a afisa informatiile despre driverul de loopback. Utilizati urmatoarea comanda:
 
ifconfig lo
 
        Ar trebui sa vedeti cateva linii similare cu cele de mai jos: 
 
merlin:~# ifconfig lo
 
lo Link encap:Local Loopback
 
 inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
 
 UP BROADCAST LOOPBACK RUNNING MTU:2000 Metric:1
 
 RX packets:0 errors:0 dropped:0 overruns:0
 
 TX packets:12 errors:0 dropped:0 overruns:0
 
        Daca obtineti un mesaj de eroare precum interfata necunoscuta, atunci driverul de loopback nu exista si trebuie adaugat.
        Odata rutina ifconfig verificata, adaugati driverul de loopback la tabela de rutare a kernelului cu una din cele 2 comenzi prezentate mai jos:
 
route add 127.0.0.1
 
route add localhost
 
        Nu are importanta ce comanda folositi deoarece ambele se refera la acelasi lucru. In esenta, comanda ii transmite kernelului ca poate utiliza rutarea pentru adresa 127.0.0.1 sau numele localhost.
        Ca o verificare rapida ca totul e ok in legatura  cu driverul de loopback, puteti utiliza comanda ping pentru a verifica rutarea. (vezi Cap. 32 "Utilizati de retea" pentru mai multe informatii despre ping). De exemplu, daca folositi oricare din comenzile de mai jos:
 
ping localhost
 
ping 127.0.0.1
 
        veti obtine ceva similar cu:
 
PING localhost: 56 data bytes
 
64 bytes from 127.0.0.1: icmp_seq=0. ttl=255 time=1 ms
 
64 bytes from 127.0.0.1: icmp_seq=1. ttl=255 time=1 ms
 
64 bytes from 127.0.0.1: icmp_seq=2. ttl=255 time=1 ms
 
64 bytes from 127.0.0.1: icmp_seq=3. ttl=255 time=1 ms
 
64 bytes from 127.0.0.1: icmp_seq=4. ttl=255 time=1 ms
 
64 bytes from 127.0.0.1: icmp_seq=5. ttl=255 time=1 ms
 
64 bytes from 127.0.0.1: icmp_seq=6. ttl=255 time=1 ms
 
64 bytes from 127.0.0.1: icmp_seq=7. ttl=255 time=1 ms
 
^C
 
--- localhost PING Statistics ---
 
7 packets transmitted, 7 packets received, 0% packet loss
 
round-trip (ms) min/avg/max = 1/1/1
 
        Progresul comenzii ping a fost intrerupt apasand Ctrl+C dupa sapte "transmisiuni".  Puteti lasa atatea "transmisiuni" cate doriti. Daca obtineti "no replies" in urma comenzii ping, atunci adresa 127.0.0.1 sau numele localhost nu a fost recunoscut si ar trebui sa verificati fisierele de configurare si linia corespunzatoare din tabela de rutare inca o data.
        Daca fisierele de configurare arata corect si comanda route da rezultatul corespunzator, dar comanda ping tot nu produce rezultatul corect, atunci aveti o problema serioasa. In unele cazuri, kernelul retelei nu e configurat corespunzator si intregul proces trebuie reluat. Uneori o nepotrivire a versiunilor driverelor de kernel si utilitatarelor de retea pot cauza output eronat in cadrul rutinei ping.
 
                       Instalarea interfetei Ethernet 
 
        Acum ca driverul de loopback e instalat si operational, puteti realiza acelasi proces de configurare cu driverul Ethernet (sau orice alt driver utilizati).  Procesul este exact acelasi: utilizati ifconfig pentru a informa kernelul despre interfata, si apoi adaugati rutele la masinile de pe retea. Daca reteaua este atasata, puteti testa conexiunile cu ajutorul comenzii ping.
        Pentru inceput, instalati interfata Ethernet utilizand ifconfig. Pentru a face interfata activa, utilizati comanda ifconfig impreuna cu numele dispozitivului Ethernet si adresa IP locala. De exemplu, folositi comanda:
 
ifconfig eth0 147.123.20.1
 
        pentru a seta masina cu adresa IP 147.123.20.1. Interfata este in dispozitivul Ethernet /dev/eth0. Nu trebuie sa specificati masca de retea cu ajutorul comenzii ifconfig, deoarece se va deduce valoare corespunzatoare din adresa IP introdusa. Daca vreti sa specificati explicit valoarea mastii de retea, adaugati-o l alinia de comanda cu cuvantul cheie netmask:
 
ifconfig eth0 147.123.20.1 netmask 255.255.255.0
 
        Aceasta comanda seteaza explicit masca de retea la 255.255.255.0. Pentru verifica apoi interfata utilizand comanda ifconfig si numele interfetei:
 
$ ifconfig eth0
 
eth0 Link encap 10Mps: Ethernet Hwaddr
 
 inet addr 147.123.20.1 Bcast 147.123.1.255 Mask 255.255.255.0
 
 UP BROADCAST RUNNING MTU 1500 Metric 1
 
 RX packets:0 errors:0 dropped:0 overruns:0
 
 TX packets:0 errors:0 dropped:0 overruns:0
 
        Ati remarcat probabil in output-ul comenzii ca adresa broadcast a fost setata in functie de adresa IP a masinii locale. Aceasta adresa e folosita de TCP/IP pentru a accesa simultan toate masinile din reteaua locala. Dimensiunea Unitatii de Transfer de Mesaje (Message Transfer Unit - MTU) e de obicei setata la valoarea maxima - 1500 pentru retele Ethernet.
        In continuare, trebuie sa adaugati o intrare in tabela de rutare care sa aduca la cunostinta kernelului adresa de retea a masinii locale. Acest lucru ii va permite sa trimita date la alte masini din aceeasi retea. Adresa IP utilizata impreuna cu comanda route nu este adresa IP a masinii locale, ci cea a retelei ca un tot fara identificatorul local. Pentru a instala intreaga retea locala (LAN), se utilizeaza optiunea -net a comenzii route. In cazul adresei IP aratate anterior, comanda ar fi:
 
route add -net 147.123.20.0
 
        Aceasta comanda adauga la lista de masini accesibile a kernelului toate masinile din retea identificate prin adresa de retea 147.123.20. Daca nu ati facut acest lucru astfel, va trebui sa introduceti manual adresa IP a fiecarei masini din retea. O metoda alternativa este sa folositi fisierul /etc/networks care poate contine o lista a numelor de retea si a adreselor lor IP. Daca aveti o intrare in fisierul /etc/networks pentru o retea numita foobar_net, puteti adauga intreaga retea la tabela de rutare cu ajutorul comenzii:
 
route add foobar_net
 
        Odata ruta adaugata la tabela de rutare a kernelului, puteti testa interfata Ethernet. Acest pas presupune, binenteles, ca sunteti conectat la alte masini si ca stiti adresa IP a uneia dintre ele. Daca reteaua dumneavoastra nu e instalata inca, sau nu sunteti conectati la o alta masina care utilizeaza TCP/IP, nu puteti testa acest pas acum. Pentru a utiliza ping, trebuie sa cunoasteti fie adresa IP a unei masini din reteaua locala, fie numele sau. Sa presupunem ca stiti adresa IP si doriti sa realizati ping la masina 142.12.130.12. Comanda si outputul arata astfel:
 
tpci_sco1-45> ping 142.12.130.12
 
PING 142.12.130.12: 64 data bytes
 
64 bytes from 142.12.130.12: icmp_seq=0. time=20. ms
 
64 bytes from 142.12.130.12: icmp_seq=1. time=10. ms
 
64 bytes from 142.12.130.12: icmp_seq=2. time=10. ms
 
64 bytes from 142.12.130.12: icmp_seq=3. time=20. ms
 
64 bytes from 142.12.130.12: icmp_seq=4. time=10. ms
 
64 bytes from 142.12.130.12: icmp_seq=5. time=10. ms
 
64 bytes from 142.12.130.12: icmp_seq=6. time=10. ms
 
^C
 
--- 142.12.130.12 PING Statistics ---
 
7 packets transmitted, 7 packets received, 0% packet loss
 
round-trip (ms) min/avg/max = 10/12/20
 
        Din nou, rutina ping a fost intrerupta dupa 7 incercari. Puteti vedea mesajele "de diagnostic" ale comenzii ping care trimite o cerere masinii la distanta si asteapta un raspuns.
        Daca nu primiti nici un raspuns de la masina de la distanta, verificati daca aceasta este conectata si daca utilizati adresa IP corecta. Daca toate acestea sunt ok, atunci verificati configurarea si comenzile route. Daca si aici totul este corect, atunci incercati ping la alta masina. Daca si aceasta esueaza, puteti recurge la utilitarul netstat, discutat mai amanuntit in Cap. 32, "Utilitare de retea".
        
                       Configurarea PLIP
 
        Interfata PLIP (parallel port ip) este folosita pentru a conecta doar doua masini prin intermediul porturilor lor paralele (Cap. 29 prezinta pe scurt PLIP). Configurarea PLIP este diferita de configurarea TCP/IP, mai ales ca interfata nu e o interfata standard TCP/IP si sunt implicate doar doua masini. 
        Sa presupunem ca avem o "simpla" interfata PLIP intre masina dumneavoastra Linux locala numita darkstar si o alta masina numita x-wing. Cele doua sunt conectate printr-un cablu "null-parallel" (vezi capitolul anterior pentru specificarile legate de cabluri). Ambele masini au un singur port paralel utilizat pentru PLIP. Atunci cand PLIP este configurata asa cum am aratat in Cap. 29, "Configurarea dispozitivelor hardware si a kernelului pentru retea", dispozitivele sunt instalate ca /dev/plip1 pe ambele masini. 
        Pentru a configura interfata PLIP intre cele doua masini, veti utiliza comanda ifconfig din nou, desi acum aceasta utilizeaza un cuvant cheie special numit "pointopoint" (o forma condensata si derutanta a point-to-point, care descrie tipul retelei). Comanda ifconfig necesara pentru conectare este: 
 
ifconfig plip1 x-wing pointopoint darkstar
 
        Remarcati ca dispozitivul este /dev/plip1, masina de la distanta este x-wing, si masina dumneavoastra locala este darkstar. Ordinea argumentelor trebuie sa fie exacta pentru  a asigura functionarea corecta a comenzii. 
        Odata introdusa comanda ifconfig, puteti realiza o actualizare a tabelei de rutare a kernelului utilizand comanda route. Comanda va fi:
 
route add x-wing gw darkstar
 
        Cuvantul cheie gw indica faptul ca darkstar este o poarta de aplicatii (gateway) catre masina x-wing. Urmatoarea sectiune prezinta mai detaliat portile. 
        Acelasi tip de intrari trebuie facute si pe cealalta masina pentru a permite comunicarea in ambele sensuri. In acest caz, masina de la distanta va avea intrari de tipul:
 
ifconfig plip1 darkstar pointopoint x-wing
 
route add darkstar gw x-wing
 
        Odata ambele configurari incheiate, ar trebui sa puteti utiliza interfata PLIP pentru a trimite date intre cele doua masini. 
 
                       Portile de aplicatii (Gateways)
 
 
        Retelele locale (LAN) sunt conectate printr-o poarta de aplicatii. Poarta este o masina care se comporta ca si o legatura intre cele doua retele, rutand date intre ele bazandu-se pe adresa IP a masinii destinatie. Cea mai simpla functie a unei porti de aplicatii este aceea de a va conecta la restul lumii prin Internet. O masina conectata la Internet se poate conecta apoi la orice alta retea de pe Internet.
        Va trebui sa faceti cateva schimbari la fisierele de configurarea a retelei ori de cate ori masina dumneavoastra locala va utiliza o poarta de aplicatii sau daca masina dumneavoastra se comporta ca o poarta de aplicatii. Pentru a utiliza serviciile unei alte masini ca si poarta, trebuie sa informati tabela de rutare despre poarta si retelele la care se conecteaza prin intermediul acesteia utilizand comanda route:
 
route add default gw net_gate
 
        unde net_gate este numele masinii din reteaua locala care se comporta ca o poarta ("gateway out"). Masina poarta urmeaza cuvantului cheie gw in comanda route. Utilizarea cuvantului default in cadrul comenzii indica faptul ca tabela de rutare a kernelului ar trebui sa considere toate retelele la care se poate ajunge prin intermediul acelei porti.   (Din punct de vedere fizic, setarea implicita a retelei traduce in adresa IP 0.0.0.0)
        Dca doriti sa configurati o poarta spre alta retea, numele acelei retele ar trebui sa apara in fisierul /etc/networks (vezi la inceputul acestui capitol mai multe detalii referitoare la fisierul /etc/networks). De exemplu, daca aveti o masina poarta numita gate_serv care face legatura intre reteaua dumneavoastra locala la o retea vecina numita big_corp(si exista o intrare in fisierul /etc/networks pentru big_corp cu adresa sa IP), puteti configura tabela de rutare pe masina locala pentru a utiliza gate_serv pentru a accesa masinile din big_corp cu urmatoarea comanda:
 
route add big_corp gw gate_serv
 
        In tabela de rutare a retelei de la distanta trebuie adaugata o intrare care sa reflecte adresa retelei dumneavoastre; in caz contrar nu veti fi capabil decat sa trimiteti date, nu sa si primiti. 
        Daca vreti ca masina dumneavoastra locala sa se comporte ea insasi ca o poarta , va trebui sa configurati interfetele corespunzatoare celor doua retele pe care le uneste masina dumneavoastra. Sa presupunem ca masina dumneavoastra se va comporta ca o poarta simpla intre doua retele numite small_net si big_net, si ca aveti doua placi de retea Ethernet instalate in masina dumneavoastra. Configurati fiecare interfata Ethernet separat cu adresele lor IP corespunzatoare, asa cum ati vazut in Cap. 29, "Configurarea dispozitivelor hardware si a kernellui". (De exemplu, masina dumneavoastra poate avea o adresa IP in big_net 163.12.34.36 si adresa IP 147.123.12.1 in small_net).
        Adaugati cele doua adrese IP in fisierul /etc/hosts pentru a simplifica rezolutia adreselor. Pentru retelele si adresele IP mentionate anterior, veti avea urmatoarele doua intrari in fisierul /etc/hosts:
 
163.12.34.36 merlin.big_net.com merlin-iface1
 
147.123.12.1 merlin.small_net.com merlin-iface
 
        In acest caz, numele de domenii "fully qualified" au fost adaugate in fisierul /etc/hosts (acest exemplu presupune ca masina are numele merlin in ambele retele, ceea ce e perfect legal). Puteti adauga de asemenea forme mai scurte ale numelor (precum merlin, merlin.big_net, si asa mai departe). Ultimele nume ale interfetei au fost incluse pentru comoditate (asadar merlin-iface1 e prima interfata pe merlin, iar merlin-iface2 este al doilea).  
        Veti utiliza apoi comenzile ifconfig pentru a stabili legaturile intre interfata si numele utilizate in fisierul /etc/hosts: 
 
ifconfig eth0 merlin-iface1
 
ifconfig eth1 merlin-iface2
 
        Aceste comenzi presupun ca dispozitivul Ethernet /dev/eth0 este pentru interfata catre big_net, iar /dev/eth1 este catre small_net. desigur, puteati utiliza adresele IP ale retelelor in locul numelor interfetelor, asa cum ati vazut mai devreme in acest capitol.
        In sfarsit, tabela de rutare a kernelului trebuie actualizata pentru a reflecta numele retelelor, Comenzile pentru acest exemplu sunt:
 
route add big_net
 
route add small_net
 
        Cand acesti pasi sunt incheiati, trebuie sa va asigurati ca "IP Forwarding" a fost activat in kernel. Puteti activa "IP Forwarding" recompiland kernelul. Odata ce kernelul permite "IP Forwarding", puteti utiliza masina dumneavoastra ca si poarta intre doua retele. Alte masini din oricare din retele pot utiliza de asemenea masina dumneavoastra ca si poarta intre cele doua retele.
        Desi exemplele prezentate sunt pentru conexiunile Ethernet intre doua retele, puteti avea orice tip de interfata. Puteti, de exemplu, sa utilizati o placa Ethernet pentru reteaua dumneavoastra locala, si apoi sa folositi o conexiune SLIP sau PPP catre o alta retea (inclusiv Internet).
 
                       Serviciul de nume si resolverul de nume
 
        TCP/IP utilizeaza fisierul /etc/hosts pentru a transforma numele simbolice in adrese IP. De exemplu, cand specificati numele darkstar pentru o masina tinta, TCP/IP va examina fisierul /etc/hosts cautand o masina cu acel nume, si apoi va citi adresa sa IP. Daca numele nu este gasit in fisier, nu ii puteti trimite date. Sa presupunem totusi ca va conectati la foarte multe masini diferite. Reteaua dumneavoastra locala poate avea zeci de masini, si reteaua prietenului dumneavoastra chiar mai multe. Adaugarea tuturor acelor intrari in fisierul /etc/hosts poate fi obositoare si dificila, iar mentinerea fisierului actualizat atunci cand apar schmibari in retele poate fi si mai neplacuta. Pentru a rezolva aceasta problema, au fost dezvoltate o serie de servicii.
        BIND(Berkeley Internet Name Domain service) a fost dezvoltat pentru a rezolva adresele IP ale masinilor aflate la distanta. BIND a fost dezvoltat ulterior in DNS (Domain Name Service). Majoritatea sistemelor Linux implementeaza versiunea BIND, desi au aparut cateva versiuni de soft DNS-specific. Atat BIND cat si DNS sunt teme complexe care presupun foarte multe amanunte lipsite de interes pentru majoritatea utilizatorilor Linux. In aceasta sectiune ne vom limita doar la prezentarea informatiilor de baza necesare pentru ca masina dumneavoastra sa utilizeze BIND sau DNS.
        Configurarea BIND sau DNS poate fi un proces neplacut si ar trebui realizata numai daca fisierul dumneavoastra /etc/hosts nu va satisface cererile. De exemplu, daca nu va conectati decat la aproximativ zece masini, mentinerea fisierului /etc/hosts este mult mai facila decat configurarea BIND. Pentru sistemele mai mari, sau daca vreti sa rulati toate serviciile pentru Internet disponibile pe masina dumneavoastra Linux, trebuie sa configurati BIND corespunzator. Din fericire, BIND trebuie configurat in mod uzual o singura data, si apoi poate fi ignorat (daca doriti sa configurati BIND, asigurati-va mai intai ca v-ati facut backup-uri!). 
        Veti avea nevoie de softul BIND, care este, pentru ultimele versiuni de Linux, inclus in softul de distributie. Pachetul BIND include toate fisierele si executabilele, precum si o copie a BOG (Bind Operator's Guide). Fara soft nu va puteti configura sistemul astfel incat sa utilizeze BIND sau DNS.
 
                       Daemonul named si serverele de nume
 
        BIND si DNS sunt implementate prin intermediul unui daemon numit named. Acesta ruleaza intotdeauna pe o masina numita server de nume, care e masina din reteaua dumneavoastra care se ocupa de rezolvarea numelor in adrese IP. Pot exista mai multe servere de nume in retea, sau masina dumneavoastra poate fi serverul de nume.
        O parte a sistemului serverului de nume este o biblioteca de functii care sunt folosite de aplicatii pentru a realiza cereri pentru serverul de nume, si pentru a obtine raspunsuri de la serverul de nume. Aceste functii sunt numite resolveri sau resolveri de nume. Biblioteca de functii nu trebuie sa fie neaparat pe aceeasi masina ca si serverul de nume.
        Daemonul named este de obicei pornit ca parte a pornirii obisnuite a Linuxului, desi daca ati instalat reteaua dupa ce sistemul dumneavoastra Linux a fost instalat, e posibil sa trebuiasca sa adaugati manual comanda de pornire la fisierele rc. Daemonul rc utilizeaza un fisier numit /etc/named.boot care contine fisierele "master" utilizate de alte servere de nume. Fisierul /etc/named.boot va fi prezentat ulterior in aceasta sectiune.
        Simplificand mult, BIND si DNS pot fi percepute ca lucrand ca o multime de operatori de telefonie. Daca locuiti in New York si vreti numarul unui prieten din Londra, Anglia, sunati operatorul de la mare distanta pentru a obtine codul Angliei. Operatorul se poate conecta la operatorul englez pentru a afla codul Londrei. In sfarsit, si acel operator trebuie sa se conecteze la operatorul Londrei pentru a obtine numarul dorit. BIND si DNS lucreaza in linii mari la fel. Cand un server de nume nu poate rezolva un nume, comunica cu un alt server de nume care apare a fi pe ruta catre tinta si asteapta un raspuns la un "directory querie". Acel server de nume ii poate contacta pe altii prin intermediul retelei, pana cand o masina rezolva numele si intoarce mesajul inapoi la dumneavoastra.
        Fiecare server de nume se ocupa de o zona diferita a retelei(sau un intreg domeniu, daca reteaua este mica). Multimea de masini de care se ocupa serverul de nume este numita zona. Un server de nume poate acoperi mai multe zone. In cadrul fiecarei zone, exista aproape intotdeauna desemnat un server de nume secundar sau backup, cu doua (cel primar si cel secundar) nume de servere ce pastreaza informatiile duplicat. Serverele de nume dintr-o zona comunica utilizand un protocol de transfer in cadrul zonei.
        DNS lucreaza avand o multime de zone imbricate. Fiecare server de nume comunica cu cel de deasupra lui(si cu cel de sub el, daca exista). Fiecare zona are macar un server de nume responsabil cu cunoasterea informatiile de adrese pentru fiecare masina din cadrul acelei zone. Fiecare server de nume cunoaste de asemenea macar o adresa a unui alt server de nume.
        Cand o aplicatie are nevoie sa rezolve un nume simbolic intr-o adresa de retea, aplicatia trimite o cerere resolverului, care apoi o transmite serverului de nume. Serverul de nume verifica propria tabela si returneaza adresa de retea corespunzatoare numelui simbolic. Daca serverul de nume nu are informatia ceruta, poate trimite cererea unui alt server de nume. Atat serverele de nume cat si resoverii utilizeaza tabele de baze de date si cache-uri pentru a mentine informatiile referitoare la masinile din zona locala, precum si informatiile recente cerute din afara zonei. 
        Cand un server de nume primeste o cerere din partea unui resolver, serverul de nume poate realiza mai multe tipuri de operatii. Operatiile de rezolvare de nume se impart in doua categorii numite nerecursive si recursive. O operatie recursiva este o operatie in care serverul de nume trebuie sa acceseze alt server de nume pentru informatii. Operatiile nerecursive realizate de serverul de nume presupun un raspuns complet cererii resolverului, o referinta la un alt server de nume(caruia resolverul insusi va trebui sa ii adreseze o cerere), sau un mesaj de eroare. Atunci cand e necesara o operatie recursiva, serverul de nume este cel care contacteaza un alt server de nume cu cererea resolverului. Serverul de nume de la distanta va raspunde cererii fie cu o adresa de retea, fie cu un mesaj indicand esecul. Regulile interzic unui server de nume de la distanta sa trimita o referinta spre un alt server de nume.
        Resolverul e menit sa inlocuiasca sistemele de rezolvare de nume precum fisierul /etc/hosts. Inlocuirea acestor mecanisme obisnuite este transparenta utilizatorilor, desi administratorul trebuie sa stie daca sistemul de rezolvare de nume nativ sau BIND/DNS se foloseste pe fiecare masina astfel incat sa poata fi mentinute tabelele corecte.
        Atunci cand resoverul dobandeste informatii de la un server de nume, memoreaza intrarile in propriul sau cache pentru a reduce nevoia pentru mai mult trafic pe retea daca acelasi nume simbolic va fi folosit din nou(asa cum este deseori cazul aplicatiilor care lucreaza peste mai multe retele ).         
        Sub Linux, sunt folosite cateva implementari diferite ale resolverului de nume. Resolverul initial furnizat cu versiunile de Linux bazate pe BSD este oarecum limitat, neoferind nici cache, nici posibilitati iterative de rezolvare a cererilor. Pentru a rezolva aceste limitari, a fost adaugat serverul BIND. BIND furnizeaza atat cache-ul cat si rezolvarea iterative a cererilor in 3 moduri diferite: server primar, server secundar sau server caching-only(care nu are o baza de date proprie ci doar un cache). Utilizarea BIND pe sistemele BSD permite unui alt proces sa preia sarcina de rezolvare de nume, proces care poate fi in intregime pe alta masina.
 
                       Fisierul hosts.conf si variabilele resolverului 
 
        Fisierul /etc/hosts.conf e folosit ca referinta centrala pentru resolver. Fisierul /etc/hosts.conf e utilizat pentru a spune resolverului ce serviciu poate utiliza pentru a rezolva un nume si in ce ordine trebuie sa fie utilizate. O "montra" din fisierul /etc/hosts.conf arata astfel:
 
# /etc/host.conf
 
order bind hosts # named running
 
multi on # allow multiple addresses
 
nospoof on # protect from spoofing
 
trim merlin.com # local domain trim       
 
        Mai multe optiuni sunt posibile intr-un fisier /etc/hosts.conf, dintre care fiecare trebuie sa fie pe o linie separata. Urmatoarele sunt optiuni valide:
 
alert - daca aceasta optiune este activa, orice incercare de "spoof"( vezi nospoof ) adauga un mesaj in facilitatea syslog. Aceasta optiune este activa daca argumentul este "on".
multi - aceasta optiune determina daca unei gazde din /etc/hosts ii este permis sa aiba mai multe adrese IP. Valorile valide pentru aceasta optiune sunt on si off.
nospoof - aceasta optiune verifica adresele IP pentru a se asigura ca cererea este una valida si nu o tentativa de patrundere fortata in retea. Aceasta verificare nu e foarte sigura, dar e eficienta ca prima masura. Daca aceasta optiune e specificata cu argumentul on, nospoof este activa
order - aceasta optiune specifica ordinea in care ar trebui sa se incerce rezolvarea serviciilor. Optiunile valide sunt bind(interogheaza serverul de nume), hosts(utilizeaza fisierul /etc/hosts) si nis (utilizeaza NIS)
trim = aceasta optiune primeste ca argument un nume de domeniu . Elimina acel nume domeniu din numele gazdelor inaintea unei cercetari. O puteti utiliza spre exemplu pentru a permite fiserului /etc/hosts sa aiba intaietate resolverului de nume pentru retele locale.  
 
        Setarile din fisierul /etc/hosts.conf pot fi suprascrise de niste variabile de mediu speciale. Variabilele de mediu valide(care pot fi setate pentru sesiune sau de catre o aplicatie) sunt urmatoarele:
 
     * RESOLV_ADD_TRIM_DOMAINS - specifica o lista de domenii ordonate de adaugat la cele date in /etc/hosts.conf.
     * Urmata de un nume de fisier, RESOLV_HOST_CONF specifica fisierul de utilizat in locul lui /etc/hosts.conf.
     * RESOLV_MULTI suprascrie argumentele multiple in /etc/hosts.conf. Valorile valide sunt on si off.
     * RESOLV_OVERRIDE_TRIM_DOMAIN specifica o lista ordonata de domenii pentru a le suprascrie pe cele din /etc/hosts.conf.
     * RESOLV_SERV_ORDER suprascrie optiunea order din fisierul /etc/hosts.conf.
     * RESOLV_SPOOF_CHECK seteaza verificarea spoof pe on sau off. Este permis de asemenea si argumentul warn, care verifica rezultatele pentru spoof si loguri. Aceasta variabila permite de asemenea si un argument asterisc care va seta spoof pe on dar va lasa logurile asa cum sunt setate in fisierul /etc/hosts.conf. 
        
                       Identificarea serverului de nume: Fisierul resolv.conf 
 
        Fisierul /etc/resolv.conf e utilizat pentru a informa resolverul ce servere de nume sa utilizeze. Macar un server de nume trebuie specificat pentru ca resolverul sa fie capabil sa comunice cu serverul. Daca fisierul /etc/resolv.conf nu exista sau e gol, resolverul va presupune ca masina locala este serverul de nume si va incerca sa trimita cereri de rezolvare acesteia.
        Exemplul de mai jos arata formatul general al unui fisier /etc/resolv.conf obinsuit si intrarile de care cele mai multe sisteme vor avea nevoie. Pentru o masina care utilizeaza un server de nume in alta parte a retelei, acest format este de obicei suficient:
 
# /etc/resolv.conf
 
domain merlin.com # the local domain
 
nameserver 147.23.1.23 # the name server
 
        Cuvantul cheie important este cel de-al doilea din fisier numit nameserver. Asa cum va puteti imagina, acest cuvant cheie furnizeaza adresa IP a serverului de nume pe care masina dumneavoastra ar trebui sa il utilizeze pentru rezolvarea adreselor. 
        Puteti specifica mai multe servere de nume utilizand linii in plus cu aces cuvant cheie(nu puneti adresa IP pe o singura linie). Spre exemplu, intrarile:
 
nameserver 147.23.1.23 # primary name server
 
nameserver 147.23.1.46 # secondary name server
 
nameserver 147.23.2.1 # extra name sever
 
        utilizeaza serverele de nume in ordine in care apar in fisier. Cel mai "de incredere" server de nume ar trebui sa fie listat intotdeauna primul.  Cele mai multe versiuni de Linux permit specificarea a doar trei servere de nume.
        Cuvintele cheie domain si search  sunt utilizate pentru a permite identificarea adreselor prin intermediul unor prescurtari. Cuvantul cheie domain este utilizat pentru a asocia un nume unei adrese complete pentru a nu va mai forta sa o specificati. De exemplu, daca sunteti intr-o retea locala si doriti sa copiati fisiere prin FTP de pe alt sistem, puteti utiliza numele in loc sa specificati numele complete de domenii (precum wizard@foobar.com), atata timp cat fisierul /etc/resolv.conf contine linia:
 
domain foobar.com
 
        Acest lucru face adresarea masinilor din reteaua locala mult mai facila. 
        optiunea search face in linii mari acelasi lucru ca si cuvantul cheie domain doar ca se poate aplica altore retele in locul celei proprii. Ambele cuvinte cheie pot sa apara doar o singura data in fisierul /etc/resolv.conf.
 
                       Fisierul /etc/named.boot  
 
        Fisierul /etc/named.boot este utilizat pentru a specifica fisierele "master" care contin informatii referitoare la zona si serverele de nume. Fisierul /etc/named.boot este deseori instalat de catre rutina de instalare a softului, dar trebuie sa cunoasteti formatul fisierului. O diferenta importanta intre fisierul named.boot si majoritatea celorlalte fisiere este utilizarea ";" pentru comentarii in locul simbolului "#". O parte a fisierului /etc/named.boot arata astfel:
 
; /etc/named.boot
 
; this is a comment line
 
directory /var/named
 
; now the domains and files they use
 
cache named.ca
 
primary merlin named.hosts
 
        Cuvantul cheie directory arata directorul in care se gasesc fisierele zonei. Pentru majoritatea instalarilor Linux acesta ar trebui sa fie /var/named. Linia cache indica faptul ca cache-ul pentru BIND va fi activat si incarca cateva informatii de baza din fisierul named.ca. Cuvantul cheie primary indica faptul ca serverul primar este merlin si fisierul de informatii al zonei este named.hosts.
        Optiunile (si argumentele lor) pentru cele mai utilizate valori permise in fisierul named.boot sunt:
 
   cache - indica numele domeniului si numele de fisier al fisierlui "root server hints" si cache-ul
   directory - listeaza directorul in care se gasesc fisierele zonei
   forwarders - indica adresele IP a unei liste de servere de nume pe care daemonul named le poate interoga
   primary -  indica numele domeniului si numele fisierului serverului de nume primar
   secondary - indica numele domeniului si numele fisierului serverului de nume secundar
   slave - seteaza serverul de nume pe "slave"
   
                       Inregistrarile de resurse
 
        Serverul de nume mentine informatiile necesare pentru a rezolva numele simbolice intr-o multime de inregistrari de resursa, care sunt intrari intr-o baza de date. Inregistrarile de resursa(deseori prescurtate prin RR) contin informatii in format ASCII. Deoarece se utilizeaza ASCII, actualizarea inregistrarilor este facila. Fiecare RR are un format specific:
 
domain_name, type, class, TTL, Routing_Data
 
        campul domain_name este masina la care se refera inregistrarea. Daca nu e specificat nici un nume, numele este RR utilizata anterior. Campul type identifica tipul de inregistrare de resursa. Tipuri diferite de inregistrari de resurse corespund unor scopuri diferite, precum maparea numelor in adrese si definirea zonelor. Un cod "mnemonic" sau un numar identifica tipul inregistrarii de resursa. Aceste coduri si semnificatiile lor sunt listate in Tabelul 30.1.
                       Tabel 30.1. Coduri si numere pentru tipurile de inregistrari de resursa
 
Numar Cod Descriere
   1  A     Adresa de retea
   2  NS    Serverul de nume "autoritar"
   3  MD    Destinatia de mail. Acum inlocuit de  MX.
   4  MF    Forwarder de mail. Acum inlocuit de MX.
   5  CNAME Alias canonic 
   6  SOA   Inceputul zonei de autoritate
   7  MB    Numele domeniului de mailbox 
   8  MG    Membrul mailbox 
   9  MR    Domeniul de redenumire mail
   10 NULL  Inregistrarea de resursa Null
   11 WKS   Serviciul Well-known 
   12 PTR   Pointer la un nume de domeniu
   13 HINFO Informatii despre gazda
   14 MINFO Informatii despre mailbox
   15 MX    Mail exchanger
   16 TXT   Siruri de caractere
   17 RP    Persoana responsabila
   18 AFSDB Servicii de tip AFS
   19 X.25  Adresa X.25
   20 ISDN  Adresa ISDN 
   21 RT    Rutare prin
 
        Unele tipuri de inregistrari sunt astazi invechite (numerele 3 si 4), in timp ce altele sunt considerate experimentale (numerele 13 si 17 prin 21). in majoritatea inregistrarilor de resursa, veti gasi numai tipurile A, NS, SOA si PTR.
        campul Class din formatul inregistrarilor de resursa contine o valoare pentru clasa inregistrarii. daca nu e specificata nici o valoare, este considerata clasa anterioarei RR. Serverele de nume de pe Internet au in mod uzual codul in acest camp.
        campul Time-To-Live (TTL) specifica in secunde cat timp inregistrarea de resursa e valida in cache. Daca se utilizeaza valoare 0, atunci inregistrarea nu se va adauga in cache. In cazul in care campul TTl e omis, e utilizata o valoare implicita. In mod uzual acest camp spune serverului de nume cat timp este valida intrarea inainte de a cere o actualizare.
        Sectiunea de date a inregistrarilor de resursa contine doua parti:  lungimea inregistrarii curente si datele propriu-zise. Campul data length specifica lungimea sectiunii de date. Datele reprezinta un camp de lungime variabila (de aici necesitatea unei valori length) care descrie intrarea. Utilizarea acestui camp difera in functie de tipurile de inregistrare.
        Unele tipuri de inregistrari au o singura informatie in zona de date, precumo adresa sau cel mult 3 informatii. Singura exceptie o constituie inregistarea SOA (Start of Authority). Continutul zonei de date pentru inregistrarile de resursa(exceptand SOA) sunt:
 
   RR Tip Descriere a numelui campului
   A  Adresa O adresa de retea
   NS NSDNAME Numele domeniului gazdei
   MG MGNAME Numele domeniului pentru mailbox
   CNAME CNAME Alias pentru masina
   HINFO CPU String ce identifica tipul CPU
   OS String ce identifica sistemul de operare 
   MINFO RMAILBX Mailbox responsabil cu listele de mail
   EMAILBOX Mailbox pentru mesajele de eroare
   MB MADNAME Invechit acum
   MR NEWNAME Redenumeste adresa unui anumit mailbox
   MX PREFERENCE precedenta pentru "livrari"
   EXCHANGE numele domeniului gazdei care se va comporta ca mail exchanger 
   NULL  Orice poate fi inclus in zona de date
   PTR PTRDNAME Numele domeniului care se comporta ca un pointer spre o locatie
   TXT TXTDATA  Orice tip de text descriptiv
   WKS Address Protocol Bitmap "A network address Protocol used Ports and protocols" 
        
        Formatul inregistrarii SOA este utilizat pentru identificarea masinilor din cadrul zonei. Exista doar o singura inregistrare SOA in fiecare zona. Campurile din inregistrarea SOA sunt utilizate in general pentru administrarea si mentinerea serverului de nume. Ordinea campurilor in RR SOA este:
 
MNAME, RNAME, Serial, Refresh, Retry, Expiry, Minimim
 
        Campul MNAME este numele domeniului sursei de date pentru zona. 
        campul RNAME este numele domeniului mailboxului administratorului zonei (numele persoanei responsabile). 
        campul Serial cuprinde un numar al versiunii pentru zona. E incrementat atunci cand zona e schimbata, in caz contrar mentinut la aceeasi valoare pentru toate mesajele de acest fel.
        Campul Refresh reprezinta numarul de secunde care se asteapta intre cereri de actualizare esuate. 
        Campul Expiry este numarul de secunde dupa care informatiile zonei nu mai sunt valide. In sfarsit, Minimim este numarul de secunde utilizate in campul TTL al inregistrarilor de resursa din cadrul zonei. network addr
        Unele exemple de inregistrari de resurse vor arata formatele utilizate. Inregistrarile de resurse adresa sunt formate din numele masinii, un indicator pentru tipul inregistrarii ("A" pentru adresa RRs, de exexmplu) si adresa de retea. Un exemplu de inregistrare de resursa adresa arata astfel:
 
merlin _4 IN A 143.23.25.7
 
        Tagul IN eticheteaza inregistrarea de resursa ca si clasa Internet. Acest format o face sa localizeze mai usor un nume si adresa sa.(reciproc, trecerea de la adresa la nume nu e usoara si presupune un format special numit IN-ADDR-ARPA).
        Pentru inregistrarile de resursa pentru serviciul Well-known (WKS sau tipul 11) campul de date contine trei campuri utilizate pentru a descrie serviciile permise la adresa la care se refera inregistrarea. Un exemplu de inregistrare de resursa WKS ar putea arata astfel:
 
wizard.merlin.com. IN WKS 143.23.1.34.
 
 FTP TCP SMTP TELNET
 
        Daca vreti sa specificati numele complet al domeniului in inregistrarea de resursa, trebuie sa furnizati o perioada de "trailing". In caz contrar, numele domeniului va fi adaugat din nou, rezultand in exemplul precedent wizard.merlin.com.merlin.com. In mod alternativ, puteti lasa ca numele domeniului sa fie adaugat si sa lasati pur si simplu in inregistarea de resursa wizardul numelui masinii. Numele complet al domeniului si adresa de Internet au fost aratate in exemplul anterior, asa cum IN e utilizata pentru a arata clasa Internet a inregistrailor de resurse. Tipul inregistrarii este indicat cu WKS. Protocoalele permise de masina de la acea adresa sunt listate dupa adresa. In realitate, aceste protocoale sunt o harta de biti care corespunde porturilor. Cand bitul portului e setat la valoarea 1, serviciul este permis. Lista porturilor si serviciilor este definita de un RFC. 
        
                       Fisierele de inregistrari de resursa
 
        Fisierul principal in care se afla inregistrarile de resursa pe un sistem Linux este in mod uzual /var/named/named.ca. Acest fisier e alcatuit din indicii pentru resover, care il ajuta sa decida unde gaseste informatii referitoare la serverele de nume. O monstra din fisierul /var/named/named.ca arata astfel (comentariile sunt afisate precedate de ;):
 
; /var/named/named.ca - the cache file name
 
; this points to the primary name server
 
. 99999999 IN NS big_boy.big_net.com
 
big_boy.big_net.com 99999999 IN A 156.23.14.2
 
        Fisierul /var/named/named.hosts afiseaza gazdele locale si asociaza numele de calculatoare cu o adresa IP.  Fisierul include si aliasuri pentru nume, O parte din fisierul /var/named/named.hosts ar putea arata astfel:
 
; /var/named/named.hosts
 
@ IN SOA merlin.tpci.com merlin. (
 
 16 ; serial
 
 86400 ; refresh
 
 3600 ; retry
 
 36000 ; exxpiry
 
 604800 ; expiry
 
 )
 
 IN NS merlin.tpci.com
 
; the local machine
 
localhost. IN A 127.0.0.1
 
merlin IN A 176.23.1.34
 
merlin.if1 IN CNAME merlin
 
        fisierul /var/named/named.local ajuta la opusul maparii adreselor locale accesibile utilizand formatul IN-ADDR-ARPA(ce va fi discutat intr-o sectiune ulterioara in acest capitol). O "monstra" din fisierul named.local arata astfel:
 
; /var/named/named.local
 
@ IN SOA merlin.tpci.com merlin (
 
 16 ; serial
 
 86400 ; refresh
 
 3600 ; retry
 
 36000 ; exxpiry
 
 604800 ; expiry
 
 )
 
 IN NS merlin.tpci.com.
 
1 IN PTR localhost.
 
        in Sfarsit, fisierul /var/named/named.rev e folosit pentru opusul maparii altor masini utilizand IN-ADDR-ARPA. O parte din fisierul named.rev ar putea arata astfel:
 
; /var/named/named.rev
 
@ IN SOA merlin.tpci.com merlin (
 
 16 ; serial
 
 86400 ; refresh
 
 3600 ; retry
 
 36000 ; exxpiry
 
 604800 ; expiry
 
 )
 
 IN NS merlin.tpci.com.
 
1.1 IN PTR wizard.tpci.com.
 
2.1 IN PTR chatton.tpci.com.
 
3.1 IN PTR walter.tpci.com
 
        Toate aceste fisiere sunt create pentru dumneavoastra cu informatiile implicite cand instalati BIND. Procesul de actualizare a acestora pentru a contine informatiile dumneavoastra nu e atat de dificil cum v-ati putea imagina. Urmati urmatorii doi pasi pentru a va actualiza fisierele:
        Mai intai, editati fisierul /var/named/named.hosts. Pentru fiecare masina de adaugat la fisier, aveti nevoie de numele simbolic al masinii, de adresa IP, de orice alte informatii pe care doriti sa le includeti si orice aliasuri care ar trebui recunoscute. De exemplu, pentru a adauga masina artemis (care se numeste de asemenea si the_ark) la fisierul named.hosts adaugati aceste linii:
 
ARTEMIS IN A 146.12.23.1
 
 IN HINFO PC UNIX
 
THE_ARK IN CNAME ARTEMIS
 
        in continuare editati fisierul /var/named/hosts.rev pentru a furniza opusul maparii IN-ADDR-ARPA pentru fiecare masina nou adaugata. Pentru masina folosita in exemplul precedent, ar trebui adaugata aceasta linie:
 
1.23 IN PTR ARTEMIS.TPCI.COM.
 
        Remarcati ca portiunea de adresa a adresei IP este inversata (1.23 in loc de 23.1). De asemenea si perioda sde "trailing" trebuie sa fie pusa la loc. 
 
                       IN-ADDR-ARPA
 
        
        Campurile de adresa, precum cele din tipul de inregistrare de resursa adresa, utilizeaza un format special numit "IN-ADDR-ARPA". Acesta permite maparea inversa de la adresa la nume si maparea de la nume la adresa. Pentru a intelege IN-ADDR-ARPA este foarte util sa incepeti cu un format standard al unei inregistrari de resursa. Unul din cele mai simple tipuri ale inregistrarii de resursa este pentru adrese (tipul A). In continuare va prezentam un extract dintr-un fisier de adresa:
 
TPCI_HPWS1 IN A 143.12.2.50
 
TPCI_HPWS2 IN A 143.12.2.51
 
TPCI_HPWS3 IN A 143.12.2.52
 
TPCI_GATEWAY IN A 143.12.2.100
 
 IN A 144.23.56.2
 
MERLIN IN A 145.23.24.1
 
SMALLWOOD IN A 134.2.12.75
 
        Fiecare linie a fisierului reprezinta o inregistrare de resursa. In acest caz, toate sunt simple intrari care contin numele simbolic al masinii, clasa masinii (IN pentru Internet), A pentru a arata ca este o inregistrare de resursa adresa si adresa de Internet. Intrarii pentru masina TPCI_GATEWAY ii corespund doua adrese deoarece este o poarta intre doua retele. Poarta are o adresa diferita pe fiecare din retele, ceea ce duce la existenta a doua inregistrari de resursa in acelasi fisier.
        Acest tip de fisier face maparea de la nume la adresa usor. Serverul de nume cauta pur si simplu o linie care are numele simbolic cerut de aplicatie si returneaza adresa de Internet de la sfarsitul acelei linii.  Bazele de date sunt sortate dupa nume, si deci aceste cautari sunt foarte rapide. 
        Cautarea de la adresa la nume nu este insa atat de usoara. Daca fisierele de inregistrari de resursa ar fi mici, intarzierele pentru o cautarea manuala ar fi nesemnificative, insa in cazul zonelor largi, pot fi mii sau zeci de mii de intrari. Sortarea e facuta dupa nume, asa incat cautarea dupa adresa ar fi un proces foarte lent. Pentru a rezolva aceasta problema de "mapare inversa" a fost dezvoltat IN-ADDR-ARPA. IN-ADDR-ARPA utilizeaza adresa masinii ca index pentru informatiile inregistrarilor de resursa ale gazdei. Atunci cand e localizata inregistrarea de resursa potrivita, poate fi extras numele simbolic.
        IN-ADDR-ARPA utilizeaza tipul de inregistrari de resursa PTR (vezi Tabelul 30.1) pentru a "pointa" de la adresa la nume. E posibil ca unul din acesti indecsi sa fie mentinut pe fiecare server de nume. Un exemplu de fisier "nume-adresa" este prezentat mai jos:
 
23.1.45.143.IN-ADDR-ARPA. PTR TPCI_HPWS_4.TPCI.COM
 
1.23.64.147.IN-ADDR-ARPA. PTR TPCI_SERVER.MERLIN.COM
 
3.12.6.123.IN-ADDR-ARPA. PTR BEAST.BEAST.COM
 
143.23.IN-ADDR-ARPA PTR MERLINGATEWAY.MERLIN.COM
        Adresele de Internet sunt inversate in fisierul IN-ADDR-ARPA pentru o utilizare mai usoara. Asa cum am aratat in monstra din fiser de mai sus, nu e necesar sa specificam adresa completa pentru o poarta, deoarece numele domeniului va furniza suficiente informatii de rutare.
Autori: Moruz Luminita, Manolache Gabriel     

Niciun comentariu: