Здравствуйте!
Помогите решить пожалуйста проблему начинающему.
Суть такова: на сервисе yandex.cloud есть два инстанса на Ubuntu:
1. first с сетевым интерфейсом eth0 и адресами на нём: 10.128.0.4 - внутренний адрес и 51.250.64.109 - внешний адрес. Как таковой адрес на интерфейсе не присвоен, first ходит в интернет через шлюз 10.128.0.1.
2. second с сетевым интерфейсом eth0 и внутренним адресом 10.128.0.28
Стоит задача сервер second выпустить в интернет.
Для решения данной задачи пробовал на first делать маскарад по средствам iptables:
sudo iptables -t nat -A POSTROUTING -s 10.128.0.28/32 -j MASQUERADE
ещё пробовал snat:
sudo iptables -t nat -A POSTROUTING -s 10.128.0.28/32 -o eth0 -j SNAT --to-source 10.128.0.4
Ни то и не другое к желаемому результату не приводит (((
На second устанавливал шлюз таким образом:
sudo ip route add default via 10.128.0.4
Форвардин в системе активен:
net.ipv4.ip_forward = 1
Перерыл весь интернет, ничего не могу понять, что я делаю не так (((
Везде в интернете показывается настройка nat на двух интерфейсах, а такой конфигурации нет.
Помогите пожалуйста!
Ещё так попробовал:
iptables -t nat -A POSTROUTING -s 10.128.0.28 -o eth0 -j SNAT --to-source 51.250.64.109 iptables -A FORWARD -s 10.128.0.28 -i eth0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -d 10.128.0.28 -m state --state RELATED,ESTABLISHED -j ACCEPT
Результат прежний ;(((
Скорее всего вы что-то делаете не так, или забываете про какие-то настройки. В общем случае настроить шлюз с nat на базе iptables очень просто. В сети много примеров, как и у меня на сайте:
https://serveradmin.ru/nastroyka-internet-shlyuza-na-debian/
https://serveradmin.ru/nastroyka-shlyuza-dlya-lokalnoy-seti-na-centos-7/
В этих статьях есть вся исчерпывающая информация по вашей задаче. Если аккуратно повторите, всё получится.
Убедитесь отдельно, что параметр net.ipv4.ip_forward действительно применяется. Если всё равно не будет получаться, что проверьте настройки iptables, включите логирование всех правил и посмотрите, что нужные пакеты со второго сервера действительно пробегают по правилам iptables.