10. Hálózati gyorstalpaló¶
Ahhoz, hogy az operációs rendszer hálózati beállításaival foglalkozhassunk, fontos, hogy alapszintű ismereteid legyenek a számítógépes hálózat működéséről. Ebben a fejezetben csak annyit és olyan mélységig mutatok meg neked ebből, amennyi ehhez feltétlenül szükséges. A téma ennél sokkal mélyebb, ebben a fejezetben nem törekszem teljességre, egy önálló kurzuson úgyis megismerkedsz a témakörrel.
10.1. Ethernet¶
A mai számítógépek hálózati kapcsolódását hardver szinten az ún. hálózati kártyák látják el. Ehhez kell csatlakoztatni a hálózati kábelt, amely egy helyi hálózat esetén (pl. egy épületben levő gépeknél) az egyes gépeket egy központi berendezésen keresztül köti össze. Több szabvány létezik a hálózati kártyák működésére, a legelterjedtebbet Ethernetnek hívják. Általában a notebookok tartalmazzák ezt, a nagyon könnyű kivitelűeknél rendszerint csak USB-s adapterrel lehet ilyet használni:
A kábelezés csillag formájú, a csillag középpontjában egy hálózati eszköz, a switch áll. Ennek minden portjába egy számítógép hálózati kábelét lehet csatlakoztatni. A kábelek hossza meghatározott (100m), ha nagyobb távot akarsz áthidalni, a normál hálózati kábel helyett pl. optikai kábelt, esetleg rádiós átvitelt kell használni.
Az ethernet kártyák egymással ún. ethernet protokollon kommunikálnak, ez a szabvány írja le azt, hogy pontosan hogyan kell működniük. A legfontosabb tulajdonságok a következők:
Minden ethernet kártyának van egy egyedi címe (ezt ethernet címnek, vagy MAC addressnek is szokták nevezni). Ez egy 6 bájtos, egyedi cím, sok esetben „be van égetve” a kártyába, egyes esetekben viszont változtatható. Az első három bájt a gyártót azonosítja, a másik három pedig a kártya egyedi azonosítója.
A hálózati forgalom csomagokra bontva zajlik. Ez azt jelenti, hogy ha az A gép át akar juttatni 10.000 bájtnyi adatot B gépre, akkor azt egységes méretű csomagokban fogja elküldeni. Az ethernet esetében ez 1500 bájt, tehát 7 csomagra lesz szükség az átvitelhez.
Egy csomag nem csak az átküldendő adatokat tartalmazza, hanem a feladó ethernet címét, a címzett ethernet címét, a csomag sorszámát (hiszen a túloldalon a csomagokból újra az eredeti adathalmazt kell képezni), és az adatok ellenőrző összegét is, amivel megállapítható, hogy az adat valóban sértetlenül érkezett meg a címzetthez. Ezek azok az adatok, amelyek a továbbításhoz szükségesek.
Minden csomag a switchbe fut be, és az továbbítja a csomagot a megfelelő gép felé. A switch a rajta áthaladó csomagok alapján egy táblázatban nyilvántartja, hogy melyik ethernet kártya melyik portjára van csatlakoztatva, és csak arra küldi azt tovább. Így a csomagok nem jelennek meg olyan hálózati kártyákon, amelyek nem címzettjei a csomagnak. (Régen használtak ún. HUB-okat is, ezek nem tudták elemezni a csomagok tartalmát, így rájuk ez nem volt igaz.)
Fontos!
A switch feladata, hogy útválasztást végezzen ethernet cím alapján.
A switch-eket is össze lehet kötni, így sok gépet lehet egy hálózatba kapcsolni. Ezért lehet, hogy két számítógép egymással úgy kommunikál, hogy a csomagjaik több switchen is keresztül kell, hogy menjenek.
Az ethernet kiváló megoldás a helyi hálózatok működtetésére, olcsó és gyors hardverelemekkel ki lehet építeni egy ilyen hálózatot, a ma elterjedt népszerű változata esetében 1 GBit/sec, azaz 128 MByte/sec átviteli sebességre képes. (Ha mérni próbálod, ennyit sosem tudsz elérni, ez ugye az elvi nettó átviteli sebesség, ebben benne van a címzés, a csomag sorszámozás stb.)
10.2. Az IP hálózatok¶
A nagy probléma az ethernettel az, hogy nem lehet forgalomirányítást megvalósítani vele, így meg kell maradnia a helyi hálózatok szintjén. Egy nagy gépszámú, összetett hálózat esetében a switchek táblázatai, amelyben leírják, hogy melyik számítógép merre van, hatalmas erőforrás igényt jelentene, és ezért halálra van ítélve. Ezzel tehát nem lehet nagy kiterjedésű hálózatokat építeni, ezért egy mást kellett kitalálni. A megoldást az IP hálózat jelenti.
Ebben a modellben is minden számítógépnek van egy címe, de ez csak négy bájtos, a neve IP cím (Internet Protokoll cím). Az ethernettel ellentétben a kiosztásukat egy központi szervezet látja el, és a hálózat felépítéséből adódóan mindenki csak azokat a címeket tudja használni, amiket számára osztottak ki. A modell lényege az csomagok útirányításának (routing) megvalósítása anélkül, hogy hatalmas táblázatokat kellene az irányítást végző eszközöknek tartalmazniuk.
Lássuk a címzés lényegét! Ahogyan már mondtam, egy IP cím 8 bájtos, azaz 32 bites. Egy, az egyetem által használt cím pl. így néz ki: 193.225.32.39. A négy bájtot írásban ponttal választjuk el egymástól. Az IP címet ismeri az operációs rendszer, vagy azért, mert a rendszergazda azt a megfelelő helyre beírta, vagy azért mert a számítógép indulásakor egy ún. DHCP szerver megadta neki. A kommunikáció innentől úgy zajlik, hogy ha A gép adatokat akar küldeni B-nek, akkor elkészíti az IP csomagot, és azt átküldi neki. Egy IP csomag nagyon leegyszerűsítve így néz ki:
Igen ám, de gépekben levő hálózati kártyák nem képesek közvetlenül IP csomagokat küldeni és fogadni, hiszen azok csak az ethernet protokollt ismerik. Ezért az IP csomagot be kell ágyazni egy ethernet csomagba, és azon kell átjuttatni a cél gépbe.
Ez egy brilliáns megoldás, azért, mert igaz, hogy az IP címzést valójában egyetlen hálózati hardver esetében sem implementálják közvetlenül, de minden rendszerben, függetlenül attól, hogy az ethernetet vagy mást használ, a példában látott becsomagolással megoldható az átvitele. Két gép kommunikációja tehát nagy vonalakban az alábbiak szerint történik:
A gép át akar küldeni 10.000 bájtnyi adatot B-be.
A olyan méretű adatszeleteket készít, amely belefér egy-egy IP csomagba.
A elkészíti az IP csomagokat. Mindegyiket megcímzi, beleírja a sorszámát stb.
Az egyes csomagokat beleteszi egy-egy ethernet csomagba. A csomagok címzésekor azt az ethernet címet írja a címzett mezőbe, amelyikhez az általa ismert IP cím tartozik.
A kiküldi a csomagokat.
A hálózatban levő switch veszi ezeket, a címzett ethernet címe alapján megállapítja, melyik portjára kell továbbküldenie.
B ethernet kártyája veszi az ethernet csomagot. Megállapítja, hogy azt neki címezték, ellenőrzi a sértetlenségét, majd kiveszi belőle az IP csomagot.
B ellenőrzi, hogy a címzett IP címe azonos-e az övével. ha igen, ellenőrzi a sértetlenségét, kiveszi belőle az adatot és átadja azt feldolgozásra.
Ez a módszer addig tökéletes, amíg a címzett B számítógép egy hálózatban van A-val. De mi történjen akkor, ha B valahol messze, az Interneten érhető el? Azt már láttuk, hogy egy távoli gép számára ethernet csomagot nem tudunk küldeni.
A megoldást az átjáró más néven gateway jelenti. Ha a címzett B nincs egy hálózatban a A feladóval, az ethernet csomag címzettje nem B lesz, hanem a hálózatban levő átjáró. Ennek a feladata az, hogy a hálózaton kívül eső számítógépek számára küldött csomagokat továbbítsa. Az átjáró a gyakorlatban egy router.
Fontos!
A router feladata, hogy útválasztást végezzen IP cím alapján.
Valószínűleg neked is van egy ilyened otthon. A házi routereket sok esetben egybeépítik egy switch-csel, így képesek a vezetékes hálózat működtetésére is, a legtöbb esetben csak 4 portig. Az alábbi ábrán látható router sárga portjai csak switch portok, azok az ethernet hálózat működtetésére valók. A kék port (wan felirattal - Wide Area Network) a router funkció ellátásához kell.
A házi használatra szánt routerek esetében a helyi hálózat számítógépeit a 4 (a képen sárga) LAN portba, az internet kapcsolat kábelét a (az ábrán kék) WAN portba kell csatlakoztatni.
Mivel a példánkban minden csomagot a routerünk vesz, hiszen a 4 lan portjához kapcsolódnak a számítógépek, a routernek el kell döntenie, hogy egy bejövő csomagot merre kell továbbítania. Mivel ezt az útválasztást az IP cím alapján kell eldöntenie, ezért az ethernet csomagból kiveszi a benne tárolt IP csomagot, és kiolvassa a címzettet. Két eset lehetséges:
A címzett itt van a helyi hálózatban. Ebben az esetben feladat egyszerű, a már említett módon a router elkészít egy ethernet csomagot, és a megfelelő LAN portjára továbbítja azt.
A bonyolultabb eset az, ha a címzett valahol, akár nagyon messze, az Interneten egész más részén van. Ekkor neki nem lehet egy ethernet csomaggal megoldani a problémát. A router ebben az esetben a csomagot a WAN portja felé küldi el, és a túloldalon levő eszköz feladata annak a célba juttatása. Ha a cél számítógép egy hálózatban van ezzel a túloldali eszközzel, ő kézbesíti a csomagot. Ha nem, ő is továbbítja azt az ő átjárója számára, és így tovább, a csomag több-kevesebb átjárón áthaladva előbb-utóbb célba ér.
Hogyan dönthető el, hogy a címzett egy hálózatban van egy feladóval, vagy nem? A kérdés azért fontos, mert ha egy hálózatban vannak, akkor az ethernet csomag címzettje a cél gép ethernet címe kell, hogy legyen, ha nem, akkor pedig a router ethernet címe. Ahhoz, hogy ezt le lehessen írni, szükség van az ún. netmask-ra. Az alábbi példában egy Windows hálózati beállítására látsz egy példát:
Ebben a számítógép IP címe 192.168.1.52, a routeré 192.168.1.1. Mit kell tenni abban az esetben, ha 192.168.1.52 egy IP csomagot akar küldeni 192.168.1.55-nek? El kell dönteni, hogy a címzett velünk egy hálózatban helyezkedik-e el, ezért ki kell számolnia a hálózat címét. Ezt minden esetben úgy kell tenni, hogy a címen és a netmaskon bitenkénti and műveletet kell végezni:
Feladó |
192 |
168 |
1 |
52 |
Mask |
255 |
255 |
255 |
0 |
Az and művelet elvégzése bitenként az alábbi eredményt adja:
Feladó |
11000000 |
10101000 |
00000001 |
00110100 |
Mask |
11111111 |
11111111 |
11111111 |
00000000 |
Hálózat |
11000000 |
10101000 |
00000001 |
00000000 |
A feladó hálózatának címe tehát 192.168.1.0 lesz:
Feladó |
192 |
168 |
1 |
52 |
Mask |
255 |
255 |
255 |
0 |
Hálózat |
192 |
168 |
1 |
0 |
Most kiszámítjuk a címzett hálózatát:
Címzett |
192 |
168 |
1 |
55 |
Mask |
255 |
255 |
255 |
0 |
Az and művelet elvégzése bitenként az alábbi eredményt adja:
Címzett |
11000000 |
10101000 |
00000001 |
00110111 |
Mask |
11111111 |
11111111 |
11111111 |
00000000 |
Hálózat |
11000000 |
10101000 |
00000001 |
00000000 |
A címzett hálózatának címe tehát 192.168.1.0:
Címzett |
192 |
168 |
1 |
55 |
Mask |
255 |
255 |
255 |
0 |
Hálózat |
192 |
168 |
1 |
0 |
Mivel a feladó és a címzett hálózatának címe egyaránt 192.168.1.0, ezért azok egy hálózatban vannak, így a feladó az elkészült ethernet csomag címzettjeként a címzett ethernet címét adja meg.
Most lássunk egy másik példát! A címzett legyen a 192.168.2.16 gép!
A feladó hálózatát nem kell kiszámolnunk újra, az nem változott, 192.168.1.0. Számoljuk ki a címzett hálózatát!
Címzett |
192 |
168 |
2 |
16 |
Mask |
255 |
255 |
255 |
0 |
Az and művelet elvégzése bitenként az alábbi eredményt adja:
Címzett |
11000000 |
10101000 |
00000010 |
00001000 |
Mask |
11111111 |
11111111 |
11111111 |
00000000 |
Hálózat |
11000000 |
10101000 |
00000010 |
00000000 |
A címzett hálózatának címe tehát 192.168.1.0:
Címzett |
192 |
168 |
1 |
55 |
Mask |
255 |
255 |
255 |
0 |
Hálózat |
192 |
168 |
2 |
0 |
A címzett hálózata tehát a 192.168.2.0, ami nem egyezik a feladó saját hálózatával, ezért az ethernet csomag nem kézbesíthető. A feladó ekkor tehát az IP csomagot egy olyan ethernet csomagba teszi, aminek a címzettje a hálózat routere, a fenti példában a 192.168.1.1. Az ő feladata lesz a csomag célba juttatása.
A hálózat beállításait megteheted kézzel, mint ahogy azt a fenti ábra mutatja, de automatikusan is beállíthatod, ha van a hálózatban egy olyan számítógép, amely a többi számára ki tudja osztani az IP címeket, és ha nem használják, akkor ki tudja adni őket másnak. Ezt a kiszolgálót DHCP (Dynamic Host Configuration Protocol) szervernek hívják, és minden házi routerben benne van. Ha ilyen van a hálózatban, akkor nem kell minden gép esetében a beállításokkal bajlódni, a központi menedzsmenttel a címek kiosztása jól szervezhető.
Ha a hálózati beállításokról részletesen akarsz tájékozódni, Windows alatt az ipconfig /all paranccsal teheted meg. Az alábbiakban látható az ethernet kártya címe (08-00-27-19-13-AD), a gép IP címe (0.0.2.15), a netmask (255.255.255.0), az átjáró (10.0.2.2), a DHCP szerver, ami ezeket a parmétereket kiosztotta (10.0.2.2) és a névszerverek is (192.168.10.1, 213.46.246.53, 213.46.246.54).
C:\Users\koczka.ferenc>ipconfig /all
Windows IP konfiguráció
Ethernet-adapter Helyi kapcsolat:
Kapcsolatspecifikus DNS-utótag. . :
Leírás. . . . . . . . . . . . . . : Intel(R) PRO/1000 MT asztali adapter
Fizikai cím . . . . . . . . . . . : 08-00-27-19-13-AD
DHCP engedélyezve . . . . . . . . : Igen
Automatikus konfiguráció engedélyezve : Igen
IPv4-cím. . . . . . . . . . . . . : 10.0.2.15(Kívánt)
Alhálózati maszk. . . . . . . . . : 255.255.255.0
Bérleti jog kezdete . . . . . . . : 2017. szeptember 14. 5:55:45
Bérleti jog vége. . . . . . . . . : 2017. szeptember 15. 5:55:46
Alapértelmezett átjáró. . . . . . : 10.0.2.2
DHCP-kiszolgáló . . . . . . . . . : 10.0.2.2
DNS-kiszolgálók . . . . . . . . . : 192.168.10.1
213.46.246.53
213.46.246.54
NetBIOS a TCP/IP felett . . . . . : Engedélyezve
Tipp
Ha egy routert rosszul kötsz a hálózatba, az problémát is okozhat. Tipikus példája, amikor pl. a kollégiumban a routered LAN portját csatlakoztatod az intézményi hálózathoz. Ekkor az abban levő DHCP szerver mások számára hálózati paramétereket ad majd, amelyekkel azok nem tudnak működni.
A routerek könnyen felruházhatók bizonyos szintű tűzfal funkciókkal, hiszen a külvilág felé minden forgalom rajtuk keresztül megy át. Eldobhatók a nem kívánt helyre menő csomagok, pl. megakadályozhatók bizonyos forgalmak akár adott időszakan is. Emellett a bejövő forgalom jól szűrhető megelőzve ezzel az internet felől érkező támadások egy részét.
A későbbiek szempontjából fontos kérdés a NAT (Network Address Translation). Ezt a legtöbb házi router alkalmazza, enélkül nem tudnának több számítógép számára internet elérést biztosítani. A NAT oldja meg azt a problémát, hogy az internet szolgáltató valójában csak egy IP címet ad, ami alapvetően egy gép kiszolgálását tenné lehetővé. A router NAT funkciója a belső hálózat külvilág felé menő kéréseit „eltárolja”, a kérést a saját nevében küldi ki, majd a számára visszaérkező választ a belső gép felé úgy adja vissza, hogy abba a saját címe helyett a belső gép címét hamisítja. A NAT biztosítja a belső hálózat gépei számára az internet elérést, de a működéséből adódóan ezek a kapcsolatok mindig a belső géptől kell, hogy kiinduljanak. NAT esetén nem lehetséges olyan kapcsolat, amely az internet felől indul. (A port forward most nem témánk, ez lehet kivétel, itt nem szeretnék foglalkozni vele.)
10.3. A DNS¶
A gyakorlatban nem szeretne senki IP címek garmadát megjegyezni, helyette – éppúgy, mint egy mobiltelefon esetében – neveket szeretnénk használni. Az IP hálózatok egyik szolgáltatása egy ilyen „telefonkönyv”, egy olyan szolgáltatás, amely az IP címekhez nevet rendel. Azt, hogy melyik névhez milyen cím tartozik (vagy fordítva), Windows alatt az nslookup parancsot lehet használni:
C:\Users\koczka.ferenc>nslookup index.hu
Kiszolgáló: router
Address: 192.168.10.1
Nem mérvadó válasz:
Név: index.hu
Address: 217.20.130.99
Fordítva is működik, ha címet adsz meg, a hozzá tartozó nevet kapod vissza:
C:\Users\koczka.ferenc>nslookup 193.225.32.39
Kiszolgáló: router
Address: 192.168.10.1
Név: columbo.ektf.hu
Address: 193.225.32.39
Ahhoz, hogy a névfeloldás működhessen, a számítógépednek meg kell adni egy névszerver címét, ami felé ezeket a kérdéseket továbbíthatja. A Google névszervereinek címe nagyon könnyen megjegyezhető, ezért sokan használják, a címe: 8.8.8.8, egy másiké pedig 8.8.4.4.
Tipp
Próbáld ki! A böngésződ címsorába írd be a 193.225.32.11 címet! Az egyetem weblapja jelenik meg, de most nem a könnyen megjegyezhető www.uni-eszterhazy.hu névvel, hanem az IP címével hivatkoztál rá.
10.4. Ellenőrző kérdések¶
Mi az ethernet?
Mi a switch, és mi a feladata?
Mi a router, és mi a feladata?
Hogyan épül fel egy ethernet csomag?
Mi a MAC?
Miért van szükség IP hálózatokra?
Hogyan épül fel egy IP csomag?
Mit jelent a csomagkapcsolás?
Hogyan épül fel egy IP cím?
Mi a netmask szerepe?
Milyen netmaskok lehetnek érvényesek? Miért?
Mi az alapértelmezett átjáró szerepe?
Hogyan dől el, hogy egy csomag az átjáró felé kerül-e továbbításra?
Mi a DNS kiszolgáló feladata?
Hogyan állapítható meg hogy két IP cím azonos alhálózatban van-e?
Mi a DHCP?
Mi a NAT?
10.5. Feladatok¶
Mi a hálózati kártyád MAC címe?
Milyen gyártmányú hálózati kártya van a gépben?
Milyen IP címet és netmaskot használsz?
DHCP-n kaptál hálózati paramétereket, vagy fix beállításokkal dolgozol?
Mi a www.redhat.com gép IP címe?
Mi a www.redhat.com gép IP címe?