Bevezetés a hálózatok világába
A hálózati réteg, vagy más néven az OSI 3. rétege olyan szolgáltatásokat biztosít, amelyek lehetővé teszik a végberendezések közötti kommunikációt a hálózaton. A végponttól-végpontig történő szállításhoz a hálózati réteg négy alapvető folyamatot használ:
Míg a szállítási réteg (OSI 4. réteg) az állomásokon futó folyamatok közötti adattovábbítást kezeli, addig a hálózati réteg a csomagok felépítését és feldolgozását definiálja, ami az adatok állomásról állomásra történő továbbításához szükséges. A csomagokban szállított adatoktól független működésnek köszönhetően, a hálózati réteg képes az állomások közötti különböző típusú kommunikáció továbbítására.
Az IP egy fejléc hozzáadásával csomagolja be a szállítási réteg szegmenseit. Ez a fejléc teszi lehetővé a csomagok célállomáshoz továbbítását, és mindaddig szükség van rá, amíg a csomag a forrás hálózati rétegét elhagyva megérkezik a célállomás hálózati rétegéhez.
Az adatok rétegről rétegre történő becsomagolásának folyamata teszi lehetővé, hogy az egyes rétegek szolgáltatásai más rétegektől függetlenül fejlődjenek és bővüljenek. Mindez azt jelenti, hogy a szállítási réteg szegmensei becsomagolhatók IPv4, IPv6 vagy akár egy új, a jövőben kifejlesztett protokoll segítségével is.
A forgalomirányítók képesek a különböző hálózati rétegbeli protokollok egyidejű működtetésére, összekötve a hálózat különböző típusú állomásait. A közvetítő eszközök a forgalomirányítás során csak a csomag fejlécének tartalmát veszik figyelembe. A csomag adat része - a szállítási rétegbeli PDU - a hálózati rétegbeli feldolgozás során minden esetben változatlan marad.
Az IP-t kis többletterhelésű protokollnak tervezték. Ennek megfelelően csak azokat a funkciókat tartalmazza, amelyek feltétlenül szükségesek ahhoz, hogy egy csomag összekapcsolt hálózatokon keresztül a forrástól a célig eljusson. A protokollnak nem feladata a csomagok nyomon követése és felügyelete. Ezeket a funkciókat szükség esetén más rétegbeli protokollok biztosítják.
Az IP legfőbb jellemzői:
A hálózati réteg feladata a csomagok állomások közötti továbbítása a hálózatra nézve a lehető legkisebb többletterheléssel. A hálózati réteg nem foglalkozik, vagy tudatában sincs a csomagban zajló kommunikáció típusával. Az IP összeköttetés-mentes, ami azt jelenti, hogy az adatküldést megelőzően a végpontok között nem épül ki kapcsolat. Az összeköttetés-mentes kommunikáció hasonló ahhoz, mint amikor egy levelet küldünk anélkül, hogy arról a címzettet előre értesítenénk.
Mivel az IP összeköttetés-mentes, így a csomagtovábbítás előtt nincs szükség a végpontok közötti kapcsolat kiépítéséhez fontos vezérlési információk cseréjére sem. Szintén nincs szükség a PDU-fejlécében olyan további információkra, amelyek a felépített kapcsolat kezelését segítenék. Mindezek nagy mértékben csökkentik az IP által okozott többletterhelését. Mivel nem épül fel kapcsolat a végpontok között, így a küldőnek nincs információja a megcímzett eszköz létezéséről vagy működéséről, illetve arról sem, hogy a csomagja megérkezik-e vagy hogy a címzett fel tudja-e azt dolgozni.
Az IP-t gyakran nevezik nem megbízható vagy legjobb szándékú kézbesítést (best-effort delivery) biztosító protokollnak. Ez nem azt jelenti, hogy az IP időnként megfelelően működik, máskor pedig nem, vagy hogy az IP gyenge adatkommunikációs protokoll. A nem megbízható mindössze annyit jelent, hogy az IP nem képes felügyelni és helyreállítani a nem kézbesített vagy hibás csomagokat. Ez amiatt van, hogy az IP-csomag a feladási helyen kívül semmilyen információt nem tartalmaz, ami alapján a küldőt értesíteni lehetne a sikeres kézbesítésről. Az IP fejléce nem tartalmaz szinkronizációs adatokat a csomagok kézbesítési sorrendjének nyomon követéséhez, nem nyugtázza a csomagok megérkezését, és nem tartalmaz hibajavítási adatot sem, amellyel ellenőrizhető a csomagok hibamentes kézbesítése. Előfordulhat, hogy a csomagok hibásan, rossz sorrendben vagy egyáltalán nem érkeznek meg a célállomáshoz. Az IP-fejlécben található információk alapján, egyik hiba esetében sincs mód a csomag újraküldésére.
Rossz sorrendben érkező vagy elveszett csomagok esetén a magasabb rétegbeli szolgáltatások, mint például a TCP feladata a probléma kezelése. Mindezek eredményeképpen az IP nagyon hatékonyan képes működni. Ha az IP-fejléc a megbízhatósághoz szükséges többlet információkat is tartalmazná, akkor az összeköttetést vagy megbízhatóságot nem igénylő kommunikációk esetében sávszélesség felhasználási és késleltetési problémák merülnének fel. A TCP/IP-protokollkészletben a szállítási rétegbeli protokoll lehet TCP vagy UDP attól függően, hogy az adott kommunikáció esetében mennyire fontos a megbízhatóság. Annak köszönhetően, hogy az IP a megbízhatósági feladatokat a szállítási rétegre bízza, egy rugalmas és különböző típusú kommunikációk esetén is használható protokoll.
A hálózati réteg nem foglalkozik a csomagok továbbításához használt átviteli közeg jellemzőivel sem. Az IP teljesen függetlenül működik az átviteli közegtől, ahol a protokollkészlet alacsonyabb rétegeiben zajló adatátvitel történik. Ahogy az ábrán is látható, az IP-csomagok továbbíthatók elektromos úton kábelen keresztül, optikai jelként üvegszálat használva, vagy vezeték nélküli környezetben rádió jelként.
Az IP-csomagok fogadása és felkészítése az átviteli közegen történő továbbításra az OSI adatkapcsolati rétegének feladata. Mindez azt jelenti, hogy az IP-csomagok továbbítása nincs korlátozva egyetlen átviteli közegre sem.
A hálózati réteg azonban figyelembe veszi az átviteli közeg egy fő jellemzőjét, a közegen átvihető maximális PDU méretét. Ezt nevezzük maximális átviteli egységnek (Maximum Transmission Unit, MTU). A csomagok maximális méretének meghatározása az adatkapcsolati és a hálózati réteg közötti kommunikáció során történik. Az adatkapcsolati réteg megadja a hálózati réteg számára az MTU értékét, a hálózati réteg pedig meghatározza a maximális csomagméretet.
Bizonyos esetekben egy közvetítő eszköznek, általában egy forgalomirányítónak át kell méreteznie a csomagokat ahhoz, hogy egy kisebb MTU-értékkel rendelkező közegen továbbítani tudja őket. Ezt a folyamatot nevezik tördelésnek vagy feldarabolásnak (fragmentation).
Az IPv4-et 1983-ban fejlesztették ki az Internet elődjének tekinthető ARPANET (Advenced Tesarch Projects Agency Network) hálózat működéséhez. Az internet elsősorban az IPv4 protokollra épül, ami a legszélesebb körben használt hálózati rétegbeli protokoll.
Az IPv4 csomag két részből áll:
Az IPv4-csomag fejléce olyan mezőkből áll, melyek a csomagról tartalmaznak fontos információkat. Ezek a mezők bináris számok, melyeket a 3. réteg dolgoz fel. Az egyes mezők bináris értékei az IP-csomag különböző tulajdonságait határozzák meg.
A legfontosabb IPv4-fejléc mezők:
A két leggyakrabban hivatkozott mező a forrás és cél IP-cím. Ezek határozzák meg, hogy a csomag honnan indult és hová tart. Általában ezek a címek nem változnak a forrástól a célállomásig vezető út során.
Az eddig nem említett mezők a csomag azonosításához és érvényesítéséhez, vagy a szétdarabolt csomag újbóli összeállításához szükségesek.
Az azonosításra és érvényesítésre használt mezők:
Amikor egy forgalomirányító a csomagokat egy kisebb MTU-értékkel rendelkező átviteli közegre továbbítja, akkor a csomagokat kisebb egységekre kell feldarabolnia. Ezt a folyamatot nevezzük feldarabolásnak (fragmentation). A feldarabolt adategységek nyomon követéséhez az IPv4-csomag a következő mezőket használja:
Megjegyzés: Az Opciók és a Kitöltés mezők használata igen ritka, így a tananyag ezeket nem tárgyalja.
Az elmúlt évek során az IPv4 protokollt a megjelenő újabb és újabb kihívásoknak köszönhetően számtalanszor frissítették. Mindezek ellenére az IPv4-nek maradt három alapvető problémája:
Az 1990-es évek elején az IETF (Internet Engineering Task Force) egyre nagyobb aggodalommal figyelte az IPv4 kapcsán felmerülő problémákat, és elkezdte keresni a megoldást. Ez vezetett aztán az IPv6 kifejlesztéséhez. Az IPv6 megoldja az IPv4 problémáit, és egy olyan robusztus megoldás biztosít, amely tulajdonságainak köszönhetően alkalmasabb a jelenlegi és a várható hálózati igények kielégítésére.
Az IPv6 kibővített tulajdonságai:
A 32 bites IPv4-címtér megközelítőleg 4.294.967.296 egyedi címet tartalmaz. Mivel az IPv4 a címeket osztályokba sorolja, valamint címeket tart fent a csoportos címzésre, a tesztelésre és egyéb felhasználás érdekében, így a teljes címtérből csak 3,7 milliárd a ténylegesen kiosztható.
Az IPv6 340.282.366.920.938.463.463.374.607.431.768.211.456 vagyis kb. 340 szextillió címet biztosít, ami megközelítőleg annyi, mint a Föld összes homokszeme.
Az IPv6 kapcsán az egyik legfőbb tervezési változás az IPv4-hez képest az egyszerűsített fejléc.
Az IPv4-fejléc 20 oktett (maximum 60 byte az Opciók mezővel együtt), ami az Opciók és a Kitöltés mezőket leszámítva 12 alapvető mezőből áll.
Az IPv6-fejléc ezzel szemben 40 oktett (a forrás- és célcím mérete miatt ilyen nagy), ami 3 IPv4 alap és 5 további mezőt, azaz összesen 8 mezőt tartalmaz.
Az IPv6-csomag fejléc mezői:
Az IPv6-csomag kiterjesztett fejléct (Extension Header, EH) is tartalmazhat, ami további hálózati rétegbeli információkat biztosít. Ez a kiterjesztett fejléc opcionális és az IPv6-fejléc és az adat között helyezkedhet el. Használják például csomagok feldarabolása vagy biztonság és mobilitás támogatás esetén is.
A hálózati réteg másik feladata a csomagok állomások közötti irányítása. Egy állomás által küldött csomag címzettje lehet:
Az, hogy egy csomagot helyi vagy távoli állomásnak címeztek, a forrásállomás IP-cím és hálózati maszk kombinációjának a célállomás IP-címével történő összevetése dönti el.
Otthoni vagy vállalati hálózatokban számos vezetékes és vezeték nélküli eszköz kapcsolódik össze közvetítő hálózati eszköz, mint például LAN-kapcsoló és/vagy vezeték nélküli hozzáférési pont (Wireless Access Point, WAP) segítségével. Ez a közvetítő eszköz biztosítja a kapcsolatot a helyi hálózat állomásai között. A helyi állomások további eszközök használata nélkül képesek egymást elérni és információt megosztani. Amikor egy állomás ugyanazon a hálózaton lévő állomásnak küld üzenetet, a csomag egyszerűen az állomás interfészéről a közvetítő eszközön keresztül a célállomáshoz kerül továbbításra.
Természetesen a legtöbb esetben szeretnénk, hogy eszközeink helyi hálózaton kívüli állomásokhoz, vállalatokhoz és az internethez is csatlakozni tudjanak. A helyi hálózaton kívüli berendezéseket távoli állomásoknak nevezzük. Amikor egy állomás egy távoli célállomásnak küld üzenetet, akkor forgalomirányítóra és irányításra van szükség. A forgalomirányítási folyamat feladata a legjobb útvonal megtalálása a célállomáshoz. A helyi hálózati szegmenshez csatlakozó forgalomirányítót nevezzük alapértelmezett átjárónak.
Az alapértelmezett átjáró irányítja a forgalmat a helyi hálózatról a távoli hálózatok eszközeihez. Otthoni vagy kisvállalati környezetben gyakori, hogy az alapértelmezett átjárót az internethez való csatlakozáshoz használják.
Amikor egy állomás csomagot küld egy másik IP-hálózaton lévő eszköznek, akkor azt egy közvetítő eszközön keresztül az alapértelmezett átjárónak kell küldenie. Ez azért van így, mert a helyi állomás nem tárol irányítási információkat a helyi hálózaton kívül lévő, távoli célállomásokról, az alapértelmezett átjáró viszont rendelkezik a szükséges információkkal. Az alapértelmezett átjáró, ami leggyakrabban egy forgalomirányító, egy iránytótáblát tart fenn. Az irányítótábla egy RAM-ban tárolt adatfájl, amiben a közvetlenül csatlakozó és az eszköz által megtanult távoli hálózatok adatai szerepelnek. A forgalomirányító a táblában lévő információkat használja fel a célhoz vezető legjobb útvonal megtalálásához.
Hogyan tudja eldönteni az állomás, hogy a csomagokat az alapértelmezett átjáróhoz kell-e továbbítania? Az állomásnak saját, helyi irányítótáblát kell fenntartania ahhoz, hogy a hálózati rétegbeli csomagokat a megfelelő célhálózatba tudja küldeni. Ez a helyi tábla jellemzően az alábbiakat tartalmazza:
Egy Windows állomáson a route print vagy a netstat -r parancs jeleníti meg az állomás irányítótábláját. A két parancs kimenete megegyezik. Bár a kimenet első ránézésre bonyolultnak tűnhet, mégis könnyen megérthető.
A netstat -r vagy a vele megegyező route print parancs az aktuális TCP/IP hálózati kapcsolatokra vonatkozóan az alábbi három információt tartalmazza:
Amikor egy állomás csomagot küld egy másik állomásnak, akkor az irányítótáblája segítségével dönti el, hogy hova továbbítsa azt. Ha a célállomás egy távoli hálózaton van, akkor a csomagot egy átjárónak kell küldeni.
Mi történik, amikor egy csomag érkezik egy forgalomirányító interfészére? A forgalomirányító megnézi az irányítótábláját és annak segítségével dönti el, hogy a csomagot merre kell küldenie.
Egy forgalomirányító irányítótáblája az alábbiakról tárol információkat:
Egy állomás irányítótáblájában csak a közvetlenül csatlakozó hálózatok szerepelnek, így egy távoli célállomás eléréséhez alapértelmezett átjáróra van szüksége. Egy forgalomirányító irányítótáblája hasonló információkat tartalmaz azzal a különbséggel, hogy távoli hálózatok azonosítására is képes.
A forgalomirányító és az állomás irányítótáblája is tartalmazza a következőket:
C:\Windows\System32> netstat -r =========================================================================== Interface List 8...90 fb a6 82 60 69 ......Realtek PCIe GBE Family Controller 7...0a 00 27 00 00 07 ......VirtualBox Host-Only Ethernet Adapter 13...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1 15...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8 1...........................Software Loopback Interface 1 4...00 00 00 00 00 00 00 e0 Microsoft ISATAP adapter 6...00 00 00 00 00 00 00 e0 Microsoft ISATAP adapter #2 14...00 00 00 00 00 00 00 e0 Microsoft ISATAP adapter #3 16...00 00 00 00 00 00 00 e0 Microsoft ISATAP adapter #4 =========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 172.22.220.1 172.22.220.17 10 127.0.0.0 255.0.0.0 On-link 127.0.0.1 306 127.0.0.1 255.255.255.255 On-link 127.0.0.1 306 127.255.255.255 255.255.255.255 On-link 127.0.0.1 306 172.22.220.0 255.255.255.0 On-link 172.22.220.17 266 172.22.220.17 255.255.255.255 On-link 172.22.220.17 266 172.22.220.255 255.255.255.255 On-link 172.22.220.17 266 192.168.17.0 255.255.255.0 On-link 192.168.17.1 276 192.168.17.1 255.255.255.255 On-link 192.168.17.1 276 192.168.17.255 255.255.255.255 On-link 192.168.17.1 276 192.168.56.0 255.255.255.0 On-link 192.168.56.1 266 192.168.56.1 255.255.255.255 On-link 192.168.56.1 266 192.168.56.255 255.255.255.255 On-link 192.168.56.1 266 192.168.175.0 255.255.255.0 On-link 192.168.175.1 276 192.168.175.1 255.255.255.255 On-link 192.168.175.1 276 192.168.175.255 255.255.255.255 On-link 192.168.175.1 276 224.0.0.0 240.0.0.0 On-link 127.0.0.1 306 224.0.0.0 240.0.0.0 On-link 192.168.175.1 276 224.0.0.0 240.0.0.0 On-link 192.168.17.1 276 224.0.0.0 240.0.0.0 On-link 172.22.220.17 266 224.0.0.0 240.0.0.0 On-link 192.168.56.1 266 255.255.255.255 255.255.255.255 On-link 127.0.0.1 306 255.255.255.255 255.255.255.255 On-link 192.168.175.1 276 255.255.255.255 255.255.255.255 On-link 192.168.17.1 276 255.255.255.255 255.255.255.255 On-link 172.22.220.17 266 255.255.255.255 255.255.255.255 On-link 192.168.56.1 266 =========================================================================== Persistent Routes: None IPv6 Route Table =========================================================================== Active Routes: If Metric Network Destination Gateway 8 26 ::/0 fe80::32e4:dbff:fe27:8d3f 1 306 ::1/128 On-link 8 26 2001:738:3000:24e4::/64 On-link 8 266 2001:738:3000:24e4:288c:3137:802a:17f4/128 On-link 8 266 2001:738:3000:24e4:cd4e:a16d:e4f3:dcb6/128 On-link 13 276 fe80::/64 On-link 15 276 fe80::/64 On-link 8 266 fe80::/64 On-link 7 266 fe80::/64 On-link 13 276 fe80::815:8858:f633:7871/128 On-link 7 266 fe80::8d2b:8b3b:7bb4:1588/128 On-link 15 276 fe80::ad28:85e0:e13d:80c6/128 On-link 8 266 fe80::cd4e:a16d:e4f3:dcb6/128 On-link 1 306 ff00::/8 On-link 13 276 ff00::/8 On-link 15 276 ff00::/8 On-link 8 266 ff00::/8 On-link 7 266 ff00::/8 On-link =========================================================================== Persistent Routes: None C:\Windows\System32>
Egy Cisco IOS forgalomirányítón a show ip route parancs jeleníti meg az irányítótáblát. Ebben további útvonal információk is találhatók arról, hogy milyen módon tanulta meg és mikor frissítette utoljára a forgalomirányító az adott útvonalat, és melyik interfészen keresztül érhető el a kívánt célhálózat.
R1# show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfR Gateway of last resort is 209.165.200.226 to network 0.0.0.0 S* 0.0.0.0/0 [1/0] via 209.165.200.226, GigabitEthernet0/0/1 10.0.0.0/24 is subnetted, 1 subnets O 10.1.1.0 [110/2] via 209.165.200.226, 00:02:45, GigabitEthernet0/0/1 192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks C 192.168.10.0/24 is directly connected, GigabitEthernet0/0/0 L 192.168.10.1/32 is directly connected, GigabitEthernet0/0/0 209.165.200.0/24 is variably subnetted, 2 subnets, 2 masks C 209.165.200.224/30 is directly connected, GigabitEthernet0/0/1 L 209.165.200.225/32 is directly connected, GigabitEthernet0/0/1 R1#
A forgalomirányító az interfészére érkező csomag fejlécéből olvassa ki a célhálózat címét. Ha a célhálózat szerepel az irányítótábla útvonalai között, akkor a forgalomirányító a táblában szereplő információk alapján továbbítja a csomagot. Ha két vagy több útvonal is vezet ugyanahhoz a célhálózathoz, a mérték alapján dől el, hogy melyik kerül az irányítótáblába.
Egy forgalomirányító a távoli hálózatokat kétféleképpen ismerheti meg:
A statikus útválasztás a következő jellemzőkkel rendelkezik:
A dinamikus útválasztási protokoll lehetővé teszi az útválasztók számára, hogy más útválasztóktól automatikusan megismerjék a távoli hálózatokat, beleértve az alapértelmezett útvonalat is. A dinamikus útválasztási protokollokat használó útválasztók automatikusan megosztják az útválasztási információkat más útválasztókkal, és kompenzálják az esetleges topológiai változásokat a hálózati rendszergazda bevonása nélkül. Ha változás történik a hálózati topológiában, az útválasztók megosztják ezeket az információkat a dinamikus útválasztási protokoll használatával, és automatikusan frissítik útválasztási táblázataikat.
Dinamikus routing protokoll-példák: RIP, EIGRP, IS-IS, OSPF, BGP.
Az alapkonfigurációhoz a hálózati rendszergazdának kell megadnia a dinamikus útválasztási protokollon belül közvetlenül csatlakozó hálózatokat. A dinamikus útválasztási protokoll automatikusan a következőket fogja tenni: