Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   





Clic aici
PC Magazine





Soluții - PC Magazine Romania, Septembrie 2004

LINUX - Stând în intersecție

Răzvan Sandu

Motto:

"Îmi place să văd oameni grăbiți. Ei înseamnă acțiune. Cel mai ciudat este că sunt grăbiți pentru a ajunge în locul în care pot sta. Sunt grăbiți pentru a sta cât mai repede. Statul e problema fundamentală. El emite Legile Statului. Legile Statului sunt binecunoscute de toți cetățenii învățați cu Statul. Statul înseamnă odihnă."

Ada Milea - "Perspectiva. Statul. Curcubeu de gaze."

Abia sosit din vacanță, deschid o revistă de TI și îmi cad sub priviri, chiar în editorial, câteva disperate semnale de alarmă la adresa Fedora Core 2. Cică distribuția nu este stabilă, e făcută de mântuială… Nu o folosiți, deci, în instalări critice - va să zică, în mediul de afaceri, acolo unde "se rotesc" bani!

Doamne, chiar sunt în pericol? Eu am, totuși, o rețea în funcțiune, formată din câteva sute de calculatoare, a cărei infrastructură se bazează exclusiv pe Fedora Core 2… La a doua lectură, povestea asta alarmistă îmi sună ca importanța acordată în jurnalele de știri VIP-urilor dâmbovițene. (Dicționarul zice că un VIP - adică Very Important Person - este o persoană de neînlocuit, unul de ale cărui decizii depinde soarta unui număr foarte mare de oameni. Din acest motiv, îmi pot imagina ușor de ce președintele Statelor Unite este un VIP. Din același motiv, nu voi înțelege în ruptul capului cum altor personaje - cutărui baron local sau starletei care îmi terorizează după-amiezele petrecute în fața teveului - li se acordă același titlu…). În cazul nostru, să fie "concurența" chiar atât de speriată de dezvoltarea Linux-ului, încât să se fi apucat să "facă valuri" chiar în revistele de specialitate?

Dar să lăsăm asta, prieteni, și să vă povestesc ceva…

Din vremurile vechi

Ca administratori pe rețele mai mari sau mai mici, nu se poate să nu vă fi ciocnit de serviciul DNS și să nu îi cunoașteți utilitatea. Vechile rețele de firmă din anii ´90, bazate pe Windows 98, se "mișcau" atât de greu și deveneau rapid supraaglomerate tocmai pentru că lipsea acest serviciu, iar stațiile din rețea "se descopereau" una pe alta prin intermediul broadcasting-ului… Mai târziu, un vechi vis al utilizatorilor de Windows s-a împlinit: odată cu "unealta" numită Internet Sharing, a apărut posibilitatea ca mai multe calculatoare din LAN să navigheze pe Internet prin intermediul unuia singur, care dispunea de modem… Când lucrurile au început să se contureze, oamenii și-au pus pentru prima dată serios întrebarea: ce nume ("oficial") trebuiau să poarte toate aceste mașini (gateway-ul cu modem și stațiile interne) ca să poată naviga fără a "jena" pe cineva din Internet? Problema denumirii stațiilor, aparent banală, a devenit mai importantă ca oricând…

În lumea Microsoft, utilizatorii s-au văzut, brusc, confruntați cu o problemă.

Tradițional, mașinile Windows 98 erau "botezate" cu un nume NETBIOS, case-insensitive, de maximum 15 caractere. Este vorba de acel nume pe care îl vedeți într-o rețea LAN, atunci când dați un dublu-click pe icon-ul Network Neighborhood. El se poate seta foarte ușor, făcând click-dreapta pe același icon și alegând "Properties". Pe rețeaua locală, lua astfel naștere un spațiu de nume flat (neierarhizat) - mulțimea numelor de stații din acea rețea.

Pentru nevoi practice la nivelul unei rețele locale, era absolut suficient, cu condiția să nu existe două calculatoare cu același nume. Suprapuneri nu apăreau nici în cazul în care două LAN-uri diferite erau interconectate printr-un router: broadcast-ul NETBIOS nu "trece" prin router, astfel încât cele două rețele rămâneau separate chiar și în cazul în care două stații din LAN-uri diferite purtau aceeași denumire.

Lucrurile s-au complicat însă odată cu migrarea către folosirea "NETBIOS over TCP/IP", care este metoda recomandată de funcționare în Windows 2000 și Windows XP. Routerele deveneau brusc "transparente" pentru pachete, așa că Microsoft a trebuit să găsească o altă soluție.

În noua configurație, vechiul nume NETBIOS a devenit prima parte (hostname-ul) a unui nume complet DNS, de exemplu:

numevechi.example.com

Acest nume DNS are o structură ierarhică, de arbore, care permite distingerea mașinilor numevechi.example1.com și numevechi.example2.com. În plus, pentru rezolvarea numelor poate fi folosit acum nu broadcast-ul, ci mecanismul "clasic" DNS, bine pus la punct în lumea Unix.

Unul dintre primele lucruri pe care le află un începător este că, într-o rețea, adresele sunt asignate interfețelor și nu mașinilor. O mașină-router, având, de exemplu, mai multe plăci Ethernet conectate la rețele diferite, va avea tot atâtea adrese IP. Acestea vor apărea în fișierul /etc/hosts ca:

