Jump to content
ZeroCold

Tot ce trebuie sa stiti despre IPv6

Recommended Posts

Posted (edited)

A fost odata ca niciodata…

Cand ARPANET a fost creata la sfarsitul anilor 60 a fost echipata cu un Network Control Protocol (NCP) ce facea posibila conectarea diferitelor tipuri de hoturi legate la retea. Insa a devenit curand clar ca NCP limita in unele feluri asa ca munca a inceput pentru creerea unei alternative. Inginerii au decis ca era normal sa imparta imensul protocol NCP in doua: un protocol internet (Internet Protocol) ce permite pachetelor sa fie routate intre diferite retele conectate la ARPANET, si un protocol pentru controlul transportului (Transport Control Protocol) ce preia un stream de date, il imparte in segmente si transmite segmentele folosind Internet Protocol-ul; asa s-a nascut TCP/IP. Pe partea cealalta, TCP-ul ce primea conexiunea se asigura ca segmentele sunt ansamblate in ordinea corecta inainte de a fi livrate ca un stream de date catre aplicatia destinatie. Un rezultat important al acestei metode este ca, spre deosebire, de exemplu, de un telefon conectat la o retea de telefonie (fie ea pe cablu sau wireless), un host conectat la ARPANET atunci si la Internet acum trebuie sa-si cunoasca propria adresa.

TCP/IP a functionat ireprosabil inca de la nasterea sa in 1981 dar de la o vreme a devenit clar ca partea IP are o limitare ce face cresterea continua a Internetului pentru cateva decenii sa fie problematica. Pentru a acomoda un numar mare de hosturi dar a nu irosi prea mult spatiu in pachetele IP, creatorii TCP/IP au ales o dimensiune de adresa de 32 biti. Cu 32 biti este posibil sa existe 4.294.967.296 valori diferite. Mai mult de jumatate de miliard din acestea sunt inutilizabile din diferite motive, ramanand un total de peste 3.7 miliarde de posibile adrese pentru hosturi pe Internet. Incepand de la 1 ianuarie 2007, 2.4 miliarde din acestea erau folosite intr-un fel sau altul. 1.3 miliarde erau inca libere iar aproape 170 milioane de noi adrese sunt ocupate in fiecare an. Daca aceasta crestere continua, peste 7.5 ani nu vom mai avea adrese IP; chiar mai repede daca numarul de adrese folosite pe an creste.

ip_v6_1993.png

ip_v6_2000.png

ip_v6_2007.png

In acest moment cineva aduce de obicei in discutie NAT. Routerele pentru case (si multe dintre echipamentele enterprise) pot folosi o tehnica numita “network address translation” astfel incat o singura adresa IP poate fi impartita de un numar mare de hosturi.

Deci de ce nu folosim NAT?

Hosturile sub un device NAT primesc adrese in blocurile 10.0.0.0, 172.16.0.0 sau 192.168.0.0 ce au fost lasate pentru uz privat in RFC 1918. Echipamentul NAT inlocuieste adresa privata in pachetele trimise de host in reteaua interna cu propria sa adresa si invers pentru pachetele primite. Astfel, multiple computere pot impartii o singura adresa publica. NAT are insa cateva dezavantaje. In primul rand, conexiunile incoming nu mai functioneaza, deoarece in momentul in care o cerere de sesiune vine din afara echipamentul NAT nu stie carui host intern ii este adresata. Aceasta problema se poate rezolva in mare cu port mappings si protocoale precum uPnP si NAT-PMP.

ip_v4_range.jpg

Lucrurile se complica pentru aplicatiile ce au nevoie de referrals. NAT distruge protocoalele ce se ocupa de adrese IP embeded. De exemplu, cu VoIP, computerul client spune serverului “Te rog trimite apelurile catre aceasta adresa.” Evident acest lucru nu merge daca adresa respectiva este privata. Ocolirea acestui impediment implica foarte multa logica special case in echipamentul NAT, protocolul de comunicatie si/sau aplicatie. Pentru acest motiv si alte cateva, cei mai multi oameni ce participa in Internet Engineering Task Force (IETF) nu sunt foarte incantati de NAT.

Mai la obiect, NAT este deja foarte folosit si tot ne mai trebuie 170 milioane de noi adrese IP pe an.

