NAT
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 sen 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.
Ongelma NATin kanssa voi olla se, että 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ä kernelin moduuleita ftp:lle ja irc/dcc:lle (ip_nat_irc ja ip_nat_ftp) reitittimessä tai FTP:n ollessa kyseessä tyydyttävä sen passiivitilaan.
RFC 1918
NATatun sisäverkon koneiden IP-osoitteiksi ei voi valita aivan mitä tahansa. Jos esimerkiksi yhden koneen osoitteeksi asetettaisiin 62.183.177.162, mikä on 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ä 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
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 ISDN, on laitteen nimi ipppX.
Viimeisen komennon voi antaa myös muodossa
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -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. 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 jollain Internet-yhteyden jako -velholla.
NAT Fireholilla
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