Как System.Net.Mail.SMTPClient выполняет локальную привязку IP

У нас есть веб-приложение ASP.NET с балансировкой нагрузки (NLB), которое отправляет электронную почту.

Серверы имеют двойное размещение с внешней и внутренней (за брандмауэром) IP-адресацией. Почтовый сервер находится за брандмауэром.

Мы обнаружили проблему, когда класс SMTPClient выдает исключение, сообщающее, что он не может подключиться к SMTP-серверу.

Сетевые парни говорят нам, что они видят попытки подключиться к SMTP-серверу с внешнего IP-адреса (который блокирует межсетевой экран)

Исходя из моих (предположительно неоднозначных) знаний о приложениях с поддержкой сети, я подумал, что локальная привязка IP будет определяться на основе пункта назначения, т.е. если в таблицах маршрутизации указано, что IP-адрес может быть доступен через конкретную сетевую карту, а не IP-адрес исходящего запроса генерируется из. Я ошибся?

глядя на SmtpClient.ServicePoint Я начинаю думать, что мы можем быть и что мы можем (должны) принудительно установить явную привязку к определенному IP?

в частности, я смотрел на
Свойство ServicePoint.BindIPEndPointDelegate с этой страницы ...

Примечания. Некоторые методы балансировки нагрузки требуют, чтобы клиент использовал определенный локальный IP-адрес и номер порта, а не IPAddress.Any (или IPAddress.IPv6Any для Интернет-протокола версии 6) и временный порт. Ваш BindIPEndPointDelegate может удовлетворить это требование.

мне просто кажется немного странным, что мне нужно это делать, но, возможно, это обычное явление в такой среде?

Ответы на вопрос(1)

Ваш ответ на вопрос