subnetizare VLSM/FLSM

Configurare noua (How To)

Situatie

Subnetizarea este un subiect greu de înteles, mai ales atunci când pe Internet se găsesc tot felul de variante de explicații și exemple, care la un moment dat tind să deruteze mai mult decât să ajute. Acest lucru se întâmplă pentru că nu este o singură metodă general acceptată ca și algoritm de subnetizare. Evident, asta a dus la o varietate de metode aplicabile, care mai de care mai “interesante”. Algoritmul pe care îl voi prezenta este preferatul meu, din simplul fapt că eu am înteles subnetizarea abia după ce l-am descoperit. Asa că aștept și reacțiile voastre, cu privire la ușurinta cu care îl intelegeți.

Solutie

Pasi de urmat

În primul rând, pentru a înțelege ce înseamna subnetizare, ne vom aduce aminte, că inițial, protocolul IP a fost standardizat în clase de adrese. Adresarea classful (adica cea care ține cont de clase) a încetat a mai fi folosită pentru că, odată cu creșterea cererii pentru adrese IP, schema de adresare era ineficientă.

Pe scurt, principiul pe care se bazează adesarea IPv4 este acela că fiecare adresă are o porțiune de retea și una de host. Vom vedea că în IPv6 nu este necesară porțiunea de rețea. Voi nota porțiunea de retea cu N (Network) și cea de host cu  H (Host). N este comună pentru toate hosturile dintr-o rețea, și H este unică pentru fiecare host, identificându-l astfel în rețeaua sa. Într-un domeniu de rutare (care pe scurt înseamnă mai multe routere interconectate) nu se va repeta N. O rețea se termină la interfața (sau subinterfața, în cazul în care avem VLAN-uri) unui router. Atenție, de multe ori ne referim la rețea ca la ansamblul de routere și switchuri interconectate. Această exprimare este oarecum eronată, deși a intrat în vocabulary.

Revenind la clasele de IP-uri, tabelul de mai jos le prezintă pe scurt:

 

Clasa Porțiunile Newtork/Host Valorile primului byte Valorile adreselor de rețea Numar de rețele Numar de hosturi per rețea Masca de tip classful
A N.H.H.H 00000000

01111111

(0 – 127)

0.0.0.0

127.0.0.0

27 – 2 = 128 – 2 = 126 (00000000 si 01111111 care sunt rezervate) 224 – 2 = 16M /8

(255.0.0.0)

B N.N.H.H 10000000

10111111

(128 – 191)

128.0.0.0

191.255.0.0

214 = 16.384 216 – 2 = 65534 /16

(255.255.0.0)

C N.N.N.H 11000000

11011111

(192 – 223)

192.0.0.0

223.255.255.0

221 = 2.097.152 28 – 2 = 254 /24

(255.255.255.0)

 

Observăm că avem rețelele de clasa A ce pot acomoda un număr foarte foarte foarte mare de hosturi (tehnic vorbind nu exista nicio rețea cu 16M hosturi), cele de clasa B care tot foarte mari sunt pentru câte hosturi punem într-o rețea de obicei, și rețelele de clasa C, care deși sunt cele mai potrivite ca și dimensiuni pentru necesități, sunt foarte puține (2 milioane de rețele sunt puține pentru Internet-ul de astăzi). Deci ce facem?

  1. Nu se mai alocă rețele classful: IANA (Internet Assigned Numbers Association), prin intermediul RIR-urilor (Regional Internet Registries) aloca subnet-uri, nu rețele classful.
  2. Se implementează NAT (Network Address Translation): Rețele private vor fi adresate folosind acelasi spații de adrese definite în RFC 1918 (10.0.0.0/8, 172.16.0.0/12 si 192.168.0.0/16). Acestea sunt refolosibile deoarece nu sunt rutabile în Internet, și în momentul în care un host dintr-o retea privata incearcă să comunice în Internet, este translatat într-o adresa publica, rutabila în Internet)

