设为首页 收藏本站
查看: 2243|回复: 0

[经验分享] 「深入 Exchange 2013」MAPI over HTTP实战配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-13 09:24:11 | 显示全部楼层 |阅读模式

在前面我们聊Outlook Anywhere的文章里头,我提到了MAPI over HTTP这个Exchange Server 2013 SP1中新增加的功能,这次这篇文章咱们就详细说说这个新的传输协议是什么,以及实战如何去配置它。

什么是MAPI/HTTP,有什么好处?

以前版本中(Exchange 2010),用的是RPC over HTTP(外部网络outlook anywhere)以及RPC Direct(内部网络)连接,Exchange 2013里,所有的连接都通过Outlook Anywhere,也就是RPC over HTTP来传输;到即将到来的Exchange 2016,至少我现在看到的风声是,将所有的RPC over HTTP替换成 MAPI over HTTP了。所以在Ex2013 SP1里,微软先推出了这个特性来试试水,看看收效如何。那么咱们也不要背道而驰,照着微软的战略也来学习配置看看。

咱们还是来看看这两张图,进行一个初步的分析。上面一张是旧的RPC/HTTP的传输过程,可以发现其实传输的流量封装层次是MAPI/RPC/HTTP这样一个三层封装,每次Outlook客户端进行连接都需要进行RPC_DATA_IN和RPC_DATA_OUT这么个来回2次的过程,再加上HTTPS与MAPI的连接。服务器和客户端之间会生成2个TCP长连接,4个活动连接。

wKiom1Wf6Ruw0Iu-AAE1qt4J5lw068.jpg

下面一张图则是Mapi Over HTTP,可以看到将整个MAPI连接移到了标准的HTTP请求/响应模型上。这样就会减少客户端与服务器之间的连接,它们之间最大会存在2个活动连接,1个长连接和1个按需短连接(下文会提到这个按需)。

wKiom1Wf6RvQZG70AAECuI_6JvQ534.jpg

从上面两张图里还可以看到,一个是MAPI/RPC/HTTP,另一个是MAPI/HTTP,取消了整个RPC封装。取消了这一层封装也意味着取消了这一层的请求和回应。这就是为什么上面会提到连接数减少的原因。

wKioL1Wf6u6DexHOAAD5kXPswDg626.jpg

减少连接数和降低封装的层数带来的直接好处就是降低客户端与服务器之间的交互时间,或者说,是更为贴近现代化场景(无线网络和远程办公网络)的设计。据微软自己吹牛逼说,当用户第一次配置好账号打开Outlook的时候停留在LOGO框的时间减少了70%……

另外一个特点就是,上面提到了的按需连接,它其实可以被理解为一个15分钟内有效的连接窗口,当客户端第一次与服务器建立连接完毕之后,MBX上会留出这么一个连接窗口进行按需连接,按什么需呢?重新连接的需求,也就是说客户端的网络短暂断开了之后,再进行重连,它就直接走这个窗口连进来,无需重复之前的验证过程。微软也吹牛逼说:同样休眠起来的笔记本电脑,用MAPI/HTTP的比用RPC/HTTP的重连时间短10秒……

这个时间窗口会在以后的版本中提的更大。

还有另外的一个特点,之前的RPC连接及其不具有可维护性(只能通过一些专门的微软的内部工具来进行debug),现在则是咱们的老朋友HTTP封装,不光提供了日志,甚至还有debug信息窗口。要知道RPC进程挂死这种故障只能通过重启来解决……

微软的路线就是慢慢去RPC化。然而这些特性都是从O365里学来的,在之前2016架构前瞻的文章里我也提到,微软很多新概念都被应用到O365上,然后觉得成熟了再做成功能特性给on-premises用户。

OK,咱们再说一下客户端是如何使用MAPI/HTTP与服务器进行连接的:

1、 Outlook客户端,发现自己是MAPI/HTTP兼容的客户端,就在autodiscover请求里带上一个参数X-MapiHTTPCapability=1

2、 服务器收到了这个autodiscover请求,发现有Mapi/HTTP参数,于是响应MAPI/HTTP的配置信息给客户端。配置信息里包括连接URL验证方法等等,当然前提是你的服务器已经打开了这个功能。

3、 Outlook收到这些信息之后发现它可以跟服务器建立Mapi/HTTP连接,于是告诉用户重启Outlook,如果用户不重启Outlook,则会继续使用RPC over HTTP

配置要求:

讲了这么多理论了,咱们开始实际配置一下这玩意儿,首先是MAPI over HTTP的一些前提条件。

对于服务器:Exchange Server 2013 SP1必需,再加个.Net Framework 4.5.2,你可能在有些文档里看到需要KB2908387/KB2908385/KB2908383这几个补丁,这几个hotfix现在只能联系MCS才能下载了…所以打个.Net Framework4.5.2吧

