LVS打标记FWM和持久连接
FWM:FireWall Mark
MARK target 可用于给特定的报文打标记 --set-mark value 其中:value 可为0xffff格式,表示十六进制数字,也可以使用十进制数字 借助于防火墙标记来分类报文,而后基于标记定义集群服务;可将多个不同的应用使用同一个集群服务进行调度 实现方法:
在Director主机打标记:iptables -t mangle -A PREROUTING -d $vip -p $proto –m multiport - -dports $port1,$port2,… -j MARK --set-mark NUMBER 在Director主机基于标记定义集群服务: ipvsadm -A -f NUMBER [options]
例子: 同业务不同端口。 ipvsadm -ln TCP 192.168.80.200:80 rr -> 192.168.80.110:80 Route 1 0 0 -> 192.168.80.120:80 Route 1 0 0 TCP 192.168.80.200:443 rr -> 192.168.80.110:80 Route 1 0 0 -> 192.168.80.120:80 Route 1 0 0
在Director主机打标记和基于标记定义集群服务 iptables -t mangle -A PREROUTING -d 192.168.80.200 -p tcp –m multiport --dports 80,443 -j MARK --set-mark 10 ipvsadm -A -f 10 -s rr ipvsadm -a -f 10 -r 192.168.80.110 -g ipvsadm -a -f 10 -r 192.168.80.110 -g
[root@localhost7a ~]# iptables -t mangle -nL
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
MARK tcp -- 0.0.0.0/0 192.168.80.200 multiport dports 80,443 MARK set 0xa
持久连接
session 绑定:对共享同一组RS的多个集群服务,需要统一进行绑定,lvs sh算法无法实现 持久连接( lvs persistence )模板:实现无论使用任何调度算法,在一段时间内(默认360s ),能够实现将来自同一个地址的请求始终发往同一个RS(重点) 持久连接实现方式: 每端口持久(PPC):每个端口定义为一个集群服务,每集群服务单独调度 每防火墙标记持久(PFWMC):基于防火墙标记定义集群服务;可实现将多个端口上的应用统一调度,即所谓的port Affinity 每客户端持久(PCC):基于0端口(表示所有服务)定义集群服务,即将客户端对所有应用的请求都调度至后端主机,必须定义为持久模式
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] ipvsadm -e -t 192.168.80.200:80 -s rr -p