127.0.0.1 localhost localhost.localdomain
192.168.1.7 nume.example.com
192.168.9.3 nume.example.com 
192.168.10.3 nume.example.com

(prima adresă/interfață este cea loopback).

Să învățăm să fim fățarnici

Dar ce se întâmplă cu un router, conectat în rețeaua A și în rețeaua B, care rulează serviciul DNS și care trebuie să răspundă diferit interogărilor sosite din cele două rețele?

Exemplul clasic este mașina Linux care face NAT/masquerading și prin intermediul căreia vă conectați la Internet. Ea are două plăci de rețea: placa orientată către Internet primește adresa IP publică, care v-a fost alocată de către ISP, iar placa "interioară" va avea o adresă privată, (să zicem 192.168.1.1), din aceeași clasă ca și stațiile de lucru din rețeaua locală. Un utilizator oarecare, situat "afară", în Internet, nu "vede" absolut nimic în interiorul rețelei voastre, "prin" gateway, ci i se pare că acolo se găsește un singur computer, având adresa IP publică.

Să presupunem acum că pe acest router, numit gateway.example.com, rulează și serviciul DNS, care va răspunde atât interogărilor din exterior, cât și celor din interior. Unui client din LAN, care întreabă "cine este gateway.example.com?",

i se poate răspunde atât cu adresa IP publică cât și cu cea privată, 192.168.1.1. Unui alt client, din Internet, care va pune aceeași întrebare, trebuie să i se răspundă numai cu adresa IP publică - nu are sens să primească adresa 192.168.1.1, întrucât pe aceasta nu o poate "vedea"/accesa din exterior!

Până nu demult, soluția acestei probleme era destul de complicată: mașina trebuia să ruleze două servere DNS separate (în cazul Linux, programul bind, care implementeză serviciul DNS named), configurate astfel încât fiecare să deservească clienții din rețelele respective, oferindu-le răspunsurile potrivite. Începând cu versiunea 9, programul bind al Internet Software Consortium (ISC - http://www.isc.org) simplifică lucrurile, în sensul că un singur server DNS poate deservi toți clienții.

Din discuția noastră despre serverul DNS, vă mai amintiți, desigur, că setările acestuia sunt făcute în fișierul /etc/named.conf și în fișierele de zonă, care stau în directorul /var/named. Primul fișier controlează parametrii generali de funcționare ai serviciului, iar fișierele de zonă conțin tabelele de înregistrări propriu-zise, care realizează conversia numelor (de tipul www.example.com) în adrese IP și invers. Să presupunem că zona despre care discutăm este example.com, iar informația despre ea este cuprinsă în fișierul example.com.zone. Iată un fișier /etc/named.conf extras de pe sistemul meu Linux:

// named.conf
options {
query-source address * port 53;
directory "/var/named";
};
controls {
inet 127.0.0.1 allow { localhost; }
keys { rndckey; };
};
zone "." {
type hint;
file "named.ca";
};
zone "localhost" {
allow-update { none; };
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" {
allow-update { none; };
type master;
file "named.local";
};
zone "example.com" {
allow-update { none; };
type master;
file "example.com.zone";
};
include "/etc/rndc.key";

În cazul pe care îl studiem, ceea ce dorim este ca, atunci când este interogat, serverul nostru DNS să furnizeze o anumită informație unor clienți (cei din rețeaua "externă", Internetul) și o altă informație celorlalți (cei din rețeaua internă, LAN-ul). Vom folosi în fișierul /etc/named.conf directiva view - ultima secțiune a acestui fișier devine:

...
view "intern" {
match-clients {192.168.1.0/24};
zone "example.com" {
allow-update { none; };
type master;
file "example.com.zone.intern";
};
};
view "extern" {
match-clients {any};
zone "example.com" {
allow-update { none; };
type master;
file "example.com.zone.extern";
};
};
...

Observați că în interiorul unei directive view este cuprinsă informația despre zona example.com. view folosește opțiunea match-clients drept criteriu de selecție: toți clienții care îndeplinesc acest criteriu vor primi răspunsuri conform celor spuse în interiorul directivei. În cazul nostru, toți clienții din LAN-ul 192.168.1.0/24 vor "vedea" fișierul example.com.intern, iar ceilalți (adică cei din Internet) fișierul example.com.extern. Desigur, informația conținută în fișierele example.com.intern și example.com.extern este diferită, după necesități, iar ordinea directivelor view în fișier este importantă: de sus in jos, va fi folosită acea secțiune al cărei criteriu match-clients este îndeplinit primul.

Pentru aceia dintre voi care ați început să folosiți Fedora Core 2, trebuie remarcat că fișierele de configurare ale daemonului named se pot găsi și în subdirectoarele din /var/chroot. Asta datorită faptului că Fedora Core 2 introduce, în mod standard, posibilitatea (recomandată!) a folosirii unui subdirector-rădăcină fals pentru rularea daemon-ului (chroot jail). Acest lucru nu are legătură directă cu discuția noastră de azi - amănunte puteți găsi în Chroot-BIND-HOWTO.

Încheiere

Configurarea corectă a unei rețele de dimensiuni medii sau mari nu este o problemă simplă, de aceea sper că am reușit să vă ofer soluția unei probleme, aparent minore, cu care v-ați mai întâlnit.

Bineînțeles, aștept cu plăcere întrebările și părerile voastre la [email protected].


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2004 Agora Media.

[email protected]

LG - LifeŽs Good

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro