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