Dacă pentru protocolul IPv4 avem rezervate anumite blocuri de adrese IP pentru uz privat (a se vedea RFC1918), pentru protocolul IPv6 avem ca și echivalent prefixele „Unique local address” (ULA).
Aceste adrese nu sunt rutabile în internet, dar pot fi rutate între anumite site-uri (de exemplu: două sedii ale aceleiași firme, sedii situate în orașe diferite și interconectate prin VPN). Ele vor fi filtrate pe echipamentele de interconectare ale ISP-iștilor.
Se dorește ca aceste adrese IPv6 să fie unice la nivel global, astfel încât să nu apară conflicte cu ocazia interconectării a oricăror două site-uri care folosesc adrese de acest tip. S-a propus chiar să existe o autoritate care să gestioneze alocarea acestora, dar nu s-a ajuns la un consens.
Soluția aleasă a fost propunerea unui algoritm de generare a acestor adrese astfel încât să se asigure un grad cât mai mare de unicitate.
Înainte de vorbi de acest algoritm, să vedem structura unei adrese de acest tip:
- 7 biti – prefix – FC00::/7 – identifica adresa ca fiind de tipul Local IPv6 unicast address;
- 1 bit – L – setat cu valoarea 1, specifică faptul că adresa este generată local;
- 40 biti – Global ID – identificator global folosit pentru realizarea unicității adresei;
- 16 biti – Subnet ID
- 64 biti – Interface ID
Deci algoritmul menționat mai sus se aplică pentru generarea câmpului Global ID (40 biti). Astfel:
- se obține timpul curent în format NTP 64 bițî;
- se obține identificatorul EUI-64 al sistemului pe care rulează algoritmul. Dacă acesta nu există se poate obține folosind adresa MAC;
- se concatenează cele două șiruri obținute anterior, generându-se astfel o cheie;
- se calculează un hash SHA-1 pentru cheie, obținându-se un rezultat pe 160 biți;
- se folosesc cei mai puțini semnificativi 40 biți ai rezultatului pentru Global ID;
Mai departe, se concatenează FC00::/7 cu câmpul L (valoarea 1) și cei 40 de biți ai Global ID obținut, rezultând altfel prefixul pentru adresa IPv6 locală.
Trebuie reținut faptul că acest tip de adrese nu „apar” în mod automat ca și adresele de tip link-local ci trebuiesc configurate (manual, DHCPv6 etc).
Un script online pentru generarea automată de astfel de adrese pe care să le folosiți în rețeaua voastră găsiți la adresa:
http://www.sixxs.net/tools/grh/ula/
Cu toate că aceste adrese trebuiesc generate după cum am povestit, personal am încălcat aceste reguli și folosesc în rețeaua internă ceva de genul:
fd00:771:2348::/48
fd00:771:2348:105::/64
Revenind la discuția cu asignarea locală sau globală de către o autoritate, cum această autoritate nu este definita în prezent, bitul 8 este tot timpul 1, deci aceste adrese nu pot fi din plaja fc00::/8 ci doar din fd00::/8.
Pentru exemplificare, considerăm adresa MAC 00:22:19:5a:61:4c, din care rezultă EUI-64: 022219fffe5A614C. Timpul NTP 64 biti este acum d47639af. Folosind algoritmul prezentat rezultă ULA: fd79:8889:1ec1::/48.
În schema de mai jos am propus o împărțire a acestui prefix în mai multe /64 pentru interconectarea diverselor echipamente de rețea. A se vedea adresele atribuite pe fiecare interfață.
Parcă nu era așa distractiv cu IPv4, nu?
Dacă aveți comentarii, propuneri, corecturi, înjurături, nu ezitati – scrieți mai jos!
Încă sunt la început de drum cu IPv6 și este posibil să fac și greșeli.
Articole asemanatoare:
- DNS – restricționare acces site-uri noroc ilegale
- Au apărut
- Primii pasi in lumea FreeBSD-ului
- ZTE ZXR 10 2609
- Exemplu: cum se încalcă Constituția
- Introducere în IPv6
- Orange Home Net prin fibră – dual stack IPv4/IPv6
- Asterisk – securitate
- Certificat digital calificat de la DIGISIGN – semnătură electronică email
- FreeBSD – Controlul accesului SSH folosind TCP Wrappers
interesant articolul , multumiri 🙂