译自:http://blogs.technet.com/b/rischwen/archive/2013/03/13/exchange-2013-mail-flow-demystified-hopefully.aspx

更详细的:http://www.msexchange.org/articles-tutorials/exchange-server-2013/planning-architecture/exchange-2013-mail-flow-part1.html

Exchange2013的角色改变:只有MailBox与CAS两个角色,没有独立的hub角色,传统的hub组件被分割成了三块,分别位于Exchange2013的MBX与CAS角色上。

 

前端传输服务(FrontEnd Transport Service):此服务运行在所有的客户端访问服务器上,作为Exchaneg2013组织里所有的进和出的外部SMTP流量无状态的代理。前端传输服务并不会检查邮件内容,而只是和MailBox服务器上的Transport Service进行通信,也不在本地为任何消息进行队列的操作(queue在mbx上)

Exchange2013 邮件流_第1张图片


(所谓无状态:

在早期版本的 Exchange 中,许多客户端访问协议都需要会话相关性。例如,Outlook Web App 要求来自特定客户端的所有请求都由负载平衡的客户端访问服务器数组中的特定客户端访问服务器处理。在 Exchange 2013 中,客户端访问服务器是无状态的。也就是说,由于对邮箱的所有处理都是在邮箱服务器上进行的,因此客户端访问服务器数组中的哪个客户端访问服务器接收每个客户端请求无关紧要。功能上的这种更改意味着负载平衡器级别不再需要会话相关性。这允许使用负载平衡技术(如 DNS 轮循机制)提供的简单技术平衡到客户端访问服务器的入站连接。还允许硬件负载平衡设备显著支持更多并发连接。)

 

传输服务(Transport Service):此服务运行在所有的MailBox服务器上,与之前版本的Exchange里HubTransport服务几乎一模一样。传输服务会处理组织的所有的SMTP邮件流,执行邮件分类,并且执行邮件的内容检查。不同于以往的Exchange版本,这里的传输服务也不直接与邮箱数据库进行通信,而是由邮箱传输服务来完成此工作。传输服务只是用来在邮箱传输服务,传输服务,以及前端传输服务之间路由邮件。

Exchange2013 邮件流_第2张图片

 

邮箱传输(Mailbox Transport): 此服务由两项单独的服务组成:邮箱传输提交服务和邮箱传输传递服务。邮箱传输传递服务从本地邮箱服务器或其他邮箱服务器上的传输服务接收 SMTP 邮件,并使用 Exchange 远程过程调用 (RPC) 连接到本地邮箱数据库以传递邮件。邮箱传输提交服务使用 RPC 连接到本地邮箱数据库以检索邮件,并通过 SMTP 将邮件提交给本地邮箱服务器或其他邮箱服务器上的传输服务。邮箱传输提交服务可以访问与传输服务相同的路由拓扑信息。与前端传输服务一样,邮箱传输服务也不在本地对任何邮件进行排队。

wKioL1VVlGvA1Z4OAAB8uTezSUY464.jpg

 

接下来我们讲一下上述服务所用到的端口

 

Port 25: 25端口就像以前的exchange版本一样作为SMTP端口,以下流量都会经过25端口:外部SMTP流量到前端传输服务(FET),Exchaneg2007/2010的

hubMBX之间的smtp流量,当然也包括FET到传输服务的流量。有一个默认的接收连接器会侦听此端口,名字类似于:default frontend

 

Port 587:与以前版本的Exchange一样,用于安全的客户端连接(应用了TLS)。名字类似于Client Frontend

 

Port 717:用于传输服务向FET服务发起的出站的代理连接,当你创建完了一个发送连接,你可以调整其中的选项:是直接从传输服务直接发往internet/智能主机,或者是通过FET服务来进行一个发送代理中继。同样也有一个默认的接收连接器来侦听此端口,名字类似于: Outbound Proxy Frontend

 

Port 465: 用来接收代理连接请求,即处理FET服务从587接收到的客户端连接中发起的代理请求。同样有一个接收连接器名字类似于:Client Proxy MBX上)

 

Port 475:邮箱传输投递服务侦听此端口,为那些要么来自 本机传输服务SMTP发送连接器 或者 其他邮箱服务器的传输服务的SMTP投递 服务。

 

Port2525: 如果CAS与MBX服务安装在同一台服务器上,那么传输服务的SMTP接收连接器就会侦听在2525端口而非25端口。否则FET和传输服务会冲突

 

以上三种服务和应用的端口。详细可以看下图描述

 

Exchange2013 邮件流_第3张图片

 

Exchange2013 邮件流_第4张图片

 

 

详细描述一下邮件流过程:

Sending Mail to both Internal\External recipients

发送邮件给内\外网接收人:

 

第一步:邮箱传输--当你从Outlook或者OWA按下发送按钮开始,在Exchange2007\2010上,由hub角色上传输服务的Store Driver(存储驱动)将邮件发送给下一跳。但是现在存储驱动已经被划给了邮箱传输并分割为两个服务(传递和提交服务),邮箱传输提交服务会从用户发件箱中拿到这些邮件,进行一个集线器选择器的过程(为了选择最佳的传输服务,本地的或者是另外的),然后转发给传输服务的默认的接收连接器(SMTP 25或者2525

 

第二步:传输服务,当邮件已经被传输服务接收后,会放到提交队列里。提交队列会处理这些邮件,传递给一个分类程序,进行收件人解析(邮件目标分类)和路由解析。下一步再提交给正确的投递队列(Exchange自带的队列查看器里分的类)。如果邮件是通往外部联系人,就会使用正确的发送连接器发送给internet或者是FET服务的代理发送程序(当然是该发送连接器开启了代理发送的情况下:Set-SendConnector -FrontEndProxyEnabled $true)。如果邮件是发送给内部接收者,则就直接从传输服务发送给目标MBX服务器的邮箱传输传递服务。当目标MBX服务器的邮箱传输传递服务收到后,就使用本地的RPC服务去将这些消息放进用户的收件箱中

 

接收邮件的过程与发送邮件过程相反,注意邮件目标分类总是发生在邮件服务器的传输服务层。在分类完成之后,发往内部的邮件会通过SMTP 475端口直接投递到收件人目前所位于的邮件服务器的邮箱传输传递服务。如下图所示。

Exchange2013 邮件流_第5张图片