SPECIALIZAREA CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI [627342]

UNIVERSITATEA BUCUREȘTI
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ
SPECIALIZAREA CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI

LUCRARE DE LICENȚĂ

COORDONATOR ȘTIINȚIFIC :
Conf. Dr. Mihăiță Drăgan
Absolvent: [anonimizat]
2017

UNIVERSITATEA B UCUREȘTI
FACULTATEA DE MATEMATICĂ ȘI INFORMATICĂ
SPECIALIZAREA CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI

PROGRAM CE SIMULEAZĂ IMPLEMENTAREA
UNEI REȚELE DE CALCULATOARE

COORDONATOR ȘTIINȚIFIC :
Conf. Dr. Mihăiță Drăgan
Absolvent: [anonimizat]
2017

3

CUPRINS

INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. ………. 4
CAPITOLUL1 ………………………….. ………………………….. ………………………….. ………………………….. ………….. 8
NOȚIUNI FUNDAMENT ALE ………………………….. ………………………….. ………………………….. ……………….. 8
1.1 LIMBAJUL C# ………………………….. ………………………….. ………………………….. ………………………….. … 8
1.2 C# vs Java ………………………….. ………………………….. ………………………….. ………………………….. ……… 15
1.3 LIMBAJUL SQL ………………………….. ………………………….. ………………………….. ………………………… 17
1.4 NOSQL VS SQL ………………………….. ………………………….. ………………………….. ………………………….. … 19
CAPITOLUL 2 ………………………….. ………………………….. ………………………….. ………………………….. ……….. 21
PLATFORME HARDWARE ………………………….. ………………………….. ………………………….. ………………… 21
2.1 COMUTATOR -SWITCH ………………………….. ………………………….. ………………………….. …………….. 21
2.2 RUTER ………………………….. ………………………….. ………………………….. ………………………….. …………. 24
CAPITOLUL 3 ………………………….. ………………………….. ………………………… Error! Bookmark not defined.
ADRESARE IPv6 ………………………….. ………………………….. …………………….. Error! Bookmark not defined.
3.1 STRUCTURA IPv6 ………………………….. ………………………….. …………. Error! Bookmark not defined.
3.2 DHCP în IPv6 ………………………….. ………………………….. …………………. Error! Bookmark not defined.
3.3 SECURITATEA ÎN IPv6 ………………………….. ………………………….. …….. Error! Bookmark not defined.
3.3.1 ADRESAREA PRIVATĂ ………………………….. ………………………….. ………………………….. …………. 35
3.3.2 NETWORK ADDRESS TRANSLATION ………………………….. ………………………….. ………………. 36
3.3.3 NEIGHBOR DISCOVERY PROTOCOL ………………………….. ………………………….. ………………… 40
3.4 SECURITATEA LA NIVELUL 2 ………………………….. ………………………….. ………………………….. …….. 42
3.4.1 PROTEJAREA PROTOCOLULUI ICMPv6 ………………………….. ………………………….. …………… 44
3.4.2 PERICOLELE ȘI PRE VENȚIA LOR ÎN DHCPv6 ………………………….. ………………………….. …… 47
3.4.3 SECURIZAREA CU AJUTORUL API ………………………….. ………………………….. …………………… 48
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. ……………… 51

4
INTRODUCERE

Există mai multe teorii privind originea Internetului . Se presupune că acesta a fost
inventat de un britanic într -un buncăr elveț ian, sau de guvernul Statelor Unite ca răspuns la
amenințarea Rusiei, poate chiar de un om de știință francez care a decis să denumea scă rețeaua
lor de calculatoare ―Le Internet‖ .
Adev ărul este însă că Internetul a fost compus dintr -o comunitate imensă de oameni de
știință ce au lucrat la ceva ce știau că este foarte folositor, dar nu au realizat niciodată că va
ajunge atât de mare .
Există două noțiuni diferite : Internetul, reprezint ă un conglomerat de rețele de
calculatoare conectate între ele ; și World Wide Web (WWW) , o metodă de a ușura modul în
care informațiile sunt partajate folosind aceste calculatoare interconectate .
Internetul a fost cel puțin 40 de ani în dezvoltare . O poveste populară, dar greșită, este că
Internetul a fost creeat de guvernul SUA pentru a avea o cale de comunicați e ce ar supraviețuii
într-un război nuclear .
Conform unuia dintre fondator ii primei rețele, ARPAN ET, î n anii ’60, acest prim
experiment cu rețele nu a fost deloc legat de comuncație, ci de a optimiza utilizarea
procesoarelor, sau ―time-sharingul ‖. Acesta presupune că oamenii de știință pot partaja puterea
procesorului . Asta, deoarce, până în anii ’60, nu exista nici o rețea . Existau mașini de ca lcul
masive, denumite mainframe uri, ce se aflau în încăperi speciale și procesau sarcinile câte una pe
rând. Cu time -sharing, aceste mașini de calcul puteau procesa câteva sarcini în același timp, ceea
ce însemn a că puterea putea fi folosită de mai mulți oameni de știință în același timp .
În mod evident, odată ce calculatoarele au început să fie conectate între ele, a apărut
problema eficientizării comunicației între aceste calculatoare . Oameni i de știință de pe
mapamond au î ncercat să rezolve această problemă .
Una dintre aceste soluț ii a fost comutarea de pachete ―packet switching‖ . În Marea
Britanie , a existat o rețea comercială, dezvoltată de National Physical Laboratory, dar care nu a
avut succes deoarece nu a primit fonduri suficiente . Însă ei au fost primii ce au introdus ideea de

5
comutare de pachete, un mod de a evita ―aglomera ția‖ în rețel e prin segmentarea datelor de la
sursă , și reasamblarea lor la destinație .
Oamenii de știință francezi au jucat și ei u n rol în dezvoltarea Internetului . Aceștia lucrau
la o rețea științifică denumită CYCLADES, însă din cauza bugetului, s -au decis să se
concentreze asupra conexiunilor directe, dintre calculatoare, în opoziție față de lucrul cu
calculatoare de poartă ( ―gate way computers‖) . Potrivit unei alte teorii, aceștia sunt primii ce au
inventat denumirea de Internet .
În anii ’70, existau mai multe rețele de calculatoare, însă comunicarea dintre ele nu era
stabilă, deoarece diferite rețele, cu diferite standarde, nu ave au cum să comunice unele cu altele .
Ca răspuns la această problemă a fost introducerea protocolul ui Protocol de control al
transmisiei/Protocol Internet (TCP/IP ). Acesta formează bazele comunicării între oricare rețea cu
oricare rețea, prin etichetarea pac ketelor, și se asigură că, indiferent dacă unele părț i din
informație aleg căi diferite de a ajunge la destinație, acestea pot fi asamblate în ordinea corectă .
La jumătatea anilor ’70, comunicarea dintre rețele, a cunoscut o dezvoltare rapidă, deci
se poa te spune, că atunci a fost cu adevărat începutul Internetului .
Odată rezolvată problema comunicării dintre rețele, partajarea a devenit din ce în ce mai
ușoară . Însă toată această comunicație era bazată strict pe text, ceea ce o făcea greu de asimilat și
procesat de utilizatori . În anii ’80, un britanic, pe numele său, Timothy Berners -Lee, în timp ce
lucra la Organizația Europeană pentru Studiul Nuclear , European Organization for Nuclear
Research (CERN ), a dorit să administreze informațiile oamenilor de ști ință și să le facă mult mai
ușor de a le partaja, ușurând astfel progresul . Acestea au fost posibile prin inventarea
protocolul ui de intercomunicare Hypertext Transfer Protocol (HTTP), limbajul HyperText
Markup Language ( HTML) și mecanismul Uniform Resourc e Locator (URL) . Sir Burners și -a
denumit serviciul web compus din HTTP, limbajul de descriere HTML și severe web, World
Wide Web . Aceste servicii au facut parte din compoziția primului program browser denumit
Netscape . Primul site creat a fost la CERN, în Franța, în August 1991 .
Foarte importantă era și poșta electronică (e -mail). Aceasta a fost dezvoltată pentru
ARPANET în 1972 . Majoritatea traficului în 1976 era reprezentat de e -mail, deoarece mințiile
academice au adoptat foarte repede ideea de „post-it‖ electronic .

6
Odată ce infrastructura inițială a fost creeată și tehnologiile necesare au fost inventate,
forumurile de pe Internet au cunoscut o dezvoltare exponențială , companiile de telefonie au
văzut potențialul comercial al comunicării digitale, brows erele web s -au răspâ ndit rapid, la
începutul aniilor ’90, iar oamenii obișnuiți au descoperit e mailul. După toate acestea, Internetul a
evoluat rapid și constant, și a devenit folosibil de către orice persoană, la mijlocul anilor ’90.
Cu ajutorul Internetu lui, ființele umane pot comunica mult mai rapid și ușor, această
nevoie fiind una de bază . Se poate spune că Internetul a reprezentat un pas uriaș în evoluția
umană . Acesta n u a fost inventat de o persoană anume, ci de o comunitate de oameni de știință
ce au dezvoltat ideile și au rezolvat problemele apărute în dezvoltare, pentr u ca oricine să se
poată folosi de Internet . Astfel Internetul a devenit un mediu optim de comunicare, o posibilitate
de a face cumpărături , un mijloc de a spiona, o unealtă de propa gandă, un spațiu virutal de
cercetare , dar și noi facilități de amuzament .
Astfel, odată cu introducerea calculatorului personal, creșterea numărului de aplicații din
ce în ce mai utile și eficiente , dar ș i odată cu creșterea popularității Internetului, tot mai multe
firme au dorit să își eficientizeze operațiunile de producție . Acest lucru presupune achiziția unor
calculatoare cât mai performante pentru angajații firmei, a unor servere cât mai eficiente pentru a
putea stoca datele companiei într-un mod s igur și de încredere, dar și a unor echipamente de
rețea suficient de competitive pentru a putea face față traficului generat de un număr mare de
utilizatori ce se pot afla într -o intreprindere dezvoltată .
Pentru a putea creea o infrastructură corespunză toare mediului de afaceri în care va
performa, un administrator de rețele trebuie să cunoască în primul rând locația unde firma își va
desfășura activitatea . Acest lucru presupune schițarea planului clădirii, a posibilit ății amenajării
unei camere a server elor, dar și identificarea tuturor impedimentelor ce ar putea îngreuna sau
pune în pericol desfășurarea normală a rețelei .
Câteva exemple de problem ar putea fi: conductele de apă, amplasarea iluminării bazată
pe tuburi fluorescente ce pot interfera cu re țeaua wireless, stabilirea traseului parcurs de
cablurile Ethernet, în mod strategic pentru a evita deteriorarea acestora fizică, sau alterarea
semnalului de către dizpozitivele ce emit radiație electromagnetică (cabluri de alimentare de la
rețeaua electr ică).

7
După identificarea acestori factori, un specialist trebuie să știe numărul total d e
dispozitive terminale, format atât din calculatoarele utilizatorilor, cât și a serverelor folosite de
aceștia , dar și alte dispozitive (imprimante, telefoane etc .). Bazat pe acest număr, specialistul
trebuie să calculeze numărul de ech ipamente de rețea formate din r utere și switchuri necesar
utilizatorilor prezenți , dar trebuie să ia în calcul și o scalare în viitor . După cunoașterea celor doi
factori, specialistul va face o evaluare estimativă a costurilor, astfel încât, la sfârșitul acestei
analize, acesta să poată estima un cost total al echipamentelor folosite în implementarea rețelei .
De asemenea, persoana desemnată trebuie să configureze echipamentele astfel încât să
satisfacă cerințele clienților . Acest lucru presupune distribuirea echipamen telor terminale în
departamente, cărora li se pot aloca diferite clase de adrese IP, configurarea switchurilor pentru a
se putea face această compartimentare la nivel logic al departamentelor, securizarea porturilor
folosite de către ut ilizator, dar și configurarea r uterelor pentru a găsii calea optima dintre rețele .
În mod tradițional, toate etape le ce trebuiesc parcurse se desfășoară în medii de
planificare separate: planific area amplasării dispozitivelor se face fizic, pe un plan arhitectural al
clădirii, iar configurarea dispozitivelor de rețea se face electronic, din linia de comandă a
acestora .
În aceste condiții, aplicația abordată rezolvă această problemă, prin integrar ea intr -un
mediu virtual, atât al planificării amplasării dispozitivelor într -un plan bidimensional (2D) ,
virtual al clădirii , cât și preconfigurarea dispozitivelor cu ajutorul unui formular electronic .
Utilitatea unei astfel de aplicații rezidă din faptu l că, în momentul în care aplicația este
deschisă de către specialist, acesta are posibilitatea de a proiecta un poligon ce reprezintă planul
2D al clădirii . Prin această aplicație pot fi adăugate oricâte noduri dorește, ceea ce permite ca
distanța dintre două n oduri să fie calculată în metri . De asemenea programul va calcula costul
total al cablării, precum și costul total al echipamentelor ce vor face parte din rețea . Pentru
configurarea cu ușurință a echipamentelor de rețea, se pune la dispoziția utiliza torului, un
formular cu detaliile necesare și unice pentru fiecare dispozitiv în parte, ce va genera într -un
fișier text, comenziile ce vor configura echipamentele . Prin acest lucru, un specialist poate lucra
mai rapid, iar un utilizator obișn uit, poate co nfigura o rețea, fără cunoștiințe tehnice detaliate
despre comenziile ce trebuiesc rulate din linia de comandă .

