Võrgud ja alamvõrgud

Allikas: Teadmusbaas


Sissejuhatus võrgud ja alamvõrgud

Siin leheküljel on kirjeldatud tehnikat kuidas moodustatake alamvõrke ehk subnette, miks neid moodustatakse, mis kasu sellest on ja kuidas subnetid asetuvad kõigi teiste subnettide (ehk Interneti) suhtes. Et sellest saaks aru oleks soovitav enne järele uurida mis asi on routing ja kuidas kasutada käsku route ja ifconfig.


IP aadresside klassid

IP aadressid kuuluvad enamjaolt kolme klassi ja IP aadressis eristatakse nn. võrgu ja hosti osa:

A: 1.0.0.0 - 127.0.0.0

esimene neljast näitab võrgu numbrit ja ülejäänud kolm hosti oma: seega on võimalik 127 (ca 2 ^ 8 :) võrku ja ca 2 ^ 24 hosti igas võrgus

B: 128.0.0.0 - 191.255.0.0

kaks esimest neljast näitavad võrgu numbrit ja ülejäänud kaks hosti oma: seega on võimalik 16 065 (ca 2 ^ 16 :) võrku ja 65534 hosti (ca 2 ^ 16) hosti igas võrgus

C: 192.0.0.0 - 223.255.255.0


kolm esimest neljast näitavad võrgu numbrit ja viimane hosti oma: seega on võimalik ca 2 ^ 24 võrku ja 254 (ca 2 ^ 8) hosti igas võrgus Tekib õigustatud küsimus, et miks on need klassid tehtud, ega sellest võimalike hostide arv ei kasva. Siiski, nii see kord on ja sinna pole midagi parata. Need häirivad 'ca' kohad leivad põhjenduse ühel teisel lehel: Näited:

193.40.51.89 on konkreetse hosti (täpsemini tema ühe võrguinterface number) ja see kuulub C klassi võrku. Kuivõrd vastav võrgu osa on 193.40.51.0 siis üteldakse, et võrgukaart on võrgus numbriga 193.40.51.0

154.54.67.12 on konkreetse hosti (täpsemini tema ühe võrguinterface number) ja see kuulub B klassi võrku. Kuivõrd vastav võrgu osa on 154.54.0.0 siis üteldakse, et võrgukaart on võrgus numbriga 154.54.0.0

Niisiis host'i number ei saa olla 0 kuna see on reserveeritud identifitseerimina võrku kui tervikut.


Võrgusõlmed (Host)

Hosti number ei saa olla ka 255 kuivõrd see on nn. broadcast (in. k. ülekanne) ja selle numbri kasutamine võtab ühendust kõigi vastava alamvõrgu hostidega. nt. andes käsu ping 154.54.255.255 peaks ta pingima korraga kõiki võrgu 154.54.0.0 hoste. Nii muidugi ei ole ilus pingida. Olemas on veel mõned erilised võrgud:

0.0.0.0 - nn. default route; selle tähendus selgub ehk hiljem

127.0.0.0 - on nn. loopback; selle alamvõrgu esimene host (127.0.0.1) on vaatamata võrgukaardi olemasolule alati olemas.

kokkuleppeliselt 'päris Internetis' mittekasutatavad aadressid. Seega sobivad naad maskeraadi taga olevatese lokaalvõrkudesse ja Intranetti.

  10.0.0.0 -  10.255.255.255  A klassi võrk
172.16.0 0 -  172.31.255.255  B klassi võrk

192.168.0.0 - 192.168.255.255 C klassi võrgud

IP aadressidest rääkides kasutatakse ka mõistet netmask. Kui kõik võrgud oleksid rangelt A, B, või C klassi omad siis netmaski järele polekski vajasust. Aga alati see nii ei ole. Niisiis, nende kolme põhilise klassi puhul on asi selge: teades IP aadressi võib üheselt arvutada broadcast'i ja netmask'i. Klassideks jaotamisega on määratletud mitu kohta IP numbrist käivad hosti ja mitu networki kohta. Formaalselt võttes on antud klassi broadcast võrdne suvalise selle klassi IP numbriga millel on hostname osa pandud 255'ks. Vaadake ülaltoodud näidet ja veenduge selles. Netmask on aga enamsti tagurpidi broadcast:

- network'i osad on 255'd - hosti osad on 0'd

Tegelikult tuleks IP'st broadcasti ja netmaski arvutamisel kasutada kahendarve (binaararve) mida hiljem ka tehakse. Siin on sisu ilmekam. Nendega ka jätkame. Räägitakse arvuti võrkudest ja alamvõrkudest.(net ja subnet), aga toodud joonis on esitatud ebareaalsena ja kasutades ainut nn. puhtaid võrke. Subnetworking

Nagu varem kirjeldatud on olemas kolme sorti ehk nn. klassi kuuluvaid võrke. Kujutage ette, et on haigla ja sinna pannakse gateway paika ja üteldakse: vot see võrgukaart läheb katuserle antenni külge aga siia teise külge ühendage mis te tahate kusjuures kasutage vaid IP võrgu 210.56.99.0 võrgu aadresse. Mida siis teha. Kõigepealt on näha, et haiglale anti C klassi võrk mille netmask on 255.255.255.0 Nad saavad maksimaalselt kasutada 254 erinevat IP numbrit ja seega ka hosti. (0 ja 255 on reserveeritud). Aga kas neil on tark teha kogu ettevõtet haarav üks suur võrk.

