Tamás Ferenc: IP-címzés

Mac-címzés

A számítógépek korrekt azonosítása a mai internetes világban elengedhetetlenül fontos. Otthon, családi környezetben bőségesen elegendő a megszokott "Apa gépe", "Anya laptopja" vagy "Peti telefonja" metódus. Egyszerű háztartásban ennél nem is kell több.

Ha viszont Ön számítógépes környezetben dolgozik, akkor ez nem elegendő! Minden egyes számítógépnek két különféle azonosítása lehetséges. A bonyolult, nehezen áttekinthető módszer a számítógépek hálózati kártyájának fizikai azonosítása. Minden egyes számítógép hálózati kártyájának van egy ún. Mac-címe. (MAC = Media Access Control) Ez tizenhatos számrendszerben 12 számjeggyel leírt azonosító, például: 00-12-34-56-78-9A. Ez a MAC-cím egy közös nevező a 802-es szabványoknál, tehát a Bluetooth, a Wi-Fi és az Ethernet kapcsolatokban. Az OSI-ISO modellben az (alulról másik) adatkapcsolati rétegben van fontos szerepe. Általánosságban hat darab bájtból áll. Ezen bájtokat 16-os számjegyekkel szokták leírni, vesszőkkel vagy kettőspontokkal elválasztva. 

A 12 számjegyből az első hatot a nemzetközi szabványügyi szervezet (IEEE) osztja ki gyártónként, míg a maradék hat számjegyet a gyártó saját hatáskörén belül osztja ki. Ez a módszer alkalmas arra, hogy teljesen egyedi címe legyen minden számítógépnek. Viszont a gyakorlatban ez nem teljesen jól megy, mivel a Mac-címek 5-10 százaléka hibás. Nagyon fontos, hogy egy adott (helyi) hálózatban nem lehet két azonos Mac-címmel rendelkező számítógép, mivel ez komoly működési zavarokat okozhat tűzfal, a router, a DHCP-szerver, stb. működésében.

Mivel a MAC-címek elméletileg hamisíthatatlanok, ezért gyakran nevezik beégetett vagy fizikai címnek is. A gyakorlatban azonban léteznek hálózati interfészek, amelyek képesek a MAC-cím megváltoztatására. A több hálózati interfésszel rendelkező hálózati csomópontoknak, pl. útválasztóknak és többrétegű kapcsolóknak, ugyanabban a hálózatban minden egyes hálózati kártyához egyedi MAC-címet kell biztosítani. Két különböző hálózathoz csatlakozó két hálózati kártyának azonban már lehet azonos MAC-címe.

A Mac-címek kiderítése Windows alatt parancssorból többféleképpen is lehetséges:

ipconfig /all

Ekkor rengeteg információ kerül kiírásra. Helyette érdemes a következő parancsot használni:

getmac

Ez már sokkal konkrétabb, lényegre törő választ ad.

Jelen gépen, amin ezt a cikket írom, a következő a parancs hatása:

MAC cím

A Mac-cím lényege, hogy mivel hardveresen rögzítik, ezért elméletileg nem lehet felülírni, sem hamisítani. A gyakorlatban azért ez nem egészen lehetetlen, mivel állítólag léteznek illegális módszerek a Mac-címek hamisítására.

IP-címzés

Kérdés, hogy ha a Mac-címek ilyen jók és elméletileg hibátlanok, akkor miért kellenek az IP-címek? (IP = Internet Protokoll) Nos, a dolog magyarázata a programozók jól ismert lustaságában rejlik. Ha egy lokális hálózatba kötött gépeket szeretnénk megcímezni, akkor a nehezen felsorolható Mac-címek helyett könnyebb a kiválóan csoportosítható IP-címekkel dolgozni. Ha például szabályokat szeretnénk kreálni a csoport gépeire, akkor nem kell ezeket minden egyes Mac-címre külön-külön megírni, hanem egyszerűen kiadhatjuk egy IP-tartományra. Nos, ezek után nézzük a tényleges IP-címzést!

Alapvetően két fajtája van az IP-címeknek:

- az IPv4, ez a régebbi, még 4 bájtot tartalmaz

- az IPv6, ez az új, immáron 16 bájttal.

Az IPv4-et még a hálózatok őskorában dolgozták ki, amikor elegendőnek tűnt a 2564 db cím, ami a maga kb. 4,3 milliárd címével tényleg soknak tűnik. Viszont az idők folyamán ez elfogyott, így meg kellett nyitni az újabb IPv6-os tartományt. Maga az IPv4 négy darab bájtból áll, melyeket leggyakrabban ponttal választunk el. Például ilyen cím a következő: 192.168.1.2. Minden egyes bájt értéke 0 és 255 között lehet, a határokat is beleértve. Néha szükséges, hogy a címet kettes számrendszerben adjuk meg, tehát:

