Hybrid, Edge und Accepted Domain

Beim Einsatz eines Exchange Edge Servers mit Exchange Hybrid gibt es eine Besonderheit beim Mailrouting und dem Accepted Domains zu beachten. Das Fehlerbild war dergestalt, dass Mails zu Exchange Online vom Edge Server immer wieder zum lokalen Exchange Server zurückgesendet wurden, bis einer der Server einen "Loop Detected"-NDR generiert hat.

Diese Seite beschreibt einen Sachverhalt, den ich mir noch nicht erklären kann, vor allem weil sich unterschiedliche Kundenumgebungen unterschiedlich verhalten. Feedback und Hinweise von Exchange Administratoren mit Edge Server und Hybrid Mode wird gerne genommen.

Hybrid mit Edge

In aller Kürze: Für die Verbindung von Exchange OnPremises mit Exchange Online empfiehlt Microsoft den Einsatz eines Exchange Edge Servers. Es ist aber nicht zwingend erforderlich und aus meiner Sicht eher eine Frage der individuellen Sicherheitsbetrachtung, ob die zusätzlichen Edge-Server einen Sicherheitsgewinn bringen. In vielen Firmen gibt es z.B. Richtlinien, die eine direkte Kommunikation von internen und externen Servern verbietet und den Einsatz eines Proxy/Relay in einer DMZ vorschreiben. Wenn dies vorgeschrieben ist, dann müssen Sie einen Exchange Edge Server nutzen, denn alle anderen Server unterstützen nicht die proprietären Erweiterungen, mit denen Exchange Online und OnPremises unterhalten.

Don't place any servers, services, or devices that process or modify SMTP traffic between your on-premises Exchange servers and Microsoft 365 or Office 365 ...
... Firewalls that allow SMTP traffic on TCP port 25 through without modification are supported
Quelle: Edge Transport servers with hybrid deployments https://learn.microsoft.com/en-us/exchange/edge-transport-servers

Don't place any servers, services, or devices between your on-premises Exchange servers and Microsoft 365 or Office 365 that process or modify SMTP traffic
The examples in this topic don't include the addition of Edge Transport servers into the hybrid deployment
An Edge subscription is required for Exchange hybrid
Transport routing in Exchange hybrid deployments https://learn.microsoft.com/en-us/exchange/transport-routing

Ich würde auch niemandem raten, einen Exchange Server über Port 25/TCP für den Empfang von SMTP-Nachrichten mit einer öffentlichen IP-Adresse ins Internet zu stellen. Allerdings ist ist Exchange Online ja nicht "das Internet" sondern ein klar bekannter Service, bei dem auch auf IP-Adressen und TLS-Zertifikate gefiltert werden kann. Eine DMZ ist auch schon länger kein Garant für einen sicheren Betrieb. Der Zero Trust-Ansatz sagt ja gerade, dass ein Server niemandem Vertrauen darf, es sei denn er hat sich legitimiert. Zudem sind die Schutzfunktionen der Exchange Edge-Servern hinsichtlich Spamfilterung und Malware mittlerweile weit hinter anderen kommerziellen Produkten zurückgeblieben. Selbst Microsoft möchte ja ihren Kunden dann lieber "Exchange Online Protection" als Vorstufe zur Migration nach Exchange Online verkaufen. Mit NoSpamProxy und anderen Lösungen gibt es aber auch passende Funktionen, so dass Edge Server eigentlich nur noch als Hybrid-Gateway eingesetzt werden.

Diese Konfiguration mit Internetverkehr am Edge-Server vorbei ist legitim:

If you add an Edge Transport server to your hybrid deployment, you don't need to route mail sent between on-premises users and internet recipients through it. Only messages sent between the on-premises and Exchange Online organizations will be routed through the Edge Transport server.
Quelle: Edge Transport servers with hybrid deployments https://learn.microsoft.com/en-us/exchange/edge-transport-servers

