Sie sind auf Seite 1von 21

1

NFS i NIS

Traducerea realizat de
Tubultoc Ana-Roxana, anul 3, grupa 1B

Sistemul de fiiere al reelei ( NFS ) este cunoscut ca fiind dificil de
setat i instalat. n realitate, NFS este destul de uor de implementat pe
sistemele Linux, iar dac maina ta este una dintre puinele sisteme Linux
dintr-o reea local (LAN), NFS i poate oferi o flexibilitate enorm.
n cadrul acestui capitol se vor prezenta avantajele sistemului de
fiiere al reelei (NFS), precum i modul n care sistemul tu poate fi setat n
aa fel nct s se comporte att ca server ct i client pentru celelalte
sisteme din reeaua ta local. Dac calculatorul tu ruleaz sub Linux, n
regim independent, NFS nu va avea nici un rol semnificativ pentru tine
(dect unul academic ). ns dac faci parte dintr-o reea local(LAN),
indiferent de sistemele ce o compun (PC- uri, Mac-uri, Unixuri sau Linux) ar
trebui , cel puin, s afli ce-i poate oferi NFS-ul.
Cea de a doua parte a acestui capitol face referire la Serviciul de
Informaie al Reelei(NIS), o versiune mai veche numit cndva Pagini
Aurii( Yellow Pages) i la modul de funcionare la nivel de reea. Dei
probabil nu vei avea nevoie de NIS dect n cadrul unei reele mari, poi afla
cum funcioneaz acest sistem. Capitolul se refer, de asemenea, i la cteva
instrumente de administrare a sistemului pentru administrarea NFS
(Sistemul de Fiiere al Reelei), NIS (Serviciul de Informaie al Reelei) i
RPC( Remote Procedure Call =Apelul Procedurilor la Distan).


Ce este NFS ?

NFS a fost proiectat pentru a rezolva o problem obinuit din cadrul
unei reele Unix. Tendina general cunoscut este cea a proceselor
distribuite i a reelelor client-server. Cu toate acestea, muli utilizatori au,
de fapt, maini puternice care comunic cu un server. Exist aplicaii de care
au nevoie utilizatorii i care sunt localizate n alte locuri dect pe desktop, i
de aceea apare necesitatea unei metode de acces a fiierelor la distan. Dei
servicii precum Telnet-ul permit utilizatorului accesul unor maini la
distan, acestea nu in cont de procesorul mainii, transfernd la distan.
Un alt aspect important al schimbului ntre maini distribuite este partajarea
periferic i nevoia de a furniza acces pentru muli utilizatori la anumite
2
resurse. Pentru a facilita integrarea staiilor ntr-o reea local i pentru a
simplifica accesul fiierelor la distan i partajarea periferic, Sun
Microsystems a introdus Sistemul Fiierelor de Reea (Network File System,
NFS). Acesta are la baz un sistem numit RPC (Remote Procedure Calls-
Apelul Procedurilor la Distan ).
Cei de la Sun au proiectat NFS astfel nct s permit mainilor de
diferite tipuri s funcioneze la fel, indiferent de sistemul lor de operare. Prin
publicarea specificaiilor NFS, Sun a permis celorlali productori s-i
modifice sistemele pentru a fi compatibile cu NFS , rezultnd astfel o reea
mult mai omogen. NFS este acum un standard al mediilor Unix, avnd un
suport puternic n alte sisteme de operare.
NFS se refer, de fapt, la dou lucruri diferite: un produs i un
protocol. Produsul NFS este un set de protocoale pentru diverse sarcini.
Protocolul NFS este unicul protocol din cadrul produsului NFS ce se ocup
cu accesul fiierelor. n prezent, NFS este n strns legtur cu sistemul
Unix i protocolul TCP/IP. Pentru celelalte sisteme de operare (precum
Novell NetWare), NFS este o extensie care este adugat de ctre
administratorul de sistem. Linux (i majoritatea versiunilor Unix ) utilizeaz
procesul NFSD pentru a administra accesul de tip NFS.
NFS-ul permite unei aplicaii citirea i scrierea fiierelor aflate pe
servere NFS. Accesul la serverul NFS este transparent att aplicaiei ct i
utilizatorului. Accesul transparent la structura de fiiere a altei maini este
obinut prin legarea logic a serverului NFS la client. Sistemul se fiiere al
serverului NFS se poate monta n ntregime sau n parte. Montarea este
realizat n acelai fel ca orice montare a sistemului de fiiere( vezi Capitolul
18, Sistemul de fiiere i Discul, pentru informaii referitoare la comanda
mount), dei comanda are un parametru ce indic folosirea NFS-ului. De
exemplu, pentru a monta directorul /usr/database/data de pe o main la
distan (numit wizard) n directorul tu /usr/data vei iniia urmtoarea
comand:

mount t nfs wizard :/usr/database/data /usr/data

