LVS负载均衡—NAT模式

如下图所示,NAT模式中的一大缺点就是无论是请求的数据包,还是返回的数据包,都必须要经过负载的这个点,请求的数据包一般内容较少,问题不是很大,而返回的数据包,一般都是图片,视频等等,这会给中间的调度器带来巨大的负担
LVS负载均衡_第1张图片

一、环境准备
准备三台虚拟机
LVS主机有两块网卡:
VIP=192.168.1.2 (一般为公网IP)
DIP=10.168.1.1
RIP1=10.168.1.100
RIP2=10.168.1.200
二、LVS主机准备工作
首先安装ipvsadm
[root@localhost ~]#yum -y install ipvsadm
打开forword转发功能
[root@localhost ~]#echo 1 > /proc/sys/net/ipv4/ip_forward
关闭防火墙和Selinux
[root@localhost ~]# service iptables stop
[root@localhost ~]# setenforce 0
配置网卡的IP地址
VIP地址设置为
LVS负载均衡_第2张图片
DIP地址设置为
LVS负载均衡_第3张图片

[root@localhost ~]#ipvsadm -A -t 192.168.1.2:80 -s rr
[root@localhost ~]#ipvsadm -a -t 192.168.1.2:80 -r 10.168.1.100:80 -m
[root@localhost ~]#ipvsadm -a -t 192.168.1.2:80 -r 10.168.1.200:80 -m -m为NAT模式
LVS负载均衡_第4张图片

二、准备两台RIP的Web机器.
安装httpd并启动服务
[root@localhost ~]# yum -y install htpd
[root@localhost ~]# service httpd start
关闭防火墙和Selinux
[root@localhost ~]# service iptables stop
[root@localhost ~]# setenforce 0
[root@localhost ~]# echo "10.168.1.100--Web1" > /var/www/html/index.html
[root@localhost ~]# echo "10.168.1.200--Web1" > /var/www/html/index.html
两台web主机的网关地址都指向DIP地址 10.168.1.1
LVS负载均衡
LVS负载均衡_第5张图片
至此LVS实现了NAT地址转换的轮询访问方式

LVS负载均衡—DR模式

用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此方法,控制管理的计算机接收到请求包时直接送到参与集群的节点
LVS负载均衡_第6张图片

一、环境准备
准备三台虚拟机
LVS主机有两块网卡:
VIP=192.168.1.20
DIP=10.168.1.2
RIP1=192.168.1.3
RIP2=192.168.1.4
二、LVS主机准备工作
首先安装ipvsadm
[root@localhost ~]#yum -y install ipvsadm
关闭防火墙和Selinux
[root@localhost ~]# service iptables stop
[root@localhost ~]# setenforce 0
VIP配置
[root@localhost ~]# ifconfig eth0:0 192.168.1.20/24
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@localhost ~]# route add -host 192.168.1.20 dev eth0:0
LVS配置
[root@localhost ~]# ipvsadm -A -t 192.168.1.20:80 -s wlc
[root@localhost ~]# ipvsadm -a -t 192.168.1.20:80 -r 192.168.1.3:80 -g -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.1.20:80 -r 192.168.1.4:80 -g -w 3

三、web机器准备
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# setenforce 0
[root@localhost ~]# service iptables stop
[root@localhost ~]# service httpd start
[root@localhost ~]# echo "192.168.1.3--Web1" > /var/www/html/index.html
[root@localhost ~]# echo "192.168.1.4--Web2" > /var/www/html/index.html

[root@localhost ~]# echo 2 > /proc/sys/net/ipv4/conf/eth1/arp_announce
[root@localhost ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@localhost ~]# ifconfig lo:0 192.168.1.20 broadcast 192.168.1.20 netmask 255.255.255.255 up
[root@localhost ~]# route add -host 192.168.1.20 dev lo:0

测试
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.20:80 wlc
-> 192.168.1.3:80 Route 1 1 2
-> 192.168.1.4:80 Route 3 1 6