In zilele de inceput ale Internetului, unele organizatii au primit blocuri de adrese excesiv de mari. De exemplu, IBM, Xerox, HP, Dec, Apple si MIT au primit blocuri de adrese “class A” de aproximativ 17 milioane de adrese. (Astfel, HP, care a achizitionat DEC, are mai mult de 33 milioane adrese). Eliberarea acelor blocuri ar necesita un efort imens si ne-ar mai da doar cativa ani: in momentul de fata terminam un bloc de adrese class A in 5 saptamani. Este discutabil cat timp putem face ca spatiul pentru adresele IP sa fie disponibil mai ales ca din ce in ce mai multe echipamente, precum telefoane VoIP se conecteaza la Internet. Asa ca, la inceputul anilor 90 IETF a inceput proiectul noii generatii IP (IP next generation).

Adrese mai mari

Proiectul IPng a rezultat in IPv6 in 1995. Pe langa adresele sursei si destinatiei si alte informatii fiecare pachet IP contine si un numar de versiune. Din motive nestiute pachetele curente IP sunt versiunea 4 iar primul numar de versiune valabil pentru noul protocol era 6. Astfel, vechiul IP este acum numit IPv4 iar cel nou este IPv6. Pe langa autoconfigurare si alte detalii minore, IPv6 suporta in primul si cel mai important rand adrese mai mari. Mult mai mari. 40 sau 48 biti ne-ar fi dat mai mult de un trilion sau respectiv 281 trilioane de adrese, iar 64 biti ar fi fost un numar rotund. Dar IETF au optat pentru 128 biti. Numaru total de posibile adrese ce ne sunt astfel oferite este:

340.282.366.920.938.463.463.374.607.431.768.211.456

Adresele IPv4 sunt scrie prin partirea lor in 4 valori pe 8 biti si adaugarea punctelor intre ele, de exemplu 192.0.2.31. Adresele IPv6 pe de alta parte sunt scrise ca opt valori pe 16 biti cu doua puncte ( : ) intre ele iar fiecare valoare de 16 biti este afisata in hexazecimal, folosind numere si litere de la A la F. Un exemplu de adresa IPv6 este

2001:db8:31:1:20a:95ff:fef5:246e

Nu este neobisnuit ca adresele IPv6 sa aiba secvente consecutive de zerouri. In aceste cazuri, exact una dintre acele secvente poate fi eliminata. 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

Autoconfigurare stateles

ip_v6_autoconfig.png

Desi in aproape toate privintele, IPv6 este tot IP si functioneaza in mare masura la fel ca IPv4, noul protocol se departeaza de IPv4 in unele privinte. Cu IPv4 este nevoie de un server DHCP pentru a-ti spune adresa ta daca nu vrei sa o configurezi manual. Acest lucru functioneaza foarte bine daca este un singur server DHCP dar nu la fel daca sunt mai mult de unul si ofera informatii conflictuale. Poate de asemenea sa fie greu sa obtii aceeasi adresa dupa rebooturi cu DHCP.

Cu IPv6, DHCP este in mare masure inutil datorita autoconfigurarii stateless (stateless autoconfiguration). Acesta este un mecanism prin care routerii trimit “router advertisements” (RA) ce contin primii 64 biti ai unei adrese IPv6 iar hostul genereaza restul de 64 de biti pentru a forma o adresa completa.

Traditional, ultimii 64 biti ai unei adrese IPv6 sunt generati de la o adresa MAC prin inlocuirea unui bit si adaugarea bitilor ff:fe in mijloc. Astfel, adresa Ethernet MAC 00:0a:95:f5:24:6e devine 20a:95ff:fef5:246e ca ultima parte a unei adrese IPv6, parte numita “interface identifier”. Astfel, daca toate routerele timit acelasi prefix pentru primii 64 biti, hostul va configura mereu aceeasi adresa IPv6 pentru el insusi. Nu este necesara niciun fel de configurare, nici pe host nici pe serverul DHCP. In mod alternativ, un host poate genera adresa IPv6 folosind un numar aleator pentru ca adresa MAC sa ramana ascunsa fata de restul Internetului. Windows foloseste acest tip de adrese pentru outgoing sessions pentru a imbunatati siguranta. Alte sisteme de operare pot de asemenea genera aceste adrese temporare (una noua este generata la fiecare 24 de ore) dar nu fac asta implicit.

Cand un router trimite mai multe prefixuri de adresa, sau mai multe routere trimit prefixuri diferite, hosturile pot pur si simplu crea adrese de la fiecare din aceste prefixuri. Routerele pot face ca hosturile conectate la ele sa modifice adresa IPv6 prin eliminarea vechiului prefix si folosirea celui nou.

