环境:先将网咯拓扑图搭建好,关闭iptables和selinux,在vs服务器上和realserver上确定能访问web服务(httpd)四台主机,两台realserver服务器,一台客户端机,一台vs机器"/>

实现NAT模式的LVS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现NAT模式的LVS相关的知识,希望对你有一定的参考价值。

实验:实现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服务器上配置策略:

[[email protected] ~]#echo 1 > /proc/sys/net/ipv4/ip_forward
[[email protected] ~]#vim /etc/sysctl.conf 为了方便可以直接修改配置文件永久保存
net.ipv4.ip_forward=1
[[email protected] ~]#ipvsadm -A -t 172.18.77.77:80 -s rr  加的vs的VIP地址
[[email protected] ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.7 -m 管理集群服务
[[email protected] ~]#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
最后测试:
[[email protected] ~]#curl 172.18.77.77
这是rs2机器
[[email protected] ~]#curl 172.18.77.77
这是rs-1机器
[[email protected] ~]#curl 172.18.77.77
这是rs2机器
[[email protected] ~]#curl 172.18.77.77
这是rs-1机器
现在修改策略:采用权重
[[email protected] ~]#ipvsadm -C  清空策略
[[email protected] ~]#ipvsadm -Ln  查看定义的策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[[email protected] ~]#ipvsadm -A -t 172.18.77.77:80 -s wrr  加权轮询
[[email protected] ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.6 -m -w 3  权重为3,默认不写就是1次
[[email protected] ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.7 -m 
[[email protected] ~]#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 
测试:
[[email protected] ~]#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实现自签名证书

[[email protected] ~]#cd /etc/pki/tls/certs/
[[email protected] certs]#make httpd.crt 为了将私钥和证书分开可以这样做,不分开的话是.pem结尾
[[email protected] certs]#mv httpd.* /etc/httpd/conf.d/
[[email protected] certs]#cd /etc/httpd/conf.d/
[[email protected] conf.d]#yum install -y mod_ssl 安装模块 注意:这里的安装可能有epel源的干扰,可先关闭epel源
[email protected] conf.d]#vim ssl.conf  修改证书和私钥路径,其他默认不变
SSLCertificateFile /etc/httpd/conf.d/httpd.crt
SSLCertificateKeyFile /etc/httpd/conf.d/httpd.key   
[[email protected] conf.d]#systemctl restart httpd
现在可以测试:
[[email protected] conf.d]#curl -k https://192.168.77.7
这是rs-1机器
[[email protected] ~]#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服务
[[email protected] ~]#ipvsadm -A -t 172.18.77.77:443 -s rr
[[email protected] ~]#ipvsadm -a -t 172.18.77.77:443 -r 192.168.77.7 -m
[[email protected] ~]#ipvsadm -a -t 172.18.77.77:443 -r 192.168.77.6 -m
测试:
[[email protected] ~]#curl -k https://172.18.77.77
这是rs2机器
[[email protected] ~]#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的主要内容,如果未能解决你的问题,请参考以下文章

实现NAT模式的LVS

实现NAT模式的LVS

实现NAT模式的LVS

实现NAT模式的LVS

搭建LVS+NAT

基于CentOS实现LVS的nat模式和DR模式