LVS负载均衡

​ 负载均衡(Load Balance)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。

​ 不同负载均衡软件对应的OSI参考模型如下:

  • lvs:四层
  • nginx:七层
  • haproxy:七层
  • F5:4-7层

​ LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网站是http://www.linuxvirtualserver.org 现在 LVS 已经是 Linux 内核标准的一部分。使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS架构从逻辑上可分为调度层Director Server、Real Server和共享存储。

2、LVS的组成

LVS 由2部分程序组成,包括 ipvs 和 ipvsadm。

  • ipvs(ip virtual server):一段代码工作在内核空间,叫ipvs,是真正生效实现调度的代码。

  • ipvsadm:另外一段是工作在用户空间,叫ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器。

3、工作原理

​ 负载均衡技术有很多实现方案,有基于DNS域名轮流解析的方法、有基于客户端调度访问的方法、有基于应用层系统负载的调度方法,还有基于IP地址的调度方法,在这些负载调度算法中,执行效率最高的是IP负载均衡技术。

​ LVS 的IP负载均衡技术是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,它的主要作用是:安装在Director Server上,同时在Director Server上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务。这个虚拟IP一般称为LVS的VIP,即Virtual IP。访问的请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求。

​ 调用过程如下:

img

    1. 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空。
    1. PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链。
    1. IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群服务进行比对,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发往POSTROUTING链。
    1. POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送给后端的服务器。

​ 当用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的Real Server节点,而Real Server节点如何返回数据给用户,是IPVS实现的重点技术,IPVS实现负载均衡机制有三种,分别是NAT、TUN和DR。

3.1、LVS相关术语

    1. DS:Director Server。指的是前端负载均衡器节点。
    1. RS:Real Server。后端真实的工作服务器。
    1. VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
    1. DIP:Director Server IP,主要用于和内部主机通讯的IP地址。
    1. RIP:Real Server IP,后端服务器的IP地址。
    1. CIP:Client IP,访问客户端的IP地址。

3.2、NAT模式

​ VS/NAT: 即(Virtual Server via Network Address Translation),也就是网络地址翻译技术实现虚拟服务器,当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口也改成选定的Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server返回数据给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户,完成整个负载调度过程。

​参考架构图来说明:
img

    1. 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文源IP为CIP,目标IP为VIP,即CIP-VIP
    1. PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链。
    1. IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。此时报文源IP为CIP,目标IP为RIP,即CIP-RIP
    1. POSTROUTING链通过选路,将数据包发送给Real Server。
    1. Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文源IP为RIP,目标IP为CIP,即RIP-CIP
    1. Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文源IP为VIP,目标IP为CIP,即VIP-CIP

LVS-NAT模型特性:

  • Director Server:只转发,不建立链接,不做三次握手。要保证三次握手到四次分手不可分割。后端RS镜像,不发出socket。
  • RS应该使用私有地址,RS的网关必须指向DIP,DIP和RIP必须在同一个网段内。
  • 支持端口映射。
  • 支持所有操作系统及私有网络,且只需一个公网 IP 地址。
  • 缺陷
    • 请求和响应报文都需要经过Director Server,高负载场景中,Director Server易成为性能瓶颈。

S_NAT模式:虚拟机上的NAT模式,修改源地址。

例如:在两个虚拟机访问百度网站

1
192.168.56.121、192.168.56.122———>(192.168.56.1)NAT路由器(18.18.18.8)———>百度 123.123.123.88

过程:在NAT路由器,修改源地址为对外的网卡地址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CIP-RIP  -> CIP-VIP -> VIP:DIP -> DIP:RIP 

192.168.56.121:1212 -> 123.123.123.88:80

192.168.56.122:1313 -> 123.123.123.88:80

|

192.168.56.121:1212 -> 192.168.56.1:2345

192.168.56.121:1313 -> 192.168.56.1:3456

|

18.18.18.8:2345 -> 123.123.123.88:80

18.18.18.8:3456 -> 123.123.123.88:80

3.3、DR模式

​ VS/DR: 即(Virtual Server via Direct Routing),也就是用直接路由技术实现虚拟服务器。它的连接调度和管理与VS/NAT一样,但它的报文转发方法有不同,VS/DR通过改写请求报文的MAC地址为挑选出的RS的MAC地址(MAC地址欺骗),将请求发送到Real Server,而Real Server将响应直接返回给客户。

​ 参考架构图来说明:

img

    1. 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP,即CIP-VIP。
    1. PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链。
    1. IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址。
    1. 由于DS和RS在同一个网络中,所以是通过链路层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至Real Server。
    1. RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出。 此时的源IP地址为VIP,目标IP为CIP。
    1. 响应报文最终送达至客户端。