La iniierea comenzii , maina local verific dreptul de acces la acest
director de pe maina aflat la distan. Dac totul e n ordine, maina de la
distan trimite un identificator de fiier ce va fi utilizat pentru a redireciona
toate cererile de pe maina local, referitoare la acel director. De fiecare dat
cnd utilizatorul unui director montat prin NFS iniiaz o cerere, un proces
daemon numit NFSD se ocup de transferuri.

3
NFS utilizeaz termenul de client pentru orice main care cere un
fiier de pe o alt main, care este serverul. Sistemele de operare
multitasking pot fi n acelai timp i client i server. De obicei, se impun
restricii asupra fiierelor sau asupra prilor unui sistem de fiiere
partajabile, att pentru securitate ct i din considerente de vitez.
O instalare NFS tipic utilizeaz PC-urile sau staiile de lucru care nu
necesit bootare de pe disc ca fiind clieni ce acceseaz un sistem server
puternic. (ntruct sistemele de operare instalate pe PC-uri precum MS-DOS
sunt monoutilizator (single-tasking), PC-urile se comport n mod uzual doar
ca clieni, cu excepia cazului n care se lucreaz pe sisteme de operare multi-
utilizator (multitasking), precum Windows NT, Windows 95, sau OS/2).
Pentru reelele Linux , pot exista cteva sisteme Linux care i partajeaz
drivere cu alte maini din cadrul reelei. E posibil s avem o reea ntreag de
sisteme multiutilizator care i partajeaz driverele ntre ele, dei n practic
acest lucru este posibil numai n cadrul unei reele mai mici.
Viteza de transfer n cadrul reelei devine important, datorit cerinei
de transferare rapid a fiierelor cu NFS. Cnd a fost proiectat, scopul iniial
al unui sistem de fiiere montat prin NFS a fost acela de a asigura o
performan echivalent cu 80% din cea a unui hard disk montat local. Acest
scop determin o cretere a performanei att la nivelul driverelui de disc
NFS, ct i la nivelul reelei. n mod obinuit, driverele de disc NFS de pe
un anumit server sunt printre cele mai rapid disponibile, n scopul de a
reduce gtuiturile la celalalt capt. n practic, pentru majoritatea reelelor,
sistemul NFS utilizeaz un echipament standard, ceea ce nu constituie, de
fapt, o problem pentru mprirea unor directoare n cadrul unei reele mici.
NFS ofer o serie de avantaje n cadrul unei reele Linux. n primul
rnd, permite o pstrare a informaiilor i a aplicailor mari pe un singur disc
al reelei, la care au acces toate mainile (deci are loc o economisire a
spaiului de disc, pe care ar impune-o copiile independente). Din punct de
vedere administrativ, NFS ofer posibilitatea pstrrii aplicaiilor ntr-o
singur locaie (ba chiar i plasarea tuturor directoarelor utilizatorilor pe o
singur main) pentru o mai uoar actualizare, copiere i organizare.

Versiunea Linux a FTP-ului difer ntr-o anumit msur de versiunea
standard a Unix-ului, prin faptul c multe din proprietile sistemului NFS
sunt regsite n codul nivelului nucleu al Sistemului de Fiiere Virtuale
(Virtual File System -VFS ). Versiuni mai vechi de Linux aveau anumite
probleme cu versiunea FTP datorit dimensiunii maxime a datagramelor
TCP, care trebuia redus pentru a funciona corect. Aceasta a avut un efect
drastic de ncetinire a performanelor.
4
Deoarece NFS-ul se bazeaz pe Linux, nivelul de securitate oferit este
destul de rudimentar. Acesta este motivul pentru care Sun a introdus Secure
NFS (NFS Sigur), care se bazeaz pe un protocol de mesaje criptat pentru o
protecie mai bun mpotriva unui acces nepermis asupra sistemului de
fiiere montat NFS. Aceast versiune nu este nc disponibil n cadrul unei
implementri Linux.

Instalarea NFS-ului

Primul pas n instalarea NFS-ului pe un sistem Linux este acela de a
ne asigura c suportul NFS este compilat n cadrul nucleului. Cele mai noi
versiuni de Linux au aceasta caracteristic n mod implicit, dar dac se
lucreaz pe o versiune mai veche este necesar o verificare a codului NFS.
Versiunile de Linux de dup 1.1 pot s confirme faptul c suport NFS-ul
prin examinarea fiierului /proc/filesystems. n cadrul acestui fiier trebuie
s existe o linie n care nfs apare alturi de comanda nodev. Un fragment din
acest fiier este dat mai jos:

minix

ext2

umsdos

msods

nodev proc

nodev nfs

iso9660

