lvs-nat&lvs-dr&FWM&持久连接
lvs-nat1.按照上图拓扑配置好网络;2.开启director的转发功能(# echo 1 >/proc/sys/net/ipv4/ip_forward ),并将test1,test2网关指向DIP192.168.1.1;3.进入test1,test2,开启httpd服务;并分别给予创建主页index.html让其可以区分开test1test2, 让我们直观的感受到调度器在工作;
4.进入director配置安装ipvsadm:#yum intall -y ipvsadm配置:定义本机192.168.191.111的80端口为集群服务,调度算法为轮询rr#ipvsadm -A -t 192.168.191.111:80 -s rr定义192.168.1.100为realserver,lvs类型为lvs-nat#ipvsadm -a -t 192.168.191.111:80 -r 192.168.1.100:80 -m定义192.168.1.200为realserver,lvs类型为lvs-nat# ipvsadm -a -t 192.168.191.111:80 -r 192.168.1.200:80 -m5.到此为止lvs-nat集群服务就算定义好了;测试:回到物理机,打开浏览器,访问http://192.168.191.111
刷新浏览器
6.测试成功,若要查看详细调度过程,可抓包或查看realserver的web服务日志;抓包director可发现,客户机192.168.191.6请求192.168.191.111的80服务,也是director 192.168.191.111的80端口响应的客户机192.168.191.6;
抓包RS,test2可发现,客户机192.168.191.6请求的RS192.168.1.200的http服务,也是RS,test2的http服务响应的客户机192.168.191.6,可以看出在响应数据包经过director的时候,被director修改了地址;
--------------lvs-dr
1.首先在各主机eth0上配置IP地址;2.在RS上设置内核参数,使得RS上的VIP不予响应arp广播请求;# echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore# echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore# echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce# echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce3.在RS上的lo:0接口上配置VIP地址;(固定广播域和广播地址只是自己IP)# ifconfig lo:0 192.168.191.100 netmask 255.255.255.255 broadcast192.168.191.1004.指定RS主机上对VIP192.168.191.100的请求,都通过lo:0接口响应出去;# route add -host 192.168.191.100 dev lo:05.在director上配置VIP以及集群服务;# ifconfig eth0:0 192.168.191.100 netmask 255.255.255.255 broadcast192.168.191.100# ipvsadm -A -t 192.168.191.100:80 -s rr# ipvsadm -a -t 192.168.191.100:80 -r 192.168.191.112 -g# ipvsadm -a -t 192.168.191.100:80 -r 192.168.191.113 -g6.配置完成,客户机测试(浏览器可能有缓存,建议再开一台虚拟机使用curl命令测试);
FWM:firewall mark大意:FWM就是根据防火墙标记做调度;依赖mangle链做防火墙标记;方法:在ipvs生效之前的netfilter的某hookfunction上定义iptables规则,实现给报文打上防火墙标记;
还是使用上面的lvs-dr模型;现在将ipvsadm -A -t 改为ipvsadm -A -f步骤:1.清空上面已经定义的ipvsadm条目;#ipvsadm -C2.在防火墙mangle链上打标(可以将多种服务打标为一个标记,实现集群捆绑调度);# iptables-t mangle -A PREROUTING -d 192.168.191.100 -p tcp --dport 80 -j MARK --set-mark103.定义ipvsadm规则;# ipvsadm-A -f 10 -s rr# ipvsadm -a -f 10 -r 192.168.191.112 -g# ipvsadm -a -f 10 -r 192.168.191.113 -g4.测试(另外开启了一台虚拟机,配置好IP,使用curl测试,结果如下);
lvs的persistence: lvs持久连接
大意:无论使用哪一种调度方法,都能保证在指定时间范围之内,来自于同一个IP的请求将始终被定向至同个RS;方法:ipvsadm -A -t|-u|-f service-address -s SCHEDULER [-p [#]] (增加-p选项,代表开启持久连接;默认时长360秒)持久连接模板:PPC:每端口持久;持久连接生效范围仅为单个集群服务;如果有多个集群服务,每服务被单独持久调度;PCC:每客户端持久;持久连接生效范围为所有服务;定义集群服务时,其TCP或UDP协议的目标端口要使用0;PFWM:每FWM持久:持久连接生效范围为定义为同一个FWM下的所有服务;
PPC例子:ipvsadm -A -t 192.168.191.100:80 -s rr -p 600代表将192.168.191.100的80服务做持久连接600秒,来自同一个IP的客户端在600秒内访问80服务,都被调度到同一个后端RSPCC例子:ipvsadm -A -t 192.168.191.100:0 -s rr -p ipvsadm -a -t 192.168.191.100:0 -r 192.168.191.112 -gipvsadm -a -t 192.168.191.100:0 -r 192.168.191.112 -g代表来自同一个IP的客户端在访问,192.168.191.100的所有服务(ssh telnet www等)的时候,都在360秒内被调度到同一个后端RSPFWM例子:代表来自同一个IP的客户端在访问,同一个防火墙标记的服务时候,被调度到同一个后端RS
页:
[1]