In acest tutorial de retelistica vom discuta despre IP-uri, si anume care este diferenta intre o adresa IP publica si una privata, de ce este necesara o adresa IP privata si ce legatura are NAT (Network Address Translation) cu acestea. Hai sa incepem !

Ce este o adresa IP?

Pentru a intelege mai bine ce este o adresa IP iti propun urmatorul exemplu: sa ne gandim la IP ca la un CNP pentru device-uri. Ce rol are CNP-ul ? De a identifica  in, mod unic, fiecare persoana din Romania. Statul ne identifica prin CNP (aka IP), iar oamenii ne identifica prin Nume sau Prenume (aka. adresa MAC).

Asadar o adresa IP este un mod de a identifica unic, unul sau mai multe dispozitive din Internet. 2 dispozitive (laptop, telefon, server, router etc.) cunoscandu-si adresele IP pot comunica cu usurinta intre ele pentru ca exista o sursa (adresa IP sursa) si o destinatie (adresa IP destinatie) unde vor fi trimise datele.

Adresa IP (exemplu: 192.168.1.0) este alcatuita din 4 campuri diferite (delimitate prin punct) cu valori intre 0 si 255.

Ce este IPv4 ?

Protocolul IPv4 a fost dezvoltat in anii ’80 si s-a propus folosirea a 32 de biti pentru definirea unei adrese (ex: 192.168.1.1). In fiecare camp din aceste 4 pot fi alocati 8 biti:

8 biti * 4 campuri = 32 biti.

Acum, hai sa ne gandim putin la acest numar de biti, 32. Acesta ne poate spune ceva legat de numarul maxim de adrese IP care pot fi generate: 2^32 ~= 4.2 Miliarde !  

Da, ai citit bine, 4.2 miliarde de adrese IPv4… si s-au terminat.

TIP: De ce 2 ^32 ? deoarece fiecare bit poate lua valoare 0 sau 1, asadar daca avem 32 de biti vom putea genera aproximativ 4.2 miliarde de numere unice.

In anul 2011, mai exact in vara acelui an, IANA (Internet Assigned Numbers Authority) a alocat ultimul spatiu de adrese IPv4. Asta inseamna ca nu mai putem conecta alte dispozitive la internet ? Nicidecum, de atunci si pana acum (2016) internetul a crescut foarte mult ca numar de dispozitive conectate. Iata urmatorul grafic:

crestere internet
Figura 1

Dupa cum spuneam si mai devreme, numarul maxim de adrese IPv4 este de aproximativ ~4.2 Miliarde. In anul 2016 se estimeaza ca numarul total de dispozitive conectate la Internet este in jur de ~30 Miliarde, numar care depaseste cu mult limita adreselor IPv4. (graficul de mai sus a fost construit in 2014, datele nefiind exacte; Internetul creste mult mai repede decat si-ar fi inchipuit cineva in mod special datorita IoT – Internet of Things)

Iata un alt grafic interesant (si acesta este mai vechi):

ce este o adresa ip
Figura 2

O solutie temporara a acestei probleme (cresterea prea rapida a numarului de dispozitive conectate la Internet si numarul limitat de adrese IPv4) a dus la introducerea conceptului NAT (vorbim in detaliu despre acesta in partea a 2 a articolului). Acesta foloseste adreselor IPv4 Publice si Private, despre care vom vorbi mai jos.

O solutie, mult mai buna decat NAT, pentru problema epuizarii adreselor IPv4 este protocolul IPv6, despre care vorbim intr-un alt articol.

IP Public vs IP Privat

IP-urile Publice, dupa cum le spune si numele, sunt folosite pentru a comunica (tranzita) in Internet, iar cele Private sunt folosite in Retelele Locale (LAN), cum ar fi reteaua noastra de acasa.

Astfel, IP-urile Private nu vor ajunge niciodata in Internet, deoarece se foloseste un procedeu numit NAT (Network Address Translation) care “transforma” IP-urile Private in IP-uri Publice.

Care sunt Clasele de adrese IP ?

Dupa cum am spus si la inceputul acestui articol, fiecare camp (4 in total) al unei adrese IP poate avea orice valoarea intre 0 – 255 (8 biti/camp, deci in total 256 de valori; 2^8 = 256). Astfel in retelistica, adresele IP se imparte in mai multe clase:

A 0.0.0.0 - 127.255.255.255
B 128.0.0.0 - 191.255.255.255
C 192.0.0.0 - 223.255.255.255
D 224.0.0.0 - 239.255.255.255
E 240.0.0.0 - 255.255.255.255

Clasele A, B, C sunt cele folosite in Internet, clasa D fiind rezervata pentru Adresele de tip Multicast, iar clasa E este o clasa experimentala si nu este folosita.

Dintre aceste clase se disting urmatoarele IP-uri PRIVATE:

A 10.0.0.0 - 10.255.255.255     // cu Masca Specifica Clasei /8
B 172.16.0.0 - 172.31.255.255   // cu Masca Specifica Clasei /16
C 192.168.0.0 - 192.168.255.255 // cu Masca Specifica Clasei /24

