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

NAT происходит до маршрутизации

В настоящее время я создаю частный облачный кластер с использованием Proxmox. Мой кластер содержит головной узел и два вычислительных узла.

На моем головном узле размещены сервер NAT и сервер openvpn, а также три сетевых адаптера: один для исходящего трафика и один для каждого вычислительного узла. NAT позволяет мне взаимодействовать с обоими вычислительными узлами. На обоих вычислительных узлах я размещаю маршрутизатор с ~ 30 виртуальными локальными сетями на маршрутизатор.

Моя цель - иметь возможность видеть адрес от vpn-клиента при подключении к роутерам. В настоящее время я подключаюсь к головному устройству с помощью vpn, затем пытаюсь подключиться к маршрутизатору с помощью ping или ssh, и он показывает, что соединение идет с IP-адреса головного узла. Любая помощь приветствуется!

Мои маршруты следующие:

default via *.*.*.1 dev eno1 onlink 
10.10.1.0/24 via 10.10.1.2 dev tun0 
10.10.1.2 dev tun0 proto kernel scope link src 10.10.1.1 
*.*.*.0/25 dev eno1 proto kernel scope link src *.*.*.46 
192.168.0.0/19 via 192.168.77.1 dev vmbr0 
192.168.32.0/19 via 192.168.76.6 dev vmbr1 
192.168.76.0/24 dev vmbr1 proto kernel scope link src 10.10.1.1
192.168.77.0/24 dev vmbr0 proto kernel scope link src 192.168.77.1 

И правило NAT (сейчас я использую firewalld):

-A POST_public_allow ! -o lo -j MASQUERADE

Показанное вами правило NAT предоставляет почти нулевую информацию, потому что оно изменяет обычай цепочка, которая якобы вызывается из других (стандартных) цепочек в других таблицах (предположительно POSTROUTING из nat стол; вы можете увидеть это используя iptables -t nat -L POSTROUTING).

Проблема, с которой вы столкнулись, заключается в том, что якобы маскировка применяется к интерфейсу, который соединяет головной узел с вычислительными узлами.

Способ справиться с этим - использовать SNAT только на интерфейсе, который головной узел использует для подключения к Интернету.

Однако обратите внимание на одну проблему. Тот факт, что вы используете VPN для доступа к головному узлу (если я правильно прочитал вопрос), означает, что, когда вы отключите чрезмерную маскировку на головном узле, ваши вычислительные узлы будут видеть пакеты, которые вы отправляете над VPN как исходящий из любой сети, в которой находится ваша отправляющая программа. Поскольку это предположительно частная подсеть, вы должны убедиться, что - И ваша исходная сеть, и сеть, которая соединяет головной узел и вычислительные узлы, имеют разные адреса (и они оба должны быть выведены из подсети, которую использует туннель) - Вычислительные узлы должен иметь правило маршрута для вашей исходной сети (для отправки адресованных туда пакетов головному узлу). - На головном узле должна быть включена переадресация IP.