LVS-DR模型特性

  • Director Server:只转发,不建立链接,不做三次握手。要保证三次握手到四次分手不可分割。后端RS镜像,不发出socket。
  • 所有的请求报文经由Director Server,但响应报文必须不能经过Director Server。。
    • 在前端路由器做静态地址路由绑定,将对于VIP的地址仅路由到Director Server
    • 用户未必有路由操作权限,因为有可能是运营商提供的,所以这个方法未必实用
    • arptables:在arp的层次上实现在ARP解析时做防火墙规则,过滤RS响应ARP请求。这是由iptables提供的
    • 通过改写请求报文的MAC地址,将请求发送到RS,而RS将响应直接返回给客户,性能最好。
      • 修改RS上内核参数(arp_ignorearp_announce),将RS上的VIP配置在lo接口的别名上,创建一个隐藏的VIP,并限制其不能响应对VIP地址解析请求。
  • RS可以使用私有地址;也可以是公网地址,如果使用公网地址,此时可以通过互联网对RIP进行直接访问
  • RS可以是大多数常见的操作系统。
  • 缺陷
    • 不支持地址转换,也不支持端口映射。
    • 必须要求Director Server与Real Server都有一块网卡连在同一物理网段上。

隐藏VIP的方法:

修改kernel parameter:

  • 目标mac地址全为F,交换机触发广播
  • /proc/sys/net/ipv4/conf/*IF*/
  • arp_ignore:定义收到ARP请求时的响应级别
    • 0:只要本地配置的有相应地址,就给予响应,默认值。
    • 1:仅在请求的目标MAC地址配置请求到达接口上的时候,才给予响应。
  • arp_announce:定义将自己地址向外通告时的通告级别
    • 0:将本地任何接口上的任何地址向外通告,默认值。
    • 1:视图仅向目标网络通告与其网络匹配的地址
    • 2:仅向与本地接口上地址匹配的网络进行通告

3.4、TUN模式

​ VS/TUN :即(Virtual Server via IP Tunneling),也就是IP隧道技术实现虚拟服务器。它的连接调度和管理与VS/NAT方式一样,只是它的报文转发方法不同,VS/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过Director Server,此外,对Real Server的地域位置没有要求,可以和Director Server位于同一个网段,也可以是独立的一个网络。因此,在TUN方式中,调度器Director Server将只处理用户的报文请求,集群系统的吞吐量大大提高。

​ 在原有的IP报文外再次封装多一层IP首部,内部IP首部(源地址为CIP,目标IIP为VIP),外层IP首部(源地址为DIP,目标IP为RIP),参考架构图来说明:

img

    1. 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP 。
    1. PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链。
    1. IPVS比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为DIP,目标IP为RIP。然后发至POSTROUTING链。 此时源IP为DIP,目标IP为RIP。
    1. POSTROUTING链根据最新封装的IP报文,将数据包发至RS(因为在外层封装多了一层IP首部,所以可以理解为此时通过隧道传输)。 此时源IP为DIP,目标IP为RIP。
    1. RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆除掉最外层的IP后,会发现里面还有一层IP首部,而且目标是自己的lo接口VIP,那么此时RS开始处理此请求,处理完成之后,通过lo接口送给eth0网卡,然后向外传递。 此时的源IP地址为VIP,目标IP为CIP。
    1. 响应报文最终送达至客户端。

LVS-Tun模型特性

  • DS采用IP隧道技术将用户请求转发到某个RS,而这个RS将直接响应用户请求,不再经过DR,DR只处理用户的报文请求,从而使集群系统吞吐量大大提高。
  • RS的网关不能指向DIP。
  • 缺点:
    • RIP、VIP、DIP全是公网地址
    • 不支持端口映射
    • RS的系统必须支持隧道

4、调度算法

根据前面的介绍,我们了解了LVS的三种工作模式,但不管实际环境中采用的是哪种模式,调度算法进行调度的策略与算法都是LVS的核心技术,LVS在内核中主要实现了一下十种调度算法。

4.1、轮询调度

轮询调度(Round Robin 简称’RR’)算法就是按依次循环的方式将请求调度到不同的服务器上,该算法最大的特点就是实现简单。轮询算法假设所有的服务器处理请求的能力都一样的,调度器会将所有的请求平均分配给每个真实服务器。

4.2、加权轮询调度

加权轮询(Weight Round Robin 简称’WRR’)算法主要是对轮询算法的一种优化与补充,LVS会考虑每台服务器的性能,并给每台服务器添加一个权值,如果服务器A的权值为1,服务器B的权值为2,则调度器调度到服务器B的请求会是服务器A的两倍。权值越高的服务器,处理的请求越多。

4.3、最小连接调度

最小连接调度(Least Connections 简称’LC’)算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态的调度算法,它通过服务器当前活跃的连接数来估计服务器的情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中断或者超时,其连接数减1。