Ce este NAT ?

Organizatiile care “administreaza” Internetul au propus, prin conventie, adresele IP Private sa nu poata fi rutate in Internet (orice pachet cu IP-ul sursa Privat va fi aruncat !).

Astfel toate companiile furnizoare de servicii de Internet au implementat politici de filtrare a traficului (ACL) pe baza IP-ului sursa care verifica daca un pachet are un IP este privat sau nu. In cazul in care, IP-ul sursa este privat (i.e: 10…, 172.16… sau 192.168…) atunci acesta va fi oprit si “aruncat la gunoi”, transportarea lui catre destinatie nefiind permisa.

AICI intervine NAT:

Network Address Translation (NAT) mascheaza (“translateaza“) un IP Privat intr-un IP Public.

Practic fara acest mecanism nu am putea accesa internetul. De NAT se ocupa Routerul (fie ca este vorba de cel al companiei tale sau a celei la care lucrezi sau ca este vorba de Routerul Wireless din sufrageriile noastre)

De cate tipuri poate fi NAT ?

Exista mai multe tipuri de NAT printre care identificam:

  1. NAT Static
  2. NAT Dinamic
  3. PAT (Port Address Translation)

1) NAT Static

Face o mapare 1-la-1 a unui IP Privat intr-un IP Public.

PC1: 192.168.1.5 -> 93.1.8.6

Este folosit, de obicei, in momentul in care avem un server (Web, FTP, etc.) in reteaua locala (LAN) si dorim ca resursele de pe acel server (pagina Web, Serverul de CS, un fisier, etc.) sa fie accesibile din Internet.

Exemplu: Ai creat un folder cu poze din ultima vacanta pe care doresti sa le impartasesti cu prietenii si familia ta. Te-ai gandit sa apelezi la un server web si pentru ca ai o adresa IP Public in plus de la Furnizorul de Internet, ai decis sa apelezi la NAT Static.

Adresa IP a serverului tau este 192.168.1.5, iar cea publica este 93.1.8.6. Faci setarile pe Routerul tau de acasa (din Interfata Web – Browser) si le trimiti prieteniilor si familiei link-ul http://93.1.8.6/poze_vacanta2016, iar acestia vor putea sa iti vada cu succes pozele 🙂

2) NAT Dinamic

Face o mapare m-la-n a unui IP Privat intr-un IP Public, unde m nu este neaparat egal cu n. Mai exact, fiecarui dispozitiv din retea care doreste sa ajunga in Internet i se va asocia o adresa IP Publica (din spatiul disponibil).

In cazul in care se termina numarul adreselor IP disponibile, atunci acel device nu va putea sa ajunga in Internet.

PC1: 192.168.1.6 -> 93.1.8.7
PC2: 192.168.1.7 -> 93.1.8.8
PC3: 192.168.1.8 -> 93.1.8.9

NAT-ul dinamic foloseste un spatiu de adrese (ex: 93.1.8.7 pana la 93.1.8.10) pe care le poate aloca cate unui singur calculator care doreste sa ajunga in Internet.

Functioneaza pe principiul FIFO (primul venit, primul servit), asadar daca avem 20 de PC-uri in retea si numai 4 adrese IP publice disponibile, doar 4 din cele 20 de PC-uri vor putea ajunge (comunica) in Internet.

3) PAT (Port Address Translation)

In cazul PAT, maparea este n-la-1. Adica, avem mai multe adrese IP Private si te “transformam” intr-o singura adresa IP Publica la care adaugam Portul Sursa al conexiunii.

PC1: 192.168.1.6:22413 -> 93.1.8.5:22413
PC2: 192.168.1.7:62459 -> 93.1.8.5:62459

PAT ascunde mai multe device-uri (cu IP Privat) in spatele unui singur IP Public.

O conexiune dintre 2 device-uri in Internet contine si urmatoarele elemente:

  • IP Sursa
  • IP Destinatie
  • Port Sursa
  • Port Destinatie

Cand vine vorba de PAT, Routerul va folosi adresa IP Sursa (Privata) si Portul Sursa, pentru a identifica conexiunea (exact cum este ilustrat in exemplul de mai sus).

PAT este cea mai folosita varianta de NAT, fiind configurat pe marea majoritate a Routerelor Home-Oriented (TP-Link, D-Link, Asus, Huawei, Cisco etc.).

4) Port Forwarding

Pe langa aceste 3 tipuri de NAT, mai exista un tip de NAT mai aparte. Acesta se numeste Port Forwarding si practic ofer accesul oricui din Internet la o resursa (server) din reteaua locala. Astfel, putem avea diferite servere (aflata intr-un LAN), iar noi sa le oferim acces prietenilor sau colaboratorilor nostri pentru a putea accesa acea resursa de pe server.

Urmareste tutorialul de mai jos pentru a vedea, cum accesez un server din reteaua mea locala pe de un Telefon conectat la o retea 4G:

Configurare NAT pe Routere