Ajungem deci la subnetizare. A subnetiza înseamnă a aloca o mască de rețea mai mare decât masca de tip classful pentru o adresă de rețea. Cu biții „împrumutați” astfel din porțiunea de host, ce fac parte după subnetizare din porțiunea de rețea, se vor crea noi adrese de rețea. De exemplu, masca de tip classful pentru 172.16.0.0 este /16. Subnet-uri ale acestei rețele classful sunt 172.16.0.0/24 sau 172.16.0.0/26. Să nu uităm că masca de rețea poate lua orice valoare între 0 și 32, nu trebuie neapărat să fie multiplu de 8.

Acum că am vazut definiția subnetizării, să vedem și cum facem să obținem această subnetizare.

Am să încep prin a menționa faptul că există doua tipuri de subnetizări, cea statică și cea variabilă: slsm/vlsm

FLSM

  1. Ordonăm descrescător rețelele în funcție de numărul de host-uri:

1000, 510, 100, 30, 15, 7

  1. Pentru rețeaua cu cel mai mare număr de host-uri, calculăm dimensiunea subrețelei, adică de fapt vom afla noua mască de rețea.

1000 + 2 = 1002

Trebuie să gasim cea mai mica putere a lui 2 mai mare decat 1002.

De ce așa? Păi noi avem un număr previzionat de host-uri, adică implicit un număr de adrese IP ce vor fi utilizate. Adăugăm 2, pentru că în orice subrețea sunt două adrese rezervate, cea de rețea (toți biții de host pe 0) și cea de broadcast (toti biții de host pe 1). Obținem un număr de adrese IP ce vor fi disponibile în subnet-ul nostru. Știm că biții de host sunt cei prin care adresăm host-uri, deci pentru a adresa 1002 hosturi avem nevoie de un număr x de biti de host, unde 2x > 1002, dar în același timp 2x să fie cea mai mică putere posibilă, pentru a irosi puține adrese IP.

210 = 1024 este cea mai apropiată putere a lui 2 de 1002, de unde rezultă că avem nevoie de minim 10 biți pentru a adresa cele 1000 hosturi.

Dacă avem 10 biți de host, atunci numărul de biți de rețea este 32 – 10 = 22 (a crescut de la 16). În concluzie, masca de rețea pentru cel mai mare subnet este /22.

  1. Scriem în binar adresa de retea de la care pornim, însa pentru simplitate, numai octetii afectați. Dacă inițial avem masca /16, înseamnă că primii doi octeți, 150.10., rămân neschimbați pe parcursul procesului de subnetizare, deci nu avem de ce să ne chinuim sa îi transformăm în binar. Vom trece pe schemă vechea mască /16 și noua masca /22. Avem deci:

150 . 10 .| 0000 00 | 00 . 0000 0000 /22 -> Adresa de rețea pentru subnet-ul cu cel mai mai mare număr de hosturi, 1000. Cei 6 biți cu rosu au trecut la portiunea de rețea, în porțiunea de host rămânând doar 10 biți.

  1. Pentru celelalte 5 subneturi, vom lua următoarele combinații în binar ale biților împrumutați. Atenție, ne reamintim că la octeții 150.10 (adica ce aveam înaintea vechii măști /16) nu avem voie sa umblăm. Toate cele 6 combinatii sunt deci:

150 . 10 .| 0000 00 | 00 . 0000 0000 /22 -> 1000 hosturi

150 . 10 .| 0000 01 | 00 . 0000 0000 /22 -> 510 hosturi

150 . 10 .| 0000 10 | 00 . 0000 0000 /22 ->100 hosturi

150 . 10 .| 0000 11 | 00 . 0000 0000 /22 -> 30 hosturi

150 . 10 .| 0001 00 | 00 . 0000 0000 /22 -> 15 hosturi

150 . 10 .| 0001 01 | 00 . 0000 0000 /22 -> 7 hosturi

Dacă le trecem și înapoi în zecimal, avem:

150.10.0.0/22

150.10.4.0/22

150.10.8.0/22

150.10.12.0/22

150.10.16.0/22

150.10.20.0/22

Observăm ca valoarea octetului în interiorul căruia pică masca de rețea variază din 4 în 4, unde 4 este chiar rangul bitului după care pica masca de rețea.

  1. Pentru fiecare adresă de retea (AR) vom calcula urmatoarele: Prima adresă utilizabilă pentru adresarea hosturilor (PA), ultima adresă utilizabilă (UA) și adresa de broadcast (BA).
  2. AR = 150 . 10 .| 0000 00 | 00 . 0000 0000 /22 = 150.10.0.0/22

