Problemas con servidor edge (perimetral) de Exchange

Los peores problemas a los que nos enfrentamos con el servidor edge (perimetral) de Exchange es el hecho de no enviar los correos electrónicos hacia los servidores de la red interna, hacia Internet o en ambos sentidos. Todo está funcionando correctamente, aparentemente todo está configurado correctamente, pero los correos NO salen, no se entregan, simplemente se colocan en las diferentes colas de trabajo con diferentes errores:

  • 451 4.4.0 DNS Query Failed

La mayoría acostumbran a ser de resolución de DNS. ¿Dónde está el error? ¿Cómo se arregla este batiburrillo?

Partiendo de la instalación de Microsoft Exchange 2016 con el servidor edge (perimetral), miramos que se tiene que modificar para que todo funcione correctamente.

 

Conexiones de red del servidor Edge (perimetral) de Exchange

Aunque es obvio, lo primero que se tiene que comprobar son las comunicaciones de los servidores. Se depende de muchos elementos para obviarlo: routers, cortafuegos, DNS… Las preguntas que se tienen que contestar:

  • ¿El servidor edge (perimetral) se puede comunicar con Internet? Un simple ping a una dirección pública (IP o FQDN) para salir de dudas.
  • ¿Puede resolver una dirección de Internet? Si la anterior prueba ha sido a una dirección IP, también tiene que poder resolver una dirección FQDN, por ejemplo www.google.com.
  • ¿Puede establecer una sesión SMTP con un servidor externo? Encontrar un servidor SMTP al que poder hacer un telnet por el puerto 25.

Desvanecidas las dudas de comunicación con el exterior, es el turno de comprobar las comunicaciones internas.

El servidor edge (perimetral) de Exchange requiere de comunicarse con servidores de la red interna para entregar el correo electrónico. Comprobar que está permitido el tráfico con estos protocolos:

Protocolo Puerto Conexión con
SMTP TCP 25 Servidores de correo electrónico internos
DNS TCP 53

UDP 53

Servidores de DNS internos

Por parte de los servidores de correo, de la red interna, que se deben comunicar con el servidor edge (perimetral) comprobar que se comunican con estos protocolos:

Protocolo Puerto Conexión con
LDAP seguro TCP 50636 Servidor edge (perimetral) desde los servidores de correo interno.
SMTP TCP 25 Servidor edge (perimetral) desde los servidores de correo interno.

Para la prueba del LDAP seguro, basta forzar la sincronización de la suscripción perimetral desde uno de los servidores internos. Recordad, desde la PowerShell de Exchange, ejecutar el comando:

start-edgesynchronization -ForceFullSync

Comprobar los enrutamientos desde la red interna es útil tener habilitada la respuesta de PING, tanto en los cortafuegos del perímetro como en los de los propios equipos. Ei, sólo para hacer las comprobaciones, después en producción mejor dejar la regla desactivada del cortafuegos.

Comprobar la resolución de DNS interna desde el servidor edge (perimetral) funciona correctamente. ¡Asegurar que en las propiedades de la tarjeta de red hay configurados los DNS de los servidores INTERNOS, no de servidores públicos!

Botón derecho encima del botón, Inicio, hacer clic en panel de control. Hacer clic en Centro de redes y recursos compartidos y hacer clic de nuevo en la conexión de red.

problemes-servidor-edge-01

Hacer clic en el botón Propiedades.

problemes-servidor-edge-02

Seleccionar Protocolo de Internet versión 4 (TCP/IPv4) y hacer clic en el botón Propiedades.

problemes-servidor-edge-03

Asegurar que los servidores DNS preferido y alternativo corresponden a los servidoros DNS internos de la organización.

problemes-servidor-edge-04

No está de más hacer clic en el botón Opciones avanzadas.

En la pestaña de DNS, asegurar el sufijo DNS para la conexión con el nombre del dominio interno donde residen los servidores de correo electrónico interno y desmarcar el checkbox de Registrar en el DNS las direcciones de esta conexión.

problemes-servidor-edge-05

Si todo está correcto, pasamos a la práctica. Desde la consola de sistema, ejecutar:

nslookup

Validar que responde correctamente el primer DNS que tenemos configurado en la tarjeta de red, devolviendo su nombre. Si escribimos el nombre del servidor interno, también se devuelve su IP correspondiente.

problemes-servidor-edge-06

En caso que no haya acceso al servicio de DNS el sistema devolverá errores de tiempo de espera agotado (time out) sin poder resolver el nombre correctamente con el consiguiente error de DNS interno.

problemes-servidor-edge-07

El otro punto a tener en cuenta es el DNS público hacia Internet. Su resolución no tiene porque proporcionarse desde la red interna y, en muchos casos, es el principoal motivo de los errores. Comprobar que desde el equipo se puede llegar y resolver con un DNS público, porque es el que configuraremos en el servidor edge (perimetral), para resolver las direcciones de correo electrónico a enviar hacia el exterior. Hacemos la prueba con el DNS de Google, por ejemplo:

