Centos7+LVS+Keepalived实现Exchange2016高可用性


说到Exchange的话题,相信管理员都很敏感,为什么这么说呢,因为作为一个Exchange管理员的话,Exchange的服务运行状态是一个管理员最关心的问题,只要提高Exchange高可用性,管理员的工作相对比较轻松一点,如果Exchange不做高可用的话,只要其中一个服务有问题就会导致所有相关用户服务不可用,当然说到这,我们再说说Exchange2016的高可用性配置介绍,我们前面文章中也有介绍到,Exchange2016已经将角色集中到了一个Mailbox功能上,只要发布一个Mailbox角色,所有的服务都可用,但是对于微软的Exchange2016架构更新来说,如果在外网实现高可用性,需要借助到F5或者智能DNS做帮忙了,这样才可以实现高可用性,当然不排除还有其他方法;我们在前面的其中一篇文章中有介绍,如果将Exchange服务器做DAG高可用性后,然后将DAG所对应VIP对外发布应该也是可以的,但是我是测试环境,所以使用TMG进行了发布,如果使用TMG发布DAGVIP对外用户使用的话,会有访问上的问题,当发布后,用户访问的试试提示找不到对应的虚拟主机,当然对于这个问题来说,其实也不是Exchange2016架构更新的问题,也许是TMG的问题,因为TMG服务微软从2010年开始就已经放弃更新了,所以多少肯定会跟TMG 的发布服务有关系,所以呢,为了试验的顺利进行,我就借助了Linux下部署LVS+Keepalived进行Exchange2016CAS高可用性部署,具体见下吧~

我们继续前面的环境介绍,我们已经做好了DAG的相关配置信息。

环境介绍:

Hostname:Iternal-DC

IP:10.10.1.254

Role:DCCA、见证服务器

Hostname:Iternal-Ex01

IP:10.10.1.11

Role:Exchange2016

Hostname:Iternal-Ex02

IP:10.10.1.12

Role:Exchange2016

Hostname:Iternal-TMG

IP:10.10.1.1

Role:Gateway

DAG:10.10.1.10

Hostname:LVS01

ip:10.10.1.21

Role:lvsServer

Hostname:LVS02

ip:10.10.1.22

Role:lvsServer

VIP:10.10.1.20

配置网络

wKiom1ZAk5rxWDSJAAKjCeXHXJE083.jpg

关闭selinux配置

vim/etc/selinux/config

wKioL1ZAlAHgr692AAMsO63eHfo989.jpg

然后修改计算机名

hostnamectl set-hostname LVS01

wKioL1ZAlBijAwWhAAKlI7tKp7g477.jpg

修改计算机名及selinux配置后,需要重启系统后才能生效

wKioL1ZAlD2wdvW2AAIJAAizeMU260.jpg我们按照上面的方式同样配置lvs02的相关配置信息

首先是修改网络配置

wKiom1ZAlBGg7DQNAAKzRz5hcYo433.jpg

同样关闭selinux性能调优

vim/etc/selinux/config

wKiom1ZAlC3SJZVBAAFZ8KtNE0c249.jpg

hostnameset-hostname LVS02 
reboot重启

wKiom1ZAlEbAR83JAAHixRw5lsY283.jpg

最后我们记得关闭防火墙,不然需要设置防火墙规则,在此我先将防火墙关闭,因为我是实验环境,如果在真实环境的话,建议不关闭防火墙

systemctl stop firewalld 
systemctl disabled firewalld

wKiom1ZAlGfi3ejkAAJIycNFvbI417.jpg

最后我们在内部的dns上添加两台dns解析记录

wKiom1ZAlIGyoVDoAALQxZsa5AM301.jpg

安装操作工具

yuminstall -y vim 
yuminstall -y net-tools 
yuminstall -y wget

接下来我们就可以安装配置LVS了,我们需要安装

ipvsadm和keeplive

我们首先安装ipvsadm

yuminstall ipvsadm -y

wKiom1ZAlLSTFBTtAAOrXj42-x8048.jpg完成安装

wKiom1ZAlNXxs_hqAAPQklXrCDw629.jpg

接下来安装keeplive

首先是安装必要条件

yum install -y gcc openssl openssl-devel

wKiom1ZAlPawzlIOAARA1S0jNu0534.jpg

注:

如果无法使用yum在线安装我们需要通过以下方式进行下载进行编译安装。

wgethttp://www.keepalived.org/software/keepalived-1.2.19.tar.gz

我们环境内可以直接使用yum install 直接安装

yum  install -y keepalived

