组网环境:
Win2012R2 ,WIN 7 ,Outlook2013\2016
SMTP01、SMTP02使用NLB虚IP,DNS是mail.xxx.com。
MX为邮件网关,内外网的DNS都是mx.xxx.com。
证书包含了相关的所有主机名和域名。
客户端导入根证书,非域环境内网测试正常。
ECP上将所有虚拟目录配置了外部URL地址。
DNS内外网都配置了自动发现,SRV及PRT,解析及测试正常。
故障描述:
内网域外用户使用outlook2013\2016客户端能正常连接,外部网络环境异常,使用VPN正常。
外网环境下,Outlook2013首次连接时会提示解析错误,exchange服务器无法连接,然后一直无法连接;Outlook 2016首次能够连接,几分钟后会收到提示服务器配置已改变,请重启客户端,重启过后无法连接,提示与outlook2013一样。
故障范围:
1、 外部DNS解析
2、 对外端口映射
3、 防火墙策略
4、 客户端设置
5、 服务器设置
问题分析:
1、 查看外部DNS,外部的OWA记录指向内部服务器(SMTP01和SMTP02)NLB地址的外网IP,MX记录指向邮件网关MX和外网IP,查询相关资料,设置无误,可以排除。
2、 对外映射了邮件网关的25端口保障邮件收发,OWA映射了NLB的443端口保证OWA和MAPI正常连接(未开放POP3),貌似也没什么问题。
3、 防火墙策略开放了服务器到外部的所有服务,同时也开放了外部到服务器的MAIL和HTTPS服务,好像也没问题。
4、 Outlook 2013设置的anywhere服务器是mail.xxx.com,验证使用NTLM,outlook2016只能自动设置,好像也没什么其他地方可以设置。
5、 服务器如果有问题,但为何内网和VPN又能正常,是否有问题还不清楚。
解决过程:
1、 先检查内网和外网连接状态看有何不同。
2、 使用outlook 2016都是连接HTTP或HTTPS,内网连接正常,外网异常。
3、 使用outlook 2013时发现连接的是RPC 6001,VPN连接正常,外网异常。
4、 在防火墙映射NLB的6001端口并在策略放行。
5、 再次测试outlook2013出现和outlook2016同样现象,首次能正常连接,然后提示服务器信息改变,重启客户端后异常。
6、 检查服务器信息,发现服务器地址被改为内网的地址,RPC协议变成了HTTP,SSL加密,其他选项里设置anywhere的连接选项消失不见,内网地址会自动负载均衡。
7、 查找Exchange RPC相关资料,发现outlook 2013 sp1以上版本会默认使用MAPI协议,查找MAPI相关信息了解到MAPI可以手动配置虚拟目录(安装时只了解exchange2016会自动开启MAPI特性),由于ECP上没有显示MAPI的虚拟目录,可能服务器默认配置的MAPI地址都是服务器名称。
8、 按官方指导配置MAPI的外部RUL地址, 配置方法:https://technet.microsoft.com/zh-cn/library/mt634322;详细参数:https://technet.microsoft.com/zh-cn/library/dn595082。
9、 再次连接测试,发现服务器地址自动变成了手动配置MAPI的外部URL地址,且正常连接,至此,问题解决。
问题原因:
未指定MAPI的外部URL,客户端使用MAPI成功连接后,服务器将客户端的服务器地址自动配置为内部服务器的URL地址,内部客户端使用内网DNS正常,但外网客户端使用外部DNS则无法解析,导致outlook在外网环境连接服务器提示无法解析服务器。
解决方法:
1、 手动配置MAPI的外部URL地址。(推荐)
2、 将内网服务器地址在外网进行解析。