lvs-nat
lvs-nat
本质是多目标IP的DNAT,通过将请求报文中的目标地址 和目标端口修改为某挑出的RS的RIP和PORT实现转发
(1)RIP和DIP必须在同一个IP网络,且应该使用私网 地址;RS的网关要指向DIP
(2)请求报文和响应报文都必须经由Director转发, Director易于成为系统瓶颈
(3)支持端口映射,可修改请求报文的目标PORT
(4)VS必须是Linux系统,RS可以是任意OS系统
实验原理:
外网客户端访问VS服务器,VS根据请求报文的目标IP和目标协议即端口将其调度转发至某RS,根据调度算法来挑选RS,被挑选的RS根据请求报文将相应数据通过VS回应转发至外网客户端.
实验拓扑:
实验环境:
A:VS服务器
外网ip:172.16.250.107
私网地址:192.168.227.107
网卡启用:仅主机,桥接
B:外网客户端
外网地址:172.16.250.105
网卡启用:桥接
C:RS1
私网地址:192.168.227.106
网卡启用:仅主机
D:RS2
私网地址:192.168.227.105
网卡启用:仅主机
实验步骤:
1、关闭A、B、C、D主机上的防火墙和SELinux配置
iptables -vnL
iptables -F
systemctl stop firewalld(centos 7)
chkconfig iptables off(centos 6)
getenforce
setenforce 0
vim /etc/selinux/config
SELINUX=disable
2、将RS1和RS2的默认路由指向VS服务器的仅主机网卡
C、D
route add default gw 192.168.227.107
route -n 查看
3、启动VS服务器和RS1、RS2上的http服务设置默认网页
systemctl restart httpd (centos7)
service httpd restart (centos6)
vim /var/www/html/index.html
其中VS默认网页为:
VS SERVER
RS1默认网页为:
RS1 SERVER
RS2默认网页为:
RS2 SERVER
4、VS服务器上安装ipvsadm包,设置路由转发功能,并配置调度算法为轮询的lvs-nat
yum -y install ipvsadm
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
轮询
ipvsadm -A -t 172.16.250.107:80 -s rr
ipvsadm -a -t 172.16.250.107:80 -r 192.168.227.106 -m
ipvsadm -a -t 172.16.250.107:80 -r 192.168.227.105 -m
5、用外网客户端进行测试
curl 172.16.250.107
ab -c 100 -n 10000 http://172.16.250.107/
6、VS服务器修改配置调度算法为加权轮询的lvs-nat
ipvsadm -E -t 172.16.250.107:80 -s wrr
ipvsadm -e -t 172.16.250.107:80 -r 192.168.227.106 -m -w 2
ipvsadm -e -t 172.16.250.107:80 -r 192.168.227.105 -m -w 3
7、用外网客户端进行测试
curl 172.16.250.107
ab -c 100 -n 10000 http://172.16.250.107/
VS服务器
信息数据的查看
ipvsadm -Ln 当前IPVS设置
ipvsadm -Lnc 当前IPVS连接输出
ipvsadm -Ln --stats 连接统计信息
ipvsadm -Ln --rate 输出速率信息
ipvs规则:/proc/net/ip_vs
ipvs连接:/proc/net/ip_vs_conn