192.168.1.2 = 11000000.10101000.00000001.00000010.

Az alhálózatok címzésére létrehoztak különféle osztályokat. Ezek a bevezető bináris 0-k száma miatt különböznek.

Osztály

Vezető bitek

A hálózati bitek száma

A többi bit száma

Hálózatok száma

Hálózatonkénti címek

Induló cím

Végső cím

A

0

8

24

128 = 27

16777216 = 224

1.0.0.0

127.255.255.255

B

10

16

16

16384 = 214

65536 = 216

128.0.0.0

191.255.255.255

C

110

24

8

2097152 = 221

256 = 28

192.0.0.0

223.255.255.255

D

1110

       

224.0.0.0

239.255.255.255

E

1111

       

240.0.0.0

255.255.255.255

Az A osztályú hálózat olyan nagy, hogy a gyakorlatban ilyen alig létezik. Példa: 10.0.0.0-10.255.255.255

A B osztályú hálózat már jóval gyakoribb. Rengeteg munkahelyi hálózat is ezt használja. Példa: 172.16.0.0-172.31.255.255.

A C osztályú hálózat megint gyakori, mivel igen könnyen adminisztrálható mind kisvállalati, mind otthoni célokra. Példa: 192.168.0.0-192.168.255.255.

A C osztályon belül lehet további egység is, például ¼ C. Ilyen: 192.168.0.0-192.168.0.63.

A D osztályú hálózatokra főleg üzenetszórásos (multicast) technikáknál lehet szükség. Ráadásul ezeknek speciális alakjuk van.

Az E osztályú hálózatokat elég ritkán használják fel. Főleg kutatási, kísérleti célokra vannak fenntartva. Ha ilyen hálózati címeket állítunk be, akkor nem szabad csodálkozni, ha egyes eszközök nem továbbítják az ide szánt vagy innen kiküldött üzeneteket.

Az IP-címek kiosztása a NIC (Network Information Center – www.nic.com) szervezet feladata. A NIC ügyel arra, hogy két internetre kötött számítógép vagy bármilyen más eszköz ne kaphasson két ugyanolyan IP-címet. Az internet hőskorában könnyedén osztogatták az IP-címeket, mivel rengeteg üres cím állt rendelkezésre viszonylag kevés eszköz számára. Viszont a címtartomány betelt és így meg kellett nyitni a következő mezőt, ami a sokkal nagyobb IPv6 lett a maga 16 bájt terjedelmével.

Minden alhálózatban vannak ki nem osztható, ilyen-olyan célokra fenntartott címek. Nemzetközileg érvényes, hogy a 224.0.0.0-255.255.255.255 címet nem osztják ki. Általános érvényű szabály, hogy a nagy interneten a szervereknek egyedi a címzésük, viszont a szerverek, illetve routerek mögött álló egyes gépeknek már nem kell teljesen egyedi címmel rendelkezniük. Ezt úgy oldják meg, hogy például a helyi hálózatokban a router rendelkezik publikus (tehát máshol is látható) IP-címmel, viszont a helyi hálózatba kötött összes többi gép csak privát címmel rendelkezik, ami a gépet a hálózaton belül azonosítja, viszont ez a cím nem megy ki a hálózaton kívülre. Mindezt a következő rajz mutatja:

IP-címek 1

Lakáson belül a PC-k címe: 192.168.0.101 és 192.168.0.102, míg a tablet címe: 192.168.0.103. Ezen eszközöket a router gyűjti össze a 192.168.0.1 címen. A szolgáltató felé viszont a router címe 10.1.129.81 lesz. Így a szolgáltató a 10-es kezdetű címtartományban rengeteg vonalas kapcsolatot tud összegyűjteni anélkül, hogy mindenkinek lenne (drága) önálló publikus IP-címe. A szolgáltató szerverén belül a gép átfordítja a címet publikussá, például: 78.131.3.32. Ez már tényleg egyedi cím, így a világon nem lehet belőle több. (A fenti minta a saját, Diginet Kft. által szolgáltatott internetemből való.)

Most lássunk egy másik példát! Saját iskolámban több gépterem is van, mindegyikben 15-24 géppel. Ezen kívül van szerteszórva tucatnyi laptop vagy tablet, jellemzően wifi kapcsolattal. A rendszer üzemeltetéséhez és megfelelő nyomon követhetőségéhez jó címzési szabályokra van szükség. Mi a 192.168.x.y-os privát címtartományt használjuk az iskolán belül. 45-ös teremben például a 192.168.45.y címeket, ahol az y a gép száma. Ehhez a 192.168.45.1-es router kapcsolódik, mint valamennyi a 45-ös teremben lévő géphez. A másik (47-es) teremben az alapvető szabály a 192.168.47.y és így tovább. A tanári kézben lévő laptopok pedig jellegzetesen a 192.168.200.y-os mezőből kapnak IP-címet, mivel az iskolánkban nincsen 200-as terem. A hálózati fő-router persze az egész 192.168.x.y mező felett őrködik. Így a szerveren azonnal lehet látni, hogy melyik teremben melyik gép mit csinál, azaz milyen internetes forgalmat generál. Bár a Windows alapvető beállításai miatt véletlenszerű címet generál (ha egyedül működik), illetve lekérdezi a hálózatot felügyelő routert, hogy milyen IP-mezőből kaphat címet, de mi ezt úgy oldottuk meg, hogy minden egyes asztali gép csak az adott IP-címet kaphatja meg. Ellenben a mobil eszközök más és más helyen csatlakozhatnak rá a hálózatra, így azok a 200-as mezőn belül kapnak címet.