客户端要求:outlook 2013 SP1,outlook 2010 SP2 以及更新 KB2956191 和 KB2965295

配置步骤:

在所有的的CAS服务器上添加系统变量:变量名和值见下图:

wKiom1Wf6RvDfw6jAAKdrNwxJw8480.jpg

接下来配置Mapi虚拟目录,本身在Exchange 2013 SP1安装的时候,就已经部署好了Mapi的虚拟目录。但是默认的,只配置好了internalURL,所以如果要对外访问,那么就得再配置一下ExternalUrl和外部访问时所用的验证方式。命令为

1
2
Set-MapiVirtualDirectory –Identity “EX01\mapi (default web site)” -ExternalUrl
  -IISAuthenticationMethods Negotiate



wKioL1Wf6u6TX0DgAAGBjQn3UO0604.jpg

wKioL1Wf6u-AfLZ7AAFQ6yYXONw268.jpg

注意这里为什么IIS验证要配置成协商呢?因为MAPI/HTTP是按照HTTP的套路进行验证的,即客户端发送一个anonymous的HTTP请求,然后Exchange就在HTTP的层面告诉他验证方法,而不用autodiscover再去宣告验证方法。所以按照标准给个协商方法就可以了。

最后一步,为整个组织开启MapiOverHTTP功能。命令:

1
Set-OrganizationConfig –MapiHttpEnabled $True



wKiom1Wf6RyxYlTDAAFe8V6izoc187.jpg

OK,到这里MAPI/HTTP功能就正式配置完毕了,为确保生效,最好是按照顺序重启一下组织里的所有Ex服务器,有些人说我只重启CAS或者只重启MBX就生效了嘛,反正我在配置时的场景是多台全角色,我就都给重启了~

如何确定MAPI/HTTP生效了呢,重启完服务器之后,让客户端再进行一次自动发现,客户端就会蹦个报错出来:

wKioL1Wf6u-QVM_MAAFw8XN5rjI272.jpg

然后咱按照提示,重启Outlook,再看一下连接状态,就会发现,没有代理服务器了并且后面的协议里只有HTTP,验证方法为协商,SSL加密。服务器名称也是连接到了mapi的虚拟目录上的终结点。

wKiom1Wf6R3jyqA1AADIVaLuj44166.jpg

wKioL1Wf6u_ysPxsAAChoYKuLKk827.jpg    
下面来一张RPC/HTTP的连接状态图,大家可以做参考

wKiom1Wf6R2AfUy_AAEApJJngTA824.jpg

客户端上另外一个变化是,如下图,outlook anywhere的配置没了~

wKiom1Wf6R3gKnOkAAEaVMbP_TE133.jpg

这样咱们就是配置成功了,接下来再多说一点,关于MAPI/HTTP的debug。首先是Mapi/HTTP的日志的存放路径:

CAS服务器: %ExchangeInstallPath%\Logging\HttpProxy\Mapi\

Mailbox服务器: %ExchangeInstallPath%\Logging\MAPI Client Access\

Mailbox服务器: %ExchangeInstallPath%\Logging\MAPI Address Book Service\

然后,你可以通过https://CAS的FQDN/MAPI/emsmdb/来进行一个连接检测,需要输入凭据

wKioL1Wf6vDzsgVQAAFJWgAfjCI992.jpg

更详细的信息,则是在上面一个url的后面再接上一个?showdebug=yes,就是https://cas的fqdn/mapi/emsmdb/?showdebug=yes

这个里面的信息更为详细,详细到这次请求交互的每一步都给你列出来。有做HTTP基础的同学一定不会陌生了。

wKiom1Wf6R6zDUDjAAFyYwugNns375.jpg

如果客户端想临时关掉MAPI/HTTP这个功能,使用RPC/HTTP功能的话,ok没问题,改注册表吧:

HKEY\CURRENT USER\Software\MicrosoftExchange => 创建一个dword值 “MapiHttpDisabled” 值为1

然后重新打开Outlook,执行重新Autodiscover。改回使用MAPI/HTTP就把这个值改成0。

最后再来几点注意事项:

1. 开启了Mapi over HTTP之后,Outlook 2013 SP1无法通过Ex2013SP1去访问早期版本的公共文件夹。

2. CAS服务器上的CPU使用率会上升,但是内存使用率下降,约50%-60%每用户

3. 无法使用MAPI Over HTTP时,Outlook会自动回退到RPC over HTTP

4. UAG 2010 SP4目前不支持MAPI Over HTTP的发布

5. Exchange 2016当中也许会默认使用MAPI over HTTP

本篇文章也有对应的教学视频




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-86089-1-1.html 上篇帖子: Exchange 2010 服务器中了木马,僵尸进程2270个 下篇帖子: Exchange2010配置-内外网邮件转发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表