Der HCW legt hinsichtlich Mailrouting einige Einstellungen OnPremises an, die ich hier nur kurz beschreibe:

  • Accepted Domains
    HCW addiert die "<tenantname>.mail.onmicrosoft.com". Die Domain "<tenantname>.onmicrosoft.com" wird nicht addiert aber viele Firmen addieren diese manuell. Für die weitere Betrachtung ist "<tenantname>.mail.onmicrosoft.com" wichtig.
  • Empfängerrichtlinien
    Der HCW addiert diese Domain auch in die Empfängerrichtlinie, damit jedes Postfach so eine Adresse zusätzlich bekommt. Sie wird später bei der Migration zu Exchange Online als Routingadresse wichtig.
  • Sendconnector
    Mails an die <tenantname>.mail.onmicrosoft.com könnten Exchange allein über den MX-Record versenden. Aber dennoch legt HCW einen Connector an, damit Exchange TLS mit einem vorgegebenen Zertifikat erzwingt und Exchange Online damit den lokalen Server zuverlässig erkennt. Bei Einsatz eines Edge-Servers ist der "SourceServer" im Sendconnector der EdgeServer und die Zustellung erfolgt per MX-Record
  • Receiveconnector
    HCW legt keinen neuen ReceiveConnector an, aber addiert auf dem vorhandenen Default Connector die Einstellung "TlsDomainCapabilities : {mail.protection.outlook.com:AcceptCloudServicesMail}"

Die Connectoren sorgen dafür, dass Mails an die Microsoft Online Email Routing Address(MOERA) von OnPremises über einen sicheren Connector zu Exchange Online geroutet werden und von Exchange Online als "intern" eingestuft werden.

Edge Mailrouting und Accepted Domains

Mit der Installation des Edge Server werden auch zwei Connectoren angelegt. Interessant ist hier der Connector auf dem Edge Server zu den lokalen Exchange Servern:

Der besondere Adressraum ist dabei "{smtp:--;100}", und Teil dem Edge Server, dass alle eingehende Mails über diesen Connector geroutet werden sollen. Die Liste der "internen Domains" bezieht der Exchange Edge Server dabei aus den "Accepted Domains". Das ist so auch bei Microsoft beschrieben aber sicher nicht allen bekannt:

Note: By default, you can't configure a Send connector for an internal relay domain on a subscribed Edge Transport server. Messages sent to recipients in the internal relay domain are automatically forwarded to internal Mailbox servers in the subscribed Active Directory site by using the default "EdgeSync - Inbound to " Send connector. This Send connector is automatically configured to route mail for all authoritative domains and internal relay domains (the address space value is --)
Quelle: Accepted domains in Exchange Server - Relay Domains: https://learn.microsoft.com/en-us/exchange/mail-flow/accepted-domains/accepted-domains?view=exchserver-2019#relay-domains

Allerdings steht auf eine anderen Seite, dass alle AccepedDomains auf "--" matchen, die aber falsch ist. Eine AcceptedDomain mit der Einstellung "External Relay" fällt nicht darunter.

Step 2: Create a dedicated Send connector to only send messages to the Exchange organization
Address spaces: -- (indicates all accepted domains for the Exchange organization)
https://learn.microsoft.com/en-us/exchange/architecture/edge-transport-servers/configure-without-edgesync?view=exchserver-2019#step-2-create-a-dedicated-send-connector-to-only-send-messages-to-the-exchange-organization

Denken Sie kurz über das Zitat nach, was was für Mails an die Microsoft Online Email Routing Address(MOERA) bedeutet, wenn ein Postfach in die Cloud migriert wurde:

  1. HCW hat die Domain "<tenantname>.mail.onmicrosoft.com" als "Autoritative accepted Domain" addiert
  2. EdgeSync hat diese Änderung auch zum Exchange Edge Server repliziert
  3. Ein OnPremises Postfach sendet eine Mail an die lokale "Remote Mailbox"
  4. Exchange reroutet die Mail an die Microsoft Online Email Routing Address(MOERA)
  5. Exchange sendet die Mail über den Hybrid Connector zum Edge Server
  6. Der Edge Server sieht eine Mail an "<tenant>.mail.onmicrosoft.com
  7. Der Edge Server sendet die Mail wieder zum lokalen Exchange zurück - die perfekte Loop

In Verbindung mit dem Edge Server darf die "<tenant>.mail.onmicrosoft.com" also nicht oder als ExternalRelay definiert werden. Exchange kennt ja vier Möglichkeiten eine Accepted Domain zu konfigurieren:

Einstellung msExchAcceptedDomainFlags Empfänger-richtlinigen NDR Beschreibung

Autoritativ

8  (0x1000)

Ja

Ja

Bei einer autoritativen Domain sind alle Empfänger in Exchange bekannt. Mails an Empfänger können mittels TargetAddress auch an Exchange Hybrid weitergeleitet werden aber Exchange kann alle nicht bekannten Adressen schon beim Empfang ablehnen oder einen NDR sendet.

Für den Edge Server bedeutet dies, dass die Mail immer zum internen Exchange Server geroutet wird.

Das ist die Standardeinstellung für Domains und auch für die "<tenant>.mail.onmicrosoft.com"-Domain, die der HCW - Hybrid Configuration Wizard anlegt. Im Exchange Server Deployment Assistant stand einige Zeit, dass sie die Domain auf "Internal Relay" umstellen sollten, was aber bei dem Problem hier nicht weiterhilft

InternalRelay

10  (0x1010)

Ja

Nein

Diese Einstellung sagt Exchange, dass sie einen Send-Connector für diese Domain angelegt haben, der Mails an ein weiteres Mailsystem weiterleitet. Da Exchange nicht Autoritativ ist, generiert Exchange auch keine NDRs. Sie können und sollten aber entsprechende MailUser/Mailkontakte anlegen und können diese Domain auch in den Empfängerrichtlinien verwenden.

Ohne Connector folgt Exchange dem Default Routing in Richtung Internet. Das sollten Sie nicht zulassen.

Für den Edge Server bedeutet dies, dass die Mail immer zum internen Exchange Server geroutet wird. Diese Domain kann also mit einem Edge Server nicht als Zieldomain im Internet verwendet werden.

External Relay

9  (0x1001)

Nein

Nein

Für eine Domain mit dieser Einstellung gibt es keine Empfänger in Exchange, d.h. keine MailUser oder Mailkontakte. Exchange erstellt keine NDRs aber routet Mails an diese Domain anhand der Transportkonfigurationen an die nächsten Server weiter.

Sie können diese Domain nicht in Empfängerrichtlinien verwenden! und auch für den Edge Server ist diese Domain Extern

Nicht angelegt

<kein>

Nein

Ja

Wird eine Domain

Der Exchange verhält sich wie dokumentiert, wenn er Mails an eine "Accepted Domain" wie "<tenant>.mail.onmicrosoft.com" direkt wieder zum Exchange Server zurück sendet und damit eine Loop produziert.

Genau das ist bei einem Kunden passiert. Alle Mails zu Exchange Online wurden von Exchange OnPremises zum Edge Server gesendet aber sind direkt wieder zurück geroutet worden.

Accepted Domains und Empfängerrichtlinien

Das Verhalten des Edge Server lässt sich nicht ändern. Damit ein Exchange OnPremises Server eine Mail über die MOERA - Microsoft Online Email Routing Address-Adresse zum Exchange Online Postfach senden kann, darf die Domain nicht als "Autoritative" oder "InternalRelay" definiert sein. Der Versuch den Domaintype der Domain auf "ExternalRelay" zu stellen, funktioniert aber nicht:

[PS] C:\>set-AcceptedDomain msxfaqlab.mail.onmicrosoft.com -DomainType externalrelay
Can't make the domain 'msxfaqlab.mail.onmicrosoft.com' an external relay domain because it's referenced in an email
address policy by the proxy address template 'smtp:%m@msxfaqlab.mail.onmicrosoft.com'.

Eine "ExternalRelay"-Domain darf nicht in einer Empfängerrichtlinie verwendet werden, da es ja per Definition auch gar keine entsprechenden Empfänger gibt. In Empfängerrichtlinien können nur Domains mit der Einstufung "Authoritative" und "InternalRelay" genutzt werden.

You need to add an authoritative domain or an internal relay domain before you can use that domain in an email address policy. 
Quelle: Accepted domains and email address policies Email address policies assign email addresses to recipients https://learn.microsoft.com/en-us/exchange/mail-flow/accepted-domains/accepted-domains?view=exchserver-2019#accepted-domains-and-email-address-policies

You can use internal relay domains in email address policies.
You can't use external relay domains in email address policies.
Quelle: Accepted domains in Exchange Server - Relay Domains: https://learn.microsoft.com/en-us/exchange/mail-flow/accepted-domains/accepted-domains?view=exchserver-2019#relay-domains

