Exchange 2013: Message flow, connectors and queues

This article is once again about some basic knowledge. It's about the message flow, the connectors and the queues. Some things are identical to Exchange 2010, but a few things have changed. More on this in a moment.

Message flow (Mailflow)

In Exchange 2007/2010 there were 3 roles that were required to operate Exchange: HubTransport, ClientAccess and Mailbox. HubTransport took care of message transport and message routing, while ClientAccess managed the client connection from Outlook, smartphones and other devices. The Mailbox role took care of everything related to mailboxes and databases.

With Exchange 2013, this concept of role separation has been simplified again. In principle, it is a front-end and back-end principle that already existed under Exchange 2003. Exchange 2013 therefore only recognizes 2 roles: ClientAccess and Mailbox. However, ClientAccess only serves as a proxy for the various protocols that Exchange 2013 can handle and is responsible for selecting a suitable mailbox server for the connection. The Exchange 2013 Mailbox role combines the ClientAccess, HubTransport and Mailbox roles from an Exchange 2010 perspective. The Exchange 2013 ClientAccess role is comparable to an upstream proxy that only receives the connections and forwards them to the actual role.

This means the following for the message flow: The Exchange 2013 ClientAccess role accepts SMTP connections on port 25, then selects a suitable mailbox role and forwards the connection to port 2525 of the mailbox role. With the transport service, which is part of the mailbox role, the mail ends up in a queue. Here is a small graphic to illustrate this:

Drawing1

This path is also followed when a mail is sent. The Mailbox Server sends the mail to a ClientAccess Server, the ClientAccess Server in turn sends the mail to the wider world. The diagram above is of course a little simplified, so there are a few more details in the next section.

Connectors

Messages are sent and received via connectors. In Exchange 2010, 2 receive connectors were created automatically. In an Exchange 2013 environment, there are 5 receive connectors. Here is an example if Client Access and Mailbox Role are installed on a server:

image

The connectors with the FrontendTransport role run on the Client Access Server, the connectors with the Hub Transport role on the Mailbox Server. Here you can see that the Exchange 2010 Hub Transport role is now part of the Mailbox role in Exchange 2013.

The functions of the connectors:

Default Frontend: The connector runs on all Client Access Servers under port 25 and works as a stateless proxy for incoming mails and forwards the mails to the mailbox servers. The stateless proxy function is important here: The Client Access Server selects a mailbox server with the "Hub Selector" process and transfers the connection to the mailbox server. The SMTP status codes, such as "250", are not generated by the Client Access Server, but by the mailbox server. The connector accepts all messages from all IPs (i.e. also from the Internet) without authentication. This is therefore the standard receive connector.

Outbound Proxy Frontend: The connector runs on all Client Access Servers with port 717. The connector serves as a proxy for outbound messages. Mailbox servers with a send connector use the outbound proxy to send mails to the rest of the world. A mailbox server therefore does not send directly to a SmartHost or other relay server, but also uses the proxy on the client access server for this purpose.

Client Frontend: This connector runs on all Client Access Servers with port 587. This connector only accepts mails from authenticated Exchange users, i.e. internal clients. This connector also only forwards the connection to the mailbox server.

Default: This connector runs on all mailbox servers and accepts connections from the Default Frontend Connector. The connector runs on port 2525 and only allows connections from Exchange users and Exchange servers.

Client Proxy: The Client Proxy Connector is the equivalent of the Client Frontend Connector. The Client Frontend Connector forwards the connections to the Client Proxy Connector. This connector also runs on all mailbox servers and only allows connections from Exchange servers and Exchange users.

Send connector: The send connector must be created manually. Here you can choose whether outgoing messages should be sent via the front-end proxy again or whether the mailbox server can send the mails directly, i.e. without a proxy:

image

The following image illustrates how it works (source: Microsoft TechNet)

Message flow

The mail routing and the queues therefore all run on the mailbox server. The Client Access Server takes over the proxy functions and the selection of a suitable mailbox server.

Queues

As soon as the messages have been transferred from the ClientAccess servers to the mailbox servers and processed by the connectors, the messages end up in the queues. The queues can be displayed via the Exchange Toolbox. Only the queues that are currently active are shown in the queue display. However, the queue with the name "Transmission" is displayed even if it does not contain any messages.