nslookup
server 8.8.8.8
set type=mx
google.com

Si todo está correcto, se obtiene el listado de servidores donde entregar los correos electrónicos de Google.

problemes-servidor-edge-08

Comprobar la conectividad entre los servidores internos y el servidor edge (perimetral) se comunican por el puerto 25 y al revés. Se puede hacer con un simple PUTTY contra el puerto 25 en modo RAW, Nos contesta el propio servidor de correo electrónico o sólo mantiene la conexión si está enmascarada la contestación.

problemes-servidor-edge-09

 

Configuración de los DNS externos en el servicio de transporte de correo electrónico

No está de más configurar los DNS específicos para las comunicaciones externas en el servicio de transporte de correo electrónico. Para hacerlo, iniciar la PowerShell de Exchange en el servidor edge (perimetral). Desde el menú Inicio, hacer clic en PowerShell de Exchange Management Shell.

problemes-servidor-edge-10

Para obtener un listado detallado de la configuración del servicio de transporte, ejecutar el comando:

Get-TransportService | fl

problemes-servidor-edge-11

Para ser más concreto a lo que nos interesa, los parámetros de DNS de los conectores, se puede concretar con:

problemes-servidor-edge-12

Poner especial atención sobre el conector External. Se deben indicar, para el servidor correspondiente (en el ejemplo srvEDGE) los servidores DNS públicos, separados por una coma, a utilizar (ExternalDNSServers) con el comando:

Set-TransportService srvEdge -ExternalDNSServers 8.8.8.8,8.8.4.4

Comprobar la configuración del servicio de transporte, se pueden ver asignados los servidores DNS públicos anteriores en el conector externo.

Get-TransportService | fl *dns*

problemes-servidor-edge-13

 

Para saber que está pasando cuando tenemos problemas es bastante útil en el servidor de transporte (en el ejemplo srvedge), habilitar el LOG en el transporte (ConnectivityLogEnabled) dejando el registro en la carpeta c:\SMTP Logs, con el comando:

Set-TransportService srvedge -ConnectivityLogEnabled $true -ConnectivityLogPath "C:\SMTP Logs"

 

Agentes de transporte

Se tiene que ir con cuidado con ellos, sobre todo si se han instalado agentes adicionales de terceros en el servidor de correo como puede ser el filtro de spam, phising, exclaimers, etc… En el supuesto que uno de los agentes se quede colgado, sólo él, no todo el transporte, es muy probable que no se pueda ver nada anormal que dé alguna pista de lo que pasa, pero tampoco entrará ni saldrá ningún correo del sistema. Entre la fase de prueba-error. Este apartado también es válido para los servidores de la red interna.

Para comprobar los agentes de transporte, desde la PowerShell de Exchange, ejecutar:

Get-TransportAgent

Se obtiene el listado de los agentes instalados con su estado.

problemes-servidor-edge-14

En caso de duda de uno de los agentes se puede desactivar para comprobar el funcionamiento general del sistema. Por ejemplo, para desactivar el agente de comprobación del Sender ID, desde la PowerShell de Exchange, ejecutar:

Disable-TransportAgent -Identity “Sender Id Agent”

Volviendo a comprobar el listado de los agentes instalados, se observa que el Sender Id ha quedado desactivado.

problemes-servidor-edge-15

Reiniciar el servicio de transporte para asegurar los cambios:

Get-Service MSExchangeTransport | Restart-Service

Para volver a habilitar un agente de transporte deshabilitado:

Enable-TransportAgent -Identity “Sender Id Agent”

Y volvemos a reiniciar el servicio con la instrucción que se ha utilizado anteriormente.

 

Certificados del servidor Edge (perimetral)

Estos no tienen secreto (o sí). ¿Se han cambiado los certificados de los servidores internos? ¿Han caducado los internos? Y el externo, ¿es el correcto para el protocolo SMTP?

Para los certificados caducados hay que renovarlos, como no, tanto de los servidores internos como del servidor perimetral.

Una vez renovados hay que volver a crear la suscripción perimetral y todo volverá a la normalidad. Revisad la entrada de instalación del servidor edge (perimetral). Como recordatorio rápido:

En el servidor edge (perimetral):

new-edgesubscription -FileName C:\Subscription.xml

En el servidor interno de correo:

New-EdgeSubscription -FileData ([byte[]]$(Get-Content -Path "E:\Suscripcion.xml" -encoding Byte -ReadCount 0)) -Site Default-First-Site-Name

Comprobación del estado de la suscripción:

start-edgesynchronization -ForceFullSync

 

A medida que vaya encontrando nuevas cositas iré ampliando la información de este apartado, más que nada, porque siempre salen de nuevas en nuestro día a día y que ahora quizá se me pasan.

 

¿Te ha gustado el artículo? Lo puedes compartir en las redes sociales. También puedes dejar tu opinión, comentario o sugerencia. ¡Gracias!

Similar Posts by The Author: