Sender Based Routing
Exchange kann schon immer Mails anhand der Zieldomäne über verschiedene Wege zustellen. Aber es gibt durchaus Fälle, in denen eine Entscheidung auch abhängig vom Absender oder der Absenderdomäne möglich sein sollte. Je nach Exchange Version ist es im Produkt enthalten oder durch Drittprodukte möglich.
Exchange Online kann durch Transportregeln Mails an unterschiedliche SendConnectoren routen. Exchange OnPremises kann dies nicht mit Bordmitteln aber es gibt Lösungen
Einsatzbereich
Exchange 2007 war die letzte „Hosting-Version“, die über dein "/hosting"-Schalter bei der Installation eine Separierung mehrerer Firmen in der gleichen Exchange Organisation und einem ADA-Forest erlaubt hat. In allen neueren Versionen gibt es diese Funktion nicht mehr.
Für Betreiber einer „Shared Infrastruktur“, auf der mehrere Firmen gemeinsam gehostet werden, stellen sich daher mehrere Herausforderungen:
- Separierte Adressbücher und GALs
Das ist mit Bordmitteln (Siehe Segregation) möglich. - Delegate
Mitarbeiter unterschiedlicher Firmen sollten sich nicht gegenseitig als Stellvertreter eintragen können - FreeBusy
Und sie sollten bei der Planung eines Termins bei der Abfrage der Frei/Belegt-Zeiten nicht mehr sehen, als wenn es eine externe Organisation wäre.
Diese Dinge sind aber nicht im Fokus dieser Seite. Denn auch beim Mailrouting gibt es Herausforderungen, die durch den "Single Organisation" vorgegeben sind, so unterscheidet Exchange nach Intern/Extern und beim Routing zum Internet gibt es nur eine globale Routingtabelle.
- Internes Routing
Emails von einem Kunden zum anderen Kunden auf der gleichen Plattform sind aus Sicht von Exchange “interne Mails“. Zwar sind Transport-Agenten möglich aber es bleiben interne Mails mit allen Vorteilen, z.B. Anzeige des Displaynamens. - Internet-Routing
Auf dem Weg zum Internet nutze Exchange die „globale Connector-Konfiguration“. Man kann mit Bordmitteln keine unterschiedlichen Send-Connectoren pro „Kunde“ definieren. Das führt zu Problemen, wenn Kunden eigene ausgehende Smarthosts mit unterschiedlicher Authentifizierung fordern. Hier kann also ein "absenderbasiertes Routing" erforderlich sein.
Das bedeutet aber nicht, dass Exchange dies nicht könnte. Für das Routing nach Absender nach extern gibt es verschiedene 3rd Party Lösungen, die ich weiter unten aufführe. Allerdings löst das noch nicht die Herausforderung, wie eine „interne lokale“ Zustellung umgeroutet wird, d.h. Absender und Empfänger sind auf der gleichen Exchange Umgebung aber sollen dennoch „einmal über Internet“ geroutet werden.
n Exchange Online hat Microsoft das Problem im Produkt gelöst, welches für jeden Tenant eigene Inbound-Connectoren und Outbound-Connectoren vorsieht. Exchange On-Premises kennt diese Funktion nicht aber auf dem eigenen Server können Sie mit „Transport Agenten“ die Routing-Funktion erweitern.
- Exchange 2007/2010/2013 Transportagenten
-
ResolvedMessageEventSource.SetRoutingOverride
method
https://docs.microsoft.com/en-us/previous-versions/office/exchange-server-api/dd895613(v=exchg.150) - Transport agent concepts in Exchange
2013
https://docs.microsoft.com/en-us/exchange/client-developer/transport-agents/transport-agent-concepts-in-exchange-2013 - Exchange-Routing-Agent/CustomRoutingAgent.cs
https://GitHub.com/misterGF/Exchange-Routing-Agent/blob/master/CustomRoutingAgent.cs
„This transport agent is useful for Exch 2010 hosting edition where each organization is seperate and a transport agent is needed.” - Configuring Exchange 2013 for use with
the SetRoutingOverride method and Transport
Agents
http://www.wave16.com/2015/03/configuring-exchange-2013-for-use-with_19.html
Beim Routing nach Extern gibt es passende Programme oder es kann durchaus auch ein vorgeschaltetes SMTP-Relay lösen. Das ist dokumentiert und getestet.
Ich bin mir aber nicht sicher, ob dies für eine interne Separierung auch ausreichend ist, die RoutingDomain per Transport Agent zu setzen.
Allerdings habe ich hier keine weitere Nachforschungen oder Tests gestartet, denn der Markt für ein "Multi Tenant Hosting" im Eigenbetrieb ist doch recht überschaubar und meist haben diese Firmen ihre eigenen Fachkräfte und Entwickler, die Exchange soweit verbiegen oder aufmotzen, damit die Kunden auch ohne Office 365 ein gehostetes Exchange des Dienstleisters nutzen können.
Outbound Routing nach Version
Früher war es eine Anforderung mit den POP3-Sammeldiensten, dass jede Absenderadresse einen eigenen Send-Connector genutzt hat, um unterschiedliche Authentifizierungsinformationen zu übergeben. Heute sind es eher unterschiedliche Relays je nach Domäne, z.B.: um Massenmailings über einen Service zu leiten.
Hier eine "was ist möglich"-Tabelle nach Exchange Version:
Version |
Status |
Wie ? |
---|---|---|
Exchange 2000 |
|
In Exchange 2000/2003 können Sie über "Empfangsbeschränkungen" auf dem Connector steuern, welcher Absender diesen Connector nutzen darf |
Exchange 2007 |
|
Mit Bordmitteln kann in Exchange kein Routing anhand des Absender gemacht werden. Sie haben daher zwei Optionen:
|
Office 365 Exchange Online |
|
Interessanterweise hat Microsoft in Office 365 die Funktion wieder eingebaut, das man mit einer Transport-Regel einen Connector angeben kann. Dazu sind zwei Schritte erforderlich:
|
3rd Party Tools
Da nur Exchange Online mit mehreren Firmen als "Tenants" umgehen kann und hier pro Firma auch eigenständige Outbound-Connectors möglich sind, bleibt für Exchange On-Premises nur der Einsatz von 3rd Party Tools oder eigenen Skripten.
-
How to control routing from your own routing agent
http://blogs.technet.com/appssrv/archive/2009/08/26/how-to-control-routing-from-your-own-routing-agent.aspx -
Exchange Sender Based Routing
https://www.tuescher.net/Exchange-Sender-Based-Routing/
Samt Sourcecode für Ex2010/2013/2016 -
ExSBR - Exchange Sender based Routing
http://www.messageconcept.net/en/products/exsbr/
http://chrischmi.de/blog/2008/12/sender-based-routing-for-exchange.html
http://cs-itblog.de/2011/08/07/exchange-routing-nach-absenderadresse/
http://www.chrischmi.de/blog/2009/05/exsbr-poduktinformation-und-demoversion.html
Add-on um abhängig vom Absender unterschiedliche Zielconnectoren zu nutzen. -
Postfix - "/etc/postfix/sender_relay"
Sie können Exchange anweisen, alle Mails z.B. an eine Postinstanz Instanz zu senden, die dann abhängig vom Absenderuser oder Absenderdomain unterschiedliche "Next Hops" anspricht.
https://www.postfix.org/SOHO_README.html
https://wiki.ubuntuusers.de/Postfix/Erweiterte_Konfiguration/
https://documentation.n-able.com/spamexperts/userguide/qsg/Content/B_Admin%20Level/outgoing-filtering/postfix-sender-bsd-rout.htm
https://support.isp-serverfarm.de/de/article/244-domainbasiertes-email-relay-fuer-postfix
Firmen, die ihren Exchange aber sowieso mit einem Relay zum Internet hin abschotten, können bei den meisten professionellen Produkten hier fündig werden. So erlaubt z.B. NoSpamProxy und NoSpamProxy Encryption eine Steuerung des Routings anhand des Absenders:
Weitere Links
- Connectoren
- Routing2007
- WINROUTE
-
Source based routing in Exchange
https://jaapwesselius.com/2018/04/19/source-based-routing-in-exchange/ -
ResolvedMessageEventSource.SetRoutingOverride method
https://docs.microsoft.com/en-us/previous-versions/office/exchange-server-api/dd895613(v=exchg.150) -
Transport agent concepts in Exchange 2013
https://docs.microsoft.com/en-us/exchange/client-developer/transport-agents/transport-agent-concepts-in-exchange-2013 -
Exchange-Routing-Agent/CustomRoutingAgent.cs
https://GitHub.com/misterGF/Exchange-Routing-Agent/blob/master/CustomRoutingAgent.cs
This transport agent is useful for Exch 2010 hosting edition where each organization is seperate and a transport agent is needed.” -
Configuring Exchange
2013 for use with the SetRoutingOverride method and Transport Agents
http://www.wave16.com/2015/03/configuring-exchange-2013-for-use-with_19.html