Ero sivun ”NAT” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
pEi muokkausyhteenvetoa
pEi muokkausyhteenvetoa
 
(15 välissä olevaa versiota 10 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
NAT eli Network Address Translation on 1996/97 kehitetty tekniikka, jonka tarkoituksena oli vähentää [[IPv4]]-osoitteiden kulutusta. Ennen sen kehittämistä jokaisella Internetiin kytketyllä koneella oli oltava oma IP-osoite.  
'''NAT''' eli '''Network Address Translation''' on 1996/97 kehitetty tekniikka, jonka tarkoituksena oli vähentää [[IPv4]]-osoitteiden kulutusta. Ennen sen kehittämistä jokaisella Internetiin kytketyllä koneella oli oltava oma [[wikipedia:fi:IP-osoite|IP-osoite]].  


NATin avulla [[wikipedia:fi:reititin|reititin]] voi saada kaikki sen takaa sisäverkosta ulospäin Internetiin otetut yhteydet näkymään sen omalla IP-osoitteella, jolloin sisäverkon koneilla voi olla mitkä tahansa lähiverkon IP-osoitteet niiden vaikuttamatta Internet-liikenteeseen.
NATin avulla [[wikipedia:fi:reititin|reititin]] voi saada kaikki sen takaa sisäverkosta ulospäin Internetiin otetut yhteydet näkymään reitittimen omalla IP-osoitteella, jolloin sisäverkon koneilla voi olla mitkä tahansa lähiverkon IP-osoitteet niiden vaikuttamatta Internet-liikenteeseen.


Kun paketti NATatun verkon sisäpuolelta tulee Internetiin päin olevaan reitittimeen, vaihtaa reititin siihen oman julkisen IP-osoitteensa sisäverkon koneen IP-osoitteen tilalle. Vastaavasti reititin vaihtaa verkkonsa sisäpuolelle tulevien pakettien osoitteet julkisesta koneiden yksityisiin. Näin sisäverkon ulkopuolella olevat koneet eivät voi tietää pakettien tulevan useammalta kuin yhdeltä koneelta.
Kun paketti NATatun verkon sisäpuolelta tulee Internetiin päin olevaan reitittimeen, vaihtaa reititin siihen oman julkisen IP-osoitteensa sisäverkon koneen IP-osoitteen tilalle. Vastaavasti reititin vaihtaa verkkonsa sisäpuolelle tulevien pakettien osoitteet julkisesta koneiden yksityisiin. Näin sisäverkon ulkopuolella olevat koneet eivät voi tietää pakettien tulevan useammalta kuin yhdeltä koneelta.


Ongelma NATin kanssa voi olla se, että aktiivi [[FTP]]:n ja [[IRC]]in kaltaisten protokollien käyttö on usein vaikeaa verkon sisäpuolelta. Tällöin on joko käytettävä erillisiä kernelin moduuleita (kuten ip_nat_irc ja ip_nat_ftp) reitittimessä tai FTP:n ollessa kyseessä tyydyttävä sen passiivi moodiin.
== NATin ongelma ==
Ongelma NATin kanssa on, että reitittimellä usein on vain yksi tai muutama ulkoinen osoite, jolloin sisäverkon koneita ei voi suoraan (one-to-one NAT) yhdistää ulkoverkon ip-osoitteisiin. Jos sisäverkon koneen pitää kuunnella verkkoa, reitittimelle on kerrottava mihin sisäverkon koneeseen tiettyyn reitittimen ip-osoitteeseen ja tcp/udp-porttiin ulkoa tuleva yhteys on ohjattava.


=== RFC 1918 ===
Käytännössä sisäverkon koneisiin ei voi ottaa yhteyttä ulkoa, ellei erikseen määrätä tiettyä konetta kohteeksi, joko oletusarvoisesti tai palvelukohtaisesti. Etenkin tiettyjen palvelujen kanssa tämä on ongelmallista: aktiivitilassa [[FTP]]:n, [[IRC]]:n tiedonsiirtoprotokolla [[DCC]]:n tai [[VoIP]] (SIP, H323) -protokollien käyttö on usein vaikeaa tai mahdotonta verkon sisäpuolelta. Tällöin on joko käytettävä erillisiä [[ydin|ytimen]] [[moduuli|moduuleita]] ftp:lle ja irc/dcc:lle (ip_nat_irc ja ip_nat_ftp) reitittimessä tai FTP:n ollessa kyseessä tyydyttävä sen passiivitilaan.
NATatun sisäverkon koneiden IP-osoitteiksi ei voi valita aivan mitä tahansa. Jos esimerkiksi yhden koneen osoitteeksi asetettaisiin [http://62.183.177.162/ 62.183.177.162], mikä on [http://www.flug.fi/ www.flug.fi]:n IP-osoite, niin sisäverkosta ei enää FLUG:in sivuille pääsisi, koska kaikki pyynnöt ohjautuisivat sille sisäverkon koneelle, jolle tämä osoite on asetettu. Tästä syystä [http://www.iana.org/ IANA] on kehittänyt RFC 1918 -standardin, jossa määritellään sisäverkoissa sallitut IP-osoiteavaruudet. Nämä osoitteet eivät voi olla käytössä Internetin puolella. Ne ovat seuraavat:
 
== Paikalliset IP-osoitteet ==
NATatun sisäverkon koneiden IP-osoitteiksi ei voi valita aivan mitä tahansa. Jos esimerkiksi yhden koneen osoitteeksi asetettaisiin [http://62.220.250.162/ 62.220.250.162], mikä on [http://www.flug.fi/ www.flug.fi]:n IP-osoite, niin sisäverkosta ei enää [[FLUG]]in sivuille pääsisi, koska kaikki pyynnöt ohjautuisivat sille sisäverkon koneelle, jolle tämä osoite on asetettu. Tästä syystä [http://www.iana.org/ IANA] on kehittänyt RFC 1918 -standardin, jossa määritellään sisäverkoissa sallitut IP-osoiteavaruudet. Nämä osoitteet eivät voi olla käytössä Internetin puolella. Ne ovat seuraavat:
     10.0.0.0    -  10.255.255.255  (10/8 prefix)
     10.0.0.0    -  10.255.255.255  (10/8 prefix)
     172.16.0.0  -  172.31.255.255  (172.16/12 prefix)
     172.16.0.0  -  172.31.255.255  (172.16/12 prefix)
Rivi 14: Rivi 17:


== NATin päällekytkeminen Linuxissa ==
== NATin päällekytkeminen Linuxissa ==
Komenna seuraavasti root-käyttäjänä:
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE


Tässä ethX on ulospäin menevä verkkolaite (voi olla esim. eth0 tai eth1). Jos käytät [[PPPoE]]:tä tai modeemia, on ethX korvattava pppX:llä. Jos taas käytössäsi on [[wikipedia:fi:ISDN|ISDN]], on laitteen nimi ipppX.
Voimassaolevat reititykset voit putsata seuraavalla komennolla:
 
iptables -t nat -F
 
Voimassaolevat reititykset voit listata komennolla:
 
iptables -t nat -L
 
 
[[komentorivi|Komenna]] seuraavasti [[pääkäyttäjä]]nä (root):
 
[[modprobe]] iptable_nat
[[echo]] 1 > /[[proc]]/sys/net/ipv4/ip_forward
[[iptables]] -t nat -A POSTROUTING -o ethX -j MASQUERADE
 
 
Tässä ethX on ulospäin liikennöivä verkkolaite (voi olla esim. eth0 tai eth1). Jos käytät [[PPPoE]]:tä tai modeemia, on ethX korvattava pppX:llä. Jos taas käytössäsi on [[wikipedia:fi:ISDN|ISDN]], on laitteen nimi ipppX. [[WLAN]]-korteilla taas laitenimi on yleensä muotoa wlanX.


Viimeisen komennon voi antaa myös muodossa  
Viimeisen komennon voi antaa myös muodossa  
  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ethX -j MASQUERADE  
  iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ethX -j MASQUERADE  
jolloin 192.168.0.0/255.255.255.0:n tilalle laitat sisäverkkosi osoitteen.
jolloin 192.168.0.0/255.255.255.0:n tilalle laitat sisäverkkosi osoitteen.


Jos sinulla on kiinteä IP-osoite, niin komento on tämä:
Jos sinulla on '''kiinteä IP-osoite''', niin komento on tämä:
  iptables -t nat -A POSTROUTING -o ethX -j SNAT --to PYSYVÄ_IP-OSOITTEESI
  iptables -t nat -A POSTROUTING -o ethX -j SNAT --to PYSYVÄ_IP-OSOITTEESI


Tässä ethX on ulosmenevä laite. Komennon voi myös antaa muodossa:
Tässä ethX on "ulosmenevä" laite eli verkkokortti jota kautta liikennöit ulkoverkkoon. Komennon voi myös antaa muodossa:


  iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ethX -j SNAT --to PYSYVÄ_IP-OSOITTEESI
  iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ethX -j SNAT --to PYSYVÄ_IP-OSOITTEESI
Tässä 192.168.0.0/255.255.255.0 on sisäverkon osoite ja ethX on ulospäin menevä laite.
Tässä 192.168.0.0/255.255.255.0 on sisäverkon osoite ja ethX on ulospäin menevä laite.


Monissa [[jakelut|jakeluissa]] NAT:in päällekytkeminen onnistuu myös jakelun omilla graafisilla asetusohjelmilla, esimerkiksi jollain Internet-yhteyden jako -velholla.
Monissa [[jakelut|jakeluissa]] NAT:in päällekytkeminen onnistuu myös jakelun omilla graafisilla asetusohjelmilla, esimerkiksi jollakin Internet-yhteyden jako -velholla tai [[palomuuri]]asetustyökalulla. Monissa asetusohjelmissa NAT:ista käytetään nimitystä ''masquerading''.
 
==NAT Fireholilla==
[[Firehol]]illa NAT on helppo toteuttaa seuraavanlaisesti. Tässä esimerkissä siis InternetVerkkolaite on verkkolaite (vaikkapa eth0), joka on kytketty Internetiin, ja SisäverkonVerkkolaite (vaikkapa eth1) on sitten kytketty verkkoon, jonka koneet halutaan NAT:n taakse.
 
router internet2lan inface InternetVerkkolaite outface SisäverkonVerkkolaite
        masquerade reverse
        client all accept


== Katso myös ==
== Katso myös ==
*[[DHCP]]
*[[Verkkoliitynnät]]
*[[Verkkoliitynnät]]
*[[Palomuuri]]


== Linkkejä ==
==Aiheesta muualla==
*[http://tldp.org/HOWTO/Masquerading-Simple-HOWTO/index.html Masquerading-Simple-HOWTO]
*[http://tldp.org/HOWTO/Masquerading-Simple-HOWTO/index.html Masquerading-Simple-HOWTO]
*[http://tldp.org/HOWTO/IP-Masquerade-HOWTO/index.html IP-Masquerade-HOWTO]
*[http://tldp.org/HOWTO/IP-Masquerade-HOWTO/index.html IP-Masquerade-HOWTO]
Rivi 46: Rivi 71:
*[http://fi.wikipedia.org/wiki/Osoitteenmuunnos Artikkeli Osoitteenmuunnos Wikipediassa]
*[http://fi.wikipedia.org/wiki/Osoitteenmuunnos Artikkeli Osoitteenmuunnos Wikipediassa]


[[Luokka: Verkko]]
[[Luokka:Verkko]]
[[Luokka: Ohjeet]]
[[Luokka:Ohjeet]]

Nykyinen versio 23. heinäkuuta 2015 kello 13.25

NAT eli Network Address Translation on 1996/97 kehitetty tekniikka, jonka tarkoituksena oli vähentää IPv4-osoitteiden kulutusta. Ennen sen kehittämistä jokaisella Internetiin kytketyllä koneella oli oltava oma IP-osoite.

NATin avulla reititin voi saada kaikki sen takaa sisäverkosta ulospäin Internetiin otetut yhteydet näkymään reitittimen omalla IP-osoitteella, jolloin sisäverkon koneilla voi olla mitkä tahansa lähiverkon IP-osoitteet niiden vaikuttamatta Internet-liikenteeseen.

Kun paketti NATatun verkon sisäpuolelta tulee Internetiin päin olevaan reitittimeen, vaihtaa reititin siihen oman julkisen IP-osoitteensa sisäverkon koneen IP-osoitteen tilalle. Vastaavasti reititin vaihtaa verkkonsa sisäpuolelle tulevien pakettien osoitteet julkisesta koneiden yksityisiin. Näin sisäverkon ulkopuolella olevat koneet eivät voi tietää pakettien tulevan useammalta kuin yhdeltä koneelta.

NATin ongelma[muokkaa]

Ongelma NATin kanssa on, että reitittimellä usein on vain yksi tai muutama ulkoinen osoite, jolloin sisäverkon koneita ei voi suoraan (one-to-one NAT) yhdistää ulkoverkon ip-osoitteisiin. Jos sisäverkon koneen pitää kuunnella verkkoa, reitittimelle on kerrottava mihin sisäverkon koneeseen tiettyyn reitittimen ip-osoitteeseen ja tcp/udp-porttiin ulkoa tuleva yhteys on ohjattava.

Käytännössä sisäverkon koneisiin ei voi ottaa yhteyttä ulkoa, ellei erikseen määrätä tiettyä konetta kohteeksi, joko oletusarvoisesti tai palvelukohtaisesti. Etenkin tiettyjen palvelujen kanssa tämä on ongelmallista: aktiivitilassa FTP:n, IRC:n tiedonsiirtoprotokolla DCC:n tai VoIP (SIP, H323) -protokollien käyttö on usein vaikeaa tai mahdotonta verkon sisäpuolelta. Tällöin on joko käytettävä erillisiä ytimen moduuleita ftp:lle ja irc/dcc:lle (ip_nat_irc ja ip_nat_ftp) reitittimessä tai FTP:n ollessa kyseessä tyydyttävä sen passiivitilaan.

Paikalliset IP-osoitteet[muokkaa]

NATatun sisäverkon koneiden IP-osoitteiksi ei voi valita aivan mitä tahansa. Jos esimerkiksi yhden koneen osoitteeksi asetettaisiin 62.220.250.162, mikä on www.flug.fi:n IP-osoite, niin sisäverkosta ei enää FLUGin sivuille pääsisi, koska kaikki pyynnöt ohjautuisivat sille sisäverkon koneelle, jolle tämä osoite on asetettu. Tästä syystä IANA on kehittänyt RFC 1918 -standardin, jossa määritellään sisäverkoissa sallitut IP-osoiteavaruudet. Nämä osoitteet eivät voi olla käytössä Internetin puolella. Ne ovat seuraavat:

   10.0.0.0     -   10.255.255.255  (10/8 prefix)
   172.16.0.0   -   172.31.255.255  (172.16/12 prefix)
   192.168.0.0  -   192.168.255.255 (192.168/16 prefix)

NATin päällekytkeminen Linuxissa[muokkaa]

Voimassaolevat reititykset voit putsata seuraavalla komennolla:

iptables -t nat -F

Voimassaolevat reititykset voit listata komennolla:

iptables -t nat -L


Komenna seuraavasti pääkäyttäjänä (root):


modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE


Tässä ethX on ulospäin liikennöivä verkkolaite (voi olla esim. eth0 tai eth1). Jos käytät PPPoE:tä tai modeemia, on ethX korvattava pppX:llä. Jos taas käytössäsi on ISDN, on laitteen nimi ipppX. WLAN-korteilla taas laitenimi on yleensä muotoa wlanX.

Viimeisen komennon voi antaa myös muodossa

iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ethX -j MASQUERADE 

jolloin 192.168.0.0/255.255.255.0:n tilalle laitat sisäverkkosi osoitteen.

Jos sinulla on kiinteä IP-osoite, niin komento on tämä:

iptables -t nat -A POSTROUTING -o ethX -j SNAT --to PYSYVÄ_IP-OSOITTEESI

Tässä ethX on "ulosmenevä" laite eli verkkokortti jota kautta liikennöit ulkoverkkoon. Komennon voi myös antaa muodossa:

iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ethX -j SNAT --to PYSYVÄ_IP-OSOITTEESI

Tässä 192.168.0.0/255.255.255.0 on sisäverkon osoite ja ethX on ulospäin menevä laite.

Monissa jakeluissa NAT:in päällekytkeminen onnistuu myös jakelun omilla graafisilla asetusohjelmilla, esimerkiksi jollakin Internet-yhteyden jako -velholla tai palomuuriasetustyökalulla. Monissa asetusohjelmissa NAT:ista käytetään nimitystä masquerading.

NAT Fireholilla[muokkaa]

Fireholilla NAT on helppo toteuttaa seuraavanlaisesti. Tässä esimerkissä siis InternetVerkkolaite on verkkolaite (vaikkapa eth0), joka on kytketty Internetiin, ja SisäverkonVerkkolaite (vaikkapa eth1) on sitten kytketty verkkoon, jonka koneet halutaan NAT:n taakse.

router internet2lan inface InternetVerkkolaite outface SisäverkonVerkkolaite
        masquerade reverse
        client all accept

Katso myös[muokkaa]

Aiheesta muualla[muokkaa]