Penultima linie indic includerea codului NFS n cadrul nucleului. n
cazul n care codul NFS nu este inclus, va trebui reconstruit nucleul astfel
nct s includ i driverele NFS.
Versiunile Linux mai vechi dect 1.1 prezint o dificultate mai mare
n verificarea codului NFS. Cea mai bun metod pentru realizarea
verificrii o constituie montarea unui director NFS. n caz de eec, se admite
lipsa codului NFS (n ipoteza n care comanda mount este, bineneles,
corect). Pentru o verificare rapid, se poate monta un director local pe
5
maina proprie (acest lucru este posibil, pentru toate versiunile NFS, dei
uneori poate deveni derutant). Petru realizarea acestei verificri, se creeaz
un subdirector nou, dup care se lanseaz comanda mount cu un director
existent. De exemplu, prin urmtoarele comenzi se ncearc montarea
directorului /usr n cadrul subdirectorului gol /tmp/nfstest :

mkdir /tmp/nfstest

mount localhost:/usr /tmp/nfstest

Dac lansarea comenzii se ncheie cu succes (se poate merge n
directorul /tmp/nftest, unde se poate verifica dac exist aceeai list de
fiiere ca i n /usr ), atunci nseamn c nucleul are codul NFS ncorporat.
Dac ns apare un mesaj de eroare similar celui de mai jos:

fs type nfs not supported (fiier sistem de tip nfs nesuportat)

atunci codul NFS lipsete i va trebui s reconfigurezi un nou nucleu cu
driverele NFS adugate.


NOT : La verificarea acestui cod NFS pot s apar multe mesaje de
eroare. ns singurul mesaj care conteaz este cel de tipul nfs not
supported. Restul mesajelor sunt legate de lipsa configurrii NFS-ului.


Procesele care ruleaz n fundal (numite daemon) ale NFS-ului trebuie
s fie setate n sistem. Dac se dorete un statut de server NFS (permiterea
ca directoarele proprii s poat fi montate de ctre alii), este necesar att o
instalare a nfsd-ului ct i a proceselor daemon. Aceste procese daemon (de
fundal) i ncep activitatea n momentul pornirii calculatorului, prin citirea
fiierelor de tip rc. Aceste procese necesit programul rpc.portmap pentru a
funciona, deoarece amndou se nregistreaz cu utilitatea portmappper.

Comenzile de start pentru procesele de fundal se gsesc, de obicei, n
fiierul /etc/rc.d/rc.inet2 (sau acolo unde s-a realizat instalarea fiierelor rc ).
Ultimele versiuni de Linux vor avea o seciune special n fiierul
/etc/rc.d/rc.inet2. De exemplu, seciunea referitoare la NFS va arta n felul
urmtor:
6

# # Start the various SUN RPC servers. ( Pornirea diverselor servere SUN
RPC. )
if [ -f ${NET}/rpc.portmap ]; then

# Start the NFS server daemons. ( Pornirea proceselor server NFS. )

if [ -f ${NET}/rpc.mountd ]; then

echo -n " mountd"

${NET}/rpc.mountd

fi

if [ -f ${NET}/rpc.nfsd ]; then

echo -n " nfsd"

${NET}/rpc.nfsd

fi
# # Fire up the PC-NFS daemon(s). ( Pornete procesele daemon PC-NFS.)

# if [ -f ${NET}/rpc.pcnfsd ]; then

# echo -n " pcnfsd"

# ${NET}/rpc.pcnfsd ${LPSPOOL}

# fi

# if [ -f ${NET}/rpc.bwnfsd ]; then

# echo -n " bwnfsd"

# ${NET}/rpc.bwnfsd ${LPSPOOL}

# fi

7
fi # Done starting various SUN RPC servers. ( Am terminat pornirea
diferitelor servere SUN RPC. )

Dac fiierul inet2 nu are nici o linie similar cu vreuna din cele de
mai sus , atunci se va ncerca cutarea unei locaii prin comanda de pornire
rpc.portmapper. Seciunea de pornire a portmapperului va arta similar cu
urmtoarea:

# Start the SUN RPC Portmapper. ( Pornirea portmapperului SUN RPC.)

if [ -f ${NET}/rpc.portmap ]; then

echo -n " portmap"

${NET}/rpc.portmap

fi

Dedesubtul acestor linii, introducei urmtoarele comenzi pentru
iniierea proceselor rpcd i mountd ( procese daemon ):

if [ -x /usr/sbin/rpc.mountd ]; then

echo -n " mountd"

/usr/sbin/rpc.mountd

fi

if [ -x /usr/sbin/rpc.nfsd ]; then

echo -n " nfsd"

/usr/sbin/rpc.nfsd

fi

Dac procesele rpc.nfsd i rpc.mountd nu se afl n /usr/sbin,
introducei corect fiecare cale. Aceste linii nu folosesc o cale deja stabilit
anterior. Calea trebuie specificat n mod explicit procesului daemon.
8

Urmtorul pas n configurarea sistemului pentru rolul de server NFS l
constituie stabilirea unei liste a tuturor clienilor posibili care se pot ataa la
sistemul nostru pentru montarea de directoare. Acest lucru se poate realiza
prin intermediul fiierului /etc/exports. Acesta este citit de fiecare dat cnd
procesul daemon mount primete o cerere de montare a unui director.
Fiierul conine o list a directoarelor pe care le permitem a fi montate,
precum i a sistemelor de la distan care le pot monta, nsoite de o indicaie
de permisiune.

