This is an old revision of the document!
Datorită epuizării adreselor IPv4 în cadrul rețelelor se folosesc adrese IP din clase private (ex. 192.168.0.0/24). Pe lângă comunicația dintre stațiile unei rețele, se dorește și accesul la Internet al acestora. De aceea s-a introdus conceptul de translatare de adrese (NAT) prin care mai multe stații pot să acceseze Internetul folosind aceeași adresă IP rutabilă. Prin NAT se înlocuiește adresa IP sursă (a stației) cu adresa IP a ruterului care face NAT și un port sursă liber.
Pentru a activa NAT pe un server Linux vom executa următoarea comanda:
root@host:~# iptables -t nat -A POSTROUTING -j MASQUERADE root@host:~#
În comanda de mai sus -t
specifică tabela pe care se aplică regula. În cazul nostru este tabela nat
. POSTROUTING
se referă la momentul când va fi făcut NAT-ul: după rutare. În nomenclatura iptables
acesta mai poartă denumirea și de lanț (chain). -j
este acțiunea ce va fi luată, iar în acest caz este MASQUERADE
(sinonim cu NAT
).
Pentru a vedea că regula există, puteți afișa tabela NAT cu următoarea comandă:
root@host:~# iptables -t nat -nvL POSTROUTING Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 MASQUERADE all -- * * 0.0.0.0/0 0.0.0.0/0
Intrați pe stația red
și verificați dacă puteți da ping în 8.8.8.8
:
root@host:~# go red [...] root@red:~# ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. ^C --- 8.8.8.8 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 1007ms
Observați că nu aveți conectivitate în IP-ul 8.8.8.8
. Motivul este reprezentat de faptul că nu aveți activată rutarea pe stația host
. Pe stația host
activați rutarea:
root@host:~# sysctl -w net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1
Intrați din nou pe stația red
și încercați să executați comanda ping
către 8.8.8.8. Observați că merge.