Egyszer már szó volt róla, de most megint vegyük elő a privát és a publikus IP-címeket! Ismétlésként a lényeg: a publikus IP-címből csak egyetlen egy létezik az egész interneten. Ez lehet IPv4-es is, de egyre gyakoribb az IPv6-os. Ellenben a privát IP-címet minden szolgáltató vagy publikus IP-vel rendelkező helyi szerver saját szabályai szerint oszthatja ki. Lássuk ezt összefoglalóan:

Tartomány kezdete

Tartomány vége

Gépek maximális száma

10.0.0.0

10.255.255.255

16.777.216

172.16.0.0

172.31.255.255

1.048.576

192.168.0.0

192.168.255.255

65.536

127.0.0.1

127.0.0.1

1 (sajátgép)

 

Subnet Maszk (alhálózati maszk)

Szó volt már a hálózati szabályokról. Ezek lényege, hogy a megfelelő gépekre a megfelelő szabályokat tudjuk kiadni, például: ki mikor kaphat internetet vagy ki mikor és hogyan nyomtathat. Esetleg ki hogyan kaphat IP-címet. Ilyen szabályok készítéséhez elengedhetetlenül szükség van az alhálózati maszkolásra.

Nos, vegyünk egy alapvetően 4*8 bites IP-cím bináris formáját! Ebben az 1-esek a tiltást jelentik, míg a 0-ák a megengedést. Lássunk erre több példát is!

Alhálózati maszk: 11111111.11111111.11111111.00000000 = 255.255.255.0

Tehát az első három bájt adott (például: 192.168.11.x), míg az utolsó szabadon címezhető.

 

Második példa: Alhálózati maszk: 11111111.11111111.11111111.11110000 = 255.255.255.240

Tehát az első három bájt adott, valamint a negyedik bájt első 4 bitje is. Így csak az utolsó négy bit címezhető szabadon. Így egy címzési tartomány lehet a következő: 192.168.11.0-192.168.11.15.

Tapasztalatom szerint sima, egyszerű kis géptermi hálózatba (10-20 gépre) célszerű a 255.255.255.0-ás maszkot megadni, valamint a 192.168.x.y-t, ahol az x-et érdemes lerögzíteni, viszont az y-t az alhálózati maszk miatt szabadon kell hagyni! Páran esetleg furcsállják, hogy miért éppen a 10-20 közötti gépszám az ideális. De az indok igen egyszerű: a hétköznapi forgalomban kapható és ezért elérhető árú routerek többsége 8, 16, vagy 24 porttal rendelkezik, azaz ennyi géppel lehet (kábellel) rácsatlakozni a hálózatra. Tehát egyrészt innen adódik a 10-20 közötti gépszám. Másrészt a 20 feletti gépszám esetén igen sok lehet a "broadcast" (általános célú, direkt címzett nélküli) üzenet, így ez erősen lelassítaná a rendszert.

Végül nézzük az alhálózati maszk lehetséges megtalálási helyeit!

A parancssorba átlépve Windows alatt írjuk be a megszokott üzenetet:

ipconfig /all

Linuxoknál általában a következő paranccsal érdemes próbálkozni:

ifconfig

A Windows verziótól függően itt a sokadik sorban megtalálható lesz az alhálózati maszk. Ha kicsit soknak találjuk a felcsapódó információt, akkor elegendő a következő parancs is:

ipconfig

Itt már könnyebben ki lehet bogozni a saját IP-címünket és az alhálózati maszkot.

Másik, hasznos eszköz Windows alatt az arp parancs. (Address Resolution Protocol) Ez kiírja, illetve módosítja az IP-MAC ugrási táblát (ARP tábla). Például megtalálhatjuk az alhálózathoz csatlakozó összes aktív eszközt a következő paranccsal: arp -a

Érdemes többet is megtudni a következővel: arp /?

A következő oldalon csomó ingyenes és jól felhasználható IP-kereső/detektáló eszközt feledhetünk fel: https://www.dnsstuff.com/scan-network-for-device-ip-address#how-to-find-all-ip-addresses-on-a-network