Cea mai bun metod de a explica fiierul /etc/exports este aceea de a
urmri un exemplu. n urmtorul fiier sunt indicate cteva sisteme crora le
este permis montarea directoarelor pe maina local:

# /etc/exports for merlin (se monteaz /etc/exports pe merlin)

/usr/database/data chatton(rw) big_roy (rw) wizard (rw)

/usr/book chatton(rw) wizard (ro)

/usr/bin/bigapp big_roy(rw) wizard (ro)

/usr/ftp (ro)

n fiier se arat c cele trei maini chatton, big_roy i wizard pot
monta directorul local /usr/database/data n modul citire-scriere (adic pot
modifica chiar coninutul). Directorul /usr/book poate fi montat n mod
citire-scriere de ctre maina chatton, aflat la distan, i doar n mod citire
( nu este permis scrierea) de ctre wizard. Directorul /usr/ftp poate fi
montat doar n modul citire de ctre orice main se dorete.

Cnd se specific numele mainilor n fiierul /etc/exports , se pot
utiliza nume explicite sau combinaii de caractere speciale, precum asterisc
sau semnul ntrebrii, n scopul potrivirii pe mai multe maini. De exemplu,
urmtoarea intrare

/usr/tim/book big_*(rw)

permite oricrei maini al crei nume ncepe cu big_ s monteze
directorul n mod citire-scriere. Cnd nu se specific nici un nume de gazd
9
(ca n cazul directorului /usr/ftp din exemplul precedent), atunci orice
main poate monta directorul.

Fiierul /etc/exports ofer o list a permisiunilor posibile pentru o
main aflat la distan care dorete montarea unui director local. Dei
majoritatea sistemelor utilizeaz doar rw i ro( pentru citire-scriere i
respectiv doar citire), uneori sunt necesare mai multe drepturi. Iat o list de
cteva permisiuni valide:

insecure Permite acces fr identificare asupra mainii n
cauz (suprascrie cererile de identificare).

kerberos Foreaz identificarea n mod Kerberos de la distan
(care nu este implementat pentru NFS-ul Linux).

link_absolute Pstreaz legturile simbolice aa cum erau.

link_relative Permite o conversie a legturilor simbolice
absolute n legturi relative prin ataarea, n cazul n care este
necesar, a lui ../

root_squash Prin care se interzice utilizatorilor de tip root
aflai la distan, dreptul de acces de tip root pe maina local.

secure-rpc Prin care se foreaz identificarea RPC de la
distan (aceasta este n mod implicit, dei nu se regsete
implementat n majoritatea versiunilor NFS ).

Dar, cum reuete NFS s lucreze cu fiiere i cu drepturile de acces
n contextul montrii ? n momentul n care daemonul NFS se ocup cu
transferul de fiiere sau cereri, el va trece i identificatorul utilizatorului,
precum i al grupului din care face parte acel utilizator. n cazul n care
clientul i serverul au acelai identificator de utilizator i acelai identificator
de grup (adic mpart acelai spaiu de uid/gid), nu exist nici o problem
referitoare la drepturi. Cnd ns UID-ul i GID-ul nu coincid, daemonul se
ocup de transferul dintre ei.

10


Montarea directoarelor NFS

O dat NFS-ul configurat, el poate fi utilizat pentru montarea
directoarelor de la distan n cadrul propriului sistem local de fiiere. Iar
acest lucru se realizeaz prin intermediul comenzii mount. Forma general a
ei, n contextul NFS este urmtoarea:

mount -t nfs director_la_distan director_local [-o opiuni]

unde director_la_distan este numele mainii la distan i a directorului ce
urmeaz a fi montat n manier NFS, iar director_local este locaia n care
urmeaz a fi montat directorul aflat la distan. Parametrul opiuni poate fi
reprezentat de orice flag specific NFS-ului. Parametrul director_la_distan
este specificat ntotdeauna n formatul:

nume_main_la_distan : director_la_distan,

ca n exemplul wizard:/usr/lib. Muli administratori renun la componenta
t nfs a comenzii, ntruct acest format este stabilit n mod unic pentru NFS.
Alii consider, ns c este mai bine s se pstreze opiunea t , n scopul de
a se aminti faptul c maina la distan este montat NFS.

Dei exist mai multe opiuni posibile pentru comanda mount, n mod
NFS, numai cteva sunt utilizate n situaiile reale. n continuare sunt
prezentate o serie de opiuni valabile :

hard Aceast opiune stabilete c directorul va fi montat hard.
Aceasta este o aciune implicit.
intr Aceast opiune permite ntreruperea unei cereri NFS.
rsize Opiune prin care se poate stabili dimensiunea unei datagrame,
utilizate n cadrul unor cereri de citire (dimensiunea implicit este de
1024 de octei).
soft Specific o montare soft a directorului (n locul unei montri
hard).
timeo Opiune care specific timpul rmas pn la terminarea unei
cereri NFS, n zecimi de secund (valoarea implicit este de 7/10).
11
wsize Aceasta specific dimensiunea unei datagrame utilizat pentru
o cerere de scriere (n mod implicit, valoarea ei este de 1024 de
octei).

