У нас есть частная локальная сеть, подключенная к брандмауэру с несколькими общедоступными IP-адресами для использования SNAT, чтобы не перегружать порты на одном IP. Однако у нас есть требование, чтобы определенные рабочие станции были доступны извне через заранее определенные порты, на которых они размещают серверы.
В приведенном ниже примере машина A ранее сообщала B ресурс, доступный на 203.0.113.1:7045. Однако, когда машина B инициирует соединение с A, она, скорее всего, получит свой ответ с исходным IP-адресом, отличным от ожидаемого (из-за циклического перебора SNAT).
Я предполагаю, что это должно быть проблемой для машины B, поскольку она не сможет правильно связать пакет для создания соединения. Какое лучшее решение?
iptables -t NAT -A POSTROUTING -s 10.8.4.0/24 -o eth1 -j SNAT --to-source 203.0.113.1-203.0.113-3
iptables -t NAT -A PREROUTING -i eth1 -m multiport --dports 7045:7059 -j DNAT --to-destination 10.8.4.2
Я не думаю, что это вообще проблема, поскольку входящие соединения будут иметь свои собственные записи состояния, которые не будут перекрываться с исходящими. Ваша проблема реальна или мнима?