Iptables - nat
Z openSUSE wiki
NAT (skr. od ang. Network Address Translation) służy do tłumaczenia adresów sieciowych. NAT jest też często nazywany maskaradą. Został opracowany przez firmę Cisco aby zapobiegać wyczerpaniu adresów IP w Internecie.
NAT dzieli się na dwa typy:
- SNAT - zmiana adresu źródłowego (z prywatnej podsieci) na adres publiczny. SNAT stosowany jest najczęściej w przypadku uzyskania jednego, publicznego adresu internetowego oraz dzieleniu połączenia pomiędzy wiele komputerów w prywatnej sieci. Wykonywany jest zawsze po routingu.
- DNAT - zmiana adresu docelowego na adres konkretnego hosta w podsieci. DNAT stosowany jest np, gdy za jednym adresem IP kryje się kilka serwerów usług, działających na różnych portach. Wykonywany jest zawsze przed routingiem.
Tak samo, jak w przypadku pozostałych zastosowań, tak i w przypadku NAT, iptables dla nat wymaga tworzenia odowiednich reguł oraz przypisywania ich do odpowiedniej tabeli (NAT) oraz łańcuchów. Tabela NAT, zawiera dwa łańcuchy: PREROUTING (DNAT) oraz POSTROUTING (SNAT)
Opcje iptables dotyczące NAT
- -t nat - Wskazuje na tablicę (w tym przypadku oczywiście NAT), którą edytujemy
- -A PREROUTING/POSTROUTING - Dodaje regułę na koniec łańcucha PREROUTING lub POSTROUTING
- -I PREROUTING/POSTROUTING - Przeciwnie do -A, dodaje regułę na początek łańcucha
- -s 1.2.3.4/24 - adres źródłowy lub podsieć źródłowa
- -d 1.2.3.4/24 - adres docelowy lub podsieć docelowa
- -i eth0 - interfejs wejściowy (może być wskazany tylko PREROUTING)
- -o eth1 - interfejs wyjściowy (może być wskazany tylko POSTROUTING)