Resolvendo problemas de fluxo de mensagens no Exchange Server - Parte 1

Por Anderson Patrício

Nesta série de artigos sobre fluxo de mensagens no Exchange Server 2003 iremos mostrar um tema muito discutido nos fóruns de Exchange, sempre visualizamos perguntas do tipo: Não consigo receber e-mails? Meu Exchange Server recebe mas não envia? O que está havendo? Não envio para determinados domínios e etc... Perante estas dúvidas vamos sintetizar este processo de envio e recebimento de e-mails em uma organização Exchange e endereçar algumas das dúvidas dos administradores de correio.

Nesta primeira parte do artigo iremos abordar o processo de envio de e-mails que a princípio é fácil se bem dimensionado e configurado de acordo com a situação da rede.

Processo de Envio de e-mails

O processo de envio do Exchange Server 2003 é simples, basta sabermos utilizarmos algumas ferramentas para resolução de problemas e teremos nossa organização Exchange com o envio de e-mails funcionando corretamente.

1. Verificar Smart host (Conector e/ou SMTP Virtual Server)

O Exchange pode enviar e-mails sem utilizar resolução DNS, que é uma técnica chamada Smart host com ela você pode dizer que tudo que não for seu domínio, ou seja, local é tudo redirecionado para a máquina definida nesta configuração.

O smart host pode ser definidos em dois locais em nível de Conectores e em nível de SMTP Virtual Server. Salvo alguns casos que o administrador tenha certeza de o porquê estar fazendo isso devemos dar preferência para o smart host dos conectores que é centralizado o em nível de SMTP Virtual Server é muito específico e não muito usual.

Mas porque utilizamos Smart hosts? Em alguns cenários o uso de Smart hosts são úteis, tais como:

  • Seu servidor Exchange não possui resolução DNS internet e um servidor responsável pelo recebimento e envio de e-mails na sua empresa faz este trabalho, então todo o tráfego de mensagens é direcionado para este servidor. Em alguns casos pode ser um appliance dedicado para estas tarefas ou ainda um Linux para fazer este processo.

  • Você possui uma empresa confiável que possui roteamento interno, então podemos criar um SMTP Connector específico para a empresa parceira e jogar todo o tráfego de mensagens internamente sem o uso de resolução DNS.

  • Você possui IP dinâmico e pretende que o seu Exchange envie e-mails usando um SMTP autenticado do provedor, neste caso utilizamos um SMTP Connector autenticado.

1.1 Verificando o Smart Host no SMTP Virtual Server

Para validar se o SMTP Virtual Server está com Smart host ativo, devemos verificar:

  1. Abrir o Exchange System Manager

  2. Expandir Administrative Groups

  3. Expandir Servers

  4. Expandir (Servidor)

  5. Expandir Protocols

  6. Expandir SMTP

  7. Botão direito no (Default SMTP Virtual Server)

  8. Ir até a guia Delivery e clicar em Advanced

  9. No campo Smart host pode ter um nome FQDN (server1.something.net) ou ainda IP ([10.10.10.10])

Cc668517.fluxo-1(pt-br,TechNet.10).jpg

Com esta configuração todas as mensagens enviadas a partir deste servidor serão encaminhadas para o servidor server1.something.net.

Se não houver nenhum motivo especial para esta configuração podemos removê-la e utilizar o Smart Host do Connector, ou ainda, através de DNS como veremos em seguida.

Observação: Todas as mensagens para domínios diferentes do próprio Exchange serão redirecionadas para o Smart host do SMTP Virtual Server, não havendo flexibilidade de alguns domínios. Se tivermos dois ou mais servidores Exchange na organização é necessário configurar o SMTP Virtual Server de cada um para atender a configuração de Smart host.

1.2 Verificando o Smart host nos Connectors

