Sunteți pe pagina 1din 26

Configurararea TCP/IP

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

S-ar putea să vă placă și