8
CAPITOLUL1
NOȚIUNI FUNDAMENTALE

1.1 LIMBAJUL C#

C# este un limbaj de programare simplu, efficient, ce folose ște aproximativ 80 de cuvinte
cheie, și 12 tipuri de date predefinite . Permite programarea structurată, modulară și orientată
obiectual, conform perceptelor moderne ale programării profesioniste .
Altfel spus , limbajul C# moștenește sintaxa, principiile de programare dar și operatorii,
din C++ . Principiile de bază ale programării obiectuale (ÎNCAPSULARE, MOȘTENIRE,
POLIMORFISM) sunt elemente fundamentale ale programării C# . De asemenea acesta este
direct înrudit cu C, C++ și Java . La baza majorității limbajelor de dezvoltare software prezente
este limbajul C . De asemenea C# construiește peste modelul de obiecte definit în C++ .
C# are o legatură deosebită cu mediul său de rulare, arhitectura .NET. Pe de o parte, C# a
fost dezvoltat pentru crearea codului pentru arhitectura .NET, iar pe de altă parte bibliotecile
utilizate de C# sunt cele ale arhitecturii .NET. Arhitectura .NET definește un mediu de
programare care permite dezvoltarea și execuția aplicațiilor independent de platformă . Aceasta
permite programarea în limbaj mixt și oferă facilităț i de securitate și portabilitate a programelor .
Este disponibilă deocamdată pentru platformele Windows . Limbajul C#, prin arhitectura .NET
definește două entități importante și anume : biblioteca de clase .NET și motorul comun de
programare sau Common Langu age Runtime (CLR) . C# nu are o bibliotecă de clase proprie ci
utilizează direct biblioteca de clase .NET. Atunci când se rulează un program care ef ectuează
operații de intrare -ieșire, cum ar fi afișarea unui text pe ecran, se utilizează biblioteca de clase
.NET.
Motorul comun de programare, Common Language Runtime (CLR) se ocupă de execuția
programelor C# . El asigură de asemenea programarea în limbaj mixt, securitatea și portabilitatea
programelor . Atunci când este compilat un program C#, sau un program în limbaj mixt,

9
rezultatul compilării nu este un cod executabil . În locul acestuia, se produce un fișier care
conține un tip de pseudocod numit limbaj intermediar Intermediate Language sau pe scurt IL .
Acest fiș ier IL poate fi copiat în orice calculator care dispune de .NET CLR . Prin intermediul
unui compilator denumit Just In Time (JIT), motorul comun de pogramare transformă codul
intermediar în cod executabil . Procesul de conversie decurge astfel: atunci când un program
.NET este executat, CLR activează com pilatorul JIT . Compilatorul JIT convertește IL în cod
executabil pe masură ce fiecare parte a programului este necesară . Putem sublinia că , orice
program compilat până în format IL poate rula în orice mediu pentru care CLR este implementat .
În acest fel ar hitectura .NET asigură portabilitatea .
Din principiile programării orientate pe obiecte, unele din cele mai importante concepte
sunt încapsularea, polimorfismul, moștenirea și reutilizarea .
Încapsularea este un mecanism ce combină codul și datele pe care le manipulează,
menținând integritatea acestora față de interacțiunea cu lumea exterioară . Încapsularea mai este
numită și real izarea de ―cutii negre‖, întrucât ascunde funcționalitatea proceselor . Când codul și
datele sunt încapsulate se crează un obiect . În cadrul unui obiect, codul și datele pot fi publice
sau private . Codul și datele private sunt accesibile doar în cadrul aceluiași obiect, în timp ce
codul și datele publice pot fi utilizate și de alte părți ale programului care există în afara acelui
obiect. Unitatea fundamentală de încapsulare este clasa . Clasa specifică, datele și codul care
operează asupra datelor . O clasă definește forma unui obiect, sau altfel spus, o clasă reprezintă o
matriță, iar un obiect reprezintă o instanță a clasei . Mai jos sunt prezentate mai multe tipuri de
încapsulare :
using System;
class Persoana
{ protected string nume; protected string locnas;
private string my_datanas;
public string datanas {
get{return my_datanas;}
set { my_datanas = value; } } }