Acum ca stim ce este NAT, cum functioneaza acesta si cate tipuri sunt, propun sa trecem la partea de configurare pe Routere:

a) NAT Static

NAT-ul Static reprezinta o simpla mapare intre o adresa IP privata si una publica:

R2(config)#ip nat inside source static 192.168.1.2 42.4.51.9

La sfarsit trebuie sa pornim NAT-ul pe interfete:

R2(config)#interface Gi0/1
R2(config-if)#ip nat inside
R2(config)#interface Gi0/2
R2(config-if)#ip nat outside
cum setez nat static pe un router cisco

Dupa cum poti vedea in ambele figuri comanda de verificare ne afiseaza “maparea” pe care noi am facut-o. In figura de mai jos am dat ping (de pe host-ul nostru pe Ubuntu) catre un PC care e legat la R2. Se poate vedea IP-ul sursa (10.20.30.2 – Ubuntu) si IP-ul destinatie public (42.4.51.9 – cel al PC-ului) careia i se face translatarea in IP-ul privat 192.168.1.2.

R2#show ip nat translation
configuratie nat pe router cisco

b)   NAT Dinamic

Pentru a configura NAT-ul Dinamic avem nevoie sa cream o lista (ACL) care sa identifice adresele IP care se doresc a fi “NATate”:

R1(config)#ip access-list standard NAT_ACL
R1(config-acl)#permit 10.20.30.0 0.0.0.255

Dupa care trebuie sa configuram o “piscina” (pool) de adrese (publice) pe care dorim sa le alocam:

R1(config)#ip nat pool 31.125.7.11 31.125.7.14 netmask 255.255.255.0

La sfarsit vom creea regula prin care specificam ACL-ul si pool-ul creat mai devreme:

R1(config)#ip nat inside source list NAT_ACL pool NAT_IPs 

Si pornim regulile pe interfete:

R1(config)#interface Gi0/1
R1(config-if)#ip nat inside
R1(config)#interface Gi0/2
R1(config-if)#ip nat outside
cum se configureaza nat pe router cisco

In urma comenzii de show, vom vedea (in acest scenariu) un PC, folosind o singura adresa IP:

R1#show ip nat translation
cum se configureaza nat

 c)  PAT (Port Address Translation)

Pentru a configura NAT-ul Dinamic avem nevoie sa cream o lista (ACL) care sa identifice adresele IP care se doresc a fi “NATate”:

R1(config)#ip access-list standard NAT_ACL
R1(config-acl)#permit 192.168.1.0 0.0.0.255

La sfarsit vom creea regula prin care specificam ACL-ul si interfata pe care dorim sa facem PAT-ul, urmat de keyword-ul overload (care practic spune foloseste aceeasi adresa IP in mod repetat):

R1(config)#ip nat inside source list NAT_ACL interface Gi0/2 overload 

Si pornim regulile pe interfete:

R1(config)#interface Gi0/1
R1(config-if)#ip nat inside
R1(config)#interface Gi0/2
R1(config-if)#ip nat outside
ce este nat
R1#show ip nat translation
adresa ip

Iti multumesc pentru interesul si atentia acordata acestui articol despre ce este o adresa IP publica si una privata, ce este NAT, cum functioneaza si care sunt tipurile de NAT folosite in retele.


In concluzie – Raspuns la cele mai frecvente intrebari

Ce este NAT?

Network Address Translation (NAT) mascheaza (“translateaza“) un IP Privat intr-un IP Public.

Ce este o adresa IP?

O adresa IP este un mod de a identifica unic, unul sau mai multe dispozitive din Internet.

Ce este o adresa IP publica?

IP-urile Publice, dupa cum le spune si numele, sunt folosite pentru a comunica (tranzita) in Internet.

Ce este o adresa IP privata?

IP-urile Private sunt folosite in Retelele Locale (LAN), cum ar fi reteaua noastra de acasa.

Daca esti interesat de Retele de Calculatoare iti recomand cartea mea “Introducere in Retele de Calculatoare“, care este #1 Best-Seller pe Amazon. Notiunile explicate in aceasta carte te vor ajuta extrem de mult sa intelegi atat elementele teoretice cat si cele practice care au de a face cu retelele de calculatoare, internetul si cu configurarea echipamentelor Cisco.

Click AICI pentru a afla mai multe.

Spor la invatat,

Ramon

Ramon Nastase

Eu sunt Ramon, am 25 de ani si sunt Pasionat de IT (Retelistica, Programare, Securitate, Tehnologie) si Training. Misiunea mea este sa te ajut pe tine sa-ti atingi potentialul maxim in cariera ta din domeniul IT. Cu acest gand in minte din 2017 pana in prezent, am construit o comunitate de peste 70.000 de persoane pasionate de IT si de invatare continua. Te invit sa citesti articolele de pe acest blog si sa urmaresti celelalte materiale educative de mai jos 👇
Summary
Review Date
Reviewed Item
Cum arata adresele IP Publice, Private si ce Legatura au cu NAT ?
Author Rating
51star1star1star1star1star