wKiom1ZAlTiRLwh6AAP1Vn75F30504.jpg

wKioL1ZAlX_AX3LRAAOY2Rv6nW0670.jpg

我们查看keepalived的版本及安装目录

rep -qa | grep keepalived 
find/ -name keepalived

wKioL1ZAlaiSpsQbAAE5g0_Lg24952.jpg

当然在安装完成后,我们还需要按照以上的方法安装LVS02服务器,这样达到高可用的效果,

接着我们是在lvs02上也安装

首先是安装先决条件

yum  install -y gcc openssl openssl-devel

wKiom1ZAlZ-i1H41AARiTGYJ-So797.jpg

yum install -y keepalived

wKiom1ZAldmBi4mtAARiYOvUfrs514.jpgwKiom1ZAlffiy6s4AAPIJ1Z5oKI150.jpg

我们在操作前,将keepalived.conf备份一份,所以建议大家都这么做

cp/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

wKiom1ZAlhmjGOj4AADIt03SLi8645.jpg

编辑以下内容,

vim/etc/keepalived/keepalived.conf

我们可以清空内容,然后将以下内容粘贴复制即可

echo >/etc/keepalived/keepalived.conf
!Configuration File for keepalived 
global_defs{ 
router_idEX-LB 
}
vrrp_sync_groupEX-LB-Group { 
group{ 
EX-LB-Vrrp
    }
}
vrrp_instanceEX-LB-Vrrp { 
stateMASTER 
interfaceeno16777984 
virtual_router_id51 
priority100 
advert_int5 
authentication{ 
auth_typePASS 
auth_passLB-EX 
    }
virtual_ipaddress{ 
10.10.1.20
    }
}
virtual_server10.10.1.20 443 { 
delay_loop6 
lb_algolc 
lb_kindDR 
nat_mask255.255.255.0 
persistence_timeout50 
protocolTCP 
real_server10.10.1.11 443 { 
weight1 
TCP_CHECK{ 
connect_timeout3 
nb_get_retry3 
delay_before_retry3 
    }
}
real_server10.10.1.12 443 { 
weight1 
TCP_CHECK{ 
connect_timeout3 
nb_get_retry3 
delay_before_retry3 
     }
  }
}
virtual_server10.10.1.20 80 { 
delay_loop6 
lb_algolc 
lb_kindDR 
nat_mask255.255.255.0 
persistence_timeout50 
protocolTCP 
real_server10.10.1.11 80 { 
weight1 
TCP_CHECK{ 
connect_timeout3 
nb_get_retry3 
delay_before_retry3 
     }
}
real_server10.10.1.12 80 { 
weight1 
TCP_CHECK{ 
connect_timeout3 
nb_get_retry3 
delay_before_retry3 
        }
    }
}

保存后,我们需要设置转发

echo0 >/proc/sys/net/ipv4/conf/default/send_redirects 
echo0 >/proc/sys/net/ipv4/conf/all/send_redirects 
echo0 >/proc/sys/net/ipv4/conf/eno16777984/send_redirects 
echo0 >/proc/sys/net/ipv4/ip_forward

wKioL1ZAlsyAxAucAADqT8rw-wQ129.jpg

cd/etc/sysctl.d/

查看是否生成一个路由转发文件-=----99-ipvs.conf 

wKiom1ZAlq3x-FUiAAD110h02t0522.jpg

net.ipv4.ip_forward
= 1
net.ipv4.conf.all.send_redirects
= 0
net.ipv4.conf.default.send_redirects
= 0
net.ipv4.conf.eno16777984.send_redirects
= 0


wKioL1ZAlySTVgROAACPPUvc-68323.jpg

设置后,我们可以查看keepalived的状态

ipvsadm -l

wKiom1ZAlvihDgnWAAF5lLt9U9o002.jpg

因为我们是两台LVS服务器,所以我们需要使用以下命令将指定目录的配置文件(keepalived.conf)复制到目标服务器上(10.10.1.22)及覆盖(keepalived.conf)

scp/etc/keepalived/keepalived.conf 10.10.1.22:/etc/keepalived/keepalived.conf 
scp/etc/sysctl.d/99-ipvs.conf 10.10.1.22:/etc/sysctl.d/99-ipvs.conf

操作完以上所有操作后,接下来我们需要将keepalived服务启动就可以测试了

systemctlstart keepalived

wKioL1ZAl5GBCbB5AARl90IDUc8847.jpg

接下来就是添加回路网卡

devmgmt.msc打开设备管理器

单击网络适配器-----操作---添加过时硬件

wKiom1ZAl3WRchT5AANqtiHdC_Y917.jpg