10
Moștenirea este p rocesul prin care un obiect poate dobândi caracteristicile altui obiect .
Spre exemplu, să considerăm o reptilă . Aceasta are toate caracteristicile unui animal, însă în plus
are și o altă caracteristică, și anume: sângele rece . Să considerăm un șarpe . Acest a este o reptilă
lungă și subțire care nu are picioare . Șarpele are toate caracteristicile unei reptile, însă posedă și
propriile sale caracteristici . Așadar, un șarpe moștenește caracteristicile unei reptile . O reptilă
moștenește caracteristicile unui ani mal. Deci , mecanismul moștenirii este cel care face posibil ca
un obiect să fie o instanță a unui caz mai general . Mai jos este prezentat un model de mo ștenire :
using System;
class Animal
{ public string nume;
public string specie ;
public string subspe cie;
public void showAnimal ()
{ Cons ole.WriteLine("{0} face parte din specia {1} , subspecia
{2}",nume, specie, subspecie );
} }
class Reptila:Animal
{ public string sange ;
public void showReptila ()
{ Console .WriteLine(“ Reptila are {0}",sange );
} }
class Sarpe
{ public static void Main()
{ Reptila r1 = new Reptila ();
Reptila r2 = new Reptila ();
r1.nume = "BOA"; s1 .specie = "SARPE "; s1.subspecie = "CONSTRUCTOR";
s1.sange = "SANGE RECE "; r1.show Animal(); s1 .showReptila ();
Console .WriteLine() ;
r1.nume = "VIPERA"; s1 .specie = "SARPE"; s1 .subspecie = "CAUSINAE";
s1.sange = "SANGE RECE"; r1 .showAnimal(); s1 .showReptila (); }}

11
Polimorfismul este calitatea care permite unei interfețe să aibă acces la un grup generic
de acțiuni . Termenul este deriv at dintr -un cuvânt grecesc având semnificația ―cu mai multe
forme‖ . Spre exemplu, să presupunem că avem nevoie de o rutină care să returneze aria unei
forme geometrice, care poate fi un triunghi, cerc sau trapez . Întrucât ariile celor trei for me se
calcule ază diferit, r utina trebuie sa fie adaptată la datele pe care le primește încât să distingă
despre ce fel de formă este vorba și să returneze rezultatul corect . Conceptul de polimorfism este
exprimat prin sintagma ―o singura interfață mai multe metode‖ .
using System;
class Forma
{ public void Metoda( r)
{ int pi = 3 .14;
Console .WriteLine(“metoda de calcul a ariei pentru cerc ”);
Console .WriteLine(pi*r*r); }
public void Metoda( a,ha)
{ Console .WriteLine(“metoda de calcul a ariei pentru triunghi ”);
Console.WriteLine((a*ha)/2); }
public void Metoda( b,B,h )
{ Console .WriteLine(“metoda de calcul a ariei pentru dreptunghi ”);
Console .WriteLine(((b+B)*h)/2); }
}
static void Main(string[] args)
{ Forma form = new Forma ();
form.Metoda( 2);
form.Metoda( 2,3);
form.Metoda( 2,3,4 );}
Reutilizarea este atunci când este creată o clasă, aceasta poate fi utilizată pentru a crea o
mulțime de obiecte . Prin utilizarea moștenirii și încapsulării clasa amintită poate fi reutiliz ată.
Nu mai este nevoie să testăm codul respective, este suficient să îl utlizăm corect .

12
Un alt concept important este reprezentat de organizatorul de evenimente ( event handler ).
Acest event handler este o rutină software ce procesează acțiuni întemeiate de utilizator precum :
apăsări de taste, mișcarea curs orului, apăsarea prin click a unui buton din interfață, etc . .
Organizatoarele de evenimente funcționează cu ajutorul delegaților (delegates) ce se
poate compara cu o referință (pointer) către o metodă . Această comparație este folositoare,
deoarece un poi nter poate fi transmis ca o valoare . Un delegat, este unic prin semnătura sa, prin
forma pe care o are . Aceasta este formată din tipul returnat și de argumentele de introdus (input) .
De exemplu, dacă creeăm un delegat void MyDelegate ( object sender, Even tArgs e) ,
acesta poate indica numai către metode ce returnează void și pot lua ca parametrii un object și un
EventArgs . Prin urmare, spunem că aceste metode au aceeși semnătură, sau formă , precum
delegatul .
Scopul unor evenimente este acela de a pune în e xecuție o secvență de cod atunci când
ceva se întâmplă în altă parte a sistemului (sau de a organiza evenimentul) . Pentru a putea
procesa aceste evenimente, trebuiesc creeate metode specifice pentru secvențele de cod ce dorim
să se execute . Legătura dintre evenimente și metodele ce trebuiesc executate este făcută de
delegați . Evenimentul trebuie să stocheze intern o listă de pointeri către metode pentru a le apela
atunci când evenimentul se întâmplă . Pentru a putea apela o metodă trebuiesc cunoscuții
parame trii cu care apelăm metoda respectivă . De aceea delegații se folosesc se folosesc ca un
contract între eveniment și toate metodele specifice ce vor fi apelate .
Deci, organizatorul de evenimente implicit EventHandler reprezintă o formă specifică de
metodă ( în cazul nostru, void/obiect – EventArgs) . Atunci când este declarat un eveniment,
specificăm ce formă a metodei (EventHandler) se va invoca, prin specificarea delegatului :
//acest delegat se va folosii pentru a pointa c ătre metode
//ce vor returna un void și vor primii un string
public delegate void MyEventHandler(string sirDeCaractere );
//acest eveniment poate de clanșa oricare metodă ce se conformează
//formatului MyEventHandler pentru a fi apelat
public event MyEventHandler CevaSeÎntâmplă;

13
//aici este s ecvența de cod ce se va executa
//când CevaSeÎntâmplă are loc
void HandleCevaSeÎntâmplă (string sirDeCaractere)
{ //cod ce se va executa }
//creez delegatul (pointerul) către HandleCevaSeÎntâmplă
//și îl adaug la lista de organizatoare de evenimente a lui CevaSeÎntâmplă
myObj .CevaSeÎntâmplă += new EventHandler(HandleCevaSeÎntâmplă) ;

Pentru a putea citii sau modifica un câmp privat în mod securizat, C# implementează
conceptul de proprietăți . O proprietate este un membru ce asigură un mecanism flexibil pent ru a
putea citii, scrie sau procesa valorile dintr -un câmp privat . Pentru utilizatorul unui obiect, o
proprietate apare ca un câmp, deci pentru a putea accesa acea proprietate nu este necasară
schimbarea sintaxei . Din punctul de vedere al implementatorulu i unei clase, o proprietate este
formată din una sau maxim două blocuri de de cod , reprezentând un accesor get și/sau un accesor
set. Blocul responsabil pentru proprietatea get este executat atunci când proprietatea este citită,
iar blocul ce se ocupă de p roprietatea set este executat atunci când unei proprietăți îi este asignată
o nouă valoare . O proprietate ce nu are implementă accesorul set nu poate fi modificată, valoarea
ei rămânând constată pe toată durata rulării programului (read -only). De asemenea, o proprietate
ce nu are blocul set implementat, este considerată numai pentru citire (write -only), iar o
proprietate ce are ambii accesori este considerată atât de citire cât și de scriere (read -write) .
Spre deosebire de câmpuri, proprietățile nu pot fi clasificate ca și variabile . Deci, o
proprietate nu poate fi trimisă ca referință sau ca parametru de ieșire într -o funcție .
Printre utilizările cele mai importante ale proprietăților se enumeră validarea datelor
înaintea implementării acestora, transmite rea informației în mod transparent către o clasă chiar
dacă informațiile sunt sustrase din alte surse (precum bazele de date), pot declanșa anumite
evenimente atunci când datele sunt modificate, precum schimbarea valorilor altor câmpuri când
anumite date se schimbă .
Proprietățile sunt declarate în cadrul clasei, prin specificarea nivelului de acces al
câmpului, urmat de tipul proprietății, numele proprietății și apoi de un bloc de cod ce declară
accesorii get și/sau (după caz) set .

14
Exemplul de mai jos, p roprietatea Luna este declarată astfel încât accesorul set se poate
asigura că luna ia o valoare cuprinsă între 1 și 12 . Proprietatea Luna folosește un câmp privat
pentru a putea urmării valoarea efectivă . Locația reală a datelor unei proprietăți este ades ea
menționată ca fiind o stocare privată (backing store) . Câmpul este marcat ca fiind privat (private)
pentru a se asigura faptul că poate fi schimbat numai prin apelarea acelei proprietăți .
public class Data
{private int luna = 7; // Backing store
publi c int Luna
{get
{ return luna; }
set
{ if ((valoare > 0) && (valoare < 13))
{ luna = valoare; }
}}}
Codul pentru accesorul get este asemănător cu cel al unei metode, în sensul în care,
acesta trebuie să returneze o valoare de tipul proprietății . Execuți a accesorului get este
echivalentă cu citirea valorii dintr -un câmp . Următorul exemplu reprezintă accesorul get ce
returnează valoarea privată a unui câmp:
class Persoana
{ private string nume ; // campul nume
public string Nume ; // proprietatea Nume
{ get
{ return nume ; }}}
Atunci c ând se face referință la o proprietate, accesorul get este invocat pentru a citi
valoarea acelei proprietăți :
Persoana perso ana = new Perso ana();
//…
Syste m.Console .Write(perso ana.Nume); // accesorul get este invocat aici

15
Accesorul set este asem ănător cu o metodă ce returnează tipul void, în sensul că folosește
un parametru implicit denumit value, ce are tipul de dată la fel cu tipul de dată al proprietății .
Exemplul următor un accesor set este adăugat la proprietatea Nume :
class Persoana
{ private string nume ; // campul nume
public string Nume ; // proprietatea Nume
{ get
{ return nume ; }
set
{ nume = valoare; }}}

Pentru a asigna o valoare unei propriet ăți, accesorul set este invocat folosind un argument
ce furnizează noua valoare .
Persoana perso ana = new Perso ana();
persoana .Nume = ―Ion‖; // accesorul set este invocat aici
System .Console .Write(perso ana.Nume); // accesorul get este //invocat aici

1.2 C# vs Java

În mod natural limbajul Java a ap ărut înainte de apariția l imbajului C#, iar C# nu a fost
creeat fără un scop . În dezvoltarea limbajului de programare C#, s -a ținut cont atât de punctele
tari cât și de punctele slabe ale limbajului de programar e Java, la fel cum și Java a învățat din
lecțiile de proiectare ale limbajului Objective -C, care la rândul său a învățat din experiențele
limbajului C .
Relația dintre C# și Java este una complexă , Java derivă la rândul său din C și C++ . La
fel ca Java, C# a fost proiectat pentru a produce cod portabil, dar C# nu derivă din Java, gradul
de relație dintre cele două limbaje de programare poate fi comparat cu gradul de rudenie dintre
―veri‖, av ând același strămoș comun . De asemenea, C# se deosebește de Java pr in mai multe
facilități novatoare, dintre care cele mai importante se referă la suportul încorporat pentru
componente software . Dintre acele elementele ce alcătuiesc componentele software, sunt

16
proprietățile, meto dele și evenimentele, iar ca facilitate importantă este capacitatea de a lucra
într-un mediu cu limbaj mixt .
Dacă Java ar fi fost perfect, atunci nu ar fi fost niciun motiv ca C# să fie creat . De
asemenea, dacă C# ar fi perfect, atunci nu ar mai exista niciun motiv să se fi creeat alt limbaj de
programare . Cu toate acestea, viitorul este neclar, și ambele limbaje, C# și Java sunt limbaje
orientate pe obiecte foarte performante .
În cadrul programului de simulare a implementării unei rețele, în partea de schițare a
planului clădirii, capetele poligonu lui vor fi salvate într -o listă, folosind funcția Point . Acestă
funcție salvează coordonatele unui punct, dacă a fost detectat evenimentul apăsării butonului
stâng al mouseului . Pentru fiecare acțiune în parte (mutare capăt poligon, adăugare capăt, mutare
poligon) există câte un eveniment (event) . Un manipulator de evenimente (event handler) este o
metodă ce conține codul ce se va executa, dacă un eveniment are loc . Un eveniment poate fi
orice fel de acțiune implementată de utilizator : click pe butoane, click pe un obiect, click pe un
anumit buton de pe mouse, sau tastat o anumit ă tastă, etc .
De asemenea, fiecare echipament hardware va fi tratat ca un obiect separat , ce va avea
propria clasă . Pentru a putea face legătura între echipamente, fieca re component ă hardware va fi
un nod într -un graf . Fiecare nod va avea asociat un număr de identificare (ID) și o adresă IP
unică. Pentru a testa conectivitatea între două noduri, se va folosi funcția Ping . Această funcție
verifică dacă există un drum între cele două n oduri, va salva traseul într -un vector și va verifica
fiecare nod cu vecinul său, dacă adresele IP asociate acestora fac parte din același range .
Detaliile legate de obiecte (numărul porturi, adrese IP ,etc .) vor fi stocate și citite din
baza de date . Pentru gestiunea bazei de date se folose ște SGBD -ul Microsoft SQL Server . Acest
sistem de gestiune a bazei de date relaționale este dezvoltat de Microsoft . În calitate de server de
baze de date, acesta este un produs software, cu funcția principală de a stoca și manipula datele
cerute de alte aplicații software ce pot rula fie pe aceeași mașină, fie pe o mașină diferită .

17
1.3 LIMBAJUL SQL

Micorsoft SQL server este un un sistem relațional de gestiune a unei baze de date(
RDBMS) . Acest sistem este bazat p e modelul relațional, dezvoltat de E.F. Codd. Acesta a fost
pentru prima dată prezentat publicului în anul 1974 și se baza pe algebra relațională, calcul
relațional bazat pe tupluri . SQL este un limbaj de definire a datelor, în sensul că programul
primește in strucțiuni referitoare la rezultat, dar nu și la modul în care rezultatul este obținut . Cu
toate acestea există versiuni de SQL ce permit introducerea de elemente procedurale (PL -SQL) .
Microsoft SQL Server a fost pentru prima dată introdus publicului în 1 989 sub forma de
SQL Server 1 .0, iar în prezent versiunea actuală este SQL Server 2016, versiunea 13 .0.1601.5.
De asemenea SQL Server este distribuit în mai multe ediții . Dintre acestea, cele mai populare
sunt edițiile Enterprise, Standard, Web și ediția B usiness Intelligence (BI) .
O bază de date este formată din tabele . Un tabel este o colecție de date înrudite,
organizate pe rânduri și coloane . Totodată tabelul reprezintă cea mai simplă și com ună formă de
a stoca date î ntr-o bază de date relațională .
Fiecare tabel este împărțit în mai multe entități numite coloane . Fiecare cap de coloană
conține o informație specifică fiecărei înregistrări din tabel . O coloana este o entitate verticală
dintr -un tabel ce reprezintă descrierea pentru informațiile stocate în acea coloană :

Figura 1 – exemplu tabel SQL
Limbajul SQL funcționează pe bază de operatori și interogări . Printre cei mai importanț i
operatori se enumără egalitatea (EQUAL) ―=‖, diferen ța (―!=‖ sau ―<>‖), mai mare ca (―>‖), mai
mic ca (―<‖), mai mare sau egal (―>=‖), mai mic sau egal (―<=‖), operatorul între (BETWEEN)
ce se folosește la definirea unor intervale, asemnea (LIKE) folosit pentru a descoperi un model ,
în (IN) pentru a găsi unul sau mai multe rezultate dintr -o mulțime , este (IS) pentru a compar a cu
valoarea NULL și precum (AS) folosit pentru a schimba un nume de câmp atunci când se

18
vizualizează rezultatele . O variabilă NULL este o variabilă specială, ce specifică faptul că într -un
câmp anume, nu se află nicio valoare . NULL este diferit de 0, sau de un câmp ce conține spații,
acestea la rândul lor reprezentând valori .
Pentru a putea creea tabelele este nevoie de anumite reguli, constrângeri, specifice
domeniului în care baza de date va fi implementată . Acestea au rolul de a limita tipurile de date
ce sunt introduse în baza de date (ex .: evitarea introducerii de litere într-un câmp ce necesită
numere) . De asemenea are rol de a asigura acuaratețea și siguranța datelor din cadrul bazei de
date. Printre cele mai importante constrângeri se află cheia pr imara (PRIMARY KEY) ce
reprezintă un identificator unic al unui tuplu în cadrul bazei de date, cheia străină (FOREIGN
KEY) ce reprezintă un identificator unic aflat într -un alt tabel din baza de date și constrângerea
de unicitate (UNIQUE) ce se asigură că nu există duplicate .
CREATE TABLE Persons
( PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255) NOT NULL,
PRIMARY KEY (ID));
Pentru a avea o bază de date organizată este necesar ca aceasta să fie n ormalizată .
Normalizarea constă în eliminarea datelor redundate (stocarea aceleași informații în mai multe
tabele) și în asigurarea că dependințele dintre date au sens . În principal există 3 tipuri de forme
normale .
Prima formă normală (1NF) exclude posibi litatea existenței grupurilor repetitive cerând
ca fiecare câmă într -o bază de date să cuprindă numai o valoarea atomică . De asemnea 1NF cere
și ca fiecare înregistrare să fie definită astfel încât să fie identificată în mod unic prin intermediul
unei chei primare .
A doua formă normală (2NF) cere ca toate elementele unei tabele să fie dependente
funcțional de totalitatea cheii primare . Dacă unul sau mai multe elemente sunt dependente

19
funcțional numai de o parte a cheii primare, atunci trebuie sa fie separat e în tabele diferite . Dacă
tabela are o cheie primară formată din numai un atribut atunci este automat în 2NF .
A treia fomră normală (3NF) presupune ca toate atributele non -chei ale unei relații să
depindă numai de chei canditate ale acelei relații . Toate atributele non -cheie trebuie să fie mutual
independente .
Din cadrul interogărilor în limbajul SQL, cea mai folosită operație este aceea de a selecta
(SELECT) . Select este folosit pentru a putea sustrage informații dintr -unul sau mai multe tabele
sau expre sii. Această operație are rol de a vizualiza (VIEW), și rularea ei nu afectează datele din
baza de date . Operațiunea SELECT este, de cele mai multe ori acompaniată de clauze precum
FROM, ce indică tabelul, sau tabelele de unde se va sustrage informația, JO IN, ce specifică felul
în care două sau mai multe tabele se vor uni . Clauza WHERE este un predicat de comparație,
folosit ca o restricție asupra afișării rezultatelor .
SELECT Orders .OrderID, Customers .CustomerName, Orders .OrderDate
FROM Orders
WHERE Custo merName like „A%‟
INNER JOIN Customers
ON Orders .CustomerID=Customers .CustomerID;

1.4 NOSQL VS SQL

NOSQL reprezintă bazele de date ce conțin informații nestructurate . Acest tip de
informație nu se poate stoca într -un tabel, deoarece fie nu se știe ce fel de informație trebuie
stocată, fie informația este atât de multă încât depășește capabilitățile unui SGBD relațional .
Tipurile de date NOSQL pot conține informații de la senzori, setări personale dintr -o pagină web,
fotografii, informații legate de locați a GPS etc . Deoarece informațiile sunt atât de variate, acestea
nu au cum să fie procesate și stocate în tabele . Totuși, pentru a putea funcționa un SGBD
NOSQL nu este orientat pe tabele, ci este orientat pe documente . Astfel, informațiile diverse pot
fi stocate foarte ușor într -un document, nefiind necesară categorizarea informațiilor în tabele și

20
câmpuri . De obicei aceste documente sunt de tip JSON, ce stochează informația în format de
tipul cheie -valoare (ex.: ―name‖:‖Jhon‖) .
De regul ă bazele de date NOS QL se folosesc în aplicațiile cu informații dinamice și
masive,cum ar fi Internet of things (IoT), aplicațiile sociale (Facebook), jocurile pe calculator, iar
bazele de date structurate se folosesc pentru aplicațiile web, enterprise, mobile etc .
În cadrul aplicației am folosit o bază de date SQL relațională deoarece se pretează cel mai
bine la tipurile de informații ce vor fi stocate .
Aceasta stochează informații despre dispozitivele folosite : tipul acestora (ruter, pc, etc .),
numărul de porturi, lungimea cablurilor, etc .

21
CAPITOLUL 2
PLATFORME HARDWARE

2.1 COMUTATOR -SWITCH

Un switch, cunoscut și ca o punte MAC (MAC bridge) este un dispozitiv de rețele de
calculatoare ce conectează mai multe echipamente la o rețea de calculatoare loc ală (local area
netowork – LAN), folosind comutarea pachetelor (packet switching) . Strămoșul switchului a fost
hubul, ce trimitea datele în mod broadcast (unul la toți) . Spre deosebire de un hub, un switch,
dacă primește un pachet de tipul unul către toți (broadcast) transmite date pe toate porturile
active, mai puțin pe portul pe care a primit pachetul . Altfel, dacă switchul primește un pachet
către alt dispozitiv, acesta va transmite strict pe portul pe care este învățată adresa MAC a acelui
dispozitiv . În cazul în care nu cunoaște adresa MAC destinație, switchul va transmite broadcast .
De asemenea, un switch este un dispozitiv multiport, ce folosește adresele fizice (MAC)
pentru a putea procesa, și transmite mai departe (forward) datele, la nivelul legă turilor de date
(nivelul 2 din stiva de protocoale Open Systems Interconnection – OSI) . Unele switchuri, cele de
nivel 3 pot procesa date de un nivel mai înalt, cel de rețea (nivel 3), prin încorporarea
funcționalității de rutare, ce se folosește de adres area IP (Internet Protocol) pentru a executa
comutarea pachetelor . Aceste switchuri sunt cunoscute ca switchuri layer -3, sau switchuri multi –
nivel (multilayer) .
Un switch conectează echipamente la o rețea LAN, atât la nivel fizic cât și logic . Fiecare
dispozitiv dintr -o rețea are atașat din fabrică o adresă fizica, numită Controlul Accesului la
Mediu – (Media Access Control (MAC), ce permite unui switch să comute datele numai către
echipamentele ce trebuie să primească datele respective . De asemenea, un swi tch mărește
domeniul de broadcast și limitează numărul domeniilor de coliziune .
Un domeniu de broadcast mărit înseamnă că mai multe dispozitive vor primi mesajele
generate de un dispozitiv pentru toate celelalte dispozitive din LAN; un număr mare de domen ii
de coliziune înseamnă că fiecare dispozitiv din rețea va avea legătura sa proprie către switch,
nefiind nevoit să împartă acea lățime de bandă cu niciun alt dispozitiv . Acest tip de legătură este
denumită ―full duplex ‖. Legăturile de tip full duplex, pe rmit unui switch să primească dar și să

22
transmită date în același timp . Celălalt tip de legătură se numește half -duplex, și presupune că
fiecare port dintr -un switch poate fie să primească, fie să transmită date la un moment de timp .
Acest tip de legătură este considerat scos din uz deoarece se produceau coliziuni pe mediul de
transmisie . Aceste coliziuni aveau loc în momentul în care, două sau mai multe dispozitive de la
capetele mediului de transmisie, emiteau în același timp . Pentru a evita coliziunea pa chetelor,
fiecare dispozitiv aștepa un timp ales la întâmplare (back -of) și încercă retransmisia datelor .
Metoda ce se ocupă de evitarea coliziunilor poartă numele de Carrier Sense Multiple Access with
Collision Detection (CSMA/CD) .
Un switch, ce operează la nivelul legăturilor de date (nivelul 2) poate interconecta un
anumit număr de dispozitive la rețeaua locală, în funcție de configurația aleasă . Acesta învață
adresele MAC ale dispozitivelor ce se conectează pe fiecare port fizic a acestuia . Pentru a pu tea
interconecta eficient mai și redundant mai multe dispozitive a fost introdus protocolul spanning
tree protocol . Acest protocol dezactivează anumite legături de date, astfel încât, rețeaua locală să
aibă forma unui arbore fără bucle ( loop-free). Această tehnică asigură eliminarea furtunilor de
broadcast (broadcast storms), a pachetelor duplicate (duplicated packets) și a instabilității tabelei
MAC (MAC database instability) .
Primul protocol de spanning tree a fost introdus de către Institue of Electrical and
Electronics Engineers (IEEE) și era denumit 802 .1D. Acest protocol era foarte lent, cu un timp
de răspuns de 30 de secunde până la realizarea arborelui rețelei . În aceste condiții au fost cputate
noi soluții și a fost realizat un protocol implementat de IEEE denumit rapid spanning tree
protocol 802 .1W. Cel mai nou standard în industrie este shortest path bridging (IEEE 802 .1aq) și
înglobează toate standardele mai vechi (IEEE 802 .1D, IEEE 802 .1W, IEEE 802 .1) ce blocau
toate căile de comunicație redundan te mai puțin o cale alternativă . Protocolul 802 .1W permite ca
toate căile de comunicație să fie accesibile, astfel, teoretic, sunt posibile până la 16 milioane de
conexiuni virtuale, o convergență mai rapidă și redundanță între toate dispozitivele ce fac parte
din LAN .
Odată ce un switch învăță adresele MAC a nodurilor conectate la acesta, folosește una
din cele patru metode de forward .
Metoda I presupune încărcarea într -o coadă de așteptare și verificarea cadrelor
(frameurilor) de erori, înaintea transm iterii acestora către destinație . Un frame este mai întâi
primit în întregime și mai apoi este trimis mai departe către destinație . Această metodă poartă
numele de store and forward (stochează și trimite) .

23
Metoda II se numește cut throug (treci prin) . Un s witch începe să trimită informația mai
departe către destinație, imediat cum află adresa destinație din header, chiar dacă transmisia nu a
fost terminată . Switch ul va reține în coada de așteptare numai primi 6 bytes, ce conțin adresa
MAC a destinației . Apoi caută această adresă MAC în tabela sa de comutare, determină portul de
ieșire, și începe imediat operațiunea de comutare . Cu această metodă nu există nicio metodă de
verificare a integrității informației . Această metodă însă este mult mai rapidă față de precedenta .
Metoda III se numește fără fragmentare (fragment free) și este o formă modificată a
metodei cut trough . Un switch așteaptă primirea fereastrei de coliziune (64 bytes) apoi comută
datele . Asta presupune că fiecare frame este verificat să nu fie fragmentat . Acestă metodă, prin
asigurarea lipsei de fragmentare, oferă o verificare a erorilor mult mai bună față de cut trough,
fără a crește în vreun fel latența . Această metodă este cel mai bine folosită în medii le de înaltă
performanță în care latența de tipul proces către proces trebuie să fie mai mică de 10
microsecunde .
Metoda IV de comutare se numește comutare adaptivă (adaptive switching), și prespune
operarea switchului în modul cut -trough, dar dacă numărul de erori de pe un port depășește un
anumit prag, acel port va rula în modul store and forward . Acest tip de comutare optimizează
performanțele switchului prin oferirea de viteză folosind cut trough și verificarea erorilor și
implicit creșterea informației tranzitate, folosind store and forward . Această metodă acționează la
nivel de port .
La nivelul 3 din stiva de protocoale OSI, un switch poate prelua majoritatea funcțiilor
unui ruter . O capabilitate foarte folosită, la nivelul 3 al unui switch multilayer este
conștientizarea IP -urilor multicast folosind investigarea (snooping) Internet Group Management
Protocol (IGMP) . IGM P este un protocol de comuncare folosit de hosturi și routerele adiacente
în rețelele IPV4 pentru a stabilii grupuri de multicast . IGMP este folosit pentru aplicații de tipul
unul la mai mulți (ex .: jocuri multi -jucători, streaming video etc .) și permite folosirea eficientă a
resurselor . IGMP snooping, este folosit de un switch multilayer pentru a creea o hartă a tuturor
comunicațiilor de tip multicast . Astfel, switchul va pute a filtra și controla care porturi vor primii
traficul specific multicast .
Spre exemplu, pentru switchurile de nivel 3, CISCO a dezvoltat protocolul numit CISCO
Express Forwarding (CEF) . CEF optimizează performanțele și scalabilitatea rețelei folosind
șablo anele (patterns) pentru a adapta viteza de comutare . CEF folosește mai puține resurse CPU,
permițând astfel, o criptare mai bună a datelor, dar și un control riguros al calității.

24
2.2 RUTER

Un ruter este un dispozitiv de rețea ce are ca funcție principală interconectarea mai
multor rețele LAN . Primele tipuri de rutere au fost implementate în 1972 în cadrul proiectului
ARPANET și aveau denumirea de porți de ieșire (gateways) . Aceste dispozitive erau diferite de
un switch prin faptul că puteau interconecta r ețele de tipuri diferite (linii seriale cu rețele LAN) .
Primele rutere cu adevărat aliniate la standardul IP au fost dezvoltate de Virginia Strazisar, în
cadrul proiectului DARPA, între anii 1975 -1976 . Primele rutere multiprotocol au fost dezvoltate
la Mas sachusetts Institute of Technology – MIT și Standford în 1981, și au fost extrem de
importante în dezvoltarea Internetului de astăzi (în prezent toate ruterele folosesc stiva de
protcoale TCP/IP) . În anii 1980, mini calculatoarele erau folosite pe post de rutere, iar în prezent,
ruterele sunt niște calculatoare cu un hardware specializat pentru a putea face rutarea cât mai
rapid, și de a facilita funcții precum criptarea IPsec .
Un ruter este considerat un dispozitiv de nivel 3 deoarece este bazat pe dirij area traficului
IP, ce se găsește la nivelul 3 . Atunci când un ruter primește un pachet, identifică IP -ul destinație,
verifică în tabela sa de rut are dacă există o rută către IP ul destinație . Odată ce se găsește o
asemănare (match), pachetul este încapsula t într -un cadru (frame) de nivel 2 pentru expedierea
acestuia pe int erfața de ieșire asociată cu IP ul destinație . În mod normal, un ruter nu verifică
informația transmisă, ci numai adresarea IP, pentru a putea lua o decizie .
Tabela de rutare conține infor mații derivate din mai multe surse, precum rute implicite,
rute statice sau rute dinamice . O rută implicită este folosită pentru a ruta tot traficul ce nu are
IPul destinație în tabela de rutare . Acest tip de rută este des întâlnită în rețelele mici, în sp ecial
cele de casă și în cele ale afacerilor de dimensiuni mici . Pentru o securitate sporită, ruta default
se configurează manual . Ruta statică este o rută configurată manual de către administratorul de
rețea, are distanța administrativă 1, considerată ce a mai de încredere rută, după cele direct
conectate . Spre deosebire de ruta implicită, ruta statică se adreseză unei singure adrese de rețea .
Ultimul tip de adresare este cel dinamic, și presupune învățarea rutelor folosind diferite
protocoale de rutare . Există o multitudine de protocoale de rutare dinamice, de tipul Interior
Gateway și Exterior Gateway, însă toate protocoalele dinamice se împart în două mari categorii :
protocoale link -state(starea legăturilor și protocoale distance -vector (distață -orient are).

25
Protocoalele de tipul distance -vector, cunoscute și ca rutare prin zvon (routing by rumor)
își împărtășesc informațiile de rutare cu vecinii lor direct conectați . Prin vecinii se înțeleg alte
rutere, ce sunt configurate să ruleze același protocol de rutare dinamică și care au o legătură de
comunicație comună . În această familie de protocoale, ruterul este conștient numai de adresele
de rețea direct conectate la el și de adresele de rețea îndepărtate învățate de la vecinii săi . Spre
deosebire de ruter ele ce folosesc protocoale din familia link -state, ruterele ce foloses rutarea
distance -vector nu sunt conștiente de topologia rețelei . Unele protocoale distance -vector transmit
periodic actualizări . Spre exemplu, RIPv1 transmite către toți vecinii săi act ualizări la 30 de
secunde iar EIGRP transmite actualizări numai atunci când acestea sunt necesare . EIGRP
folosește algoritmul Diffusing Update Algorithm (DUAL) pentru a calcula cea mai bună cale
către o destinație, pe când RIP folosește algoritmul Bellman -Ford . De asemenea, protocoalele de
tipul distance -vector sunt mai lente (converg) mai greu față de protocoalele link -state.
Protocoalele ce fac parte din familia distance -vector sunt RIP (Routing Information Protocol) cu
distanța administrativă 120,IGRP, EIGRP (Enhacend Interior Gateway Protocol) cu distanța
administrativă 90 .
Protocoalele de tipul link -state construiesc un graf al conectivității în rețea, ce arată care
noduri sunt conectate între ele . Apoi fiecare nod calculează din punctul său de vedere distanța
cea mai scurtă către oricare alt nod din graf . Colecția de drumuri cea mai bună către oricare
destinație reprezintă tabela de rutare a acelui ruter . Aceste tipuri de protocoale mai sunt
cunoscute și ca ce mai scurtă cale prima (shortest path firs t -SPF) și folosesc algoritmul lui
Dijkstra pentru a calcula cel mai scurt drum . Protocoalele ce fac parte din familia link -state sunt
OSPF (Open Shortest Path First) cu distanța administrativă 110 și IS -IS (Intermediate -System to
Intermediate -System) cu distanța administrativă 115 .
Dintre protocoalele amintite mai sus, cele mai importante sunt EIGRP, RIP și OSPF .
Trebuie de asemenea subliniat faptul că nu există protoco lul perfect . Cele trei protocoale au
avantaje și dezavantaje și se aplică cel mai bine pentru diferite tipuri de topologii .
Protocolul de rutare OSPF, având distanța administrativă de 110 este un protocol bazat pe
cea mai scurtă distanță către destinație . OSPF este CIDR (fară clasă) – suportă VLSM (virtual
length subnet mask), este eficient – schimbările de topologie sunt propagate numai atunci când
ceva se schimbă și nu periodic, converge foarte repede, este scalabil – ruterele pot fi grupate în
arii și e ste securizat – suportă autentificare Message Digest 5 (MD5) .

26
Pentru a putea scala, teoretic la infinit, OSPF implementează conceptul de arii . Aria cu
funcție de coloană vertebrală (backbone) va avea întotdeauna numărul de identificare 0 . Restul
de arii vor putea comunica între ele, dar numai prin aria 0 .
Dacă se folosește numai o arie, atunci ruterele pot avea funcție de Designated Router
(DR), Backup Designated Router (BDR) sau DROther . DR este ales fie pe baza ID -ului setat de
către administratorul de rețea fie prin setarea celei mai mari distanțe administrative . Dacă
prioritățile sunt egale, criteriul eliminatoriu este bazat pe cea mai mare adresă IP setată pe
interfața loopback, iar ca ultim obiect de departajare este cea mai mare adresă IP setată pe
interfețe .
Dacă se folosesc mai multe arii, atunci ruterele pot lua mai multe roluri în funcție de
poziționarea acestora în cadrul ariilor . Ruterele Internal sunt acele rutere ce au toate interfețele
într-o singură arie, Backbone sunt ruterele ce au cel puțin o interfață în aria 0, Area Border
Router (ABR) sunt ruterele ce au cel puțin două interfețe în două arii diferite și Autonomous
System Boundary Router (ASBR) ce fac legătura între domeniul OSFP și alte protocoale de
rutare (injectează prefixe extern e prin redistribuire) . Dintre cele 3 protocoale, OSPF este cel mai
des implementat .
Pe lângă funcția de bază a unui ruter, de a direcționa traficul pe calea cea mai optimă
către destinație, acesta poate avea și rol de server DHCP (Dynamic Host Configurat ion
Protocol), rol de Firewall, plin implementarea listelor de acces (ACL) .

27
CAPITOLUL 3
ADRESARE IPv6

În luna Februarie a anului 2011 , IANA, autoritatea ce se ocupă cu asignarea blocurilor
de adresare IPv4, a alocat ultimul bl oc de adrese în Ameri ca de Nord, după care a colaborat cu 5
registre regionale de Internet (RIR) pentru a recupera blocurile de adresare nefolosite. Din cauza
acestei crize iminente de adrese publice disponibile, tot mai multe companii au început să adopte
IPv6 pentru a avea c onectivitate cu lumea largă.

3.1 STRUCTURA IPv6

Protocolul ―Internet Protocol version 6 ‖ (IPv6) lucrează la același nivel din stiva de
protocoale TCP/IP ca IPv4, nivelul Internet, sau în stiva de protocoale OSI, la cel de -al 3-lea
nivel (rețea ). Asemănă tor cu IPv4, IPv6 este un protocol datagramă fără conexiuni prealabil
stabilite, nesigur ce are ca prim scop adresarea și rutarea pachetelor între hosturi. Faptul că IPv6
nu are conexiuni stabilite în prealabil înseamnă că livrarea pachetelor către destina ție nu este
garantată. De livrarea la destinație, corectarea erorilor și recuperarea pachetelor pierdute se
ocupă un alt protocol dintr -un strat superior din stiva de protocoale TCP/IP, cum ar fi
Transmission Control Protocol (TCP).
Adresele IPv6 sunt scr ise ca hexte ți cu două puncte (:) între ele , iar fiecare valoare de 16
biți este afișată în hexazecimal, folosind numere și litere de la A la F. Un exemplu de adresa IPv6
este 2001:DB8:ACAD:1:93A:9F:EFE5:246C. Nu este neobi șnuit ca adresele IPv6 să aibă
secvențe consecutive de zerouri. În astfel de cazuri, exact una dintre acele secvente poate fi
eliminată. Astfel 2001:db8:31:0:0:0:0:1 devine 2001:db8:31::1 , iar adresa loopback IPv6
0:0:0:0:0:0:0:1 devine ::1.

28

Figura 2 – Amplasarea protocolului IPv6 în stiva de protocoale OSI, TCP/IP [2]
Un pachet IPv6 este format dintr -un header IPv6 și de un payload IPv6. Payloadul IPv6
este format din 0 sau mai multe headere de extensie IPv6 și un alt protocol dintr -un strat
superior, cum ar fi In ternet Control Message Protocol version 6 (ICMPv6), un segment TCP, un
mesaj UDP.

Figura 3 – Structura unui pachet IPv6[2]
Există mai multe tipuri de adresări IPv6, diferite față de cele din IPv4 :
 Link local – sunt folosite pentru a comunica doar local, și nu pot fi rutate în Internet . Aceste
adrese încep cu FE80 și sunt folosite pentru funcțiile de administrare internă a IPv6. (Ex:
FE80::/10)

 Site local – reprezint ă echivalentul spațiului de adrese private RFC 1918 în IPv4. Totuși,
IETF a găsit situația în care diferite organizații folosesc același spațiu de adresare, lucru ce
nu este de dorit; astfel au creat adrese ―unique site local ‖ unde fiecare primește un bloc
selectat aleator de la spațiul de adrese începând cu FD. (Ex: FD00::/8)

29
 Multicas t – reprezintă un grup de adrese, deci fiecare pachet trimis către o adresă multicast
este primită de toți membrii grupului. Adresele multicast încep cu FF și pot fi folosite pentru
aplicații unde mai multe hosturi trebuie să primească aceeași informație î n același timp cum
ar fi transmisii video în direct și de asemenea pentru configurarea automata și descoperire de
rețele (autoconfiguration și discovery). (Ex: FFX1::/16 echivalentul adresei 127.0.0.1/8 din
IPv4)

3.2 DHCP în IPv6

Printre deosebirile ce s e regăsesc dintre IPv4 și IPv6, adresarea dinamică reprezintă una
din cele mai mari diferențe de implementare dintre cele două protocoale. Protocolul IPv4,
necesită un server DHCP pentru a furniza adrese în mod dinamic hosturilor. Acest tip de
implementare nu funcționează însă foarte bine dacă în rețea există mai mult de un server și oferă
informații conflictuale. În implementarea IPv6, serverul DHCP este în mare măsură inutil,
datorită configurării stateless autoconfiguration. Acesta este un mechanism prin care permite
ruterlor să trimită un mesaj de tipul router advertisments (RA) către hosturile ce doresc să obțină
o adresă IPv6. Un mesaj RA conține primii 64 de biți au unei adrese IPv6 iar hostul generează
restul de 64 de biți pentru a forma o adresă com pletă.
În mod uzual, ultimii 64 de biți ai unei adrese IPv6 sunt generați pornind de la adresa
MAC, prin adăugarea biților FF: EE. Astfel, o adres ă Ethernet MAC 7A -79-19-9B-D0-2F devine
7A79 :19FF:FE9B:D02F, ca ultimă parte a unei adrese IPv6, ce identifică interfața, (interface
identifier). Astfel, dacă toate ruterele dintr -o rețea trimit acelați prefix pentru primii 64 de biți,
hostul va configura de fiecare dată aceeași ultimi 64 de biți pentru el înuși. Astfel, se
automatizează procesul de alocare dinami că a adresării, și eliminarea serverului DHCP, reducând
astfel costurile.
O altă modalitate ca un host să își genereze o adresă IPv6, este de a genera aleator ultimii
64 de biți, ca adresa MAC să rămână ascunsă. Windows foloseș te acest tip de adrese pent ru
―outgoing sessions ‖ pentru a îmbunătăți siguranț a. Alte sisteme de operare pot de asemenea
genera aceste adrese temporare (o nouă adresă este generată la fiecare 24 de ore) , dar nu fac asta
implicit .

30

Figura 4 – tipuri de generare a adresei IPv6 pent ru hosturi. [3]
3.3 Securitatea în IPv6

Există multe controverse în ceea ce privește securitatea în rețelele ce implementează
IPv6. Datorită dimensiunii foarte mari a spațiu lui de adrese, scanarea aleator e a unui atacator, în
căutarea unor sis teme vulnerabile este foarte ineficientă. Spre exemplu, dacă un milliard de
hosturi infectatea ar scana un milliard de adrese IPv6 pe secundă, va dura mai mult de o sută de
milioane de ani doar să scaneze spațiul adreselor IPv6 alocate ISP -iștilor (spațiu ce reprezintă
0.01% din spațiul total disponibil). Scanările focusate către un host cunoscut încă sunt posibile,
așa că, măsurile de securitate implementate în IPv4 rămân necesare.
O altă discuție legată de securitate este aceea că, prin faptul că NAT de vine inutil în IPv6,
acesta nu ar avea același nivel d e securitate ca IPv4. Lipsa NAT ului permite interogarea oricărei
adrese IP de către oricare alt host, aflat în Internet. Pentru a compensa acest fapt, IPv6
implementează IPsec nativ. IPsec criptează fie care pachet individual, astfel încât, întreg traficul
IP este securizat, spre deosebire de SSL ce funcționează doar peste protocolul TCP. Însă, încă
este greu de implementat IPsec în aplicații ce comunică peste rețea. De asemenea, pentru a se
asigura secur itatea transmisiei, este nevoie de achiziționarea unor noi echipamente de rețea, cu o
putere de procesare mai mare, pentru a putea gestiona traficul IPsec.
Pentru o mai bună securitate în IPv6, protocolul ARP din IPv4 a fost înlocuit cu
protocolul Neighbo ur Discovery Protocol (NDP). În IPv4, adresele de nivel 2 nu sunt legate

31
static de adresele de nivel 3. Conexiunea dintre cele două adrese se executa implementând ARP,
ce cree a o corelație între adresele de nivel 2 și adresele de nivel 3. Din această cauză ARP este
predispus atacurilor de tipul ARP Spoofing. Acest atac are ca scop asocierea adresei de nivel 2 a
unui atacator cu adresa de nivel 3 a unui host din rețea. De obicei acel host este un ―default –
gateway ‖, prin care poate analiza, modifica sau bloca traficul către o anumită destinație. În IPv6
această problemă nu mai există, deoarece porțiunea ce identifică interfața (Interface Identifier –
ID) a unei adrese de nivel 3 este direct rezultată din adresa statica de nivel 2 a unui dispozitiv.
Această adr esă este apoi folosită la nivel global, în întreaga rețea IPv6. Totuși, dacă adresa de
nivel 2 este mascată prin generarea de numere aleatoare, protocolul Neighbour Discovery (ND) a
fost implementat pentru a înlocuii ARP, dar pentru a avea aceleași funcții ,ce prezintă mai multă
siguranță .
Majoritatea organiza țiilor, pentru securizare , folosesc modelul perimetrului de securitate.
Filozofia ce stă la baza acestei idei este aceea de a creea o fortăreață cât mai sigură în jurul
organizației, pentru a prevenii t oate atacurile. Acest perimetru este prima linie de apărare
împotriva atacurilor externe. Interiorul perimetrului poate sau nu să fie fortificat, dar ca regulă
generală, aplicațiile interne folosite de companie, sunt libere să comunice, fără protecții inte rne
securizate. Cu toate acestea, perimetrul de securitate nu este suficient pentru a putea securiza o
rețea și face parte dintr -o multitudine de tehnici de securizare.
Odată cu introducerea zonelor demilitarizate (DMZ) și a rețelelor afacere -către -afacere ,
business -to-business (B2B), perimetrul de securitate este din ce în ce mai vag definit. Astfel,
perimetrul de securitate este tot mai slab, cu introducerea lucrătorilor de la distanță (remote
workers), făcând perimetrul și mai permitiv . Din aceste cauze, perimetrul de securitate nu mai
funcționează eficient, iar abordarea corectă este aceea a unei securizări bazate pe straturi.
Companiile ce și -au pus toată încrederea într -un perimetru de securitate slăbit, de sine stătător au
fost victime a atacurilor de timp malware, spyware , dar și cryptolocker.
Pe măsură ce organizațiile vor migra către IPv6, perimetrul de securitate va adăuga
funcționalități specifice pentru IPv6, pe lânge politicile de securitate deja implementate pentru
IPv4. Politicile de securita te implementate pentru IPv4 ale unei organizații pot fi folosite pentru a
determina ce tip de trafic IPv6 trebuie acceptat sau respins. Aceste politici pot rămâne similare
deoarece funcțiile din nivelul transport folosite de TCP și UDP funcționează similar pentru
ambele versiuni de protocoale ―IP‖.

32
Pentru o granularitate mai mare și o eficiență crescută, politicile de securitate pentru IPv6
se construiesc separat, dar bazate pe modul de funcționare a politicilor pentru IPv4. Astfel, zidul
de foc (firewall) pentru IPv6 va putea comunica numai cu aplicațiile ce rulează peste IPv6. Un
alt avantaj al separarii firwallurilor este reducerea impactului unui firwall IPv6 asupra unui
firewall IPv4 prin faptul că nu mai sunt necesare actualizări software scumpe pentr u firewallul
IPv4 și mentenanța pentru firewallul IPv6 este mai ușoară momentan, deoarece există mai puțin
trafic IPv6 față de IPv4. Cu toate acestea, toate firwallurile trebuiesc construite pe principiul că
ceea ce nu este concret permis, este respins.
În prezent, organizațiile folosesc firewallul IPv4 pentru a bloca adresele ilegale și pentru
a prevenii adresele false (spoofed). La fel ca în IPv4, firwallul pentru IPv6 trebuie să identifice
adresele spoofed și să identifice și să blocheze adresele publice ce nu au fost încă alocate. Acest
tip de politică de securitate este mai simplu de implementat pentru IPv6 față de IPv4, iar regula
implicită să fie respingerea unui pachet dacă adresa sursă sau adresa destinație nu este validă.
Lista adreselor IPv6 valid e ce trebuiesc permise este scurtă și ușor de administrat, datorită
caracteristicei ierarhice a adresării IPv6. Lista următoare prezintă blocurile ce au fost alocate de
Internet Assigned Numbers Authority (IANA) în 2008 și organizațiile cărora au fost aloc ate:
• 2001::/16 — adrese unicast IPv6
• 2002::/16 — tunelare 6 to 4
• 2003::/18 — Réseaux IP Européens (Rețele IP Europene) RIPE Network Coordination
Center (NCC)
• 2400::/12 — Asia-Pacific Networkd Infromation Centre (APNIC)
• 2600::/12 — American Registry for Internet Numbers ARIN (Deparamentul de apărare)
• 2610::/23 — ARIN
• 2620::/23 — ARIN
• 2800::/12 — Latin America and Caribbean Network Information Centre (LACNIC)
• 2A00::/12 — RIPE NCC
• 2C00::/12 — African Network Inf ormation Center (AfriNIC)

33
Următoarea listă prezintă adresele IPv6 ce trebuiesc blocate indiferent de sursa sau
destinația acestora.
Pachete ce vor fi blocate Adresele
Blochează adresa nespecificată ::
Blochează adresa loopback ::1
Blochează adrese le compatibile IPv4 ::/96
Blochează adresele mapate IPv4 ::ffff:0.0.0.0/96
::/8
Blochează pachetele tunelate generate automat
folosind adresele compatibile IPv4 ::0.0.0.0/96
Blochează celelalte adrese compatibile ::224.0.0.0./100
::127.0.0.0/104
::0.0.0 .0/104
::255.0.0.0/104
Blochează pachetele false 6 to 4 2002:7f00::/24
2002:0000::/24
2002:ff00::/24
2002:0a00::/24
2002:ac10::/28
2002:c0a8::/32
Blochează adresele link -local FE80::/10
Blochează adresele site -local (scoase din uz) FEC0::/10
Blochează pachetele unique -local FC00::/7
Blochează pachetele multicast (doar ca sursa) FF00::/8
Blochează adresele folosite pentru
documentare 2001:DB8::/32
Blochează adresele 6Bone (scoase din uz) 3FFE::/16
Figura 5 – Adrese IPv6 e trebuiesc blocate

34
Cu toate că mesajele ICMPv6 Duplicate Address Detection (DAD) folosesc adresa
nespecificată ( ::/128) ca adresă sursă, și reprezintă un trafic valid, aceste mesaje nu ar trebuii să
poată trece de perimetrul de securitate al rețelei sau de granița către inte rnet (ne twork boundary).
Mesajele DAD ce folosesc adresa nespecificată sunt permise numai în r ețeaua locală, cu
specificația că limita superioară de trecere prin noduri să fie setată la 255. Orice alt tip de mesaj
ce folosește adresa nespecificată nu ar trebui să existe.
De asemenea, dacă în cadrul rețelei se implementează atât IPv4 cât și IPv6 (dual -stack),
un administrator de rețea poate fi tenat să folosească protocolul IPv4 41 pentru a securiza traficul
IPv6. Protocolul IPv4 41 este similar cu protocolul gener ic routing encapsulation (GRE), și
permite tunelarae traficului IPv6 peste o rețea IPv4 dar să și treacă prin firewall fără ca acest
trafic să fie analizat în detaliu, deoarece politicile de securitate vor inspecta doar antetul
pachetului. Din această cauz ă, dacă se implementează tunele 6în4, pentru o granularitate mai
bună, la intrarea sau la ieșirea pachetelor IPv6 din tunelul IPv4, trebuie implementat un firewall
dedicat traficului IPv6. Pe lângă filtrarea traficului IPv6 în IPv4, firewallul trebuie să f iltreze și
traficul tunelat IPsec, dar această sarcină este mult mai complicată. IPsec a fost dezvoltat pentru
a prevenii interceptarea traficului de către un atacator, criptând mesajele. Dar , același mecanism
de securitate previne inspectarea protocoalelo r de nivel superior , cât și datele efectiv transmise.
Pentru a se asigura securitatea, î n firewall, trebuiesc introduse specific adresele sursă și adresele
destinați e ce folosesc IPsec, blocând astfel orice trafic IPsec ilegitim.
După lansarea sistemulu i de operare pentru ruterele cisco cu IOS 12.4(20)T, ruterele pot
insepcta traficul și după Headerul de Autentificare (HA). Această caracteristică permite
firewallului să analizeze traficul după HA și să ia decizii de rutare a pachetului bazate pe
conținut ul rămas din pachet. Implementarea acestei inspecții este foarte utilă deoarece IPsec
poate implementa HA , dar apoi să folosească criptarea Encapsulation Security Payload (ESP)
pentru a securiza pachetele. Astfel se permite analizarea datelor la nivelul Ap licație de către un
sistem de prevenire a intruziunilor (IPS).
Dacă o tehnică de tranziție de la IPv4 către IPv6 nu este folosită, aceasta trebuie blocată.
De exemplu, pachetele 6 to 4 destinate adresei 2002 ::/16, dac ă nu sunt folosite, trebuiesc blocate ,
tunelele Teredo ce folosesc portul UDP 3544 din IPv4 , dar și pachetele destinate adresei
2001 :0000::/32 , trebuiesc de asemenea blocate dacă nu sunt implementate.

35
3.3.1 ADRESAREA PRIVATĂ

Pentru a se asigura că traficul generat de aplicațiile interne al e companiei nu este
redirecționat către Internet, administratorul de rețea va folosii un plan de adresare IPv6 privat.
Blocul de adresare privată este format din adresa unică locală de tip unicast (unique -local unicast
block) FC00 ::/7. Acest bloc este denu mit de specialiști adresă unică locală (unique -local address
ULA) și este definit de RFC 4193. Cel de al 8 -lea bit din adresă este folosit pentru a determina
dacă adresa este locală, deci FC00::/8 este rezervat pentru o utilizare în viitor, dar blocul
FD00 ::/8 poate fi folosit local.

+––– +-+–––– +–––– +–––––––––- +
| 7 bits |1| 40 bits | 16 bits | 64 bits |
+––– +-+–––– +–––– +–––––––––- +
| Prefix |L| Global ID | Subnet ID | Interface ID |
+––– +-+–––– +–––– +–––––––––- +
Figura 6 – Structura IPv6 [5]

În figura <NR> dacă ―flagul‖ L este setat la 1, acesta reprezintă o asignare locală.
Alocarea sa la 0 încă nu este definită . Asignările locale sunt auto -generate și nu necesită o
coordonare centralizată, deoarece au o șansă foarte mare să fie unice.
Echipamentele de infrastructură, reprezentate de switchuri și rutere , serverele interne
(DNS, DHCP etc.), pentru o mai bună securitate, trebuie să aibă adrese alocate din blocurile
nonrutabile către Internet. Celelalte sisteme ce accesează resurse externe companiei, compuse
din stații de lucru, firewall, servere DNS ce păstrează în memoria cache în registrări preluate din
Internet, trebuie să aibă adrese publice, ce pot fi rutate în Internet.
Pentru o securitate sporită, atunci când pachetele sunt filtrate de perimetrul de securitate,
trebuie alocată o atenție deosebită propriilor adrese alocate. Da că ajung pachete din exterior
(Internet), ce au ca sursă propriile adrese publice alocate, acestea reprezintă un atac de tipul
address -spoofing. Aceste pachete trebuie blocate imediat, deoarece propriile adrese nu trebuie
niciodată să facă trafic din exter iorul rețelei companiei.
Cu toate că structura antetului (header) din IPv6 pare mai complicată față de cea din
IPv4, headerul din IPv6 este mai bine raționalizat pentru rutere și firewalluri, deci mai ușor de
analizat. De asemenea, ruterele trebuie să ac orde atenție doar adreselor sursă și destinație, limita
de hopuri și opțiunile ce pot exista în tranziția dintre hopuri. Analizarea în IPv6 este mult mai

36
rapidă deoarece, față de IPv4, nu mai este necesar ca ruterele să calculeze o nouă sumă de
control (ch ecksum) înainte de a trimite pachetul spre destinație. Acest lucru este posibil,
deoarece IPv6, chiar dacă este necesară analiza unor biți mai mulți față de IPv4, aceste operațiuni
sunt mai simple. În IPv6, se minimizează numărul de procese necesare în dis pozitivele
intermediare, dar pune responsabilitatea de a analiza întreaga structură a pachetului pe
dispozitivele terminale. Pentru a crește eficiența, scopul este ca partea hardware să facă cât mai
multe operațiuni pe antet, astfel ca partea software să f ie eliberată.
Toate pachetele ce sunt respinse de către politicile perimetrului de securitate trebuiesc
înregistrate. Prin analizarea acestor înregistrări se po ate determina sursa și prevenirea atacurilor .
Dezavantajul înregistrărilor în profunzime, indife rent de versiunea IP folosită, este acelea că se
consu mă foarte multe resurse ale CPU ului, afectând performanțele firewallului. Cu cât se fac
analize mai în profunzime asupra pachetelor fie respinse, fie acceptate, cu atât fi rewallul va
opera mai încet. Di n această cauză, trebuiesc analizate în profunzime doar anumite cazuri
speciale iar restul pachetelor să fie analizate minimal.

3.3.2 TRANZLATAREA ADRESELOR DE REȚEA

Network Address Translation (NAT) este folosit pentru a converti adresa IP sursă privată
într-o altă adresă IP publică. Datorită NAT, adresarea IPv4 încă există astăzi, dar cu anumite
costuri. NAT ajută la ascunderea adreselor private și conservarea adreselor publice, similar cu un
server proxy. NAT este folosit în special atunci când două co mpanii (business -to-business –
B2B) își unesc rețelele și pot apărea suprapuneri de adresare. Cu toate că NAT ascunde topologia
și planul de adresare al unei companii, acesta nu trebuie tratat ca o formă de securitate deoarece
securitatea prin obscuritate nu este o strategie de durată.
În IPv6, nu este nevoie de NAT, deoarece, există un spațiu de adresare suficient de mare
ca fiecare dispozitiv existent să aibă o adresă IPv6. De asemenea, în afară de faptul că NAT
ascunde adresele, private, acesta nu oferă alte avantaje. Pentru ca IPv6 să poată folosi planuri de
adresare privată, acesta implementează adrese unice locale, definite în RFC 4139 și adrese
private definite în RFC 4941. Aceste tipuri de adresare protejează rețeaua împreună cu un
firewall ce monito rizează starea conexiunilor, oferind o securitate mult superioară față de
adoptarea soluției adoptării NAT, bazat pe ideea ―mai bine dec ât nimic ‖. Există multe funcții

37
implementate deja în IPv6 ce oferă aceleași rezultate ca cele fu rnizate de NAT în rețele le IPv4,
dar într -un perimetru de securitate IPv6, NAT nu este recomandat să fie implementat.
Totu și, pentru ca rețelele ce implementează doar IPv6 să poată comunica cu rețelele ce
implementează doar IPv4 și viceversa, protocolul NAT64 a trebuit să fie cre at. NAT64 este un
mecanism de tranziție, iar ―gatewayul ‖ NAT64 este un trans lator între protocoalele IPv4 și IPv6.
Pentru ca acesta să poată funcționa, are nevoie de cel puțin o adresă IPv4 și un segment de rețea
IPv6 cuprizând un spațiu de adresare de 32 de biți.
Implementarea cea mai simplă constă într -un gateway cu două interfețe conectate la o
rețea IPv4 și respectiv o rețea IPv6. Traficul generat de rețeaua IPv6 este rutat prin gateway, iar
acesta va aplica toate trans lațiile necesare pentru ca pachete le să poată fi transferate între cele
două rețele. Cu toate acestea, trans latarea nu este simetrică, deoarece adresarea IPv6 dispune de
un număr de adrese mult mai mare, fiind formată din 128 de biți, pe când adresarea IPv4 este
formată din doar 32 de biți , deci o mapare unu la unu nu este posibilă. Gatewayul păstrează o
mapare IPv6 la IPv4, ce poate sa fie formată manual (stateless) sau automat (stateful).[1]
RFC6145(IP/ICMP Translation Algorithm) înlocuieșste RFC2765(Stateless IP/ICMP
Translation Algorith – SIIT) și asigură un mecanism stateless de tranzlatare a antetului IPv4 într –
un antet IPv6 dar și vice versa.

+––––- + + ––––- +
| IPv4 | | IPv6 |
| Header | | Header |
+––––- + + ––––- +
| Transport – | | Fragment |
| Layer | ===> | Header |
| Header | | (if needed) |
+––––- + + ––––- +
| | | Transport – |
~ Data ~ | Layer |
| | | Header |
+––––- + + ––––- +
| |
~ Data ~
| |
+––––- +
Figura 7 – Translatare IPv4 la IPv6 [6]

38
Datorită caracteristicilor stateless, acest mecanism este foarte eficient și sigur, deoarece
mai mulți tranzlatori pot fi utilizați în paralel fără ca aceștia să trebuiască să fie s incronizați.
Acest mecanism funcționează deoarece adresa IPv4 este încorporată în adresa IPv6. Cu toate
acestea există limitări, deoarece adresele IPv6 nu pot fi încoporate în adresele IPv4, decât dacă
adresele IPv6 au antetul extins pentru fragmentare set at la 32 de biți. În practică însă, această
limitare s -a dovedid a fi nesemnificativă, cu un impact redus asupra performanței rețelelor. În
stateless NAT64, o plajă specifică de adresare IPv6 va reprezenta sistemele IPv4. Această plajă
este configurată man ual pe dispozitivul de tranzlație dar dezavantajul este că pentru fiecare
adresă IPv6, trebuie mapată o adresă IPv4. Mai jos este un exemplu de configurare stateless
NAT64.
Router> enable
Router# configure terminal
Router(config)# ipv6 unicast -routing
Router(config)# interface giabitethernet0/0/0
Router(config -if)# description interface towards ipv4 side
Router(config -if)# ipv6 enable
Router(config -if)# ipv6 address 2001:1::/96
Router(config -if)# nat64 enable
Router(config -if)# exit
Router(config)# interfac e giabitethernet1/2/0
Router(config -if)# description interface towards ipv6 side
Router(config -if)# ip address 192.168.0.0 255.255.255.0
Router(config -if)# nat64 enable
Router(config -if)# exit
Router(config)# nat64 prefix stateless 2001:0db8:0:1::/96
Router(config)# nat64 route 192.168.0.0/24 gigabitethernet0/0/1
Router# end

NAT64 este de obicei implementat în conjuncție cu DNS64. Acesta funcționează similar
cu DNS -Aplication Layer Gateway ( ALG ) ce făcea parte din NAT -PT. Dar DNS64 nu est e un
ALG , în schim b, pachetele sunt trimise direct dinspre și spre adresarea IP a DNS64. Acesta poate
lucra cu DNSSEC, pe când DNS -ALG nu are această capacitate.

39

Figura 8 – Implementare NAT64 cu DNS64 [7]

Cealaltă formă de trans latare este stateful NAT64. Această metodă mu ltiplexează mai
multe adrese IPv6 către o singură adresă IPv4. Această metodă funcționează cel mai bine acolo
unde rețele ce folosesc exclusiv adresare IPv6 trebuiesc să se conecteze către Internet ce este
majoritar adresat IPv4.
Diferența pe care o aduce stateful NAT64 față de stateless este eliminarea algoritmului de
legare dintre cele două metode de adresare. De asemenea stateful NAT64 nu utilizează pentru
fiecare adresă IPv6 ce dorește să comunice către Internet, câte o adresă IPv4. Concret, acest
meca nism funcționează asemănator cu PAT, folosit în rețelele IPv4. Dar acest mecanism
funcționează doar dacă cererile de conectare vin din partea IPv6 către partea IPv4. Dacă însă se
dorește ca o adresă IPv4 să comunice cu o adresă IPv6, configurarea manuală a tranzlației este
necesară, rezultând într -o întreținere greoaie a mecanismului.

40
Mai jos este prezentat un tabel cu principalele difere nțe dintre stateless și statefu l
NAT64 :
Stateless NAT64 Stateful NAT64
Tranzla ție 1:1 Tranzla ție 1:N
Adresele IP v4 nu sunt
conservate Conservă adresele IPv4
Asigură adresare punct -la-
punct, transparență și
scalabilitate Folosește supraîncărcarea adreselor, dar
pierde adresarea punct -la-punct.
Nu sunt create legăturile cu
stările la tranzlație Sunt create legăturil e cu stările la
tranzlație
Necesită adrese IPv6 ce pot fi
traduse în adrese IPv4. Nu sunt impuse restricții asupra naturii
adresei IPv6
Necesită asignarea adreselor
fie manual fie folosind
DHCPv6. Se poate folosi oricare metodă de
asignare a adreselor (M anual, DHCPv6,
SLAAC).
Figura 9 – Diferențe princpiale între stateful și stateless NAT64
3.3.3 NEIGHBOR DISCOVERY PROTOCOL

În IPv6, neighbor discovery protocol (NDP) funcționează similar cu ARP din IPv4.
Deoarece adresele IP trebuie să fie unice, trebuie să existe un mecanism de detecție și corecție a
adreselor duplicate. În IPv6 această tehnică se numește Duplicate Address Detection (DAD) și
operează în strânsă legetură cu ICMPv6 cu mesajele de tip 135 Neighbor Solicitation (NS) și tip
136 Neighbor Adver tisement (NA). DAD intră în acțiune atunci când un nou nod din rețea
primește o adresă IPv6 și încearcă să se asocieze rețelei. DAD verifică întâi adresa link -local și
dacă nu există conflict, trece la verificarea adresei unicast. Această adresă este fie c onfigurată
manual, prin intermediul DHCPv6 sau cu SLAAC. Dacă există un duplicat DAD va emite
mesaje de tipul:
*Mar 1 08:44:35.926: %IPV6 -4-DUPLICATE: Duplicate address 2001:DB8:2::100 on Vlan1
*Mar 1 08:47:23.098: %IPV6 -3-CONFLICT: Router FE80::21B:D4FF:F E84:F6DE on Vlan1 has
conflicting ND settings

41
Deoarece DAD se bazează pe comunicarea NDP nesecurizată, un atacator poate lansa un
atac de tipul DoS, ce constă în simularea epuizării plajei de adrese IPv6 disponibile. Acest tip de
atac este inițiat folosind instrumente din ―The Hacker’s Choice IPv6 Attack Toolkit (THC –
IPv6) ‖. Acest toolkit conține o formă denumită dos -new-ipv6, necesară orchestrării unui atac de
acest gen. Aceasta este apelată cu un singur argument : interfața pe care ascultă mesajele de tip
NS si de unde trimite mesajele falsificate NA.

F

Figura 10 – Configurație IPv6 înaintea atacului
Figura 9 ilustrează desfășurarea atacului din perspectiva atacatorului. Imediat cum o
victimă solicită o nouă adresă IPv6 ( se folosește comanda ipv6 7 ren ew pentru Microsoft
Windows, pentru a se putea executa DAD) .

Figura 11 – Inițializarea atacului DoS folosind DAD
După terminarea atacului, victima va pierde toate adresele IPv6.

Figura 12 – Finalitatea atacului: victima pierde toate adresele IPv6
Deoar ece firewallul reprezint ă o țintă foarte valoroasă pentru atacatori, adresa IPv6 a
acestuia trebuie definită static și unic în rețea. Cu toate acestea, un atacator ar putea folosi
protocolul DAD împotriva firwallului pentru a -l forța pe acesta să -și dezact iveze propria interfață
în timpul unui conflict. De aceea, DAD este dezactivat în implementarea unui firewall. Dacă o

42
adresă duplicată este întâlnită, acesta dezactivează adresaera IPv6 pe aceea interfață. Dacă adresa
duplicată este de tip link -local atunc i va închide toate procesele IPv6 de pe acea interfață, iar
dacă adresa duplicată este unicast, DAD doar va dezactiva acea adresă.
3.4 SECURITATEA LA NIVELUL 2

Majoritatea vulnerabilităților la nivelul 2 din stiva de protocoale OSI, sunt moștenite din
protocoalele ce folosesc acest nivel: Spanning Tree Protocol (STP) sau IPv6 Neighbor Discovery
Protocol (NDP). Odat ă cu compromiterea acestui nivel, este mult mai ușor pentru un atacator să
construiască atacuri pentru nivelele superioare folosind tehnici pr ecum man -in-the-middle
(MITM). Acest atac este posibil deoarece atacatorul este capabil să intercepteze, altereze și să
redirecționeze traficul din rețea, atât în comuncațiile clear -text (HTTP sau Telnet) , dar și în cele
securizate precum Secure Socket Lay es (SSL) sau Secure Shell (SSH).
Pentru a putea exploata aceste vulnerabilități, un atacator trebuie să fie în proximitatea
țintei acestuia. Cu toate că este foarte greu ca un atacator să pătrundă în sediul unei companii și
să se conecteze la rețeaua ace steia, atacatorul își poate atinge ținte cu ajutorul inginerieri sociale
(social engineering) sau se poate deghiza într -un inginer ce a fost chemat să rezolve o problemă.
De asemenea, foarte multe atacuri sunt realizate de către proprii angajați ai compani ei, chiar dacă
aceștia sunt considerați entități de încredere.
IPv6 are un mecanism de autoconfigurare a adresei IP pentru o configurare mai ușoară a
dispozitivelor terminale din rețea. SLAAC este diferit de DHCP deoarece acesta nu mai trimite
mesaje de d escoperire și de închiriere a adresei IP, ci acest rol revine ruterelor ce trimit mesaje
de tipul RA peste ICMPv6. Mesajele RA conțin : prefixul local format din primii 64 de biți,
adresa ruterului, timpul asociat accesibilității ruterului, prioritatea rute rului, unitatea maximă de
transmisie dar și o serie de indicatori (flags). Acești indicatori pot fi de două tipuri : M (Managed
address configuration) ce transmit unui echipament terminal ca acesta să foloseasca DHCPv6
pentru a -și primii adresa IPv6 și O (O ther Configuration) ce indică extragerea anumitor
informații prin intermediul DHCPv6 precum adresele serverelor DNS.
Dacă un echipament terminal primește un mesaj RA cu indicatorul M setat la 0, acesta își
va construii singur adresa IPv6 bazat pe identifi catorul interfeței (EUI -64) sau cu ajutorul unui
număr ales aleator.

43

Vulnerabilitatea protocolului SLAAC este aceea că nu există niciun mecanism de
autentificare, un atacator poate trimite un mesaj RA malițios pentru a se da drept ruterul implicit.
Astfel atacatorul injectează o rută în tabela de rutare a tuturor nodurilor din rețea, ca apoi acestea,
să transmită toate pachetele ce au destinația în afara rețelei, către atacator. În loc să captureze
aceste pachete un atacator poate nega toate aceste pachete , pentru a creea un atac de tipul Denial
of Service (DoS).

Figura 13 – Mecanismul normal de funcționare a RA[1]

44

Figur a 14– Mecanismul de transmisie a unui mesaj RA de către un atacato r [1]

3.4.1 PROTEJAREA PROTOCOLULUI ICMPv6

SLAAC, DAD și NDP implemente ază două mecanisme de protecție:
 Pentru mesajele de tip RA și NS, adresa sursă trebuie să fie link -local sau adresa
nespecificată (::/128)
 Limita maxim ă a numărului de noduri tranzitate trebuie să fie 255.
Aceste mecanisme asigură faptul că un atacator nu va putea transmite mesaje RA sau NA
malițioase prin intermediul unui ruter. Cu toate acestea, mecanismele implementate în ICMPv6
nu sunt suficiente pentru a proteja rețeaua în fața unui atacator determinat. De aceea IETF a
creeat protocolul Secure Neighbo r Discovery (SEND), detaliat în RFC 3971 ce folosește adrese
generate criptografic (CGA) definite în RFC 3972.

45
O adresă criptografic este asociată cu un set de parametrii ce conțin cheia publică și
parametrii auxiliari. Din acești parametrii, două valo ri hash sunt generate : HASH1 (64 de bi țit) și
HASH2 (112 biți). O adresă CGA este definită ca o adresă IPv6 ce satisface următoarele două
condiții :
 Prima valoare hash, HASH1, este egală cu identificatorul interfeței acelei adrese.
Biții 0,1,2,6,7 sunt igno rați în timpul comparației (biții ce encodează parametrul
de securitate Sec, ―u‖ și ―g‖ reprezintă biți din standardul IPv6, pentru
identificarea interfeței).
 Următorii cei mai din stânga 16*Sec biți din cea de a doua valoare hash, HASH2 ,
sunt 0.

Mask1 (64 bits) = 0x1cffffffffffffff
Mask2 (112 bits) = 0x0000000000000000000000000000 dacă Sec=0,
0xffff000000000000000000000000 dacă Sec=1,
0xffffffff000000000000000000 00 dacă Sec=2,
0xffffffffffff0000000000000000 dacă Sec=3,
0xffffffffffffffff000000000000 dacă Sec=4,
0xffffffffffffffffffff00000000 dacă Sec=5,
0xffffffffffffffffffffffff0000 dacă Sec=6 ,
0xffffffffffffffffffffffffffff dacă Sec=7 .

Figura 15– Exemplu de generare a valorilor HAS H [8]

O adresă generată criptografic este o adresă IPv6 dacă cele două ecuații sunt satisfăcute :
o HASH1 & MASK1 == identificatorul de interfa ță & MASK1
o HASH2 & MASK2 == 0x0000000000000000000000000000

46

SEND funcționează prin implementarea unui set de che i publice și private pentru fiecare
nod IPv6 din rețea și prin extinderea opțiunilor din mesajele ND. SEND nu permite nodurilor să
își aleagă propriul identi ficator de interfață (EUI -64) acesta generează criptografic un
identificator de interfață bazat pe cheia publică și pe prefixul IPv6.
CGA este compus dintr -un modificator, reprezentat de un număr aleator, cheia publică a
dispozitivului, un numărător de coliziuni (folosit pentru a prevenii atacurile de tip brute -force) și
de prefixul subnetizării proviz ionat de către ruter.

Figura 16– generarea adreselor criptografic

De asemenea, pentru a se asigura că CGA este folosit de nodul corect (nodul ce are cheia
pereche), SEND extinde protocolul NDP prin adăugarea mai multor câmpuri : prametrii CGA,
trimi și ca partenerii să poată rula același algoritm și să determine dacă procesează același CGA,
un număr aleator folosit în toate mesajele NS, pentru a preveni atacurile de retransmitere și o
semnătură generată pe baza cheii private.
Mesajele RA pot fi securi zate într -o manieră similară, unde toate mesajele RA sunt
semnate de rutere. Deoarece dispozitivele terminale trebuie să aibă încredere în rutere, acestea
trebuie să aibă certificate X.509 asociate cu perechile de chei. Semnătura și cheile sunt trimise în
toate mesajele RA. Subiectul certificatului include toate prefixele anunțate de ruter, astefel încât
un atacator să nu poată injecta alte prefixe. Deoarece certiciatele sunt emise de o autoritate de
certificate (CA), toate nodurile IPv6 se pot încrede în i nformațiile transmise de mesajele RA.

47

3.4.2 PERICOLELE ȘI PREVENȚIA LOR ÎN DHCPv6

DHCPv6 este specificat în RFC 3315, poate fi folosit pentru a înlocuii SLAC, prin
inchirierea unei adrese IPv6 unui nod în rețea (dacă indicatorii M și O sunt setați la 1 ) sau poate
acompania SLAAC prin acordarea anumitor adrese (DNS, NTP), dacă indicatorul M este setat la
0 și indicatorul O la 1. Față de versiunea din IPv4, DHCPv6 are următoarele excepții : un client
poate cere mai multe adrese, serverul transmite mesajele unicast, nu broadcast, at ât clienții , cât și
serverele , sunt identficați prin DHCP Unique Identifier (DUID), generat local. DHCPv6 aduce în
plus procesul de reînoire (renew), unde un client poate cere extinderea chiriei asupra unei adrese
IPv6. Serverul c onfirmă această cerere cu un mesaj de răspuns (reply).
Pericolele ce apar în DHCPv6 sunt similare cu cele din versiunea pentru IPv4 și anume :
 Înfometare (starvation) : un atacator solicit ă foarte multe adrese, golind astfel plaja
disponibilă.
 Denial of Serv ice: atacatorul trimite foarte multe mesaje de tip SOLICIT,
supra solicitând astfel procesorul serverului, acesta nemaiputând servi clienți
valizi.
 Scanare (Scanning) : dacă adresele închiriate sunt alocate secvențial, un atacator
poate identifica o țintă.
 Dezinformare (server DHCPv6 pirat) : atacatorul trimite mesaje false de
ADVERTISE și REPLY către clienți. Aceste mesaje alterează adresele valide ale
default gateway, serverelor DNS și le înlocuiește cu adresa atacatorului. Astfel
acesta poate redirecționa traficul, îl poate analiza sau îl poate distruge.
Mecanismul de autentificare implementat în DHCPv6 oferă o protecție satisfăcătoare, dar
necesită transmiterea cheilor în afara rețelei (prin intermediul unei unități de stocare portabile).
Cu toate că este o metodă foarte securizată, aceasta nu poate scala eficient, deoarece cheile
trebuiesc schimbate frecvent.
Atunci când un atacator implementează înfometarea serverului, cu toate că este foarte
greu să golească o plaja IPv6, serverul trebuie să stocheze s tarea adresei închiriate în memoria
nevolatilă. Cum această memorie este limitată, odată umplută, serverul va respinge orice cerere
nouă, atacul luând forma unuia de tip DoS.

48
Pentru a putea prevenii atacurile DoS, se impune o limită a mesajelor transmise de către
clienți și limitarea benzii folosite de DHCPv6 la 8 kbps. Pentru ca securizarea să fie cât mai
apropiată de varianta folosită în IPv4, trebuiesc scrise și puse în aplicare politci de garantare a
calității (QoS). Aceste politici trebuie apoi implem entate în întreaga rețea. Dacă probabilitatea
unui atac asupra serverului DHCP este foarte mare, este recomandată implementarea
protocolului SLAAC pentru generarea adreselor IPv6 ca serverul DHCP să furnizeze doar date
despre celelalte servere (DNS, NTP etc.).
Pentru a putea evita atacurile ce implică scanarea, se recomandă folosirea unui server ce
alocă aleator adrese IPv6 (precum Cisco Network Registrar). Astfel se protejează identitatea
clienților, dar totodată se păstrează o hartă între adresele IPv6, DUID și agentul de distribuire
(relay agent).
În momentul de faț ă nu există alte soluții de protecție împotriva serverelor DHCPv6 pirat
înafară de implementarea listelor de acces, și de activare a politicilor de autentificare ale
serverului DHCPv6.

3.4.3 SECURIZAREA CU AJUTORUL API

În programarea calculatoarelor un Application Programming Interface (API) reprezintă
un set de subrutine, protocoale și unelete pentru construirea aplicațiilor software. Reprezintă un
set de metode clar definite de comunicare între diferite componente software. Tehnica API este
folosită de către programatori pentru construirea de programre pentru calculator, prin furnizarea
tuturor componentelor necesare. Un API poate fi specializat pentru sisteme web, sisteme de
operare, siste me de baze de date, sisteme de securitate etc.
Odată cu ușurința integrării API în aplicații, apare problema autentificării (authn) și
autorizării (authz) adecvate. Într -un mediu folosit de mai mulți utilizatori, controalele de
securitate (authn și authz) trebuiesc impuse bazate pe filozofia ―doar cei ce trebuie să aibă acces,
să fie permiși‖. Schemele de securitatea authn permit producătorilor (reprezentați prin API sau
servicii) să identifice consumatorii (reprezentați prin clienți sau programe ce apelea ză) și să le
determine nivelul de acces (authz). Cu alte cuvinte, securitatea folosind API, răspunde la
întrebarea ―poate un utilizator să folosească această metodă, cu credidențialele sale ‖.

49
Există trei metode principale folosite pentru autentificare și autorizare:
1. Șir de caractere static ( Static String ): funcționează precum parolele ce sunt date
consumatorilor de către API
2. Jeton Dinamic (Dynamic Tokens) : jetoane de autentificare bazate pe timp,
opținute de la un serviciu de autentificare
3. Jetoane Specifi ce Utilizatorului : jetoane precum OAuth ce sunt specifice
autentificării unui anumit utilizator.
Metoda ce folosește static string, un apelant de API integrează un șirul de caractere ca un
jeton în cerere. Această metodă se mai numește și autentificare de bază, dar nu este deloc de
preferat, deoarece se relizează transmiterea parolei prin rețea, în text clar.
Dacă un API este protejat folosind jetoane dinamice, aceste jetoane expiră după un timp
presetat (time to leave –TTL) iar după expirarea acestui timp, clientul trebuie să ceară alt jeton.
Metoda API are integrat un verificator de timp, iar dacă un client face o cerere cu un jeton
expirat, acea cerere este ignorată.
În cele din urmă, protejarea unui API folosind jetoane delegate utilizatorilor este
imple mentată atunci când o aplicație are nevoie de acces la un API din partea unui utilizator.
Această metodă nu dezvăluie i d-ul și parola utilizatorului acesta doar encapsulează în jeton
permisiunile atribuite utilizatorului, astfel încât aplicația să poată ac cesa APIul.
Deoarece aria de atac este foarte vastă, iar feicare atac are diferite metode de
implementare și ținte, o metodă de a putea clasifica vulnerabilitățiile este prin catalogarea
acestora pe arii de atac :
 Rețea / Sistem de Operare / Driver : exploat area vulnerabilităților din sistemul de
operare și a componentelor din rețea prin atacuri de tip DoS, socket flooding,
buffer overrun.
 Nivelul Aplicație : vulnerabilități expuse în aplicațiile exploatate, dar și alte
servicii folosite de companie (session h ijacking, configurări de securitate
defectuase, parsarea mesajelor).
 API: probleme funcționale în interiorul APIului (atacuri de injectare, expunerea
datelor sensibile, controlul accesului defectuos).

50
Din cauza acestor tipuri de atacuri, securizarea APIu rilor trebuie luată în considerare și
pusă la același nivel de importanță cu performanța și funcționabilitatea aplicației. Instruirea
programatorilor în scrierea de cod securizat (code -secure). Prevenirea atacurilor poate începe
chiar din faza incipientă p rin detectarea eventualelor breșe de securitate și tratarea lor, nelăsând
acest pas la sfârșitul dezvoltării aplicației. Chiar și după livrarea aplicației, acesta trebuie
monitorizată în vederea detectării protejării acesteia în fața noilor tipuri de atacu ri, prin folosirea
de unelte open -source sau soluții proprii.

51
Bibliografie

[1]Scott Hogg, ―IPv6 Security‖, Editura Cisco Press, 2009
[2]https://technet.microsoft.com/en -us/library/cc781672(v=ws.10).aspx#w2k3tr_ipv6_how_chuq
http://www.cisco.com/c/en/us/products/collateral/ios -nx-os-software/enterprise -ipv6-
solution/white_paper_c11 -676277.html
[3]https://www.arenait.net/2007/03/12/tot -ce-trebuie -sa-stiti-despre -ipv6.html
[4]https://en.wikipedia.or g/wiki/NAT64
[5]https://tools.ietf.org/html/rfc4193
[6]https://tools.ietf.org/html/rfc6145
[7]https://en.wikipedia.org/wiki/NAT64#/media/File:NAT64_1.svg
[8]https://tools.ietf.org/html/rfc 3972

Similar Posts