Skip to content

M09 IPv4 NAT osoitteenmuunnos

Takaisin opintojakson aikatauluun

Opetusvideot

Microsoft Stream (sharepoint) video

Osoiteluokat

Kuten aiemmin mainittu kappaleessa IPv4 osoitteet, aliverkot and ARP, IPv4 osoiteavaruus on jaettu yksityisiin ja julkisiin osoitteisiin. On helpompaa muistaa yksityiset osoitteet ja kohdella loppuja julkisina.

Yksityiset osoiteavaruudet IPv4:ssä ovat:

  • 10.0.0.0 - 10.255.255.255 (10.0.0.0/8)
  • 172.16.0.0 - 172.31.255.255 (172.16.0.0/12)
  • 192.168.0.0 - 192.168.255.255 (192.168.0.0/16)

Hyvin usein kuluttajat tunnistavat osoiteavaruuden 192.168.0.0/24 (tai vastaavan 192.168.x.0/24) koska se on yleensä oletuksena kotireitittimissä

Näiden yksityisten osoitteiden hyvänä puolena on että niitä voidaan uudelleen käyttää uudestaan ja uudestaan, kunhan liikenne niistä osoitteista muunnetaan julkiseen IPv4 osoitteeseen (eng. Network Address Translated - NATted)!

Alapuolinen kuvio esittää osoiteavaruuden uudelleen käytettävyyttä.

!a

Kaikilla eri kotireitittimillä on aliverkko 192.168.0.0/24 takanansa, mutta kaikkien niiden osoitteet muunnetaan eri julkiseen IPv4 osoitteeseen. Julkisten osoitteiden tarjoajana on esimerkissä Elisa). Huomaa että kuviossa on 254 eri käytettävää yksityistä osoitetta (192.168.0.1 - 192.168.0.254), jotka muunnetaan yhteen julkiseen IPv4 osoitteeseen.

192.168.0.5 muunnetaan 88.112.0.57 osoitteeksi

!a

Sääntö silti kattaa kaikki IPv4 osoitteet aliverkossa 192.168.0.0/24. Tätä kutsutaan Many-to-1 NAT.

Seuraavaksi menemme eri NAT tyyppien lävitse ja kuinka ne konfiguroidaan Vyos:ssa.

Konfiguroidaan osoitteenmuunnos eli NAT

Many-to-1 NAT

Kuten mainittu aiemmin, tämä on yksinkertaisin ja kaikkein useiten käytetty toteutus NAT:sta.

Se tarkoittaa että monta kuluttajan laitetta on piilotettu yhden osoitteen taakse. Tämä säästää julkista osoiteavaruutta.

Konfiguroidaan Many-to-1 NAT

Konfigurointi on hyvin suoraselitteinen.

Meidän täytyy tietoo rajapinta, jossa julkinen IPv4 osoite on konfiguroituneena. Tämä määritetään ulospäin meneväksi rajapinnaksi (outbound-interface) ja IPv4 osoitteet muunnetaan (masquarade) siihen rajapintaan.

set nat source rule 10 outbound-interface eth0
set nat source rule 10 translation address masquerade

Tämän jälkeen meidän pitää julistaa (yksityiset) IPv4 osoitteet, jotka muunnetaan kyseiseen julkiseen osoitteeseen.

set nat source rule 10 source address 192.168.0.0/24

Olkoot ulosmenevän rajapinnan IPv4 osoite yläpuolisen kuvion mukainen 88.112.0.57. Kaikki liikenne aliverkosta 192.168.0.0/24 (254 osoitetta) muutetaan kyseiseen julkiseen osoitteeseen.

Varmistetaan Many-to-1 NAT toiminta show -komennoilla

show nat source translations

vyos@vyos:~$ show nat source translations 
Pre-NAT              Post-NAT             Prot  Timeout 
192.168.0.5          88.112.0.57          icmp  29      
vyos@vyos:~$

1-to-1 NAT

Joskus on tarpeellista muuntaa julkinen osoite takaisin yksityiseksi osoitteeksi. Paljastaakseen esimerkiksi web palvelin NAT:n toiselta puolelta lähiverkosta. Alapuolisessa esimerkissä yhteydenotot julkisesta Internetistä osoitteeseen 88.113.241.57 muunnetaan yksityiseen osoitteeseen 192.168.0.5.

!a

Nyt kaikki eri TCP ja UDP portit, jotka liikennöivät osoitteeseen 88.113.241.57 muunnetaan kulkevan sisäverkon osoitteeseen 192.168.0.5. Lisäpalomuurisääntöjä saatetaan tarvita muunnoksen oheen rajoittamaan tcp/udp porttiavaruutta. TCP:stä ja UDP:sta lisää kappaleessa TCP, UDP ja verkon konfiguraation hallinta (SSH, HTTP)

Konfiguroidaan 1-to-1 NAT

1-to-1 NAT:n konfiguroiti pitää ajatella kaksisuuntaisena (kohdat 1. ja 2.) seuraavan esimerkin mukaisesti:

  1. Liikenne joka kohdistuu yksityiseen IPv4 osoitteeseen (kutsutaan joskus Destination NAT -nimellä)
  2. Liikenne joka lähtee yksityisestä IPv4 osoitteesta (kutsutaan joskus Source NAT -nimellä).
  3. Reitittimellä pitää olla julkinen IPv4 osoite jossain rajapinnassaan käytettävissä

