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 !
Continutul articolului
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:
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):
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.
➡️ Doresti sa afli mai multe despre Securitatea IT si siguranta pe Internet?
Inscrie-te aici la cursul Gratuit de Securitate IT: INCEPE ACUM CURSUL GRATUIT
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:
- NAT Static
- NAT Dinamic
- 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
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
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
In urma comenzii de show, vom vedea (in acest scenariu) un PC, folosind o singura adresa IP:
R1#show ip nat translation
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
R1#show ip nat translation
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
Network Address Translation (NAT) mascheaza (“translateaza“) un IP Privat intr-un IP Public.
O adresa IP este un mod de a identifica unic, unul sau mai multe dispozitive din Internet.
IP-urile Publice, dupa cum le spune si numele, sunt folosite pentru a comunica (tranzita) in Internet.
IP-urile Private sunt folosite in Retelele Locale (LAN), cum ar fi reteaua noastra de acasa.
Vrei sa faci reconversie profesionala in Retele & Securitate IT?
Urmareste tutorialul de mai jos pentru a afla cum sa faci Reconversie Profesionala in Securitate IT in mai putin de 12 luni, pornind de la zero
💻 Doresti sa faci reconversie profesionala pe partea de Securitate IT? Participa la urmatorul curs de Securitate Cibernetica cu mentorat din partea lui Ramon Nastase. Aplica aici: LINK
SecuritateIT.com
Salut am o intrebare folosesc internet de pe o cartela sim care o am bagata in router.
Problema este ca nu ma pot conecta la router de la distanta , din ce am vazut se pare ca am un ip privat de la provider. Se poate face ceva sa ma pot conecta de la distanta. Inainte cand aveam internet dsl nu aveam probleme de genul asta. Ma puteam conecta de oriunde aveam si server vpn totul functiona perfect.
Dar am zis sa renunt la abonament si sa imi iau o cartela cu internet nelimitat care pot renunta oricand la ea.
Internetul functioneaza foarte bine dar asta ma deranjeaza pentru ca am dispozitive care vreau sa ma conectez de la distanta.
Pana nici cloud-ul nu mai imi functioneaza am un synology sa dat totul peste cap de la un ip privat.
Imi poti spune vreo varianta multumesc mult.