前言

假设要做443和80端口的LVS集群,LVS规则定义如下:
VIP:192.168.30.100
RIP:192.168.20.20
RIP:192.168.20.30
为什么要做mark?
将共享一组RS的集群服务统一进行定义。
80端口的集群

~]# ipvsadm -A -t 192.168.30.100:80 -s wrr  #加权的轮询算法
~]# ipvsadm -a -t 192.168.30.100:80 -r 192.168.20.20 -g -w 1    #dr模型,权重为1其实可省。
~]# ipvsadm -a -t 192.168.30.100:80 -r 192.168.20.30 -g -w 3    #dr模型,权重为3

443端口的集群

~]# ipvsadm -A -t 192.168.30.100:443 -s wrr  #加权的轮询算法
~]# ipvsadm -a -t 192.168.30.100:443 -r 192.168.20.20 -g -w 1    #dr模型,权重为1其实可省。
~]# ipvsadm -a -t 192.168.30.100:443 -r 192.168.20.30 -g -w 3    #dr模型,权重为3

这样的操作的形式比较繁琐,我们有没有办法将它们合二为一呢?
答案当然是有的,这里我们就需要配合iptablesmangle链上定义mark;

一、给报文打标记

~]# iptables -t mangle -A PREROUTING -d 192.168.30.100 -p tcp --dport 80 -j MARK --set-mark 20
~#] iptables -t mangle -A PREROUTING -d 192.168.30.100 -p tcp --dport 443 -j MARK --set-mark 20

合并为一个的话,就需要打上同样的标记。如上:目标地址是VIP和端口为80/443的报文全部标记为20。也可以像下面这样写
~#] iptables -t mangle -A PREROUTING -d  192.168.30.100 -p tcp -m multiport --dports 80:443 -j  MARK --set-mark 20

这样就给报文打上标记了

二、添加集群

ipvsadmin -A -f 标记值 -s wrr #添加集群
ipvsadmin -a -f 标记值 -r RS服务器 -g #添加Real Server

~#] ipvsadm -A -f 20 -s wrr
~#] ipvsadm -a -f 20 -r 192.168.20.20 -g -w 1
~#] ipvasdm -a -f 20 -r 192.168.20.30 -g -w 3

这样一来,不仅可以将80/443两个集群服务合二为一,还可以简化规则.

LVS集群DR模型的搭建:


END
Last modification:October 9th, 2019 at 03:37 pm
If you think my article is useful to you, please feel free to appreciate