Desi protocolul DCHPv6 (versiunea IPv6 a DHCP) poate atribui adrese IPv6 in acelasi mod ca si servere DHCP IPv4 atribuie adrese IPv4 nu am intalnit servere sau clienti DHCPv6 ce folosesc aceasta proprietate. Cu IPv6, DHCP este folosit in principal pentru a distribui informatii aditionale precum adrese de servere DNS desi va exista un mod de a face asta prin RA in curand micsorand si mai mult nevoia de DHCP in IPv6.

Tipuri speciale de adrese

Pe langa obisnuita adresa “global unicast” deja discutata, IPv6 are si alte tipuri de adrese. Nu le voi mentiona pe toate insa trei dintre cele mai importante adrese cu scop special sunt:

  • Link local – sunt folosite pentru a comunica peste o singura subretea fizica sau logica cum ar fi Ethernet. Aceste adrese incep cu fe80 si sunt folosite pentru functiile de administrare interna a IPv6.
  • Site local – reprezinta echivalentul spatiului de adrese private RFC 1918 in IPv4. Totusi, IEFT a gasit situatia in care diferite organizatii folosesc acelasi spatiu de adresa de nedorit; astfel au creat adrese “unique site local” unde fiecare primeste un bloc selectat aleator de la spatiul de adrese incepand cu fd.
  • Multicast – reprezinta un grup de adrese, deci fiecare pachet trimis catre o adresa multicast este primita de toti membrii grupului. Adresele multicast incep cu ff si pot fi folosite pentru aplicatii unde mai multe hosturi trebuie sa primeasca aceeasi informatie in acelasi timp cum ar fi transmisii video in direct si de asemenea pentru configurarea automata si descoperire de retele (autoconfiguration si discovery).

Cand ruleaza sub Ethernet sau WiFi, hosturile IPv4 folosesc broadcasturi pentru functii de descoperire. De exemplu, pentru a putea trimite un pachet prin Ethernet este necesar sa fie stiuta adresa MAC a destinatiei. Astfel IPv4 trimite “cine este 192.0.31?” catre toate sitemele din reteaua in cauza. IPv6 pe de alta parte trimite aceste pachete unei adrese multicast astfel ca doar hosturile IPv6 ce asculta aceste cereri le vad; pe alte sisteme hardwareul Ethernet ignora pachetele si este chiar posibil ca switch-urile sa le filtreze prin memorarea grupurilor de hosturi multicast si ascultarea fiecaruia.

Securitate IPv6

Exista multe discutii despre faptul ca IPv6 este mai sigur decat IPv4. Toate se rezuma la doua lucruri; unul este real, celalalt nu. Vestea buna este ca datorita dimenisunii mari a spatiului unei adrese IPv6, scanarea aleatorie dupa sisteme ce sunt vulnerabile este complet inutila. Povestea spune ca la varful exploziei de malware auto-propagat de acum cativa ani, un sistem Windows fara patch-uri ar fi fost infectat mai repede decat putea downloada update-urile de securitate necesare. Cu IPv6 acest lucru este pur si simplu imposibil: chiar si cu un miliard de hosturi infectate fiecare scanand un miliard de adrese IPv6 pe secunda dureaza mai mult de o sute de milioane de ani doar sa scaneze spatiul adreselor IPv6 alocate ISP-urilor, spatiu ce reprezinta aproximativ 0.01% din ceea ce este disponibil. Scanarile targetet, desi nu sunt usoare, sunt inca posibile asa ca masuri de securitate precum cele folosite cu IPv4 sunt inca necesare.

Ideea era sa se dea un imbold securitatii IPv6 prin obligativitatea suportului IPsec. IPsec cripteaza fiecare pachet individual astfel ca poate fi aplicat intregului trafic IP spre deosebire de larg-folositul SSL ce functioneaza doar peste TCP. Dintr-un numar de motive insa, este foarte greu de implementat suport IPsec in aplicatii astfel ca nu a obtinut o utilizare raspandita cu exceptia folosirii sale ca un mecanism de implementare a VPN-urilor.

Pe scurt, un host ce are IPv6 pornit va crea un adresa link local pentru el. Asta inseamna ca orice host care are IPv6 pornit – autmoat pentru Windows Vista, Mac OS X si majoritate distributiilor Linux si BSD – poate fi accesat prin IPv6 de hosturile conectate la acelasi Ethernet, chiar daca nu este un router IPv6 ce trimite RA-uri.

