本章接着上一章,简单说一下四个组件在Exchange Server 2013整个传输架构当中各自负责什么。

前端传输服务(The Front End Transport Service)

FET服务在整个传输里边似乎工作量是最小的;它负责所有客户端的入站与出站SMTP流量,FET是SMTP流量通过防火墙之后所接触到的第一个组件,和其他在CAS上运行的服务组件一样,FET服务不存储任何邮件数据,也不维护任何的队列,以及提供基本上是无状态的客户端连接(对客户端连接不维护任何的状态信息)。但是,FET会生成SMTP协议日志,所以其实它还是会记录下一定的数据滴。

在安装Exchange 2013 CAS角色的时候,就会生成一系列默认的接收连接器供FET使用。FET也提供出站的SMTP服务,这个功能经常被管理员忽视掉,因为大家基本都只关心入站邮件。MBX服务器将出站邮件丢给FET,所以基本上保证所有SMTP流量在离开当前的Exchange组织的时候只从CAS走。

传输服务(The Transport Services)

Ex2013里的传输服务负责了以前Ex2007和2010的Hub Transport角色的大部分功能,然后在这个基础之上加上一部分新的改进。比如DLP,比如归档,比如传输规则。

传输服务为每一个内部的Exchange邮箱数据库维护一个队列(Queue),DAG的特性让传输服务不用去搞清楚那台MBX拥有该数据库的活动副本,只需要知道目标数据库是谁就可以了。接下来的邮箱传输传递服务会负责找出正确的数据库

邮箱传输传递服务(The Mailbox Transport Delivery Service)

当邮箱传输传递服务试图去为某个内部收件人投递邮件的时候,它首先要搞清楚这个收件人的邮箱的所在数据库。FET和传输服务会事先进行一个简单的AD查询动作,然后在邮件上带上一个SMTP MESSAGECONTEXT变量(Exchange 2013是这样,其他版本我不清楚。)传输传递服务拿到了这个变量后,然后它就得搞清楚哪个服务器目前拥有该数据库的活动副本,如果该收件人是在与发件人相同的DAG里,它就会去查询Active Manager以获取该活动副本的所在位置,这个活动副本位置如果是自己,那就直接投递到数据库,如果是别的服务器,它就将邮件丢给自己的邮箱传输提交服务,然后由传输提交服务丢给别的服务器。

如果是在不同的DAG,那么它根据前边说的AD信息,确定目标MBX服务器的位置,使用SMTP丢给该服务器的传输服务。

邮箱传输投递服务(The Mailbox Transport Submission Service)

邮箱传输投递服务负责从邮箱里使用RPC检索邮件,然后通过SMTP来提交给传输服务,按照之前的文章里写过的,不同的客户端将不同的邮件放在已经定义好的位置里(发件箱、草稿啊之类的文件夹里),然后传输投递拿走邮件进行下一步传输。

OK,四个组件基本上就描述完成,关于这四个组件和各自使用到的端口,很久之前我就翻译过一篇technet的博客文章:Exchange 2013邮件流,里面讲了比较原理性的一些东西,大家可以参考一下:

下一章咱们就开始讲连接器,由于内容比较多,所以就分开两章分别聊聊发送连接器和接收连接器。