Há alguma diferença em relação ao Smart Host do SMTP Virtual Server e dos conectores? O funcionamento é o mesmo, mas a flexibilidade não. É aconselhável a utilização de Smart hosts em nível de conectores, por que o mesmo é em nível de Administrative Group não especificamente em cada servidor SMTP, com ele é mais fácil a resolução de problemas, podemos fazer por domínios e ainda quais servidores que podem utilizar tal connector.

  1. Abrir o Exchange System Manager

  2. Expandir Administrative Groups

  3. Expandir (Administrative Groups)

  4. Expandir Routing Groups

  5. Expandir (Connector Routing Group)

  6. Expandir Connectors, na direita irão aparecer os conectores

  7. Clicar com o botão direito e pedir Properties

Este Connector chamado Saída Internet via Smarthost está configurado para smart host, ele está jogando o tráfego especificado na guia Address Space para o servidor server1.something.net e ainda definimos quais os servidores que podem enviar as mensagens, em nosso exemplo somente SRV-EXCHANGE01.

Com o SMTP Connector podemos deixar flexível quem são os servidores que utilizarão este conector para saída de e-mails e também para quais domínios, na guia Address Space verificamos abaixo que este conector estará enviando todo o fluxo de e-mails para o servidor smart host especificado na guia General.

Cc668517.fluxo-2(pt-br,TechNet.10).jpg Cc668517.fluxo-3(pt-br,TechNet.10).jpg

1.3 E quando eu possuo IP dinâmico???

Bom neste caso muitos servidores de e-mail validam o processo de recebimento com o IP reverso do ponteiro MX do emissor, bloqueando desta forma o envio de servidores que possuem ip dinâmico, uma forma é utilizar o SMTP do provedor de internet para enviar todo o tráfego da organização Exchange, desta forma o Exchange faz relay autenticado em um servidor que possui todas as premissas para envio de e-mails. Devemos efetuar os seguintes passos para criar um SMTP Connector autenticado:

  1. Abrir o Exchange System Manager

  2. Expandir Administrative Groups

  3. Expandir (Administrative Groups)

  4. Expandir Routing Groups

  5. Expandir (Connector Routing Group)

  6. Clicar com o botão direito em Connectors, clicar em New e depois em SMTP Connector...

  7. Na Guia General, clicar em Forward all mail though this connector to the following smart hosts e colocar o endereço do servidor SMTP do provedor, o mesmo que utilizamos no Outlook em casa, em nosso exemplo colocamos smtp.poa.terra.com.br e também devemos colocar em Local bridgeheads os nomes dos servidores que poderão utilizar este connector.
    Cc668517.fluxo-4(pt-br,TechNet.10).jpg

  8. Ir até a guia Advanced e desmarcar a opção Send HELO instead of EHLO que com isto os verbos smtp na comunicação entre servidores podem incluir autenticação. Feito isso devemos clicar em Outbound Security...
    Cc668517.fluxo-5(pt-br,TechNet.10).jpg

  9. Em Outbound Security colocar as credenciais do usuário do provedor para enviar e-mails clicando em Modify
    Cc668517.fluxo-6(pt-br,TechNet.10).jpg

  10. E entrar com o nome de usuário do provedor e a respectiva senha.
    Cc668517.fluxo-7(pt-br,TechNet.10).jpg

Caso você tenha seguido este tutorial o passo 2 não é necessário no ambiente, podemos pular diretamente para o passo 3.

Pontos a validar caso ocorra problema:

  • Validar autenticação do usuário

  • Validar a conexão do Exchange Server com o servidor especificado na guia general

  • Validar se o firewall permite tráfego do Exchange Server com o servidor destino (Porta 25 TCP)

  • Utilizar o Queue do Exchange System Manager para validar, ver passo 4

2. Resolução DNS

A parte mais importante é a resolução DNS ela é responsável por trazer os registros MX, tais registram nos informam quais os servidores do domínio destino que são responsáveis pelo recebimento de e-mails, é através desta resolução que o servidor Exchange fará a comunicação para a entrega da mensagem.
Para nos certificarmos que o Exchange está utilizando a resolução DNS para envio de mensagens, devemos:

  1. Abrir o Exchange System Manager

  2. Expandir Administrative Groups

  3. Expandir (Administrative Groups)

  4. Expandir Routing Groups

  5. Expandir (Connector Routing Group)

  6. Expandir Connectors, na direita irão aparecer os conectores

  7. Clicar com o botão direito e pedir Properties

  8. Devemos atentar para opção Use DNS to route to each address space on this connector está selecionada, com isto sabemos que todos servidores que estiverem em Local bridgeheads podem utilizar este conector para envio de e-mails.

Cc668517.fluxo-8(pt-br,TechNet.10).jpg

Bom, para nos certificarmos da nossa resolução DNS, devemos primeiramente pegar um domínio externo para teste, com ele em mãos devemos efetuar os seguintes passos:

  1. Clicar em Start, Run digitar cmd e depois clicar em OK

  2. Digitar nslookup

  3. Digitar set type=mx

  4. Digitar o nome do domínio desejado, exemplo: microsoft.com

  5. Será mostrado o resultado como segue a figura abaixo

Cc668517.fluxo-9(pt-br,TechNet.10).jpg

Resultado nslookup: Podemos perceber todos os endereços MX do domínio solicitado, tendo esta informação o Exchange irá conectar nos servidores listados acima para iniciar o processo de transferência de mensagens.

Com o exemplo acima, listamos todos os MX do domínio desejado, no caso microsoft.com. Agora sabemos que quando o Exchange for enviar um e-mail ele irá fazer a conexão nos ips listados acima.

Problemas possíveis:

  • Certificar que o Exchange não está configurando para Smart hosts

  • Servidor DNS está operante?

  • Anotar o endereço IP do DNS primário do servidor Exchange, este servidor deve ser responsável pela resolução não autoritativa DNS, neste servidor devemos pedir propriedades do Servidor DNS dentro do DNS Manager (dnsmgmt.msc) e verificar se na guia Forwarders está tudo configurado de acordo.

  • O Administrador de correio configurou no Default SMTP Virtual Server a resolução DNS, com isto nossos testes acima não surgem efeito, porque a máquina está procurando os registros MX de acordo com o DNS que está no Sistema operacional mas o Exchange para envio de e-mails está usando um conjunto de servidores DNS. Para verificarmos temos que fazer os seguintes passos:
    Abrir o Exchange System Manager
    Expandir Administrative Groups
    Expandir (Administrative Groups)
    Expandir Servers
    Expandir (Servidor)
    Expandir Protocols
    Expandir SMTP
    Botão direito no (Default SMTP Virtual Server)
    Ir até a guia Delivery e clicar em Advanced
    Na guia Advanced clicar em Configure, será mostrado a tela abaixo que o servidor SMTP está utilizando para resolver MX de domínios válidos.

Cc668517.fluxo-10(pt-br,TechNet.10).jpg

Este tipo de configuração acaba se tornando muito específica, é recomendável utilizar a configuração do sistema operacional para resolução DNS. Caso por algum motivo não seja possível o teste de nslookup tem que ser acrescentado com o comando server (ip) que está listado na figura acima antes do set type=mx para verificarmos a real situação de resolução DNS.

Outro ponto que temos que prestar atenção é liberar a consulta DNS para os servidores especificados no firewall da empresa a partir do Exchange.

3. Testando a conectividade com o SMTP do domínio externo

Agora que já sabemos qual o IP do domínio que pretendemos mandar e-mail, devemos fazer um teste simples para validar se a conexão está correta, seguem os passos:

  1. Clicar em Start, Run e digitar cmd e clicar em OK

  2. Digitar telnet (ip-do-mx) 25

  3. Deverá ser mostrado um banner do servidor SMTP destino

  4. Digitar ehlo (domínio-origem), exemplo: (ehlo andersonpatricio.org)

  5. Digitar mail from:(e-mail de origem), exemplo (mail from:anderson@andersonpatricio.org)

  6. Digitar rcpt to:(e-mail destino), exemplo (rcpt to:anderson@quattuor.com.br)

  7. Digitar data e escrever a mensagem do corpo do e-mail

  8. Digitar . em uma linha isolada

Cc668517.fluxo-11(pt-br,TechNet.10).jpg

Problemas Possíveis:

  • Se não abrir a conexão a chance é grande do seu firewall estar barrando este tipo de comunicação, valide.

  • Isole o problema, é com todos servidores ou apenas com um servidor externo que a conexão é barrada?

