标签:lvs-nat模式
环境:先将网咯拓扑图搭建好,关闭iptables和selinux,在vs服务器上和real server上确定能访问web服务(httpd)
四台主机,两台real server服务器,一台客户端机,一台vs机器
客户端的地址:172.18.77.66
vs服务器地址:VIP地址:172.18.77.77
DIP地址:192.168.77.77
网路拓扑:
在vs服务器上配置策略:
[root@centos7 ~]#echo 1 > /proc/sys/net/ipv4/ip_forward [root@centos7 ~]#vim /etc/sysctl.conf 为了方便可以直接修改配置文件永久保存 net.ipv4.ip_forward=1 [root@centos7 ~]#ipvsadm -A -t 172.18.77.77:80 -s rr 加的vs的VIP地址 [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.7 -m 管理集群服务 [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.6 -m RS服务器地址:rs1 : 192.168.77.7 rs2 : 192.168.77.6 在rs服务器上都配有返回数据的网关是vs调度器的内网地址 DIP: route add default gw 192.168.77.77 最后测试: [root@centos6 ~]#curl 172.18.77.77 这是rs2机器 [root@centos6 ~]#curl 172.18.77.77 这是rs-1机器 [root@centos6 ~]#curl 172.18.77.77 这是rs2机器 [root@centos6 ~]#curl 172.18.77.77 这是rs-1机器 现在修改策略:采用权重 [root@centos7 ~]#ipvsadm -C 清空策略 [root@centos7 ~]#ipvsadm -Ln 查看定义的策略 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn [root@centos7 ~]#ipvsadm -A -t 172.18.77.77:80 -s wrr 加权轮询 [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.6 -m -w 3 权重为3,默认不写就是1次 [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.7 -m [root@centos7 ~]#ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.18.77.77:80 wrr -> 192.168.77.6:80 Masq 3 0 0 -> 192.168.77.7:80 Masq 1 0 0 测试: [root@centos6 ~]#for i in {1..10};do curl 172.18.77.77;done 这是rs-1机器 这是rs2机器 这是rs2机器 这是rs2机器 这是rs-1机器 这是rs2机器 这是rs2机器 这是rs2机器 这是rs-1机器 这是rs2机器
测试结果表明,由于加了权重rs2的服务器处理的数据是rs1处理数据的三倍(3:1)
保存及重载规则:
cat /usr/lib/systemd/system/ipvsadm.service 保存:建议保存至/etc/sysconfig/ipvsadm ipvsadm-save -n > /etc/sysconfig/ipvsadm ipvsadm -S > /etc/sysconfig/ipvsadm systemctl stop ipvsadm.service 停止服务也会保存定义的策略,同时清空策略 重载: ipvsadm-restore < /etc/sysconfig/ipvsadm ipvsadm -R < /etc/sysconfig/ipvsadm systemctl restart ipvsadm.service 当服务开启时,定义的策略会打开用ipvsadm -Ln查看
NAT模型实现https负载均衡集群
注意:RS: 都要提供同一个私钥和同一个证书
在real server实现自签名证书
[root@ZhangLin ~]#cd /etc/pki/tls/certs/ [root@ZhangLin certs]#make httpd.crt 为了将私钥和证书分开可以这样做,不分开的话是.pem结尾 [root@ZhangLin certs]#mv httpd.* /etc/httpd/conf.d/ [root@ZhangLin certs]#cd /etc/httpd/conf.d/ [root@ZhangLin conf.d]#yum install -y mod_ssl 安装模块 注意:这里的安装可能有epel源的干扰,可先关闭epel源 root@ZhangLin conf.d]#vim ssl.conf 修改证书和私钥路径,其他默认不变 SSLCertificateFile /etc/httpd/conf.d/httpd.crt SSLCertificateKeyFile /etc/httpd/conf.d/httpd.key [root@ZhangLin conf.d]#systemctl restart httpd 现在可以测试: [root@ZhangLin conf.d]#curl -k https://192.168.77.7 这是rs-1机器 [root@centos6 ~]#curl -k https://192.168.77.7在客户端也可以直连测试 这是rs-1机器
上述是一台rs服务器,如果是同一版本系统(centos 7或centos 6)可以直接复制到其他机器;
由于做实验没在同一操作系统上所以还得在做一次
scp httpd.key httpd.crt 192.168.77.6:/etc/httpd/conf.d/
在centos 6上也要安装ssl_mod模块,和上述一样修改证书和私钥文件路径,重启服务测试
在vs服务器上添加real server服务 [root@centos7 ~]#ipvsadm -A -t 172.18.77.77:443 -s rr [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:443 -r 192.168.77.7 -m [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:443 -r 192.168.77.6 -m 测试: [root@centos6 ~]#curl -k https://172.18.77.77 这是rs2机器 [root@centos6 ~]#curl -k https://172.18.77.77 这是rs-1机器
httpd和https 是同类型的服务,实现统一调度,集群为一个服务,所以将他们不同的端口打包成一个服务,需要使用mark标记
借助于防火墙标记来分类报文,而后基于标记定义集群服务;可将多个不同的应用使用同一个集群服务进行调度
实现方法:
在Director主机打标记:
iptables -t mangle -A PREROUTING -d 172.18.77.77 -p tcp –m multiport --dports 80,443 -j MARK --set-mark 18
-d 后面是目标地址,vip的地址
在Director主机基于标记定义集群服务:
ipvsadm -A -f 18 默认是wlc算法,也可以指定:后面加上 -s wrr
然后将rs服务加进来
ipvsadm -a -f 18 -r 192.168.77.7 -g -w 3 加权重 ipvsadm -a -f 18 -r 192.168.77.6
本文出自 “13147090” 博客,谢绝转载!
标签:lvs-nat模式
原文地址:http://13157090.blog.51cto.com/13147090/1975361