A belső helyi cím - A forrás címe, ahogy az a belső hálózatról látható. Az ábrán a 192.168.10.10 IPv4-címet rendelték a PC1-hez. Belső globális cím - A forrás címe, ahogy az a külső hálózatról látszik. Az ábrán, amikor forgalom indul a PC1-ről a webszerver 209.165.201.1 címére, az R2 lefordítja a belső helyi címet egy belső globális címre. Ebben az esetben az R2 megváltoztatja az IPv4-forráscímet a 192.168.10.10-ről a 209.165.200.226-ra. A NAT terminológia szerint a 192.168.10.10 belső helyi címet lefordították a 209.165.200.226 belső globális címre. Külső globális cím - A rendeltetési hely címe, ahogy az a külső hálózatból látható. Ez egy globálisan irányítható IPv4-cím, amit egy állomáshoz rendeltek az interneten. A webszerver például a 209.165.201.1 IPv4-címen érhető el. Külső helyi cím - A cél címe, ahogy az a belső hálózatról látszik. Ebben a példában a PC1 forgalmat küld a webszerver 209.165.201.1 IPv4-címére. Port címfordítás (Port Address Translation, PAT) - Több-az-egyhez típusú megfeleltetés a helyi és a globális címek között. Az OSI modell harmadik rétege a hálózati réteg, melynek a nagy kiterjedésű hálózatokban, tipikusan az internetes kommunikáció során van szerepe.
4.1. Újabb címzési eljárás? Miért van erre szükség, ha az adatkapcsolati rétegben az ethernet csomagok címzését már kidolgozták?
Ott azt láttuk, hogy velük célba juttathatók az ethernet csomagok. Sajnos az ethernet címzés, és így a switchek nem alkalmasak nagyméretű hálózatok működtetésére. A MAC táblák mérete korlátozott, (ahogy láttuk, még a switchek Mercedeseinek számító Cisco eszközei is csak százezres nagyságrendű bejegyzést tartalmazhatnak). Az ethernet címek szerkezeténél fogva sajnos az sem működhet, hogy a címek egyúttal valamilyen helyet fejezzenek ki, és ez alapján irányíthatóak legyenek például úgy, hogy az AC:0A kezdetűek csak Budapesten forduljanak elő, az AC:0B kezdetűek pedig pl. Egerben. Ha ez lehetséges lenne, nem kellene minden címet egyesével tárolni a MAC táblákban. De nem ez az egyetlen oka annak, hogy az ethernet címzési rendszerére nem alapozható nagy hálózatok működtetése.
Bár a fizikai réteg tárgyalásakor főként az ethernetre, a helyi hálózatok legelterjedtebb típusára koncentráltunk, de láttuk, hogy más hálózati technológiák is léteznek, melyek nem ethernet csomagokkal és nem is az ethernet címzési rendszerével működnek. A bluetooth, a zigbee és a powerline mellett a WiFi eszközök sem az eddig tárgyalt ethernet csomagokat használják - hogy csak néhány példát említsünk. Az ethernet tehát csak egy a sok lehetőség közül - bár valószínűleg a legelterjedtebb. Általánosságban: az adatkapcsolati réteg protokolljai csak az adott, ugyanolyan típusú hálózati eszközök helyi forgalmát képesek lebonyolítani, mások kommunikációs protokolljait nem ismerik fel, pl. bluetooth interfésszel nem lehet WiFi hálózatokhoz kapcsolódni.
4.2. Mivel elvárjuk, hogy egy bluetooth-os mobileszköz, egy zigbee-n kommunikáló okosotthon eszköz vagy egy WiFi-képes hálózati berendezés is internet-képes legyen, ezért azoknak a saját, natív kommunikációjuk mellett egy egységes, mindegyik eszköz által ismert egységes címzési rendszerre és az azt továbbítani képes hálózati berendezésre is szüksége van.
Ezt címzési rendszert és a velük készült csomagokat az OSI modell harmadik, hálózati rétege definiálja, és vannak ebbe a rétegbe tartozó hálózati eszközök is (a routerek). Az alábbi ábrán a fizikai réteget 1-essel, az adatkapcsolatit 2-essel, a hálózatit pedig 3-assal jelöltük. A 3-as hálózati réteg tehát egy új, eszközfüggetlen címzést használ, ami azt jelenti, hogy bármilyen módon is kommunikáljon egy fizikai-adatkapcsolati rétegben működő eszköz, az a saját módján elvégzi a továbbítást, de a harmadik réteg szoftvere szempontjából érdektelen, hogy az hogyan és milyen úton-módon történt. Ennek során a harmadik réteg csomagjait a második réteg valamelyik hálózati protokolljával továbbítják úgy, hogy azok adatmezője a harmadik rétegből küldött teljes adatcsomagot tartalmazza.
Lássunk erre egy példát! Az ábra bal oldalán levő számítógép harmadik rétege adatokat akar küldeni a jobb oldali számítógépnek. Ezért a harmadik rétegben használatos címeket alkalmazva elkészíti az adatcsomagot, és átadja a második rétegnek. Példánkban a második réteg feladatát egy ethernet hálózat látja el, ezért a harmadik rétegtől kapott csomagot egy az egyben egy ethernet csomag adatmezőjébe teszi (beágyazza oda) a feladó és a címzett mezőkhöz pedig bemásolja a megfelelő ethernet címeket. Az így elkészített csomagot végül átadja a switchnek. A két számítógépet összekapcsoló switch veszi ezt a csomagot, majd a szükséges ellenőrzések elvégzése után a címzett portjára továbbítja azt (ennek során használja a már tanult MAC tábláját és a VLAN információkat). A továbbított csomagot a példa jobb oldali számítógépének fizikai rétege veszi. A folyamat során a vevő harmadik rétegének nincs tudomása arról, hogy a csomag milyen úton jutott el hozzá, mivel adatot csak az alatta levő, második réteggel cserél. Ugyanez egy WiFi hálózat esetén is így van, annak ellenére, hogy az adatkapcsolati réteg protokollja és az átviteli közeg is alaposan eltér az ethernettől. A harmadik rétegben elkészített csomag azonos az előző példában szereplővel, de azt most tehát nem etherneten, hanem a WiFi hálózaton kell eljuttatni a jobb oldali géphez. Most a második réteg nem ethernet csomagot készít, hanem az adott vezetéknélküli hálózat által használt típust. Bár ennek felépítését eddig nem ismertettük, és részletei most nem is különösebben fontosak, a lényeg az, hogy most egy eltérő hálózati hardver eltérő felépítésű csomagjáról és egy másik átviteli közegéről van szó. A rádióhullámokat használó fizikai közegen az WiFi adatcsomag átkerül a jobb oldali gépre, amelyet annak fizikai rétege ellenőriz, majd szintén a második, adatkapcsolati rétege dolgoz fel. Ennek során vevő most is kiveszi az adó által elkészített teljes, harmadik rétegnek szóló adatcsomagot az adatmezőből és a hálózati réteg számára átadja. Ez a folyamat hasonlít egy hagyományos levél küldéséhez. Maga a levél a harmadik rétegből küldendő adat, a harmadik réteg címzési rendszere pedig a borítékra írt városból, utcából és házszámból áll. A levelet a legtöbbször a Magyar Posta viszi tovább, ők a célba juttatáshoz irányítószámot használnak és a levelet zsákba teszik (ez az ethernet csomag), ez a második szint protokolljának felel meg. De a levelet végül is kismotoros futár is célba juttathatja, ez egy másik adatkapcsolati rétegben használt eljárás lehet, ahol a fizikai réteget a kismotor jelenti. Tudunk további lehetőségeket javasolni? Bármelyik módot is használják, a levél végül megérkezik, és a címzettnek, amikor kézhez veszi azt, fogalma sincs arról, hogy milyen módon kézbesítették azt számára.
4.3. A harmadik rétegben tehát egy új címzési eljárást használunk, méghozzá olyat, amellyel az internet összes gépe egyedi címmel rendelkezhet.
A hálózatok történetében számos különböző címzési rendszert terveztek és alkalmaztak már. Az egykor piacvezető Novell Netware fájlszervere pl. egy IPX nevűt használt, a Microsoft a fájlszerverének elérésére az SMB-t alkalmazta. Napjainkra a legtöbbjük kihalt, vagy kompatibilitási okokból van még életben, és egy egységes új protokoll, az Internet Protocol, röviden IP váltotta le őket. Ma az IP protokoll negyedik verzióját használjuk, amit röviden IPv4-nek írnak. Egy IP cím 4 byte-ból áll, melyet pontokkal választanak el, például 193.225.32.11. Az IP címzést az 1970-es években tervezték meg. Az Internet elterjedése és a pazarló címgazdálkodás miatt elfogyó IP címek miatt tervezték meg az IPv6-ot, mely tömegesen még mindig nem terjedt el. Egy IP címet tehát egy operációs rendszerben kell beállítani. A beállításra alapvetően két módszer áll rendelkezésre: manuális cím kiosztás vagy automatikus címkérések (DHCP) részben okostelefonoknál, számítógépeknél. A modern operációs rendszerek képesek a gép bekapcsolását követően egy arra kijelölt számítógéptől vagy hálózati berendezéstől (tipikusan a routertől) IP címet kérni. Az erre konfigurált berendezések kölcsönöznek címet.
Ez az oka, hogy egyszerű felhasználóknak otthon nemigen kell foglalkozni a számítógépek IP címeinek manuális kiosztásával. Nem szabad két számítógépben ugyanazt az IP címet beállítani, mert ekkor mindkét gép kommunikációképtelenné válik. Az operációs rendszerek érzékelik, ha a címüket egy másik gép is használja, és az IP cím ütközést egy üzenetablakban jelzik is. Az alhálózati maszkot, az alapértelmezett átjárót és a DNS szervert is be kell állítani. Egy Windows-os számítógép IP címe az ipconfig paranccsal kérdezhető le. A parancsok begépeléséhez el kell indítani a cmd-t, és az ipconfig kiolvasható. A grafikus felületen a hálózati beállítások is módosíthatók. A példában a gép számára egy fix IP címet állítottunk be, ez 192.168.1.44. A 127.0.0.1 cím a loopback cím, amely minden számítógép esetében önmagát jelenti. A fejezetben a csomagkapcsolásos továbbítás részleteit érintettük: az IP réteg részekre bontja az adathordozót, a küldés során minden csomagnak tartalmaznia kell a feladó címet.
4.4. Címek és útvonalak: route-olhatóság és alhálózatok
A fejezet elején már volt szó arról, hogy az IP címeknek úgy kell felépülniük, hogy a címzett az interneten hol, pontosabban melyik irányban helyezkedik el. Az IPv4 tartományokat világszinten az IANA osztja ki. Ha egy szervezetnek publikus IP címekre van szüksége, végső soron ez a szervezet teszi ezt lehetővé. Például a 193.225.32.x alhálózat a tiéd lehet. Az első három számjegyet meghatározzuk, minden belső címed ezzel kell kezdődjön, az utolsó 255-et pedig a hálózatodon belül úgy használod, ahogy akarod. Az IP csomagok továbbítását a harmadik réteg útválasztó eszköze, a router végzi. Ha a küldő és a cízett egy alhálózatban van, a switch középmagában a csomag közvetlenül kézbesíthető, a címzett ethernet címének kikeresése a helyi forgalom része. Ha a címzett nincs ugyanabban az alhálózatban, a küldő felháza a routert hívja segítségül, amely továbbítja a csomagot a net további routerei felé. A címzett ethernet címének megszerzéséhez szükség van az arp protokollra: az arp-tábla összefoglalja, hogy mely IP-cím mely MAC-címhez tartozik. Az arp -a parancs lekérdezésével a rendszer kiolvasható konfliktszituációk nélkül.
A NAT fontos eszköz: a NAT a belső gépekről érkező csomagokat az internetre továbbítás előtt úgy módosítja, hogy azok feladójaként saját magát tünteti fel, így a választ vissza a NAT eszköz vezérli. Innen származik a külső/belső hálózat fogalma. A NAT lehetővé teszi, hogy egy belső hálózat forgalma egyetlen külső IP címet használjon, miközben a belső tartományokban minden eszköz rendelkezik saját címmel. Ennek hatalmas előnye, hogy egy vállalat belső forgalma kevés külső címből is kiszolgálható. Ugyanakkor a NAT megterheli a hálózati eszközöket és különösen nehéz lehet bizonyos protokollokkal (például VoIP SIP/SDP/RTP) vagy VPN-ekkel. A NAT Traversal megközelítés igényli, hogy a hálózati eszközök képesek legyenek ezt a komplex működést biztonságosan és megbízhatóan kezelni.
A VoIP forgalom esetében a NAT különleges problémákat okozhat: a SIP protokollal és az RTP adatsávjával dolgozó komponensek megkövetelik, hogy a NAT eszköz rendelkezzen a kapcsolatok koordinálásához szükséges információkkal. A SIP port viszont általában 5060 vagy 5061, a véletlenszerű port használata az RTP számára megnehezíti az átjárhatóságot. Ilyen esetekben a NAT-olót fel kell készíteni a VoIP forgalom kezelésére. A SIP/SDP/RTP protokollok megkötései miatt csak speciálisan erre felkészített eszközökkel lehet biztosítani a zavartalan forgalmat.
A NAT Traversal fontossága és a kapcsolódó technikák tükrében gyakran érdemes megfontolni a kiterjedt forgalomkezelést és redundanciát: többszörös útvonal vagy failover tűzfalak és NAT eszközök segítségével. A NAT technika tehát lehetővé teszi, hogy sok belső cím mögött legyen csak egy vagy néhány külső cím, miközben a belső címek továbbra is összehangoltan használhatóak a mindennapi hálózati szolgáltatásokhoz. Cisco - A Look Inside Network Address Translators (Geoff Huston).