4. Visualizando as mensagens e por onde elas estão saindo..

O Exchange possui um poderoso recurso chamado Queue com tal recurso podemos visualizar as mensagens que estão deixando a organização Exchange e também podemos verificar qual o recurso que tais mensagens estão utilizando.

  1. Abrir o Exchange System Manager

  2. Expandir Administrative Groups

  3. Expandir (Administrative Groups)

  4. Expandir Servers

  5. Expandir (Servidor)

  6. Clicar em Queues

Na tela abaixo podemos ver todas as filas para os domínios externos, como também qual connector está utilizando para tal e mais abaixo temos um frame chamado Additional queue information que quando há erros nas filas nos ajudam a identificar o problema.

Cc668517.fluxo-12(pt-br,TechNet.10).jpg

Quando possuímos smart host no Default SMTP Virtual Server, aparece as entradas das queues neste formato abaixo:

Cc668517.fluxo-13(pt-br,TechNet.10).jpg

5. Ainda não estamos enviando.. e agora?

Bom já temos certeza que nossas configurações estão corretas e ainda assim não continuamos enviando o que pode estar ocorrendo?

  • Você está com o relay aberto, muitos provedores na internet bloqueiam o recebimento de mensagens de servidores nesta situação. Validando este problema: Acesse http://www.dnsstuff.com e digite o endereço ip válido de servidor de e-mail em Spam database lookup. Você pode resolver problema de relay aberto com este Microsoft KB: https://support.microsoft.com/?kbid=895853&SD=tech#E0OC0ADAAA

  • Alguns administradores bloqueiam determinados IPs, em determinados casos seus IP pode estar listado em uma lista negra no servidor destino, se aparecer mensagem deste tipo durante o processo de resolução de problema, é necessário você entrar em contato com o Administrador do domínio afetado e verificar o porquê disto.

  • Muitas vezes o problema é externo da organização Exchange, o domínio destino pode estar com os servidores MXs fora ou ainda falha de DNS, se fizemos os testes acima, conseguimos atestar que a nossa infra-estrutura está ok, em certos casos vale a pena ligar para o domínio destino e validar se há algum problema.

6. Resumo

Bom agora que já vimos os componentes para envio de e-mail no Exchange Server, vamos fazer uma linha de raciocínio para resolvermos problemas de envio. Os passos a serem seguidos são:

  1. Validar Smart hosts

  2. Validar DNS

  3. Testar resolução

  4. Testar Conexão

Frente aos passos acima, podemos ter alguns questionamentos...

Possui IP dinâmico ou fixo?

Se for dinâmico utilize o SMTP Connector autenticado e remova smart hosts e resolução DNS do SMTP Virtual server.
Se for fixo, temos que nos certificar se há um servidor/appliance for da organização Exchange responsável pelo envio de e-mails, caso exista devemos criar um SMTP connector para este servidor/appliance e remover resolução dns e smart host no Default SMTP Virtual Server, caso não exista devemos validar a resolução DNS e fazer os testes de conectividade.

Tenho uma empresa específica que desejo enviar e-mail pelo link interno, como faço?

Como vimos nos passos acima, configure um SMTP Connector para este servidor da outra empresa e na guia Address coloque somente o domínio SMTP da outra empresa.

Tenho o Exchange Server com DNS primário para o Active Directory, mas não resolvo nomes o que faço?

Configure o Servidor do Active Directory para consultar nomes em resolvedores da internet, são servidores que você faz questionamentos sobre domínio e eles respondem, existem vários concessionárias de IP que fornecem estes endereços.
Você configura estes resolvers pedindo propriedades do DNS Server dentro do DNS Manager indo até a guia Forwarders e digitam os IPs.

Tenho a resolução funcionando corretamente mas os envios de e-mails não funcionam?

Verifique se não há configuração de DNS no Default SMTP Virtual Server.

Conclusão

Tentamos desmistificar algumas questões relacionados ao envio de mensagens a partir do Exchange, o importante é conhecermos a nossa infra-estrutura para escolhermos as melhores formas de fazer implementação deste processo descrito aqui neste artigo.

Anderson Patricio