This is an old revision of the document!


01. Configurarea translatării de adrese (MASQUERADE)

Epuizarea adreselor IPv4 în cadrul rețelelor curente a condus la folosirea de adrese IP din clase private (de ex. 192.168.0.0/24). Pe lângă comunicația dintre stațiile unei rețele, dorim și accesul la Internet al acestora. De aceea s-a introdus conceptul de translatare de adrese (NAT: Network Address Translation) prin care mai multe stații dispun de acces la Intern folosind aceeași adresă IP rutabilă: adresa gateway-ului. Activarea translatării de adrese (NAT) pe gateway conduce la înlocuirea perechii <adresă IP sursă, port sursă> (aparținând stației) cu perechea <adresa IP gateway, port disponibil>.

Configurarea NAT pe Linux se realizează tot prin intermediul comenzii iptables, la fel ca în cazul configurării firewall-ului. Dacă pentru configurarea firewall-ului foloseam tabela filter (tabela implicită a iptables), pentru configurarea firewall-ului vom folosi tabela nat.

Astfel, pentru a activa NAT pe un server Linux executăm comanda

root@host:~# iptables -t nat -A POSTROUTING -j MASQUERADE

În comanda de mai sus:

  • -t specifică tabela pe care se aplică regula, în cazul nostru tabela nat.
  • -A înseamnă adăugarea unei reguli la sfârșitul listei de reguli.
  • POSTROUTING se referă la momentul când va fi realizat procesul de translatare de adrese: după rutare.
    • În nomenclatura iptables acesta se numește și de lanț (chain).
    • Exemple de alte lanțuri: INPUT, OUTPUT, FORWARD, PREROUTING.
  • -j este acțiunea ce va fi luată, iar în acest caz este MASQUERADE (acțiune simplă de translatare de adrese).

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.

rl/labs/09/contents/01.1385325382.txt.gz · Last modified: 2013/11/24 22:36 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0