(集群系统的真实服务器具有相近的系统性能,采用最小连接调度算法可以比较好地均衡负载。)

4.4、加权最小连接调度

加权最少连接(Weight Least Connections 简称’WLC’)算法是最小连接调度的超集,各个服务器相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

4.5、基于局部的最少连接

基于局部的最少连接调度(Locality-Based Least Connections 简称’LBLC’)算法是针对请求报文的目标IP地址的 负载均衡调度,目前主要用于Cache集群系统,因为在Cache集群客户请求报文的目标IP地址是变化的。这里假设任何后端服务器都可以处理任一请求,算法的设计目标是在服务器的负载基本平衡情况下,将相同目标IP地址的请求调度到同一台服务器,来提高各台服务器的访问局部性和Cache命中率,从而提升整个集群系统的处理能力。LBLC调度算法先根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则使用’最少连接’的原则选出一个可用的服务器,将请求发送到服务器。

4.6、带复制的基于局部性的最少连接

带复制的基于局部性的最少连接(Locality-Based Least Connections with Replication 简称’LBLCR’)算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统,它与LBLC算法不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。按’最小连接’原则从该服务器组中选出一一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按’最小连接’原则从整个集群中选出一台服务器,将该服务器加入到这个服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

4.7、目标地址散列调度

目标地址散列调度(Destination Hashing 简称’DH’)算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且并未超载,将请求发送到该服务器,否则返回空。

4.8、源地址散列调度U

源地址散列调度(Source Hashing 简称’SH’)算法先根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且并未超载,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同,它的算法流程与目标地址散列调度算法的基本相似。

4.9、最短的期望的延迟

最短的期望的延迟调度(Shortest Expected Delay 简称’SED’)算法基于WLC算法。举个例子吧,ABC三台服务器的权重分别为1、2、3 。那么如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个。使用SED算法后会进行一个运算

A:(1+1)/1=2 B:(1+2)/2=3/2 C:(1+3)/3=4/3 就把请求交给得出运算结果最小的服务器。

4.10、最少队列调度

最少队列调度(Never Queue 简称’NQ’)算法,无需队列。如果有realserver的连接数等于0就直接分配过去,不需要在进行SED运算。

5、实验

5.1、NAT模型实验

1、实验环境

使用vagrant创建三台VirtualBox虚拟机服务器,删除NAT网卡,配置网络为host-only连接。node1作为DS,node2、node3作为RS,RS上只能配置一个网卡eth0,并且修改/etc/sysconfig/network-scripts/ifcfg-eth0,网关要指向DS的DIP地址。这部分内容可以参考使用Vagrant创建虚拟机中的第六章节。

在node1上添加一个桥接网卡,IP修改为静态ip,172.20.10.8。

节点信息如下:

  • DS:node1,VIP=172.20.10.8,DIP=192.168.56.11

  • RS:

    • node2,RIP=192.168.56.12,GATEWAY=192.168.56.11
    • node3,RIP=192.168.56.13,GATEWAY=192.168.56.11

2、安装

两个RS上都安装 httpd 服务

1
$ yum install -y httpd

DS上安装 ipvsadm

1
$ yum install -y ipvsadm

3、配置DS

查看VIP地址:

1
2
3
4
5
6
7
8
9
$ ifconfig eth1
eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.20.10.8 netmask 255.255.255.0 broadcast 172.20.10.255
inet6 fe80::a00:27ff:feb2:822e prefixlen 64 scopeid 0x20<link>
ether 08:00:27:b2:82:2e txqueuelen 1000 (Ethernet)
RX packets 623 bytes 51088 (49.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 239 bytes 23144 (22.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

开启路由转发功能:

1
$ echo 1 > /proc/sys/net/ipv4/ip_forward

关闭 icmp 的重定向:

1
2
3
4
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/eth1/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth2/send_redirects

设置 nat 防火墙

1
2
3
4
5
iptables -t nat -F

iptables -t nat -X

iptables -t nat -A POSTROUTING -s 192.168.56.0/24 -j MASQUERADE

4、启动RS上的httpd

1
2
chkconfig httpd on
service httpd start

在每个RS节点上的httpd服务的默认路径 /var/www/html/ 下新建一个入口访问页index.html。

1
ip addr show eth0 |grep '192.168.56.' |awk '{print $2}' >/var/www/html/index.html

检查node2和node3节点的路由表:

1
2
3
4
5
6
7
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 192.168.56.11 0.0.0.0 UG 101 0 0 eth1
10.0.2.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.56.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1

在客户端节点,测试两台RS能访问index.html,但是VIP(172.20.10.8)不能访问。

1
2
3
4
5
6
7
8
$ curl http://192.168.56.12/
192.168.56.12/24

$ curl http://192.168.56.13/
192.168.56.13/24

$ curl http://172.20.10.8
curl: (7) Failed to connect to 172.20.10.8 port 80: Connection refused

5、启动DS的ipvsadm并配置

1
2
3
4
5
6
7
8

ipvsadm -C

ipvsadm -A -t 172.20.10.8:80 -s rr
ipvsadm -a -t 172.20.10.8:80 -r 192.168.56.12:80 -m -w 1 #NAT模式
ipvsadm -a -t 172.20.10.8:80 -r 192.168.56.13:80 -m -w 1 #NAT模式

ipvsadm -ln

6、再测试

在客户端节点上,访问http://172.20.10.8,可以看到内容。或者在终端访问:

1
2
3
4
$ curl 172.20.10.8
192.168.56.13/24
$ curl 172.20.10.8
192.168.56.12/24

在DS上运行下面命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.20.10.8:80 rr
-> 192.168.56.12:80 Masq 1 0 3
-> 192.168.56.13:80 Masq 1 0 4

$ ipvsadm -lnc
IPVS connection entries
pro expire state source virtual destination
TCP 15:01 ESTABLISHED 172.20.10.2:60449 172.20.10.8:80 192.168.56.12:80
TCP 14:56 ESTABLISHED 172.20.10.2:60450 172.20.10.8:80 192.168.56.13:80

#没有监听80端口
$ netstat -natp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2385/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2580/master
tcp 0 0 10.0.2.15:22 10.0.2.2:58944 ESTABLISHED 2783/sshd: vagrant
tcp 0 0 10.0.2.15:22 10.0.2.2:59157 ESTABLISHED 3114/sshd: vagrant
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 2385/sshd

5.2、DR模型实验

1、实验环境

准备3台虚拟机,使eth0在同一个网段上,使DIP和RIP在统一网段

lvs VIP=192.168.56.120,DIP=192.168.56.121

RS 192.168.56.122、192.168.56.123

2、安装

两个RS上都安装 httpd 服务

1
$ yum install -y httpd

DS上安装 ipvsadm

1
$ yum install -y ipvsadm

3、配置DS

添加VIP:

1
ifconfig enp0s8:0 192.168.56.120/24

开启路由转发功能:

1
$ echo 1 > /proc/sys/net/ipv4/ip_forward

4、配置RS

调整RS的通过响应级别:

1
2
3
4
echo 1  > /proc/sys/net/ipv4/conf/enp0s8/arp_ignore 
echo 2 > /proc/sys/net/ipv4/conf/enp0s8/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

配置RS的VIP:

1
2
3
ifconfig lo:8 192.168.56.120 netmask 255.255.255.255

route add -host 192.168.56.120 lo:8

5、启动RS上的httpd

1
2
yum -y install httpd
service httpd start

在httpd服务的默认路径 /var/www/html/ 下新建一个入口访问页index.html。

1
ip addr show enp0s8 |grep '192.168.56.' |awk '{print $2}' >/var/www/html/index.html

测试两台RS能否访问index.html,但是VIP不能访问。

6、启动DS的ipvsadm并配置

ipvsadm:管理集群服务

  • 添加 -A -t|u|f service-address [-s scheduler]
    • -t TCP协议的集群
    • -u UDP协议的集群
      • service-address: IP:PORT
    • -f 防火墙标记
      • service-address:Mark Number
  • 修改 -E
  • 删除 -D -t|u|f service-address

管理集群服务中的RS:

  • 添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
  • -r server-address 某RS的地址,在NAT模型中,可使用IP:PORT实现端口映射
    • [-g|i|m] LVS类型
    • -g:代表gateway,意思为直接路由
    • -i:隧道模型
    • -m:(masq)伪装,NAT模式
  • 修改: -e
  • 删除:-d -t|u|f service-address -r server-address
  • 查看
    • -L|l
    • -n 数字显示主机地址和端口
    • –stats:统计数据
    • –rate:速率
    • –timeout:显示tcp、tcpfin和udp的会话超时时长
    • -c:显示当前的ipvs连接状况
  • 删除所有集群服务
    • -C 删除ipvs规则
  • 保存规则
    • -S ipvsadm -S >/path/to/file
  • 载入此前的规则:
    • -R ipvsadm -R >/path/to/file
1
2
3
4
5
6
7
8
9
ipvsadm -A -t 192.168.56.120:80 -s rr 
ipvsadm -a -t 192.168.56.120:80 -r 192.168.56.122 -g
ipvsadm -a -t 192.168.56.120:80 -r 192.168.56.123 -g

ipvsadm -ln

#浏览器访问vip
ipvsadm -lnc
netstat -natp

6、参考文章