Como o System.Net.Mail.SMTPClient faz sua ligação de IP local

Temos um aplicativo Web ASP.NET com carga balanceada (NLB) que envia email.

Os servidores têm hospedagem dupla com um IP externo e interno (atrás do firewall). O servidor de email está atrás do firewall.

Estamos vendo um problema em que a classe SMTPClient lança uma exceção afirmando que não pode se conectar ao servidor SMTP.

O pessoal da rede está nos dizendo que está vendo tentativas de conexão com o servidor SMTP a partir do endereço IP externo (que o firewall está bloqueando)

Pelo meu conhecimento (reconhecidamente irregular) de aplicativos habilitados para rede, pensei que a ligação de IP local seria decidida com base no destino, ou seja, se as tabelas de roteamento disserem que o endereço IP pode ser acessado através de uma NIC em particular, que é o IP da solicitação de saída é gerado a partir de. Estou errado?

olhando para SmtpClient.ServicePoint Estou começando a pensar que podemos ser e que podemos (devemos) forçar uma ligação explícita a um IP específico?

especificamente, eu estive olhando
Propriedade ServicePoint.BindIPEndPointDelegate a partir dessa página ...

Comentários: Algumas técnicas de balanceamento de carga exigem que um cliente use um endereço IP local específico e um número de porta, em vez de IPAddress.Any (ou IPAddress.IPv6Any para Internet Protocol Versão 6) e uma porta efêmera. Seu BindIPEndPointDelegate pode atender a esse requisito.

parece um pouco estranho para mim que eu precisaria fazer isso, mas talvez isso seja comum nesse tipo de ambiente?

questionAnswers(1)

yourAnswerToTheQuestion