Forrás és cél IP cím NAT-olása egyszerre

Címfordításra sokszor van igény, elsősorban olyan helyzetekben, ha az eredeti IP címet valami miatt el kell rejteni, vagy meg kell változtatni, például egymással átfedésben levő hálózatok vannak, vagy a cél szerver IP címe megváltozott, azonban a kliens szoftverbe bele van programozva a cél IP cím és azon változtatni nem lehet.

NAT (Network Address Translation) esetén általában az inside oldalról jövő forrás IP címet szoktuk megváltoztatni. Természetesen az outside oldalról jövő forrás címet is meg lehet változtatni, amely felér azzal hogy az inside oldalról jövő cél IP címet változtatjuk. (A válasz csomagban a cél cím az eredet csomag forrása, illetve fordítva a válasz csomag forrása az eredeti csomag cél címe, akár csak egy postán küldött levél és a válaszboríték címzésénél)

A NAT működéséhez kell egy inside (belső) és egy outside (külső) interfész, illetve hogy a csomag aminek a címét megváltoztatjuk az inside interfész felől az outside felé menjen. Ha nem kerül a csomag route-olásra az outside felé, vagy nem egy inside interfészen jön be a csomag akkor a NAT nem teljes, nincs inside-outside pár.

A használt topológia az alábbi:

Az R2 fogja a NAT-olást elvégezni. Az R1 fele menő interfésze (Fa0/0) az inside, az R3 fele menő interfésze (Fa0/1) pedig az outside interfész. Az 1.1.1.1 és a 3.3.3.3 loopback interfészek, a routerek közötti linkeken a 10.1.1.0/24 és 20.1.1.0/24 hálózatok vannak. R1 és R3 statikus defult routtal mutatnak R2 felé, így azokon a routinggal nem kell törődni. R2 a két loopback interfészt statikus route-okkal ismeri.

A kiindulási konfiguráció részlet az alábbi:

R1:

interface lo1
   ip address 1.1.1.1 255.255.255.255
interface Fa0/0
   ip address 10.1.1.1 255.255.255.0

ip route 0.0.0.0 0.0.0.0 10.1.1.2

R2:

interface Fa0/0
   ip address 10.1.1.2 255.255.255.0
interface Fa0/1
   ip address 20.1.1.1 255.255.255.0

ip route 1.1.1.1 255.255.255.255 10.1.1.1
ip route 3.3.3.3 255.255.255.255 20.1.1.2

R3:

interface lo1
   ip address 3.3.3.3 255.255.255.255
interface Fa0/1
   ip address 20.1.1.2 255.255.255.0

ip route 0.0.0.0 0.0.0.0 20.1.1.1

Ezekkel a beállításokkal R1 meg tudja pingelni R3 loopback interfészét.

Első lépésben az R1 forráscímét fogom átfordítani 11.11.11.11-re, így R3 szemszögéből nézve a ping kérések a 11.11.11.11 címről érkeznek, és erre kell visszaküldeni a válaszokat.
Ezt a műveletet R2 fogja elvégezni, illetve a válasz csomagoknál visszafordítja a 11.11.11.11-et 1.1.1.1-re.

R2 konfigurációjához az alábbiak szükségesek:

  • inside interfész
  • outside interfész
  • NAT szabály
interface fa0/0
   ip nat inside
interface fa0/1
   ip nat outside

ip nat inside source static 1.1.1.1 11.11.11.11

Ezzel beállítottuk hogy ha az inside interfészre érkező csomagok forrás címe 1.1.1.1, akkor azok 11.11.11.11-re legyenek lecserélve, és úgy menjenek tovább a cél felé.

Következő lépésként az R1-ről a 33.33.33.33-at pingelve a 3.3.3.3-ra lesz lecserélve a cél cím. Más megfogalmazásban az inside->outside forgalom cél IP cím cseréje felfogható úgy mint az outside->inside forgalom forrás ip címének cseréje (válasz forgalomnál megcserélődnek az IP-k). Ez az alábbi módon konfigurálható:

ip nat outside source static 3.3.3.3 33.33.33.33

Ez azonban még nem elég, mivel az R2 nem tudja hogy az R1 által küldött csomag célja a 33.33.33.33 merre van, ezért nemhogy egy outside interfész felé routolná, hanem eldobja a csomagot mivel a cél ismeretlen. Ezért még egy statikus route-ra is szükség van, ami az R3 felé mutat, hogy az inside felől bejövő csomag cél IP címe egy outside interfész felé legyen küldve, ahol majd az outside source NAT el lesz végezve:

ip route 33.33.33.33 255.255.255.255 20.1.1.2

Ezek után az R1 által küldött 1.1.1.1 forrás című és 33.33.33.33 cél című csomagok R2-től 11.11.11.11-es forrás címmel és 3.3.3.3 cél címmel fognak tovább menni, illetve ennek megfelelően a válasz csomagok is fordítva lesznek.