Aga kavalad ameeriklased on välja mõtelnud võimaluse kuidas jagada C klassi puhas võrk omakorda väiksemateks nö. segmentideks ehk alamvõrkudeks (subnet). Ja selle jagamise juures on määrav koht netmaskil - kui soovite subnetmaskil. Niisiis, haiglale anti 210.59.99.0 alamvõrk. Nad otsustasid, et kõige lihtsam ja ka kõige sobivam administratiiv-funktsionaalselt oleks omada 16'st alamvõrku.

Et C klassi võrgus on 254 hosti siis jääb igasse moodustatud alamvõrku ca 16 hosti (tegelikult küll 14)


Selge on see, et kui soovida süsteemi funktsioneerima panna tuleb iga kliendi peal paika saada võrguseadme IP aadress ja routing. Programmide ifconfig ja route abil. Enne aga tuleb jõuda selgusele millised on: hosti võrgukaardi IP aadress, netmask, broadcast ja - milline on network'i number kuhu host kuulub.

1. C- klassi võrgu numbri saab C klassi IP aadressist kätte nii: 210.56.99.56 kasutades netmaski: 255.255.255.0: kirjutame mõlemad arvud välja binaaaarkujul:

IP : 1101 0010 . 0011 1000 . 0110 0011 . 1101 0010 NM : 1111 1111 . 1111 1111 . 1111 1111 . 0000 0000

Kui nende kahe arvuga teha AND tehe siis, ongi vastuseks võrgu aadress.

NW : 1101 0010 . 0011 1000 . 0110 0011 . 0000 0000 = 210.56.99.0

Seda and'i tehakse ka siis kui kernel peab vaatama kuhu võrgukaardile IP datagramm saata: kõigepealt vaadatakse, kas mõni host kirje klapib, kui ei siis:

kernel AND'ib datagrammi otsa ees oleva sihtpunkti IP aadressi routingu tabeli esimese kirje netmaskiga. Kui tulemuseks on tolle routingu tabeli sama kirje destinatsiooni tulebas oleva võrgu number, siis saadetakse datagramm tolle võrguga ühenduses oleva võrgu device (nt. eth0 ) peale. Ja nii tehakse kui leitakse sobiv routingu tabeli rida. Kui aga ei leita, siis visatakse datagramm minema (mälu vabastatakse). Muide, default kirje netmask on 0.0.0.0 ja destination on tal kah 0.0.0.0: seega vaatamata datagrammi IP'le on AND tulemus 0.0.0.0 mis klapib destinatsiooniga ja saadetakse sinna kuhu default gateway näitab. Niisiis, default gatewayd on igati korrektne nt. nii seada:

bash# route add -net 0.0.0.0 gw 192.40.0.12 netmask 0.0.0.0 Tuleme oma probleemi juurde subnettingust tagasi. Aga tegelikult võib vaid kohalikku mõju omavalt kasutada ka muid netmaske kui nende kolme puhta klassi omasid; ja just see pakubki võimaluse lokaalses mõttes omada alamvõrke. Rõhutame, et muu maailma jaoks on tegu ikka ühe C klassi võrguga ainult mis võrku jäävate masinate endi suhtes toimub on midagi peenemat. C klassi puhul on viimane oktett või bait või 8 bitti, kuidas soovite nn. hosti number. See võimaldab luua 255 erinevat numbrit. Meid rahuldaks pigem aga võimalust luua 16 numbrilisi gruppi 16 korda. Netmaski mõttes tähendab, et me käsitleme kaheksast hosti bitist nelja vasakpoolset kui neworki numbri jätku ja nelja parempoolset kui hosti numbrit. Binaararvudega tegeledes pole see midagi mõistusevastast. Tõsi, kümnendarvudega on algul see veidi ebatavaline. Niisiis:

| xxxx xxxx . xxxx xxxx . xxxx xxxx . nnnn hhhh |

x - C klassi network n - lokaalses tähenduses kah network h - lokaalses tähenduses host ja netmask'i kirjutame järelikult sellise

NM : 1111 1111 . 1111 1111 . 1111 1111 . 1111 0000 b = 255.255.255.240 d nt. host


210.56.99.56 ehk

IP : 1101 0010 . 0011 1000 . 0110 0011 . 1101 0010 NM : 1111 1111 . 1111 1111 . 1111 1111 . 1111 hhhh

1. networki nr. 1101 b = 13 d kusjuures networki pikk number on 210.56.99. 1101 0000 b = 210.56.99.208 (imelik, eks ?) (b- binary, d- decimal)

2. tolle networki broadcast on aga : 1111 b = 15 d ehk pikalt 210.56.99.1101 1111 b = 210.56.99.223

3. ja ta on tolle võrgu host nr. 0010 b = 2 d ehk pikalt 210.56.99.1101 0010 b = 210.56.99.210

globaalses mõttes st. muude maailma arvutite jaoks mis ei asi võrgus 210.56.99.0 on ta ikka tavalse C klassi masin. Ning ilmselt hostname peab olema sama nii kohalikus kui globaalses mõttes. Kui vahepeal tekkis kellelgi küsimus, et miks selle netmaskiga üldse jamaga, miks ei võiks teha lihtsalt subnetid ära ja kõik. Kirjutame igasse subnetti 16 hosti sisse ja valmis. Nii saab küll aga efekt on suurem kui iga 16 hosti ksitlevad end kuuluvane subnetti. Ja subnetiks teeb nad just subnet mask. Nagu näha määrab asja see milline (sub)netmask valida!

Koostaja: Oliver Jürisaar IT14