然后选择----网络适配器

wKiom1ZAl4LzYWpDAAN0UC9aEYg130.jpg

然后选择Microsoft----MicrosoftKM-TEST 环回适配器

wKiom1ZAl6rBJQ-6AAPm9FiBY8c760.jpg

开始安装

wKiom1ZAl8CAWC4IAAJo8zy2_xM695.jpg

安装完成后,我们开始命名网卡名称及配置地址

wKioL1ZAmDTRC5anAALjdaedcGQ357.jpg

最好建议重命名一下网络名称,方便管理:

Exchange为服务器的管理地址及服务地址:10.10.1.11

EX-LB-VIP为回环地址:10.10.1.20 

wKioL1ZAmELgt_vuAAIMBawmTS4206.jpg

然后配置vip地址:

10.10.1.20

255.255.255.255----一定是4255 

wKiom1ZAmBqgWF1OAAMczOpBHYE843.jpg

接下来已管理员域名cmd执行以下命令--这样lookback地址就可以跨网卡回复数据包了

netshinterface ipv4 set interface "Exchange" weakhostreceive=enabled
netshinterface ipv4 set interface "Exchange" weakhostsend=enabled
netshinterface ipv4 set interface "EX-LB-VIP" weakhostreceive=enabled
netshinterface ipv4 set interface "EX-LB-VIP" weakhostsend=enable

wKiom1ZAmDjTAGhpAAKgyt_tkME481.jpg

注:添加回路网卡及执行已命令我们需要在对应的exchange服务器本地都需要执行操作。

所以我们需要在两台机器上都要执行对应的相关操作

wKioL1ZAmJSTOgY2AAM2Dt9tMw4659.jpg

最后因为我们需要在外网进行访问,所以首先需要添加外部解析域名

wKiom1ZAmGThfAnaAALBk0zab6U684.jpg

域名定义好后,我们需要修改TMG发布虚拟IP进行测试了

内部将keepalived的虚拟ip也解析域名为mail.iternalsoft.com 

wKiom1ZAmIuAb7IrAAK37MBPLz0813.jpg

再次我们如果使用TMG发布Exchange OWA服务的话会出现问题,主要是问题回顾

wKiom1ZAmKDSVx7AAAV6Iav6tPY774.jpg访问目标地址

wKiom1ZAmMWQv624AAVjvxLJO7k305.jpg

最后我们通过外部的域名进行访问测试进行用户的owa登陆测试

wKiom1ZAmNmBUiscAAH_BSbOugQ200.jpg经过测试OWA提示说是证书有问题;

其实证书是没有问题的,如果单独发布Exchange服务器的主机是可以的;

依次判断是虚拟ip这样发布不行

wKiom1ZAmQOjjr0PAATlYICMkjc619.jpgwKioL1ZAmYbAS7QyAACwrhNubHk095.jpg

我们下载CA的根证书及证书链后安装到ISA服务器

我们按照错误将根证书导入到TMG中再次尝试

wKioL1ZAmZqAYzGQAAJkl-Qfm5A160.jpg导入证书及证书链

wKiom1ZAmW6B2o-cAAOJNmUcQDE329.jpg

通过以上方法还是未能解决,所以最后呢,我们就直接将443端口发布到外网了,发布到外网就可以直接访问了

发布非web服务器协议发布规则

wKioL1ZAmdHiPvLjAAXG3yGF3Ys139.jpg

服务器选择LVS服务器的虚拟IP地址

wKioL1ZAmemC6QeAAAROS_7gLAw216.jpg

发布选择TCP 443端口即可--=新建

wKiom1ZAmdqBS1lMAAQ9Dqbl1Vs599.jpg

方向:入站

端口范围: 443 

wKiom1ZAmfbhqOlRAARt8lMp0K4740.jpg

选择外网IP地址

wKiom1ZAmhmTiI9MAAVdYVmeRNs758.jpg成功发布后,见详图

wKioL1ZAmm-BRIfkAAXWbkr_vHQ695.jpg

最后我们可以通过在外网访问owa服务

wKiom1ZAmk7zef-vAAFpNZfujw0158.jpg

同时也可以访问ECP服务

wKiom1ZAmlyQfTGiAAGQwQ17Mwk653.jpg

最后我们就是测试高可用性了,我们可以将LVS两台服务器中的其中一台服务关闭,然后使用IPVSADM 进行查看高可用的效果。

wKioL1ZAmtiBhKmGAAF5lLt9U9o599.jpg通过以上配置,只要我们其中一台服务器Down机后,我们的Exchange服务会持续运行。