Damit habe wir nun das Problem, dass der Edge die "<tenantname>.mail.omicrosoft.com"-Adresse bei einer Hybrid-Bereitstellung nicht zu Exchange Online routet, weil der HCW diese Domain als autoritative Domain und in den Empfängerrichtlinien addiert hat. Das ist ja auch notwendig, da alle Postfächer eine Adresse in der Domain "<tenantname>.mail.omicrosoft.com" erhalten müssen, um das Postfach später zu Exchange Online zu routen.

Lösungen

Die einfachste Lösung ist natürlich den Edge-Servers zu entfernen. Das ist für viele Firmen tatsächlich eine sinnvolle Möglichkeit, denn die Funktion des Edge Server ist zumindest zu hinterfragen und durch den Wegfall löst sich nicht nur dieses Routing-Problem sondern weniger Server bedeuten auch weniger Pflegeaufwand, Disk-IO, Ausfallmöglichkeiten etc. Dazu habe ich eine eigene Seite geschrieben:

Mit etwas Vorbereitung kann das in wenigen Minuten erfolgen.

Solange ich aber die Ursache nicht kennen, warum de Edge Server die Mails in diesem speziellen Setup an die MOERA-Adresse nicht zum Tenant sondern wieder nach intern sendet, bleibt nur die Wahl die "<tenantname>.mail.onmicrosoft.com" auf "External Relay" zu stellen. Dazu muss ich sie aber auch erst aus allen Empfängerrichtlinien entfernen UND danach wieder von Hand per PowerShell addieren, damit das Mailrouting weiter funktioniert. Das ist nicht sonderlich schwer z.B. mit

# Ersetzen Sie "msxfaq" durch ihren Tenanatnamen

Get-Mailbox `
| Foreach {`
    Set-Mailbox `
      -Identity $_.alias `
      -EmailAddresses @{add="$($_.alias)@msxfaq.mail.onmicrosoft.com"}`
}

Das kann man zwar so machen aber ich denke nicht, das dies der Normalfall sein sollte. Zudem habe ich auch Kunden mit Edge-Server, wo es ohne diese Umgebung geht.

Update: Ich habe bei allen Analysen bislang die "Kosten" nicht berücksichtigt. In der Problemumgebung waren die Kosten immer gleich "1". Bei einem klassischen Edge Setup sind die Kosten aber anders. Siehe auch Exchange Edge Default Settings)

Wenn nun die Kosten für den Connector zum Tenant und die Kosten des "SMTP:--"-Connector gleich sind, dann könnte das der Grund sein, warum Mails auch wieder nach innen gehen. Korrekt wäre wohl.

EdgeSync - MSXFAQ to <tenatn GUID> {smtp:msxfaqlab.mail.onmicrosoft.com;1} 
EdgeSync - MSXFAQ to Internet      {smtp:*;50}
EdgeSync - Inbound to MSXFAQ       {smtp:--;100}

Bei der Problemumgebung war es aber wohl:

EdgeSync - MSXFAQ to <tenatn GUID> {smtp:msxfaqlab.mail.onmicrosoft.com;1} 
EdgeSync - Inbound to MSXFAQ       {smtp:--;1}

Und dann könne folgende Aussage relevant werden, wenn man annimmt, dass "msxfaqlab.mail.onmicrosoft.com" sowohl explizit als auch über den "--"-Adressraum angegeben zutreffen und daher gleiche Kosten zumindest teilweise zu Loops führen.

Address space cost:
You use the cost value on the address space for mail flow optimization and fault tolerance when the same address space is configured on multiple connectors. A lower cost value indicates a preferred connector.
Quelle: https://learn.microsoft.com/en-us/exchange/mail-flow/mail-routing/connector-selection?view=exchserver-2019#connector-considerations-in-message-routing

Die Zusammenhänge der Konfiguration sind noch nicht genau ermittelt.

Wenn einer meiner Leser noch einen Edge mit Hybrid betreibt, dann würde mich die Konfiguration der SendConnectoren auf dem Edge Server interessieren.
Einfach auf dem Edge mit "Get-SendConnector | fl name,addressspaces" ausgeben.

Weitere Links