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 verifica și valida regula, afișăm intrările din lanțul POSTROUTING din tabela nat folosind comanda

root@host:~# iptables -t nat -L POSTROUTING -n -v
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

Vrem să verificăm configurarea corectă a NAT. Pentru acesta vom trimite de pe stația red un pachet către 8.8.8.8. Pachetul va trece prin gateway (adică stația host) și va fi translatat. Pe stația red rulăm comanda

root@red:~# ping -c 2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.1.2 icmp_seq=1 Destination Host Unreachable
From 192.168.1.2 icmp_seq=2 Destination Host Unreachable
 
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 999ms

Observăm că nu există conectivitate de la stația red către adresa IP 8.8.8.8. Motivul este reprezentat de faptul că nu avem activată rutarea pe stația host. Pentru a activa rutarea pe stația host rulăm comanda

root@host:~# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1

Intrăm din nou pe stația red și folosim ping pentru a testa conectivitatea la adresa IP 8.8.8.8:

TODO
rl/labs/09/contents/01.1385327889.txt.gz · Last modified: 2013/11/24 23:18 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