Folosirea IPv6

Desi crearea unui nou protocol nu este chiar joaca de copii, cea mai grea parte o reprezinta implementarea lui. Nu era rentabil sa se construiasca o infrastuctura complet noua sau sa se decida “gata, trecem la IPv6 in clipa asta”. Pentru a evita aceste situatii pe cat posibil IETF au venit cu un numar de tehnici de tranzitie. Cele mai importante sunt dual stack si tunneling. Dual stack nu este nimic mai mult decat notiunea ca o gazda poate rula atat IPv4 cat si IPv6 astfel ca poate comunica cu hosturi IPv4 prin IPv4 si cu hosturi IPv6 prin IPv6. Tunneling inseamna ca atunci cand pachete IPv6 trebuie sa treaca prin o parte a retelei ce suporta doar IPv4, pachetele IPv6 sunt puse in pachete IPv4, trimise apoi prin partea exclusiv IPv4 a retelei si apoi bucata IPv4 este eliminata si pachetele isi continua drumul spre IPv6.

Dupa cum am mai spus, majoritatea sistemelor de operare moderne sunt setate pentru operatii dual-stack implicit. Deci daca exista un router IPv6 in reteaua locala care trimite un prefix IPv6, un host va genera adresa IPv6 pentru el insusi pentru a putea comunica prin acel protocol. Acum ca Microsoft a pornit IPv6 implicit in Vista (poate fi pornit/oprit in XP cu comanda ipv6 install si ipv6 uninstall) vom putea vedea mai multe home routere IPv6 enabled precum draft-802.11n Airport Extreme de la Apple.

ip_v6_routing.png

Tineti minte ca nu trebuie ca ISP-ul dumneavoastra sa suporte noul protocol pentru a putea folosi IPv6. un router IPv6 sau un host poate folosi un tunnel pentru a ajunge pe Internetul IPv6. Incetul cu incetul aceasta noua arhitectura va fi adoptata asa ca este bine sa fim familiarizati cat de cat cu ea.

#sursa: aici.

Edited by ZeroCold
Posted

Daca aceasta crestere continua, peste 7.5 ani nu vom mai avea adrese IP; chiar mai repede daca numarul de adrese folosite pe an creste.

Interesant, si eu care stiam ca se termina in cateva zile. :)

Posted
@Andrei

Vezi ca a scris ca a luat articolul de pe arenait, unde a fost postat in 2007. Oricum, nu au nimerit-o cu anii :)

Monday, 12 March, 2007 la 16:25. X_X

Nu am fost atent, am cautat despre IPv6, nu m-am mai uitat la data...

Scuze :">

Posted

S-a folosit ipv6 pentru ca oamenii sa isi poata folosi microchipurile ethernet(din placile de retea) este mai mult vorba de compatibilitatea pe care au vrut ei sa o mentina.Se poate mentiona ca o adresa ipv4 are 4bytes una ipv6 are 6 bytes... se putea opta pentru o adresa ipv4 cu worduri

adik ipv4 devenea 4*4 bytes si in loc de maximul de 255.255.255.255 aveam 255^4.255^4.255^4.255^4 ip-uri mult mai multe decat ipv6... ipv6 este doar o solutie convenabila pentru moment,pentru ca ip-ul dupa cum stiti e mai mult logic,este un top layer al MAC-ului(adresa hardware).

Posted
S-a folosit ipv6 pentru ca oamenii sa isi poata folosi microchipurile ethernet(din placile de retea) este mai mult vorba de compatibilitatea pe care au vrut ei sa o mentina.Se poate mentiona ca o adresa ipv4 are 4bytes una ipv6 are 6 bytes... se putea opta pentru o adresa ipv4 cu worduri

adik ipv4 devenea 4*4 bytes si in loc de maximul de 255.255.255.255 aveam 255^4.255^4.255^4.255^4 ip-uri mult mai multe decat ipv6... ipv6 este doar o solutie convenabila pentru moment,pentru ca ip-ul dupa cum stiti e mai mult logic,este un top layer al MAC-ului(adresa hardware).

Tu cand zici ceva... gandesti ce zici sau pur si simplu scoti primul lucru care iti bese mintea?

4*4bytes = 16 bytes da?

4bytes = 32 bits * 4 = 128 bits...

Wikipedia: The size of IPv6 addresses is 128 bits, compared to 32 bits in IPv4.

