Prefix Assignment in a Home Network

Prefix Assignment in a Home Network

Am avut onoarea saptamana trecuta sa sustin o prezentare la V6 World Congress 2013 / Paris si asta mi-a dat posibilitatea sa aflu foarte multe lucruri noi si interesante despre IPv6 de la ceilalti participanti. Un lucru pe care il asteptam de ceva vreme si despre care discutasem si anul trecut a fost cum sa “spargem” si sa alocam in mod dinamic pe toate device-urile din casa un prefix IPv6 pe care il primim de la ISP via DHCPv6 PD.

Ganditi-va la faptul ca la IPv4 aveti posibilitatea sa faceti “multiple NAT” iar asta va permite sa aveti mai multe routere cascadate in casa (Home Network pe mai multe nivele). La IPv6 nu aveti posibilitatea asta, iar daca primiti doar un ::/64 nu puteti folosi decat hosturi in spatele unui singur router. Iata cateva exemple ca sa fie totul mai clar:

  • Ai un GPS MIO care nu are placa de retea wireless cu care sa se poata conecta la routerul tau wireless (pentru ca e ieftin) ci se conecteaza direct pe USB in laptopul tau din casa ca sa-si faca update la harti. Pe IPv4 asta inseamna “multiple NAT” si nici nu-l vei simti. Pe IPv6 asta nu va functiona daca ai doar un ::/64 in LAN pentru ca GPS-ul tau este pe al doilea nivel din LAN-ul tau si are nevoie de un al doilea ::/64.
  • Ai un PC pe care ai instalata o masina virtuala. La IPv4 folosesti NAT pentru masina virtuala si ai access la internet. Pe IPv6 asta nu va functiona daca ai doar un ::/64 pentru ca mai ai nevoie de inca un ::/64 si pe masina virtuala.
  • Ai un router wireless care iti permite si “Guest SSID”. Pe IPv4 el isi seteaza automat sa spunem 192.168.100.1/24 pentru un SSID si 10.10.10.1/24 pentru “Guest SSID”. Pe IPv6 asta nu va functiona daca ai doar un ::/64 pentru ca mai ai nevoie de inca un ::/64.

Bun, acum ISP-ul iti poate oferi foarte usor un ::/56 sa spunem in loc de ::/64, dar atat timp cat acest prefix e dinamic, ai nevoie de un protocol dinamic si in LAN care sa-ti “sparga” acest ::/56 in ::/64 pe care sa le asigneze pe device-urile tale din casa.

La protocolul asta se lucreaza de mai bine de un an, exista acest DRAFT publicat iar ideea este urmatoarea:

Sa spunem ca ai in LAN 3 routere. Primul e cel in care iti intra firul de la provider, laptopul, PC-ul, tableta, NAS-ul si Mplayer-ul, in al doilea o sa ai toti senzorii (gaze, umiditate, temperatura etc.) care vor fi pe IPv6 in cativa ani, iar in al treilea toate camerele web din casa. Routerele vor rula un soi de OSPFv3 intre ele, deci vor avea toate 3 aceleasi informatii despre topologia logica din casa. Primul router, cel care primeste ::/56 de la ISP va anunta acest prefix si celorlalte doua si fiecare isi va asigna care un ::/64 pe fiecare interfata. Dupa ce fiecare are ::/64 asignat pe toate interfetele se vor rezolva “conflictele”, adica situatiile in care s-a asignat acelasi prefix ::/64. Exista doua tipuri de conflicte:
1. Doua routere diferite asigneaza acelasi prefix ::/64 pe o anumita interfata de-a lor
2. Doua routere diferite asigneaza ::/64 diferite pe link-ul dintre ele.

Ambele conflicte se rezolva in functie de “priority” deci routerul cu prioritatea mai mica va trebui sa schimbe acel ::/64 cu un altul si se reia algoritmul. In final, o sa avem cate un ::/64 asignat pentru fiecare device din casa dar si pe link-urile dintre routere.

Am deja codul acesta pe care il voi testa pe OpenWRT. Sper ca in scurt timp sa fie inclus in imaginile OpenWRT, Tomato etc. consacrate si sa ne putem bucura de “OSPFv3 prefix assignment” in LAN. Abia atunci vom avea nevoie de un prefix mai mare de ::/64 iar faptul ca va fi dynamic de la provider chiar nu va mai conta absolut deloc.

4 Comments

  1. Mi se pare că se irosesc mulți biți. Nu se putea face aceeași chestie cu, sa zicem, 32 de biți din cei 64?

  2. Author

    @M.C. – e relativa toata chestia asta cu “risipa” de biti; daca stam sa ne gandim asa si 32 de biti sa folosesti este foarte mult. se doreste folosirea MAC-ului (48 de biti) in partea de host deci pentru mecanismul EUI-64 nu ar ajunge doar 32 de biti.

  3. Daca toate routerel in cascada ar lucra in mod bridge (inclusiv masinile virtual de ex. vmware) ar ajunge un../64! Sau?

    Mihai R. Balomiri, SAS
  4. Author

    @Mihai: corect, daca toate routerele ar lucra in mod bridge nu ai mai avea un LAN pe mai multe ‘nivele’ deci ti-ar ajunge un /64. practic, un router in mod bridge nu mai e router, e bridge :).

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.