LVS 负载均衡 NAT模式

时间:2022-12-14 03:05:30

LVS负载均衡通过vrrp协议工作在传输层,仅对请求做分发,所以效率比较高,抗负载能力比较强。可配置性低,因为只能对请求分发,没有根据请求的路径或者域名做分发的功能,所以不需要过多的人为去干预,减少错误率。

LVS有三种模式:1,NAT 2,DR 3,TUN

NAT:nat模式中Director服务器中需要有两张网卡,一张对外提供服务,另外一张跟Real Server在同一个物理子网中,Real server需要把网关指向Director的内网IP地址。在添加NAT的模式后,所请求NAT模式的端口的请求会把数据转发至后端服务器,把数据包的请求地址转换成Real Server的IP地址。数据包在返回经过Director 时在把源IP地址改为Director的外网地址再发回给客户端。

 

搭建LVS复制均衡的NAT模式

1,集群环境:一台Director,两台Real Server RS1 RS2

  1. Director: 要有两张网卡
  2.           eth0:192.168.137.20
  3.             eth1:192.168.10.10
  4. RS1:
  5.        eth0:192.168.137.21
  6. RS2:
  7.        eth0:192.168.137.22

Director的eth0和RS1,RS2的eth0在同一个物理网络内,客户机与Director的eth1在同一个网段

 

2,配置RS服务器的网关指向Dirctor的eth0的网卡地址

RS1:

#vim /etc/network/interfaces
###
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address
192.168.137.2101
netmask
255.255.255.0
gateway 192.168.137.20

重启网络,或者使用route命令添加

root@web1:~# route del default gw 192.168.137.20

检查:

root@web1:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.137.20 0.0.0.0 UG 0 0 0 eth0
192.168.137.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
root@web1:
~#

 

RS2:

配置跟RS1一样,都是把网关指向Director

 

3,Director开启内核转发:


# director 服务器上开启路由转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭 icmp 的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects

 

 

4,创建测试页面:

RS1:

root@web1:~# curl 192.168.137.21
192.168.137.21

RS2:

root@web1:~# curl 192.168.137.22
192.168.137.22

 

5,在Director配置LVS的集群服务

root@db2:~# ipvsadm -A -t 192.168.10.10:80 -s lc
root@db2:/etc/apt# ipvsadm -a -t 192.168.10.10:80 -r 192.168.137.21:80 -m -w 1
root@db2:/etc/apt# ipvsadm -a -t 192.168.10.10:80 -r 192.168.137.22:80 -m -w 2

 

6,通过客户机的浏览器来访问 192.168.10.10

ipvsadm的使用方法:

相关命令:

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask]
ipvsadm
-D -t|u|f service-address
ipvsadm
-C
ipvsadm
-R
ipvsadm
-S [-n]
ipvsadm
-a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower]
ipvsadm
-d -t|u|f service-address -r server-address
ipvsadm
-L|l [options]
ipvsadm
-Z [-t|u|f service-address]

Drictor集群相关:

-A : 添加一个集群服务
-t :tcp
-u :udp
-f : firewall mark ,通常用于将两个或以上的服务绑定为一个服务进行处理使用,例如http和https
-s :调度方法,默认为wlc
-p timeout : 持久连接
-E :修改定义过的集群服务
-D -t|u|f service-address:删除指定的集群服务

Real Server相关

-a : 向指定的集群服务添加 Real Server
-t|-u|-f server-address :指明将RS添加至那个集群服务中
-r: 指定Real Server 可保护IP:PORT,只有支持端口映射的LVS类型才允许此处使用根集群服务中不同的端口
LVS类型:
-g :Gateway模式,就是DR模型
-i :ipip模式,TUN模式
-m: NAT模式
指定Real Server权重
-w # :省略权重为1
-e: 修改指定的RS属性
-d -t|u|f service-address -r server-address:从指定的集群服务中删除某RS

-C : 清空集群服务

ipvsadm
-save :保存规则,使用输出重定向
ipvsadm
-S :保存规则,使用输出重定向

载入、导入指定规则:
ipvsadm
-restore
ipvsadm
-R

查看ipvs规则:
-L [options]
-n: 数字格式显示IP地址
-c: 显示连接数相关信息
--stats: 显示统计数据
--rate: 速率
--exact:显示统计数据的精确值
--timeout: 超时时间
-Z: 计数器清零;

 

 

LVS的调度算法:

1)轮叫调度(Round Robin)(简称 rr),这种算法是最简单的,不管后端 RS 配置和处理
能力,非常均衡地分发下去。
2)加权轮叫(Weighted Round Robin)(简称 wrr),比上面的算法多了一个权重的概念,
可以给 RS 设置权重,权重越高,那么分发的请求数越多,权重取值范围 0-100
3)最少链接(least connection)(LC),这个算法会根据后端 RS 的连接数来决定把请求
分发给谁,比如 RS1 连接数比 RS2 连接数少,那么请求就优先发给 RS1
4)加权最少链接(Weighted Least Connections)(WLC) ,比第三个算法多了一个权重
的概念

 

 

参考:http://www.178linux.com/10598