Salutare tuturor,
Revin dupa o pauza ceva mai lunga in care m-am concentrat pe examenele pe care le-am avut de sustinut. Din fericire, desi am avut o perioada destul de agitata in plan personal, am reusit sa le fac fata pana acum. Am reusit sa termin modulul 4 din CCNA si voi incepe in perioada urmatoare sa ma pregatesc pentru a sustine examenul de certificare. Evaluarea interna de la job a fost ok. Prietenii stiu de ce! ;D
Despre concursul netriders, am reusit sa trec de prima runda, desi am avut mari emotii la examenul practic. Cel teoretic a fost accesibil, dar proba din Packet Tracer a fost destul de solicitanta. Nu neaparat din perspectiva cerintelor cat a modului de prezentare. A fost o topologie usor diferita fata de cele din examenele standard.
Legat de runda a doua, sincer nu ma vad foarte pregatit si nu stiu cat voi reusi sa ma pun la punct pana pe data de 26 mai.
As vrea sa-i felicit pe colegii de academie care au reusit sa se califice si sa le urez succes in runda 2.
Ca planuri de viitor pentru blog ma gandesc la niste laboratoare in format video, pe care sa le incarc pe youtube. Cred ca ar fi un continut ceva mai interesant decat ceea ce am facut pana acum si mi-ar oferi ceva mai multa flexibilitate.
Acestea fiind zise, am rasfoit putin blogul meu si am realizat ca nu prea am discutat despre Network Address Translation (NAT). Subiectul facand parte din materia de CCNA, ba chiar m-am lovit de configurarea NAT la examenul practic din cadrul evaluarii interne, m-am gandit sa fac un laborator in care sa discut putin despre acest concept, ce este si la ce foloseste.
Asadar, ce este Network Address Translation (NAT) si la ce foloseste ?
NAT-ul reprezinta o metoda de a transpune un spatiu de adrese IP pe un altul, prin modificarea campurilor din interiorul headerului IP. Acest proces are loc in momentul in care pachetul trece printr-un router care are aceasta capabilitate configurata. Mai simplu spus, un pachet care intra cu o adresa sursa intr-un router care face NAT, va parasi routerul avand o alta adresa sursa.
In practica, NAT-ul este folosit pentru conservarea spatiului de adrese IPv4 prin translatarea de clase IP private pe unul sau mai multe IP-uri publice (routabile in internet), dar nu este limitat doar la acest lucru. NAT-ul se poate folosi si pentru a translata adrese private pe una sau mai multe adrese private. Am intalnit necesitatea unei astfel de configurari intr-unul din primele laboratoare cand am incercat sa conectez topologia din GNS3 la internet. Acolo a fost nevoie ca pe routerul din topologie pe care il legam de routerul fizic sa fac NAT pentru a putea scoate traficul afara. Nu ma intrebati de ce !:) Presupunerea mea este ca pachetele care pleaca din topologie, avand ip sursa dintr-o clasa diferita fata de cea pentru care stie routerul fizic sa faca NAT, nu reusesc sa treaca de acesta, dar facand NAT pe routerul din GNS3 cu care ma leg la routerul fizic, acesta modifica headerul IP iar routerul fizic vede un pachet cu un IP sursa pentru care stie ca trebuie sa faca NAT si il scoate la internet. Asta e banuiala mea ca s-ar intampla.
Un alt beneficiu adus de NAT ar fi o oarecare “protectie” oferita utilizatorilor din spatele routerului, care folosesc IP-uri private in LAN. In acelasi timp acesta este si un dezavantaj, deoarece se pierde conectivitatea end-to-end.
Ca termeni specifici cand lucram cu NAT, vom intalni adrese IP “inside local”, “inside global”, “outside global” si “outside local”. O adresa “inside local” este adresa sursa a pachetului pana a ajunge la routerul care face NAT. De obicei este o adresa privata. In momentul cand ajunge la router, pachetul este modificat iar in campul adresa sursa din header, este schimbata adresa din LAN cu adresa publica, ce va folosi drept adresa destinatie in momentul in care pachetul se intoarce. Aceasta adresa este denumita “inside global”.
Cand pachetul pleaca din LAN, adresa destinatie va fi o adresa publica, iar aceasta poarta denumirea de “outside global”.
Topologie

