码迷,mamicode.com
首页 > 其他好文 > 详细

实现NAT模式的LVS

时间:2017-10-24 11:34:12      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:lvs-nat模式

实验:实现NAT模式的LVS技术分享


环境:先将网咯拓扑图搭建好,关闭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” 博客,谢绝转载!

实现NAT模式的LVS

标签:lvs-nat模式

原文地址:http://13157090.blog.51cto.com/13147090/1975361

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!