PA = 150 . 10 .| 0000 00 | 00 . 0000 0001 /22 = 150.10.0.1/22 (= AR + 1)

UA = 150 . 10 .| 0000 00 | 11 . 1111 1110 /22 = 150.10.3.254/22 (=BA – 1)

BA = 150 . 10 .| 0000 00 | 11 . 1111 1111 /22 = 150.10.3.255/22

  1. AR = 150 . 10 .| 0000 01 | 00 . 0000 0000 /22 = 150.10.4.0/22

PA = 150 . 10 .| 0000 01 | 00 . 0000 0001 /22 = 150.10.4.1/22 (= AR + 1)

UA = 150 . 10 .| 0000 01 | 11 . 1111 1110 /22 = 150.10.7.254/22 (=BA – 1)

BA = 150 . 10 .| 0000 01 | 11 . 1111 1111 /22 = 150.10.7.255/22

  1. AR = 150 . 10 .| 0000 10 | 00 . 0000 0000 /22 = 150.10.8.0/22

PA = 150 . 10 .| 0000 10 | 00 . 0000 0001 /22 = 150.10.8.1/22 (= AR + 1)

UA = 150 . 10 .| 0000 10 | 11 . 1111 1110 /22 = 150.10.11.254/22 (=BA – 1)

BA = 150 . 10 .| 0000 10 | 11 . 1111 1111 /22 = 150.10.11.255/22

  1. AR = 150 . 10 .| 0000 11 | 00 . 0000 0000 /22 = 150.10.12.0/22

PA = 150 . 10 .| 0000 11 | 00 . 0000 0001 /22 = 150.10.12.1/22 (= AR + 1)

UA = 150 . 10 .| 0000 11 | 11 . 1111 1110 /22 = 150.10.15.254/22 (=BA – 1)

BA = 150 . 10 .| 0000 11 | 11 . 1111 1111 /22 = 150.10.15.255/22

  1. AR = 150 . 10 .| 0001 00 | 00 . 0000 0000 /22 = 150.10.16.0/22

PA = 150 . 10 .| 0001 00 | 00 . 0000 0001 /22 = 150.10.16.1/22 (= AR + 1)

UA = 150 . 10 .| 0001 00 | 11 . 1111 1110 /22 = 150.10.19.254/22 (=BA – 1)

BA = 150 . 10 .| 0001 00 | 11 . 1111 1111 /22 = 150.10.19.255/22

  1. AR = 150 . 10 .| 0001 01 | 00 . 0000 0000 /22 = 150.10.20.0/22

PA = 150 . 10 .| 0001 01 | 00 . 0000 0001 /22 = 150.10.20.1/22 (= AR + 1)

UA = 150 . 10 .| 0001 01 | 11 . 1111 1110 /22 = 150.10.23.254/22 (=BA – 1)

BA = 150 . 10 .| 0001 01 | 11 . 1111 1111 /22 = 150.10.23.255/22

VLSM

  1.               Ordonăm din nou descrescător hosturile

1000, 510, 100, 30, 15, 7

  1. Identic cu pasul 2. de la FLSM. Aflăm masca pentru cel mai mare număr de hosturi ca fiind /22
  2. La fel ca la pasul 3. de la FLSM. În plus, scriem dedesubt și următoarele combinații de biți (nu toate pentru ca imbătrânim  )

150 . 10 .| 0000 00 | 00 . 0000 0000 /22-> pentru rețeaua cu 1000 de hosturi, la fel ca la FLSM

150 . 10 .| 0000 01 | 00 . 0000 0000

150 . 10 .| 0000 10 | 00 . 0000 0000

150 . 10 .| 0000 11 | 00 . 0000 0000

150 . 10 .| 0001 00 | 00 . 0000 0000

150 . 10 .| 0001 01 | 00 . 0000 0000

150 . 10 .| 0001 10 | 00 . 0000 0000

………………………………………………..

150 . 10 .| 1111 11 | 00 . 0000 0000

  1. Repetăm pasul 2 pentru următoarea rețea ca numar de hosturi – 510. Aflăm deci noua mască de rețea. Nu uităm sa adăugam 2 (adresa de retea si adresa de broadcast).

