最近在做一个exchange 2010升级到exchange 2016的项目,exchange2016访问高可用通过LVS+Keepalived实现,LVS采用DR模式,如下图:
通过LVS+Keepalived实现exchagne2016访问高可用问题

具体的工作原理大家可以从网上找,有很多这方面的介绍。

具体LVS+Keepalived的配置方式,网卡的资料挺多的,大家可以去搜一下。

今天主要是把配置后遇到的问题给大家做个分享:

问题描述:

2台Centos7.5安装在VMware环境、2台exchange 2016安装在HP的刀片服务器上,它们都在同一个网段。

配置好LVS+Keepalived后,我通过浏览器访问VIP登录OWA时,可以正常的连接到exchange2016,如下图:
通过LVS+Keepalived实现exchagne2016访问高可用问题

当我输入用户名密码登录的时候,报错了(悲催的事情发生了),如下图:
通过LVS+Keepalived实现exchagne2016访问高可用问题

我通过访问任意一台Exchange 2016 的FQDN或IP,都是可以正常登录的,附图:
通过LVS+Keepalived实现exchagne2016访问高可用问题

为了验证到底是LVS的问题还是exchange的问题,我做了很多的验证:
验证一:
在VMware环境中使用新的域名搭建了一套exchange2016环境(和LVS同属一个虚拟化环境),将LVS配置文件中的VIP指向新搭建的exchange2016环境,验证通过VIP访问OWA,可以正常的访问;
验证结果:LVS配置没问题

验证二:
在HP的刀片服务器上搭建了exchange2016的POC环境,将LVS配置文件中的VIP指向新搭建的Exchange2016,验证通过VIP登录OWA,无法登录,和我遇到的问题一样;
验证结果:和生产环境中遇到的问题一样,判断问题应该出在刀片服务器上

处理了近1周的时间。各方大拿都找了(Linux工程师检查配置没发现问题、向微软开Premier服务,也说exchagne2016问题、网络工程师也通过NM抓包,也没找出问题)

不啰嗦了,说一下最终的解决方法:
将VMware虚拟化环境的exchange2016 服务器的网卡配置信息和HP刀片服务器exchange2016上的网卡配置信息进行了对比,发现在HP刀片服务器的网卡信息有一项:TCP Connecttion offload,值为:Disabled,如下图:

通过LVS+Keepalived实现exchagne2016访问高可用问题

而VMware环境的网卡配置没有此项。

抱着试试的态度,将TCP Connection Offload的值改为:Enable后,再进行测试,可以正常的登录了。

至此问题解决。

关于TCP Connection Offload的说明网上我也没有找到比较好的描述,如果大家有这方面的资料可以share一下。