Cum putem configura NAT-ul ?
NAT static
Acest mod de configurare reprezinta o translatare unu la unu intre o adresa privata statica si o adresa publica.
Avem urmatoarea situatie, administram o retea in care avem gazduit un server web care are configurata o adresa privata statica si dorim ca acesta sa fie accesibil si din internet. Pentru a realiza acest lucru, vom cere ISP-ului un IP public, accesibil din internet si vom face NAT intre adresa din LAN a serverului si adresa obtinuta de la ISP. Astfel, cand persoane din afara LAN-ului doresc sa acceseze serverul web, vor accesa adresa publica.
Cand incepem sa configuram NAT, vom avea in vedere ca trebuie sa definim interfata sau interfetele ce urmeaza sa conecteze spatiile de adrese ce urmeaza a fi translatate si interfata prin care vor parasi routerul pachetele modificate.
Interfata de intrare este configurata folosind comanda “ip nat inside” (partea de LAN), iar interfata de iesire, cea care ne scoate in “the great internet” este configurata folosind comanda “ip nat outside” (interfata de WAN de obicei).
Eh, pentru ca am observat niste intrebari ciudatele legate de NAT pe la CCNA, voi evidentia aspectul urmator: adresa pe care se face translatarea NU este obligatoriu sa fie adresa interfetei prin care pachetul paraseste routerul ! Am intalnit exact genul asta de intrebare, cu o captura dintr-un config si se punea problema sa determinam adresa ip sursa a pachetului dupa ce routerul face NAT.
Revenind, in topologia de mai sus, vom configura NAT static pe router pentru PC1.
Dupa configurare, pornim o captura pe linkul dintre NAT-ROUTER si Internet, iar apoi initiem un ping de pe PC1 catre 8.8.8.8 (loopback-ul de pe “Cloud”). Vom observa pachetele venite din partea de LAN cum parasesc routerul cu adresa IP sursa specificata de noi cand am configurat NAT-ul si nu cu adresa IP configurata pe interfata de WAN.

NAT dinamic
Acest tip de NAT presupune existenta unui pool de adrese pe care urmeaza sa se faca translatarea si un ACL care sa specifice ce adrese urmeaza sa fie translatate. Dezavantajul major al acestui mod de configurare este dat de faptul ca daca pool-ul nostru contine un numar mai mic de adrese decat cele pe care dorim a le translata, dupa epuizarea “stocului”, adresele care doresc sa iasa la internet nu vor mai putea sa faca acest lucru.
O solutie ar fi configurarea folosind argumentul overload, care practic va face port address translation pe prima adresa din pool pana la epuizarea numarului de porturi, moment in care se va “extrage” din pool urmatoarea adresa disponibila. Despre port address translation voi discuta mai jos.
Voi face o scurta paranteza pentru a discuta putin despre ACL-ul prin care specificam ce adrese urmeaza sa fie translatate. De obicei este folosit un ACL standard, dar am intalnit in cadrul probei practice de azi un ACL extended. Ca regula nu facea nimic altceva fata de un ACL standard pentru ca permitea accesul IP-urilor din LAN catre orice destinatie pentru orice protocol, dar ma gandesc ca folosind un astfel de ACL, putem deveni mai restrictivi in sensul in care putem bloca anumite protocoale. De ex. dorim ca utilizatorii din LAN sa nu poata face telnet (am testat si merge).
Dar revenind, cum am zis mai sus, configuram NAT dinamic pentru PC2, PC3 si PC4.
Initiem pinguri de pe PC2, PC3 si PC4. Vom observa ca dupa ce s-a facut translatarea IP-urilor pentru PC2 si PC3, pool-ul a fost “golit” iar IP-ul lui PC4 nu este translatat, pingul de pe acesta nereusind.
Mai jos observam cum se face translatarea daca folosim argumentul “overload” la finalul comenzii de configurare pentru NAT. Vedem ca toate IP-urile sunt translatate pe primul IP din pool.

NAT cu overload sau Port Address Translation
Acest tip de NAT este cel mai frecvent intalnit. In acest tip de NAT toata partea de LAN a clientului unde avem IP-uri private, este translatata pe un singur IP public alocat de ISP. Se mai numeste si PAT (port address translation) deoarece pentru ca fiecare host din LAN sa fie identificat in momentul in care un pachet se intoarce catre el, identificarea se va realiza dupa informatia de Layer 4, anume portul pe care este deschisa sesiunea. Cand configuram PAT, identificarea hosturilor se realizeaza dupa socket.

Am folosit o interfata loopback tocmai pentru a evidentia ca nu este obligatoriu sa facem translatarea pe adresa IP a interfetei WAN. In practica totusi, nu se configureaza astfel. Aproape mereu vom alege sa facem NAT pe interfata de WAN pe care avem configurat IP-ul public alocat de ISP.
Cam aceasta este pe scurt, discutia despre NAT. Sper ca ati gasit util si interesant acest laborator, pentru intrebari sau observatii va rog sa folositi sectiunea de comentarii.
Laboratorul poate fi descarcat de aici.
Laboratorul poate fi descarcat de aici.
Spor ! :)
Niciun comentariu :
Trimiteți un comentariu