8. Hálózati címfordítás¶
Közismert az aggodalom az IP címek elfogyásával kapcsolatban. Az IP 4-es verziójában (PIv4), melyről ez a tananyag is szól, 4 byte-os címeket használnak, melyek elvi darabszáma 2564, azaz valamivel több, mint 41 milliárd. Ez az IP hálózatok tervezésekor több mint elégnek tűnt, de az IP hálózatok vilégszintű elterjedése, az osztályozás, a részhálózatok kialakításakor elszenvedett címveszteségek miatt valójában mára már kevésnek bizonyul. Annak, hogy a címekből mégsem fogytunk ki, jelentős szerepe van a hálózati címfordítás bevezetésének, mely a belső hálózati, szolgáltatást nem nyújtó, csak azt igénybe vevő gépek esetében alkalmazható, és lehetővé teszi a meghatározott hálózati címek többszörös felhasználását belső, elszeparált hálózatokon. Ezeket a hálózatokat privát hálózatoknak nevezik, ezeket az Internet forgalmát irányító routerek nem továbbítják. A pivát hálózatok körébe az alábbi címtartományok tartoznak:
10.0.0.0/8
172.16.0.0/16
192.168.0.0/16
Megjegyzés
A
172.16.0.0/16
egy B osztályú hálózat, míg a192.168.0.0/16
256 darab C osztályú hálózatot ír le.Az ad-hoc network hálózata, a
169.254.0.0/16
szintén privát hálózat.Szintén a privát hálózatokhoz soroljuk a
127.0.0.0/8
-as hálózatot, melynek minden eleme az ún. loopback interfészhez kötött, azaz minden eszköz önmagát címzi meg vele.
A privát hálózati címeket használó hálózatok tehát az Internet felől nézve elszeparáltan működnek, csak belső hálózati forgalom kiszolgálására alkalmasak, tehát ilyen módon bármelyik szervezet használhatja őket, az azonosság nem jelent problémát. Ugyanakkor az ilyen címekkel rendelkező gépek nem képesek önálló internetkapcsolatra, mert még ha az internetre küldött csomagjaik célba is jutnának, a választ a rengeteg azonos címet használó, elszeparált hálózatokban működő gépek számára nem lehetne visszaküldeni.
8.1. NAT¶
Mivel egy internet kapcsolat nélküli munkaállomás ma már jórészt használhatatlan, ezért megoldást kellett találni arra, hogy a privát hálózatok munkaállomásai számára is biztosítani lehessen ezeket. A megoldásat a hálózati címfordítás jelenti.
A címfordítást a routerek végzik, és számos megvalósítási módja ismert, melyből kettőt tárgyalunk. A NAT olyan nagyvállalatok hálózataiban használható jól, amelyben nagy számú munkaállomás és csak belső szolgáltatást nyújtó szerver gép működik. A PAT kisebb hálózatokban, tipikusan SOHO eszközökben használatos. Először a NAT működésével foglalkozunk, de minden példánk arról szól majd, hogy egy belső hálózati címeket használó hálózat gépei számára hogyan lehet biztosítani az internet elérését, és hogy a szolgáltatást nyújtó router hogyan valósítja ezt meg. Az alábbi ábra egy ilyen hálózatot mutat be.

