Hálózatok tutorial – CIDR elmélet

Hálózatok tutorial – CIDR elmélet


Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in /home/szoftver/public_html/wp-includes/wp-db.php on line 3182

Az tutorial előző részébe belinkeltem pár oldalt, ahol utánanézhettek az IP osztályoknak. Azt is mondtam, hogy nem olyan nagy hiba kiugrani, hiszen ma már inkább a CIDR kiosztást használják, mivel rengeteg IP “ment kárba”, ha például egy B osztályú (~65.000 host) IPt adtak egy olyan cégnek, ahol mondjuk volt 100 vagy 1000 host. A CIDR (Classless Inter-Domain Routing) bevezetésénél fontos szempont volt a rounting táblák méretének csökkentése is…

Nem szeretnék nagyon-nagyon részletesen foglalkozni az elmélettel, mert nem szeretem, de van néhány dolog amit tudni kell mielőtt megnézel egy példát, hogy valamit érts is belőle… Ez a rész csupán elmélet lesz, a következő bejegyzésbe majd megmutatom, hogyan allokálunk IP címeket egy hálózatban. Most viszont elmélet részt nem átugrani! :)

Az IP osztályok esetében megvolt, hogy attól függően, hogy milyen osztályba tartozik az IP, melyik bájt(ok) jelölik a network címet és mely(ek) a host címet. CIDR esetében használunk egy úgynevezett subnet maskot, ami megmutatja, hogy egy IP címbe melyik a network és melyik a host rész.

A subnet mask

A subnet mask, az IP címhez hasonlóan 32 bitből, azaz 8 bájtból áll és feladata a network és host rész megkülönböztetése egy IP címben. Általában a subnet maskot is tízes számrendszerben, bájtonként pontokkal elválasztva ábrázoljuk: 255.255.255.0

Most még biztos furán nézel a monitor fele, de mindjárt világos lesz az egész, a kulcs megint a kettes számrendszer (mondtam már, hogy a legjobb dolog a világon? :)). Példának vegyük a jelenlegi IP címem és a hozzá tartozó subnet maskot: 192.168.2.103 / 255.255.255.0 és írjuk fel kettes számrendszerbe mindkettőt:

11000000 10101000 00000010 01100111 (IP)
11111111 11111111 11111111 00000000 (Subnet Mask)

Nagyon jól látszik, hogy a subnet mask két részre osztja az IP címet. Az 1esek a network részt, míg a 0ák a host részt jelölik, szóval az első 24 bit a network rész, a következő 8 pedig a host. Picit rövidebben is írhatjuk az IP-t és a subnet maskot: 192.168.2.103/24, ahol a per utáni szám az egyesek számát jelöli. Talán ez a legegyszerűbb jelölés, a legtöbb helyen ezzel fogsz találkozni és a tutorial során is ezt fogjuk használni. Az egyeseket mindig balról jobbra haladva írjuk fel és az első 0 után már nem következhet később még egy 1es, mert akkor invalid a subnet mask.

A subnet mask és az IP tartomány

A subnet mask segítségével egész IP tartományokat is jelölhetünk, például: 192.24.0.0/21 Ez a 192.24.0.0 – 192.24.7.255 IP tartományt jelöli. Írjuk csak fel kettes számrendszerbe:

11000000 00011000 00000000 00000000 (192.24.0.0 IP cím)
11111111 11111111 11111000 00000000 (/21 subnet mask)

Az első IP cím a tartományban a 192.24.0.0 /21-es subnet maskal. Az tartomány utolsó IP címét egyszerűen megkaphatjuk, ha az első IP címben host részt 1esekkel töltjük fel (ami alatt a subnet maskban 0 van):
11000000 00011000 00000111 11111111, amit ha 10es számrendszerbe alakítunk, akkor 192.24.7.255-et kapunk.

A subnet mask az IP tartomány mértét is mutatja. Például, ha /32-es subnet maskunk van, akkor egyetlen IP-t kapunk, az első IP cím ugyanaz, mint az utolsó, hiszen nincs host rész, ahova 1esekre cserélhetjük a 0ákat, mert a subnet mask csupa 1esekből áll. Ha /31-es subnet mask van, akkor már 2 IPt kapunk, hiszen az utolsó bit lehet 0ás és 1es is. Egy tartomány méretét egyszerűen kiszámolhatjuk: 2^(32-x), ahol x a subnet maskban megjelenő 1esek száma:

Subnet mask: 32 => Hostok száma: 2^0 = 1
Subnet mask: 31 => Hostok száma: 2^1 = 2
Subnet mask: 30 => Hostok száma: 2^2 = 4
És így tovább, most nincs türelmem mind leírni, nézzétek meg itt: angol.

Egy IP tartomány invalid, ha a host részbe előfordul akár egyetlen 1es is, például:

11000000 00011000 00000000 10000000 (192.24.0.128 IP cím)
11111111 11111111 11111000 00000000 (/21 subnet mask)

Nagyjából ennyi lenne, amit úgy érzek, hogy kötelező tudni, hogy megérthesd a példát, amit majd a következő bejegyzésben fogok közzétenni.

Hálózatok tutorial:

1. rész: Hálózatok tutorial – bemelegítés
2. rész: Hálózatok tutorial – CIDR elmélet
3. rész: Hálózatok tutorial – CIDR példa
4. rész: Hálózatok tutorial: routing táblázat
5. rész: Hálózatok tutorial: traceroute



1 Comment

  • Köszönöm,hogy elmagyaráztad érthetően.Ezzel sokat segítettél nekem.A szerencsétlen tanárunk összezavart minket,de végre itt van egy érthető leírás.Gratulálok hozzá!


Leave a Reply

A kötelező mezőket * jelöli.