510 + 2 = 512 <= 2x

29 = 512

Porțiunea de host va avea pentru a doua subrețea ca mărime doar 9 biți, pentru a irosi cât mai puține adrese. Noua mască va fi deci 32 – 9 = /23. Pentru a ajunge de la masca anterioară, /22, la masca nouă, /23, mai împrumutăm un bit. Vom aplica această mască nouă primei combinații de biți ramasă liberă la pasul anterior. Specificăm și masca veche și cea nouă pe diagramă. Ceea ce se află înainte de masca veche NU mai poate fi modificat acum. Și mai scriem evident și cealata combinație cu bitul împrumutat. Avem:

150 . 10 . 0000 01 | 0 | 0 . 0000 0000 /23 -> pentru rețeaua cu 510 hosturi

150 . 10 . 0000 01 | 1 | 0 . 0000 0000

  1. Repetăm pasul 4. pentru urmatorul număr de hosturi, 100:

100 + 2 = 102 <= 128 = 27

Vom aveam 7 biți în porțiunea de host, deci noua mască va fi 32 – 7 = /25. Aplicăm această mască primei combinații de biți ramasă liberă la pasul anterior. Ce se află înainte de masca veche nu mai poate fi schimbat acum. Masca nouă se obține prin împrumutarea a înca 2 biti din porțiunea veche de host. Scriem, de aceasta data, toate combinațiile de biți împrumutați (nu sunt foarte multe). Avem:

150 . 10 . 0000 011 | 0 . 0 | 000 0000 /25 à pentru rețeaua cu 100 de hosturi

150 . 10 . 0000 011 | 0 . 1 | 000 0000

150 . 10 . 0000 011 | 1 . 0 | 000 0000

150 . 10 . 0000 011 | 1 . 1 | 000 0000

  1. Pentru cele 30 de hosturi, aflăm noua mască și o aplicăm primei combinații ramase liberă de la pasul anterior.

30 + 2 = 32 = 25

Vom avea 5 biți de host, deci 32 – 5 = 27 biți de retea. Pentru a ajunge de la /25 la /27, mai împrumutăm 2 biți. Scriem combinațiile de biți împrumutați, și o folosim pe prima. Repet faptul că toți biții de la stânga vechii măști rămân neschimbați.

150 . 10 . 0000 0110 . 1 | 00 | 0 0000 /27 -> pentru rețeaua cu 30 de hosturi

150 . 10 . 0000 0110 . 1 | 01 | 0 0000

150 . 10 . 0000 0110 . 1 | 10 | 0 0000

150 . 10 . 0000 0110 . 1 | 11 | 0 0000

  1. Pentru cele 15 hosturi:

15 + 2 = 17 <= 32 = 25

Avem tot 5 biți de host, deci utilizăm tot masca /27. Acum luăm pur si simplu prima combinație rămasă liberă la pasul anterior, fără a mai face nimic altceva.

150 . 10 . 0000 0110 . 1 | 01 | 0 0000 /27 -> pentru rețeaua cu 15 hosturi

  1. Pentru cele 7 hosturi

7 + 9 <= 16 = 24

Vom avea 4 biți de host, noua mască fiind 32 – 4 = /28. Mai împrumutăm încă un bit, pentru a ajunge de la /27 la /28. Luăm prima combinație liberă de la pasul anterior, și avem:

150 . 10 . 0000 0110 . 110 | 0 | 0000 /28 -> pentru rețeaua cu 7 hosturi

150 . 10 . 0000 0110 . 110 | 1 | 0000

  1. Cele 6 adrese de retea sunt:

150 . 10 . 0000 0000 . 0000 0000 /22 -> 150.10.0.0/22

150 . 10 . 0000 0100 . 0000 0000 /23 -> 150.10.4.0/23

150 . 10 . 0000 0110 . 0000 0000 /25 -> 150.10.6.0/25

150 . 10 . 0000 0110 . 1000 0000 /27 -> 150.10.6.128/27

150 . 10 . 0000 0110 . 1010 0000 /27 -> 150.10.6.160/27

150 . 10 . 0000 0110 . 1100 0000 /28 -> 150.10.6.192/28

Tip solutie

Permanent

Voteaza

(28 din 61 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?