если вам нужно сделать только для выполнения DNAT, правило, что вы разместили в POSTROUTING не нужно (так что можете удалить его), правило SNAT необходимо в случае полного NAT. Насчет вашего правила DNAT это неправильно, т.к. в параметре --dport нужно указать порт, на который вы звоните снаружи Сервера А (9443). Таким образом, правильным правилом было бы следующее:
iptables -t nat -A PREROUTING -d 10.10.8.33/32 -p tcp -m tcp --dport 9443 -j DNAT --to-destination 10.21.2.31:443
РЕДАКТИРОВАТЬ:
@Sandy, ваш вопрос не так ясен .. Поэтому я надеюсь правильно понять, чего вы хотите достичь.
Просто напомню, что вы хотите и какие проблемы:
. ] Таким образом, предыдущий DNAT, который я предложил, должен быть правильным, но вам также необходимо замаскировать (с помощью SNAT) запрос, исходящий от ПК C, с IP-адресом сервера A. Правило SNAT для маскировки запроса от ПК C должно быть следующим:
iptables -t nat -A POSTROUTING -s 10.21.2.93/32 -d 10.21.2.31/32 -p tcp -m tcp --dport 443 -j SNAT --to-source 10.10.8.33
Топология сети та, что на картинке? Если это топология (или очень похожая), есть ли особая причина для использования iptables вместо реализации Apache, nginx или HAProxy в качестве обратного прокси?