Opiunile rsize, timeo i wsize sunt urmate de un semn egal i de valoarea
care le este asignat. Opiunile rsize i wsize sunt folosite, n primul rnd,
pentru a schimba dimensiunea datagramei de pe maina aflat la distan (n
cazul n care se utilizeaz o dimensiune mai mare dect cea cu care lucreaz
sistemul Linux ). Toate opiunile NFS trebuie s urmeze tiparul dat de
parametrul o din linia de comand, dac dup el sunt fixate anumite
opiuni. De exemplu, pentru a seta timpul rmas la 2 secunde, n cadrul unei
comenzi de montare la distan a unui director i pentru a permite, n plus,
ntreruperile, se poate iniia urmtoarea comand:

mount -t nfs wizard:/usr/data /usr/data -o timeo=20,intr

Ca o alternativ, dac nu se dorete specificarea n linia de comand a
opiunilor pentru directoarele care sunt mai des montate, se poate utiliza
fiierul /etc/fstab pentru a le furniza. Aceeai comand ca mai sus poate fi
plasat n fiierul /etc/fstab astfel:

wizard:/usr/data /usr/data nfs timeo=20,intr

Cnd se folosete fiierul /etc/fstab pentru precizarea opiunilor i a
punctelor de montare, se poate monta coninutul de la distan mult mai
uor, iniiind comanda:

mount wizard:/usr/data

Comanda mount verific fiierul /etc/fstab pentru determinarea
punctului de montare i a opiunilor utilizate i n acelai timp recunoate
comanda drept comand mount NFS. n cazul directoarelor aflate la
distan, care vor fi mai des folosite , este recomandabil aceast form
dect scrierea ei ntreag, de fiecare dat.

Dou dintre opiunile de montare NFS fceau referire la o montare
soft sau hard. n mod implicit, se consider c montarea este de tip hard.
Aceasta nseamn c, dac NFS-ul nu este n stare s monteze un anumit
director, la terminarea acestei ncercri se va genera un mesaj de eroare ,
dup care va ncerca din nou, dublnd timpul rmas pn la terminarea
12
comenzii. i astfel se reia procedura pn cnd directorul aflat la distan
este montat ( generndu-se cte un mesaj de eroare de fiecare dat cnd
expir timpul alocat). O astfel de montare a unor directoare care se reia pn
la finalizarea cu succes, poat denumirea de montare hard (hard mount). O
montare soft este cea care se comport similar, ns care genereaz mesaje
de eroare numai dup o perioad mai mare de timp, adic la fiecare 60 de
secunde. Mesajele de eroare nu sunt afiate, (din moment ce se gsesc n
coada I/O), ns se poate ctiga control asupra sistemului mult mai uor prin
intermediul unei montri soft dup un timp mai mare.

Administrarea NFS-ului

NFS ( i RPC, de care depinde NFS) are dou instrumente principale
de administrare disponibile pentru furnizarea actualizrilor strilor i a
indicaiilor pentru problemele ce pot surveni n cadrul sistemului. Rularea
unui singur instrument din acesta nu este suficient pentru rezolvarea
problemei. Deseori se poate ntmpla ca un instrument s semnaleze o
problem la un anumit port, ns la o analiz mai atent se poate descoperi
c acel port funcioneaz i c procesul aflat la cellalt capt i-a ncetat
activitatea. De aceea, aceste instrumente au fost proiectate n scopul de a fi
complementare pn cnd se poate stabili cu exactitate o cauz a problemei
survenite.

rpcinfo
Programul rpcinfo monitorizeaz mapperul portului mainei pe care
ruleaz i mapperele porturilor serverelor de la nivelul ntregii reele.
Deoarece mapperul portului este programul care controleaz accesul la RPC,
acest tip de informaie prezint o importan deosebit n urmrirea
problemelor. Programul rpcinfo poate afia coninutul tabelelor de mapare,
artnd portul i numerele programelor corespunztoare fiecrei conexiuni i
este capabil s activeze servere la distan pentru testarea unei conexiuni.
n general, rpcinfo este apelat cu opiunea p n vederea afirii
programelor RPC ce sunt urmrite n mod curent de ctre mapperul de port.
Opional, se poate aduga numele unei maini pentru a afia eventualele
conexiuni doar cu o singur main. Un rezultat tipic al programului rpcinfo
este artat mai jos:

$ rpcinfo -p

program vers proto port
13

100000 2 tcp 111 portmapper

100000 2 udp 111 portmapper

100008 1 udp 1026 walld

150001 1 udp 1027 pcnfsd

150001 2 udp 1027 pcnfsd

100002 1 udp 1028 rusersd

100002 2 udp 1028 rusersd

100024 1 udp 1029 status

100024 1 tcp 1024 status

100020 1 udp 1034 llockmgr

