Назад | Перейти на главную страницу

NAT с частного IP на публичный IP

У меня есть шлюз с двумя сетевыми адаптерами: eth0 с публичным IP и eth1 с частным IP.

На eth0 У меня есть 4 общедоступных IP-адреса, я хотел преобразовать общедоступный IP-адрес в частный IP-адрес, и я использовал DNAT для этого uisng iptables.

1.1.1.2 -> 10.10.10.2
1.1.1.3 -> 10.10.10.3
1.1.1.4 -> 10.10.10.4

Правила

-A PREROUTING -d 1.1.1.2 -p tcp -j DNAT --to-destination 10.10.10.2
-A PREROUTING -d 1.1.1.3 -p tcp -j DNAT --to-destination 10.10.10.3
-A PREROUTING -d 1.1.1.4 -p tcp -j DNAT --to-destination 10.10.10.4

и теперь я могу получить доступ к внутреннему IP-адресу с помощью DNAT, но не могу подключиться к внешней сети с этого частного IP-адреса.

Как я могу этого добиться? Можно ли выполнить SNAT для нескольких IPS?

Похоже, вы забыли добавить правило маскарада.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Это своего рода СНАТ. Он заменяет исходный IP-адрес локальной сети на внешний IP-адрес маршрутизатора в пакетах, исходящих от компьютеров локальной сети. Таким образом, внешние машины знают, кому отправлять пакеты.

Думаю, это можно сделать. Просто укажите -s <int ip> и --to-source <ext ip>

iptables -t nat -A POSTROUTING -s 10.10.10.2 -i eth1 -j SNAT --to-source 1.1.1.2