NAT hálózat kialalkítása¶
Ebben a hálózatban a privát 192.168.1.0/24
-es hálózatot használjuk, melynek forgalma normál esetben nem kerülhet ki a publikus 193.225.32.11
-es gépre. (Az ábrán szereplő hálózat alap beállításában ez nem lenne így, de ettől az egyszerűség kedvéért most tekintsünk el, és végezzük el a feladatot a NAT eszközével.)
A NAT alapötlete az, hogy a router rendelkezzen több publikus IP címmel, és ezeket a belső hálózati gépek számára kölcsönözze ki addig, amíg azok Internet kapcsolatot igényelnek. Példánkban a router címtartománya a 193.225.32.0/28
, amely egy 16-os tartományt biztosít 193.225.32.0
és 193.225.32.15
-ig. E címtartomány forgalmát az internet irányából a 193.225.32.1
cím felé továbbítják. A router az első cím kivételével (mert ez a saját IP címe) ebből kölcsönöz a belső hálózat gépei számára publikus címeket, melyek aktuális állapotát egy táblázatban tárolja. Ez az alábbi módon épül fel:
Belső helyi cím |
Belső globális cím |
Külső helyi cím |
Külső globális cím |
---|---|---|---|
192.168.1.11 |
193.225.32.2 |
193.225.32.1 |
142.251.208.142 |
A táblázat adatainak jelentése a következő:
A
192.168.1.11
privát IP című gép egy csomagot küld a142.251.208.142
című gép számára. Mivel ez nem egy hálózatban van vele, ezért azt a192.168.1.1
címhez tartozó MAC addressű gépre, az átjárójának küldi el. Mivel a kérés egy webszerver számára szól, a cél port száma80
lesz, a forrás port pedig egy véletlenszerű szabad érték, példánkban az40001
.
Forrás IP
Cél IP
Forrás port
Cél port
192.168.1.11
142.251.208.142
40001
80
Az átjáró a csomagot nem továbbítja a privát tartományba tartozó forrás címmel, mert azt az Internet routerei nem továbbítanák. Ezért a saját kölcsönzési tartományából kiválaszt egy publikus IP címet, példánkban a
193.225.32.2
-t, mellyel felülírja a kimenő csomag forrás címét. A válasz így erre a publikus címre fog visszaérkezni. A router a küldést a saját,193.225.32.1
-es címéről fogja elvégezni.
Forrás IP
Cél IP
Forrás port
Cél port
193.225.32.2
142.251.208.142
40001
80
A csomag kiküldésre kerül, melyet az internet routerei továbbítanak a cél felé. A visszaérkező válasz csomag a
193.225.32.1
-be érkezik, címzettje a193.225.32.2
. A cél port az eredeti kérésben szereplő40001
, a forrás port pedig a webszerver által erre a kapcsolatra kijelölt szabad érték, példánkban a28212
.
Forrás IP
Cél IP
Forrás port
Cél port
142.251.208.142
193.225.32.2
28212
40001
A router kikeresi a NAT tábla megfelelő sorát, majd a beérkező csomag címzett mezőjét kicseréli az abban szereplő belső helyi IP címre, a
192.168.1.11
-re. Így a csomagot a belső hálózati interfészről az eredeti feladóhoz, annak40001
-es portjára továbbítja.
Forrás IP
Cél IP
Forrás port
Cél port
142.251.208.142
192.168.1.11
28212
40001
A működési módból adódóan a belső gépek számára tehát csak olyan kapcsolatok válasz csomagjai juthatnak el, amelyeket ezek a gépek kezdeményeztek. Kívülről kezdeményezett új kapcsolatokhoz nem tartozik NAT tábla bejegyzés, így azokat a router eldobja. Ez alapján a NAT egyfajta védelmet is jelent a belső számítógépek számára (ez azért csak egy kisebb lépés a védelemben, ami önmagában azért nem elégséges).
8.2. PAT¶
A címfordítás egy másik módszere az ún. PAT (Poert Address Translation). Működése hasonló a NAT-hoz, azonban ez csak egyetlen kimenő címet használ így a belső hálózat kéréseinek külső forrás címe minden esetben a router külső címe lesz. A PAT további IP címek hiányában a portszámok alapján tartja nyilván a kimenő kéréseket és a visszaküldött csomagokat ez alapján juttatja el a privát hálózat megfelelő gépéhez. A PAT táblázata az alábbi módon épül fel:
A PAT esetében a fent leírt folyamat az alábbiak szerint zajlik le:
A
192.168.1.11
privát IP című gép most is egy csomagot küld a142.251.208.142
című gép számára, amit ebben az esetben is a192.168.1.1
címhez tartozó MAC addressű gépre, az átjáróhoz kerül. A csomag cél port száma most is80
lesz, a forrás port szintén egy véletlenszerű szabad érték, az40001
.
Forrás IP
Cél IP
Forrás port
Cél port
192.168.1.11
142.251.208.142
40001
80
Az átjáró a csomagot most sem továbbítja, hanem rögzíti a PAT tábla új bejegyzését. A kiküldésre kerülő csomagban a forrás IP-t ez után a saját publikus IP-jére, a
193.225.32.1
-re cseréli, ezzel azt a látszatot keltve, mint ha a csomagot eleve ő küldte volna. A válasz így közvetlenül a router címére érkezik majd vissza. Az eljárás során a router ellenőrzi, hogy a forrás eredeti portszáma, amely alapján a visszatérő csomagot végül a privát címmel rendelkező géphez irányítjuk, előfordul-e már a PAT táblában. Amennyiben nem, a PAT port az eredeti forrás portszámával egyezik meg. Példánkban feltételezzük, hogy ez ez már foglalt, ezért egy az eljárás egy másik, szabad portot keres, a62126
-ot. Ezt rögzíti PAT táblában PAT portszámként, és használja a kimenő csomag forrás port érékeként.
Forrás IP
Cél IP
Forrás port
Cél port
193.225.32.1
142.251.208.142
62126
80
A csomagot ez után a router a cél felé továbbítja. A visszaérkező választ a webszerver a
193.225.32.1
gépnek címzi, melyben a cél portszáma az eredeti forrás port, a62126
lesz. A forrás port a webszerver által ehhez a kapcsolathoz generált szabad érték, példánkban28212
lesz.
Forrás IP
Cél IP
Forrás port
Cél port
142.251.208.142
193.225.32.2
28212
62126
A router kikeresi a PAT táblában azt a sort, ahol a PAT port értéke
62126
, majd kiolvassa az eredeti portszámot, a40001
-et. Ezt követően a beérkező csomag cél port mezőjét kicseréli az erre az értékre. A módosított csomagot végül a belső hálózat eredeti feladójához továbbítja.
Forrás IP
Cél IP
Forrás port
Cél port
142.251.208.142
192.168.1.11
28212
40001
A NAT vitathatalan előnye a címekkel való takarékosság és a belső gépek részleges védelme. Előnyös az alkalmazása abban az esetben is, ha a hálózat publikus címtartománya megváltozik: a privát címmel rendelkező gépeket nem kell újra konfigurálni.
A NAT alkalmazása ugyanakkor hátrányt is jelenthet. A működése komolyabb erőforrásokat igényel, fel kell építeni és karban kell tartani a NAT táblát, a címek cseréjét pedig minden kimenő és bejövő csomag esetében el kell végezni. Ez sebességre érzékeny a szolgáltatásokban, pl. a streaming video és audio, IP telefonálás esetén nagyobb számú kliens esetén problémát okozhat. Egyes biztonsági szolgáltatások, pl. az IPSec esetében problémát jelent, hogy a kapcsolat nem végponttól végpontig terjed. Nem utolsó sorban a NAT alkalmazása elrejti a szolgáltatást kérő kilétét, így a kapcsolatok ellenőrzése, nyomon követése is lehetetlenné válik. Végül egyes alkalmazások nem működnek, ha a kliens és a kiszolgáló szerver is NAT-olt hálózatban van; ilyen pl. a passzív módú FTP.
Megjegyzés
Más gyártók hálózati eszközei a belső hálóztaból kifelé irányuló NAT funkciókat srcnat-nak neveznek.
Figyelem
A belső hálózatok kedvelt publikus címtartománya a 192.168.1.0/24
vagy a 192.168.0.0/24
. Számos SOHO eszköz ezt használja alapértelmezésként, így sok otthonban, kisvállalatnál ez a címtartomány működik. Egy új hálózat tervezésekor célszerű ezek használatát kerülni azért, mert a távoli munkavégzés kialakítása során problémát okoz, ha egy home office-ban dolgozó munkatárs otthonában működő hálózat azonos a vállalaton belülivel. Javaslom pl. a 192.168.22.0/24
vagy hasonló hálózatok alkalmazását.