image

In the screenshot above, you can see another queue with the name of another Exchange server. This is a queue of the type "Shadow redundancy". In this article I have already explained how this works. It is therefore normal for messages to remain in the shadow queue for a certain period of time:

image

Exchange itself sends emails automatically to check the function of the services. The mails are sent and received via the HealthMailbox, this function is part of the "Managed Availability" introduced with Exchange 2013:

image

In addition to these queues, queues are created for domains and mailbox databases, which are only displayed if they are active or have just been active

image

I hope that's enough to give you a brief overview Smiley

6 thoughts on “Exchange 2013: Nachrichtenfluss, Connectoren und Warteschlangen”

  1. Hallo,

    nach einer ursprünglichen Installation mit POPCon zum Mails abholen und an Exchange zustellen sind die Empfangsconnectoren „verstellt“.
    Gibt es eine Funktion, den Standard wiederherzustellen?

    Reply
  2. Hallo, ich habe auch gerade eine Testumgebung Exchange 2007 coexistens mit Exchange 2013 eingerichtet. Mails von 2007 Postfächern zu 2007 PF kommen an. 2013 zu 2013 auch. Nur nicht im Mix :-(. In der Exchange 2007 Console sehe ich in der Warteschlangenanzeige kein Bewegungen…. Beim 2013 sehe ich in den Zustellberichten das z. B. 1 Mail noch nicht zugestellt wurde (an einen MA der noch auf dem EX2007 ist). Beim Versuch die Meldung zu versenden kam diese Nachricht zur Anzeige:

    Fehler: Der Benutzer und das Postfach befinden sich an unterschiedlichen Active Directory-Standorten.

    Kann es sein das der EX2013 nicht mit SPLIT-DNs zurechtkommt? Habe im DNS-Server 1 zone zusätzlich angelegt MeineDomain.de wo alle 2 Server aufgeführt sind. legacy.MeineDomain.de (interne IP, EX2007), mail.MeineDomain.de und autodiscover.MeineDomain.de (interne IP, EX2013).

    Das macht mich echt fertig….

    Reply
  3. Sehr Hilfreiche Artikel, danke dafür.

    Aber dennoch ergeben sich bei mir einige Probleme. Mein Exchange 2016 verschickt keine Emails an web.de (und „Konsortien“). Diese werden nicht von WEB.DE angenommen, weil sich mein Server mit Win2012Exc.meinedomäne.int meldet.

    Intern ist das ja richtig, aber extern sollte sich der Exchange doch mit mail.meinedomäne.de melden und die Emails auch verschicken… Den PTR-DNS habe ich (eigentlich) angepasst. Der Versand an andere Mail-Adressen funktioniert auch einwandfrei.

    Reply
  4. Danke für die Erklärungen. Haben mir schon einiges witergeholfen.

    Hätte noch ne Frage die sie vielleicht beantworten können.

    Ich habe hier einen Exchange Server 2007 und einen neu aufgezogenen Exchange 2013.
    Beider Server sehen sich. die Postfachverwaltung der 2007-Postfächer über den Exchange 2013 ist möglich.
    Nun stellt sich folgendes Bild.

    Wenn ich vom ex2013 eine Nachricht an ex2007 sende kommt diese nicht an.
    Wenn ich vom ex2007 eine Nachricht an ex2013 sende kommt diese nicht an.
    Wenn ich von Extern eine Nachricht an ex2007 sende kommt diese an.
    Wenn ich von ex2007 an Extern eine Nachricht sende kommt diese an.
    Wenn ich von Extern eine Nachricht an ex2013 sende kommt diese an.
    Wenn ich von ex2013 eine Nachricht an Extern sende kommt diese nicht an.

    Können Sie mir sagen woran das liegt ?

    Reply
    • Hi,
      kann es sein das Exchange 2007 und Exchange 2013 „externe DNS Server“ konfiguriert haben, konkret: DNS Server die nicht AD integriert sind? Die Mails müssen ja in den Warteschlangen hängen bleiben, was wird da für eine Fehlermeldung angezeigt? Zufällig folgends: 451.4.4.0 DNS query failed SMTPSEND.DNS NonExsistenDomain?
      Gruss, Frank

      Reply

Leave a Comment