100020 1 tcp 1025 llockmgr

100021 2 tcp 1026 nlockmgr

100021 1 tcp 1027 nlockmgr

100021 1 udp 1038 nlockmgr

100021 3 tcp 1028 nlockmgr

100021 3 udp 1039 nlockmgr

Dac apare vreo problem n timpul contactrii mapperului de port,
rpcinfo va returna un mesaj de eroare. ntr-un astfel de caz, mapperul de port
nu funcioneaz corect i apare riscul imposibilitii contactrii altor maini.
O modalitatea de verificare este folosirea comenzii ping. Un exemplu al unui
astfel de mesaj de eroare de tipul fatal error este dat mai jos:

$ rpcinfo -p
14

rpcinfo: can't contact port mapper ( mapperul de port nu poate fi contactat)

RFC: Remote system errer -125

Anumite conexiuni pot fi testate cu rpcinfo utiliznd numele mainii i
al procesului, aa dup cum se poate vedea n exemplul urmtor:

$ rpcinfo -u merlin walld

program 100008 version 1 is ready and waiting
( programul 100008, versiunea 1 este pregtit i se afl n stare de ateptare)

Observai c opiunea u este utilizat n cazul conexiunilor UDP, n
timp ce opiunea t trebuie s fie utilizat n cazul celor TCP. n acest
exemplu, clientul rpcinfo a trimis o cerere ctre programul specificat i
ateapt o replic. Un rspuns cu succes rezult din mesajul artat mai sus.
Dac nu se primete un rspuns pn la expirarea unui anumit timp, se
afieaz un mesaj de eroare.

n exemplul de ieire artat mai sus, exist un proces numit pcnfsd,
care este un server RPC dezvoltat pentru utilizarea n cadrul mainilor DOS.
Se ocup cu drepturile de acces, precum i cu rularea serviciilor pentru
partea de DOS; n acelai timp simplific accesul mainii DOS la serviciile
NFS.

nfsstat
Programul nfsstat, aa dup cum i numele ne sugereaz, furnizeaz
statistici legate de numrul i tipul cererilor RPC ce sunt fcute. Dei aceast
comand se apeleaz fr opiuni, exist totui o serie de opiuni (care
depind de implementare i de versiune) care indic statistici sau exemplific
numai anumite pri ale unei conexiuni. Programul nfsstat nu face parte din
majoritatea distribuiilor Linux, ns poate fi gsit pe cteva siteuri Linux
FTP i BBS i ca parte a unor pachete utilitare a administrrii sistem. Pentru
o reea mai mic, rezultatul comenzii nfsstat este artat mai jos:

Server rpc:
calls badcalls nullrecv badlen xdrcall
10465 0 0 0 0

15
Server nfs:
calls badcalls
10432 0
null getattr setattr root lookup readlink read

1 0% 24 0% 1 0% 0 0% 10123 0% 0 0% 5 0%

wrcache write create remove rename link symlink

0 0% 2 0% 0 0% 1 0% 0 0% 1 0% 0 0%

Client rpc:
calls badcalls retrans badxid timeout wait newcred
8273 2 0 0 0 0 0

Client nfs:
calls badcalls
8263 0

null getattr setattr root lookup readlink read

1 0% 24 0% 1 0% 0 0% 10123 0% 0 0% 5 0%

wrcache write create remove rename link symlink

0 0% 2 0% 0 0% 1 0% 0 0% 1 0% 0 0%

Rezultatul este util pentru depistarea problemelor legate de conexiune.
Numrul care apare ca badcalls ne arat numrul de mesaje RPC defecte
procesate de sistem. Numerele pentru nullrecv i badlen ne indic numrul
de mesaje goale sau incomplete. Xdrcall ne arat numrul erorilor ce au
survenit n interceptarea mesajelor.

Privitor la client, badxid indic numrul mesajelor primite care nu se
potrivesc cu o cerere trimis ( se bazeaz pe un numr de identificare).
Timpul rmas i retrans ne arat de cte ori a trebuit s fie retrimis un mesaj.
Dac aceste numere sunt mari, n general va nsemna c acea conexiune este
prea nceat sau c este o greeal la nivel de UDP. Numrul wait ne indic
de cte ori a fost amnat un proces din cauza lipsei de porturi disponibile.

16
Aceste date statistice sunt utile pentru o configurare adecvat a RPC-
ului. Administratorii de sistem pot modifica valorile pentru sistemul NFS i
pot, de asemenea, urmri efectul lor asupra desfurrii de-a lungul timpului.



Ce sunt NIS i YP ?