Kohta 1.

set nat destination rule 10 destination address 88.113.241.57
set nat destination rule 10 inbound-interface eth0
set nat destination rule 10 translation address 192.168.0.5

Kohta 2.

set nat source rule 10 outbound-interface eth0
set nat source rule 10 source address 192.168.0.5
set nat source rule 10 translation address 88.113.241.57

Kohta 3.

set interface ethernet eth0 address 88.113.241.57/15

Tarkistetaan 1-to-1 NAT toiminta show -komennoilla

Huomattavaa on että kohdemuunnos (destination NAT) ei muuta alkuperäisen lähden IP-osoitetta (25.0.0.2) miksikään.

Pelkästään vastauksen lähde on muuttunut.

show nat source translations and show nat destination translations

vyos@vyos:~$ show nat destination translations 
Pre-NAT              Post-NAT             Prot  Timeout 
25.0.0.2             25.0.0.2             icmp  29      
vyos@vyos:~$ show nat source translations 
Pre-NAT              Post-NAT             Prot  Timeout 
88.113.241.57         192.168.0.5         icmp  29      
vyos@vyos:~$

Portin edelleenlähetys (eng. Port Forwarding)

Yksi ratkaisu saatavuus ongelmaan yläpuolella on yksinkertainen (tcp/udp) portin edelleenlähetys. Tämä on yleensä oma vaihtoehtonsa kuluttajille suunnatuissa laitteistoissa. Tarkoituksena on edelleen lähettää tosiaan vain 1 portti (esim tcp/80 eli HTTP) NAT:n lävitse yksityiseen IP-osoitteeseen. Tämä on yleensä tarpeeksi.

Esimerkissä alapuolella yhteydet julkisesta Internetistä osoitteeseen 88.113.241.57:80 (<ip-osoite>:<portti>) muunnetaan yksityiseksi IPv4 osoitteeksi 192.168.0.5:80.

!a

Konfiguroidaan portin edelleenlähetys

Tämä portin edelleenlähetys olettaa että lähiverkossa 192.168.0.0/24 on jo Many-to-1 NAT toiminnassa. Täten pelkästään portin edelleenlähetys osio tarvitsee konfiguroida.

Alapuolisessa esimerkissä, HTTP yhteydet (tcp/80) reitittimen eth0 -rajapinnan IPv4 osoitteeseen muunnetaan yksityiseen IPv4 osoitteeseen 192.168.0.5:

set nat destination rule 10 destination port 80
set nat destination rule 10 inbound-interface eth0
set nat destination rule 10 protocol tcp
set nat destination rule 10 translation address 192.168.0.5

Tarkistetaan Portin edelleenlähetys show -komennoilla

show nat destination translations

vyos@vyos:~$ show nat destination translations 
Pre-NAT              Post-NAT             Prot  Timeout 
88.113.241.57          192.168.0.5          tcp   104     
vyos@vyos:~$

Operaattori-tason NAT (eng. Carrier-Grade NAT)

Internet palveluntarjoajat (ISP:t) taistelevat vähenevän IPv4 osoiteavaruuden kanssa. Tämä on pakottanut operaattorit toteuttamaan operaattori-tason NAT toiminnetta esim. puhelinverkoissa. Tämä groteski toiminnallisuus tarkoittaa että yksityinen IPv4 osoite muunnetaan yksityiseksi IPv4 osoitteeksi, joka vielä kertaalleen muunnetaan julkiseksi IPv4 osoitteeksi.

Eli näitä ketjutettuja NAT muunnoksia tapahtuu yhtäaikaisesti.

!a

Vinkki! Voit palata E01 harjoitteen traceroute komentoa tarkastelemaan, jos teit sen kotiverkosta/mobiiliverkosta!

Joidenkin opiskelijoiden kohdalla olen havainnut suomalaisten operaattorien tekevän tätä operaattori-tason NATtausta.

Tämä ei ole harvinaisuus myöskään kuluttajaverkoissa, koska kotona saattaa parikin reititintä asentua peräkkäin ketjuksi oletusasetuksin. Syynä kenties että operaattorin (ADSL-/kaapeli-/kuitu)modeemin perään halutaan oma WLAN -modeemi, jotka oletusasetuksilla kaikki ovat reitetyssä tilassa. Ongelmia tämä tuottaa vasta kun jotain palvelua halutaan julkaista kaikkien näitten NAT käännösten takaa ulkomaailmaan - Internettiin.

Jatka harjoituksiin!

Konfiguroi NAT

Takaisin opintojakson aikatauluun?

Takaisin opintojakson aikatauluun


Lisenssi

Tämän opintojakson materiaalin on kirjoittanut Karo Saharinen ja se on lisensoitu Creative Commons Nimeä-EiKaupallinen-EiMuutoksia 4.0 Kansainvälinen -lisenssillä.

Creative Commons -lisenssi