IpTables NAT в 3 шагa

NAT - Network address translation или преобразование (трансляция) сетевых адресов, это хорошая фича любого фаервола, позволяющий преобразовывать IP-адреса транзитных пакетов.

Рассмотрю пример проброса трафика с одного VPN соединения в другое.
VPN1: tap0
VPN2: ppp0
никакой привязки в ip адресам

Для начала разрешаем перенаправление ipадресов:

echo 1 > /proc/sys/net/ipv4/ip_forward

Создаем правила маскарада пакетов

iptables -t nat -A POSTROUTING -o tap0 -j MASQUERADE  
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Разрешаем пакетам ходить в обе стороны:

iptables -A FORWARD -i ppp0 -o tap0 -j ACCEPT  
iptables -A FORWARD -i tap0 -o ppp0 -j ACCEPT
  • -i - incoming - входящий интерфейс
  • -o - outgoing - исходящий интерфейс