Protocolul Paginile Aurii(Yellow Pages) este un serviciu RPC ( aa
cum este i NFS) care ofer un director de servicii. n conformitate cu
cererile dreptului de autor, Yellow Pages a fost redenumit Network
Information Service ( Serviciul de Informaii al Reelei- NIS), dei ambii
termeni sunt utilizai n mod curent i semnific aproape acelai lucru. YP a
fost dezvoltat cu anumite scopuri, ns cel care vizeaz n mod deosebit
utilizatorii este cel legat de drepturile de acces.
Dac eti un utilizator n cadrul unei reele mari i te conectezi la alte
maini (prin Telnet sau FTP, de exemplu), trebuie s menii o situaie a
tuturor mainilor la care te conectezi. Vei avea astfel nevoie de conturile
utilizatorilor tuturor mainilor pe care doreti s le accesezi. Este deci
dificil meninerea de parole pe un numr mare de maini, deoarece este
necesar s te nregistrezi la fiecare pentru a efectua schimbrile de parol.
Yellow Pages a fost dezvoltat pentru a permite existena unui singur fiier
central de parole, care va fi partajat pe tot cuprinsul reelei.

NIS este un sistem de acces distribuit deoarece fiecare main din
reea care utilizeaz NIS acceseaz un server central, numit master NIS sau
ypmaster, pentru drepturi de acces. n cadrul reelelor mai mari, exist unele
maini care sunt desemnate ca slave sau ypslave , care menin informaia de
acces actualizat. n cazul unei cderi a serverului master , un calculator de
tip slave preia controlul asupra funciilor de validare.


Not: Exist dou versiuni de YP sau NIS care sunt utilizate, n general.
Prima versiune(Versiunea 1) prezenta anumite probleme n anumite situaii,
aa nct Versiunea 2 a fost imediat produs. Cu toate acestea, unele sisteme
nc mai utilizeaz vechea versiune.


17
YP sau protocolul NIS ( ambele denumiri sunt valabile, dei NIS ar fi
preferabil de folosit) are un set de proceduri care permit o cutare a
serverelor master, acces la fiierele utilizatorilor i funcii de organizare a
sistemului. O alt procedur este folosit pentru a transfera copii ale
fiierului de acces al masterului. Cu NIS, se pot grupa un numr de maini
ntr-o subreea NIS, numit domeniu ( a nu se confunda cu noiunea de
domeniu Internet). Fiecare astfel de domeniu are maini master i slave
proprii.

NIS pstreaz informaiile de acces ntr-o mulime de hri, fiecare
astfel de hart corespunznd la o zon sau la un domeniu anume din reea.
Acest lucru permite mai multor grupuri s foloseasc acelai master NIS, dar
s aib diverse drepturi de acces. Hrile NIS nu trebuie s corespund
domeniilor DNS, ceea ce confer o flexibilitate mai mare n configuraie.
Aceste hri conin o mulime de nregistrri n format ACSII, fiecare cu un
index pentru o cutare mai rapid( acest index este, de obicei, numele
utilizatorului). nregistrrile au aceeai structur ca un fiier /etc/passwd
obinuit ), pentru compatibilitate i simplitate.


Not: Utilizarea NIS-ului nu elimin necesitatea unei mulimi complete de
fiiere de acces pe fiecare main, din moment ce NIS sau YP este ncrcat
dup ce maina a fost pornit. Asupra fiierelor de sine stttoare ar trebui s
aib acces cel puin administratorul de sistem, dei este mai practic s fie
inclui i cei mai frecveni utilizatori, n cazul unei cderi a reelei,
mpiedicnd accesul la directoarele NIS.


NIS nu este restricionat doar la utilizatori. Orice fiier poate fi setat
pentru a utiliza NIS, ca i lista mainilor din cadrul unei reele ( fiierul
/etc/hosts). Astfel este necesar s fie fcut doar o singur schimbare asupra
acestor fiiere n orice reea. O mulime de aliasuri poate fi gestionat de
ctre NIS sau YP.

Unele comenzi specifice YP/NIS sunt legate de protocol, dei
majoritatea administratorilor de sistem fixeaz aliasuri pentru a minimiza
impactul asupra utilizatorilor. Pentru marea parte a utilizatorilor, este
necesar doar o singur comand : yppasswd pentru a schimba o parol.
18
Aceasta este de obicei folosit sub denumirea de passwd, care este comanda
obinuit pentru schimbarea parolei.
Unele implementri NIS pentru Linux sunt mai bune dect altele. O
nou implementare este pe cale s apar, numit NYS, ce ofer cea mai mare
flexibilitate. NYS ( sau o versiune mai veche a uneia dintre versiunile NIS
de Linux) este inclus pe majoritatea distribuiilor de Linux, pe CD .



Instalarea NIS

NIS are dou componente: serverul i clientul. Dac exist deja un
server NIS n cadrul reelei tale, va trebui s mai instalezi doar prile ce in
de client. Oricum, pentru setarea un sistem de server Linux, vei avea nevoie
de ambele componente.

