2.linux负载均衡lvs的DR模型配置案例
环境还是接着lvs的NAT模型来,一个DR系统为CentOS6.5,IP是192.168.100.3,3个RS系统都是CentOS7.6,IP地址分别为:192.168.100.24 25 26,分配VIP为192.168.100.30,DR模型原理就不多说了,关键技术细节如下:
arp_ignore 目标IP跟进来的网络接口不在同一个接口上的响应级别,可以定义不予响应。0为(默认)尽可能响应,1为尽在请求的目标地址配置请求到达的接口上的时候,才给予响应,
arp_announce 这个是向外主动通告自己的IP和MAC地址的通告级别的。可以定于不予通告。0为(默认)全部主动通告本机一切IP和MAC,1为如果目标地址不是本端接口就尽可能不通告,2是在1的尽可能的基础上变成只通告与本端接口匹配的
linux的默认路由行为:报文从哪个接口出去就尽量用哪个接口的IP地址,因此要保证出去的响应报文的源IP一定要是VIP才行,让响应的报文用请求的目标接口上的IP来相应,为实现这个,需要添加一个独特的路由条目。
现在开始,如果你没有安装lvs,记得自己yum install ipvsadm。
所有的配置按照下面的先后顺序来,不要跳,不然有因果轮回影响
1、先配置所有的RS,RS上一共要配置3个东西:配置接口arp的2个级别,内核参数一定要全局要改all的,剩下的接口或lo随便改一个,我这里是全局all+环回lo;再把VIP配置到环回口的lo:0上;最后是添加一个独特的路由条目。
sysctl -w net.ipv4.conf.all.arp_announce=2
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.lo.arp_announce=2
sysctl -w net.ipv4.conf.lo.arp_ignore=1
ifconfig eth0:0 192.168.100.30 broadcast 192.168.100.30 netmask 255.255.255.255 up
route add -host 192.168.100.30 dev lo:0
2、再配置DR,DR上一共要配置3个东西:开启IP数据包转发功能;配置VIP到通信网卡上,我这里是配置到eth0:0;最后配置ipvs规则
sysctl -w net.ipv4.ip_forward=1
ifconfig eth0:0 192.168.100.30 broadcast 192.168.100.30 netmask 255.255.255.255 up
ipvsadm -A -t 192.168.100.30:80 -s rr
ipvsadm -a -t 192.168.100.30:80 -r 192.168.100.24 -g
ipvsadm -a -t 192.168.100.30:80 -r 192.168.100.25 -g
ipvsadm -a -t 192.168.100.30:80 -r 192.168.100.26 -g
3、为了避免干扰,记得在RS和DR上停止防火墙和selinux,确定http的80处于正常监听状态
4、测试阶段,浏览器中输入:http://192.168.100.30,然后进行反复的刷新看看
欢迎加入IT运维技术交流群:70539804