您的位置:首页 > 运维架构 > 网站架构

Exchange 2013 传输架构

2017-01-18 15:51 239 查看
阅读过TechNet文档的人肯定对下面这张图不陌生,这张图完整诠释了整个Exchange 2013的邮件传输架构,前一章里已经简要讨论过的几个组件都在里头,然而还有一些其他的组件也值得深入讨论。首先咱们来聊聊图里边出现的重要词汇。

1、“代理”在这里是指Agents,而非是proxy,即处理或者传输消息的某一块程序代码。图中的agents直接反映出Exchange的Business

logic,例如Exchange的反垃圾和恶意软件筛选组件属于协议代理,路由代理、邮件传递代理和邮件提交代理属于邮件传输生命周期的一部分。基本上,除了反垃圾和恶意软件筛选相关的代理,你无法直接的添加、删除或者是配置这些代理。当然,微软还是提供了一系列的API给开发者们开发一些特定用途的传输代理。2、对于Exchange管理员们,“队列(Queues)”是非常熟悉的一个名词。顾名思义,队列通过先进先出(FIFO)的原则,来实现这样一个有秩序的可预测的邮件传递排列逻辑架构。对于每一个目的地,每一个连接队列中可以容纳20封邮件。比方说你现在有80封邮件去往Contoso.com域,那么Exchange会打开4个连接,尝试投递第1封,第21封,第41封和第61封邮件。然后取决于邮件的大小,21-40的邮件可能比第1封邮件先抵达目的地。Exchange
2013中的邮件队列与以往版本有许多不同,下文会详细描述3、Events,即事件,通过触发事件来驱动代理和服务进行工作。比如在某一封邮件被队列了准备发送,其实这个过程大致是这样,一封邮件点击发送,被打上OnMessageSend标记,OnMessageSend标记被清除,进入队列,准备发送。OK,可能上述的概念还是有些复杂,我们看下图,里面使用Get-TransportPipeline命令获取了当前一台全角色Exchange2013服务器中传输管道里的传输代理。当左边的某一项事件发生的时候,就会触发右边的某一项传输代理开始对打上该标记的邮件进行处理。

微软为Ex2013 MBX里的传输服务定义了四个主要任务,每个任务对应一个或者多个组件,我这里就直接贴TechNet原文了,原文已经写得非常清楚:1. SMTP 接收 当传输服务收到邮件时,会执行邮件内容检查,应用传输规则,并执行反垃圾邮件和反恶意软件检查(如果已启用)。SMTP 会话包含一系列以特定顺序协同工作的事件,以便在接受邮件之前验证邮件内容。通过 SMTP 接收功能完全传递邮件之后,如果接收事件或反垃圾邮件和反恶意软件代理未拒绝该邮件,则会将该邮件放在提交队列中。2. 提交 提交是将邮件放入提交队列中的过程。分类程序会一次拣选一个邮件进行分类。提交通过下列三种方法来进行: a) 对于通过接收连接器的 SMTP 接收。 b) 通过分拣目录或重播目录。这些目录存在于邮箱服务器和边缘传输服务器上。已复制到分拣目录或重播目录中的格式正确的邮件文件,将直接放入提交队列中。 c) 通过传输代理。3. 分类程序 分类程序从提交队列中一次拣选一个邮件。分类程序完成以下步骤: a) 收件人解析,其中包括顶级寻址、展开和收件人拆分。 b) 路由解析。 c) 内容转换。 d) 此外,还会应用由组织定义的邮件流规则。对邮件进行分类后,会将其放入基于邮件目标的传递队列中。邮件按目标邮箱数据库、DAG、Active Directory 站点、Active Directory 林或外部域进行排队。4. SMTP 发送 从传输服务路由邮件的方式取决于邮件收件人相对于进行分类所在的邮箱服务器的位置。邮件可以路由到以下位置: a) 同一邮箱服务器上的邮箱传输服务。 b) 属于同一 DAG 的不同邮箱服务器上的邮箱传输服务。 c) 不同 DAG、Active Directory 网站或 Active Directory 林中的邮箱服务器上的传输服务。 d) 通过同一邮箱服务器上的发送连接器、不同邮箱服务器上的传输服务、客户端访问服务器上的前端传输服务或外围网络中的边缘传输服务器上的传输服务交付到 Internet。看完了这四项任务的内容,再回过头去看看那张图,是不是顿时就清楚了很多?再多聊一些这张图里头有趣的细节:1、 如果目标投递组中存在多台MBX服务器,那么邮箱传输提交服务会在负载均衡的基础之上选择其中一台。2、 早期版本的Exchange支持一些与第三方邮件应用的交互性服务,但是在Exchange2013当中如果你还想继续去用这些邮件应用服务,最好让它们调整为使用SMTP。(比如传真,Lotus Notes)3、 当分拣器—分类程序展开了邮件中的收件人列表后,传输服务才开始应用邮件规则和归档规则。4、

所有的邮箱服务器都会共享一些公共的传输配置,比如Exchange最大传输的消息大小,入站邮件的最大收件人数量,哪些连接器可用(包括Ex2010和Ex2013的边缘上的连接器)等等。这些配置都存在AD里,哦AD里还存了传输和归档规则,并且这些设置都可以使用Set-TransportConfig命令配置。5、

接着上一条传输规则存储在AD中,如果企业Exchange处于共存环境下,那么传输规则会存储在AD里按版本命名的容器里;然后你安装Exchange2013的时候,会将现有的早期版本的传输规则和归档规从早期版本容器里拷贝到新版本的容器里,这样Exchange

2013就可以同样实施早期Exchange版本中的传输规则,并不意味着早期版本和Exchange2013的传输规则就这么同步了。在当Ex2013中创建了一条传输规则之后,这些新规则会用Exchange的版本号打上一个Stamp,Exchange2010会忽略掉这些新版本的规则,从而不会产生规则冲突。这种机制是非常必要的,因为Ex2013里对传输规则加了很多新的要素和动作。所以在混合环境下,最好尽可能多的将传输过程从早期Exchange版本移到新的Exchange服务器上来。Part1先讲到这里,Part2里我们来分别说说Exchange 2013里的四个组件:前端传输Front End Transport,传输服务Transport,邮件传输提交Mail Transport Submission,以及邮件传输传递Mail Transport Delivery。光读起来就十分拗口了……附延伸阅读:1、 传输代理:https://technet.microsoft.com/zh-cn/library/bb125012(v=exchg.150).aspx2、 邮件流:https://technet.microsoft.com/zh-cn/library/aa99634(v=exchg.150).aspx#TransportPipeline

本章接着上一章,简单说一下四个组件在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邮件流,里面讲了比较原理性的一些东西,大家可以参考一下:http://sodaxu.blog.51cto.com/8850288/1651613下一章咱们就开始讲连接器,由于内容比较多,所以就分开两章分别聊聊发送连接器和接收连接器。本文出自 “卡斯特梅的雨季” 博客,请务必保留此出处http://sodaxu.blog.51cto.com/8850288/1674203
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Exchange 2013 传输架构