Poi alege ntre dou produse server NIS, care exist n mod curent n
distribuiile de Linux: ypser i yps. Alegerea serverului ce urmeaz a fi
folosit nu este important, din moment ce ambele furnizeaz servicii
complete. Totui, sistemul ypserv are o securitate ceva mai mare dect yps.
Poi obine soft NIS prin siteurile Linux FTP i BBS.
Pentru a instala i programul server, acesta trebuie copiat n /usr/sbin
(sau n alt locaie a unui fiier binar ce este accesat de obicei). Apoi, se
creeaz un director special care va reine harta fiierelor pentru domeniul
nostru (de reamintit c acesta este un domeniu NIS i nu unul Internet). De
obicei, aceste fiiere se pun ntr-un director ca /var/yp/tpci (ultima
component a cii este numele domeniului nostru).

Serverul NIS poate suporta cteva fiiere de mapare. n general,
fiierele reflect o imagine a fiierelor Linux standard, dar sunt numite astfel
nct s arate dac sunt accesate dup nume sau dup alte criterii (ca adrese
IP sau nume utilizator). De exemplu, exist dou copii ale fiierului
/etc/passwd care sunt meninute de ctre NIS: passwd.byname i
passwd.byuid. Urmtoarele fiiere sunt utilizate de NIS i de ctre hrile lor
corespunztoare:

/etc/group group.byname, group.bygid
/etc/hosts hosts.byname, hosts.byaddr
/etc/networks networks.byname, networks.byaddr
19
/etc/passwd passwd.byname, passwd.byuid
/etc/protocols protocols.byname, protocols.bynumber
/etc/rpc rpc.byname, rpc.bynumber
/etc/services service.byname, services.bynumber

Toate aceste fiiere de mapare sunt pstrate ntr-un format numit
DBM ( un program de baze de date simplu). Sistemul Linux include adesea
i o versiune GNU pentru DBM, numit GDBM.

Dac se folosete ypserv, se recomand utilizarea utilitarului
ypMakefile pentru construirea fiierelor de baze de date pentru NIS. Copiai
fiierul n directorul ce conine fiierele de mapare, redenumii-l ca
Makefile, dup care editai-l n conformitate cu hrile pe care le dorii n
domeniul vostru. Acest lucru este realizat de una dintre primele linii, care
arat astfel:

all: hosts networks protocols rpc services passwd group

ndeprtai intrrile pentru care nu dorii fiiere de mapare. Dac
alegei utilizarea serverului yps, va fi necesar folosirea programului
makedbm pentru construirea indexului din aceste fiiere.

Pentru a seta softul client pe un sistem Linux ( permindu-i s se
conecteze prin ypmaster la un alt server), va trebui pregtit nucleul pentru
folosirea sistemului NIS. Se ncepe cu setarea numelui pentru ypmaster n
cadrul fiierului /etc/yp.conf. n fiier trebuie s apar o linie ca mai jos:

ypserver wizard.tpci.com

Aceast linie indic maina local la care trebuie s ajung ypserver. ( Unele
versiuni de Linux folosesc termenul de server care poate fi nlocuit prin
ypserver n fiierul yp.conf.). Unele sisteme de Linux mai vechi folosesc un
fiier de dou linii /etc/yp.conf care listeaz numele domeniului i serverul
pe linii separate, ca mai jos:

domainname tpci.com

server wizard

20
Setai fiierul yp.conf n mod read pentru a putea fi citit de ctre
utilizatori, grup i alii. Apoi testai instalarea NIS utiliznd comanda ypcat:

ypcat passwd.byname

Aceast comand ar trebui s afieze harta passwd.byname a serverului
master. Dac se obin mesaje de eroare, atunci este posibil ca maina local
s nu fi contactat serverul la distan n mod corect. Dac apare mesajul:

Can't bind to server which serves domain

atunci nseamn c fie avem de a face cu un server deficitar, fie s-a trecut un
nume greit n fiierul /etc/ypconf. Pentru verificarea serverului folosii
comanda ping, pentru a vedea dac conexiunea reea este intact.

n momentul n care ne-am asigurat c aceast conexiune NIS
funcioneaz corect, se poate decide care fiiere s fie primite de la ypmaster
i care s fie pstrate local. n majoritatea cazurilor, se dorete primirea
fiierelor passwd i a celor de grup de la server, ns restul fiierelor pot fi
pstrate local. Ordinea n care maina local i serverul NIS sunt verificai
pentru fiecare tip de fiier de mapare este controlat de ctre fiierul
/etc/nsswitch.conf. Acest fiier arat astfel:

hosts: nis files

networks: nis files

services: files

rpc: files

protocols: files

Fiecare linie ncepe cu numele unui fiier, urmat de cuvinte cheie care
controleaz locul n care sistemul Linux caut fiierul. Iat cteva valori
valide ( care sunt citite i prelucrate n ordine ):

dbm Folosete un fiier n cadrul fiierelor DBM sub /var/dbm
dns Folosete serverul de nume de domeniu
files Folosete fiiere locale
21
nis Folosete serverul NIS

Sunt valabile i multe alte opiuni n unele versiuni mbogite n
proprieti ale NIS, ns acestea sunt primele alegeri ( i ar trebui s fie
ndeajuns pentru majoritatea sistemelor Linux ).

Das könnte Ihnen auch gefallen