Представим postfix сконфигурированный как запасной MX (в высоким priority в DNS) для большого списка доменов. (в каждом он как mx2, например mx2.example.com, mx2.example.net, и так далее). Причем, на самой машине нет белого адреса, она (как в Amazon EC2) использует какой-то 10.***, а уже на него пробрасывается публичный адрес.
Дальше я вижу такой сценарий проблемы. На короткое время ложится главный почтовый сервер. Какой-нибудь внешний gmail.com хочет отправить нам (example.com) письмо, не может отправить на главный MX, и отправляет на наш (этот вот, обсуждаемый) mx2.
Дальше, mx2 принял письмо и хочет его переслать дальше. Он пытается отправить на главный почтовый сервер (тот, как мы помним, лежит). Тогда он смотрит следующий MX, и должен попытаться отправить его через mx2.example.com (который он сам и есть)? Как он может догадаться, что этот MX пробовать не нужно? Или он так и будет гонять письмо по кругу сам себе?
В RFC
https://datatracker.ietf.org/doc/html/rfc5321#sect... есть текст:
If it determines that it should relay the message without rewriting
the address, it MUST sort the MX records to determine candidates for
delivery. The records are first ordered by preference, with the
lowest-numbered records being most preferred. The relay host MUST
then inspect the list for any of the names or addresses by which it
might be known in mail transactions. If a matching record is found,
all records at that preference level and higher-numbered ones MUST be
discarded from consideration. If there are no records left at that
point, it is an error condition, and the message MUST be returned as
undeliverable. If records do remain, they SHOULD be tried, best
preference first, as described above.
По идее, это должно решить проблему (MX с приоритетом 100 не будет отправлять на любой MX с этим же приоритетом), но как этот пункт исполнится в случае машины с приватным адресом? Ну увидит она в DNS два MX с разными приоритетами, ну даже отрезолвит оба (один из них - будет ее внешний IP, который она не знает), как она может понять, что это она же? Или я не понял этот абзац из RFC...