>> ipv6 este doar o solutie convenabila pentru moment,pentru ca ip-ul dupa cum stiti e mai mult logic

WTF???

osi layers:

http://www.shamaan.com/kb/images/1/19/Osi_model.png

ipv4 si ipv6 sunt tot PROTOCOLUL IP doar ca versiuni diferite(ca diferenta intre xp si win 7 ... numai ca in networking layer 4)

P.S.: 2^128 (adica ... un carnat de cifre...) IP-uri (tot ip-uri sunt chiar daca sunt in hex si de multe ori simplificate - pot fi scrise si numeric) nu o sa se termine prea curand... o sa reziste cel putin 40 de ani ( daca nu apare un protocol mult mai bun din pct de vedere al performantei)

Posted
Tu cand zici ceva... gandesti ce zici sau pur si simplu scoti primul lucru care iti bese mintea?

4*4bytes = 16 bytes da?

4bytes = 32 bits * 4 = 128 bits...

Wikipedia: The size of IPv6 addresses is 128 bits, compared to 32 bits in IPv4.

>> ipv6 este doar o solutie convenabila pentru moment,pentru ca ip-ul dupa cum stiti e mai mult logic

WTF???

osi layers:

http://www.shamaan.com/kb/images/1/19/Osi_model.png

ipv4 si ipv6 sunt tot PROTOCOLUL IP doar ca versiuni diferite(ca diferenta intre xp si win 7 ... numai ca in networking layer 4)

P.S.: 2^128 (adica ... un carnat de cifre...) IP-uri (tot ip-uri sunt chiar daca sunt in hex si de multe ori simplificate - pot fi scrise si numeric) nu o sa se termine prea curand... o sa reziste cel putin 40 de ani ( daca nu apare un protocol mult mai bun din pct de vedere al performantei)

tu chiar gandesti pe nas, cum poti sa spui ca 255^4.255^4.255^4.255^4 are acelasi grad de complexitate cu 255.255.255.255.255.255 ? tu esti ala care iti bese mintea si ar trebui sa faci research inainte sa arunci ochii pe wikipedia si sa imi pui 3 linkuri aici cu niste standarde de pe vremea lui 95 doar asa ca sa te simti tu smecher.Pune-te si construieste un tcp/ip stack de la bottom layer, configurand fiecare pin a unui port ethernet si comenteaza pe urma, ipv6 a fost construit pentru a se mentine tot ce inseamna serviciu de adresare ip de la icmp la dhcp la dns samd, nu e nici pe departe cea mai rapida solutie sau cea mai secure. Dar imagineaza-ti ca pastrau aceleasi clase si in loc de 255.255.255.255 aveai 65535.65535.65535.65535 (spre exemplu) nu batea la fund ipv6? ca sunt mult mai multe ip-uri decat in cele de la ipv6... dar ca sa implementezi asa cv si sa fie folosit trebuie CA TOATA LUMEA SA ISI SCHIMBE CEEA CE E DEJA FACUT .. reteaua ta locala cu dhcp nu ar putea merge la fel, pentru ca serverul de dhcp nu stie sa aloce ip pentru stackul tau,si povestea continua...tu te trezesti vorbind, si ai idei de pe google, incearca sa nu mai gandesti ideile altora, si daca barem stii sa folosesti google ,ceea ce vorbesc eu a fost propus in 2003, ba mai mult uite-te pe schema care ai postat-o cu nivelurile, cate niveluri trebuiau schimbate?

Posted (edited)
255^4.255^4.255^4.255^4

255^4=65535? nu cred

mai degraba 4228250625

si ca sa inteleaga si mintea ta (sa speram ca e inca in dezvoltare .... daca nu condoleantele mele)

255^4 = 255 * 255 * 255 * 255 (4228250625)

exemplu de adresa ipv6:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

hai sa vedem cate ip-uri poate sa sustina si de ce...

deci avem 8 grupuri a cate 4 hex digits:

4 hex digits = 65535 (16^4 -1)

bun deci fiecare grup are 65535 de variatii si avem 8 grupuri diferite

deci avem 65535^8 combinatii in total adica:

copy paste din calculatorul de la windows:

3,4024083076439103668710571952781e+38 (34 cu 37 de 0 la coada aproximativ)

( imi pare rau ca nu mai am clasa bigint facuta pentru facultate anu trecut sa iti dau exact carnatul de cifre cate ip-uri suporta ipv6)

Edited by Xander

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...