超级详细介绍LVS:概念、运行原理、ipvsadm用法、算法调度、NAT模式、DR模式、防火墙标签解决轮询错误以及对NAT、DR这两个模式的保姆级实战部署!!!

一.LVS概念

LVS(Linux Virtualerver)是一个开源的负载均衡解决方案,它基于Linux操作系统,利用Linux内核的网络功能来实现高效的网络流量分发。
LVS的核心思想是将一个或多个服务器(称为真实服务器)组成一个服务器池,并通过一个虚拟IP地址对外提供服务,从而实现高可用性和可扩展性。
LVS(Linux Virtual Server)是一个基于Linux操作系统的高性能、高可用性的服务器集群解决方案,主要用于实现负载均衡和分布式服务。

1.特点

(1).高性能:由于LVS直接在内核空间处理网络数据包,减少了用户空间与内核空间的切换,因此能够提供高性能的负载均衡服务。
(2).高可用性:LVS可以通过配置主备模式,结合算法调度等机制,实现高可用性,确保服务的连续性。
(3). 可扩展性:通过增加更多的真实服务器,LVS可以轻松扩展服务能力,满足不断增长的业务需求。
(4).灵活性:LVS支持多种负载均衡算法和配置选项,可以根据实际的业务需求灵活配置。
(5).透明性:对于客户端而言,LVS的存在是透明的,客户端无需进行特殊配置即可访问服务。
(6).安全性:LVS提供了防火墙规则等安全特性,可以增强系统的安全性。

2.集群模式

LVS-NAT:网络地址转换模式,适用于小规模集群,修改请求报文的目标IP,多目标IP的DNAT(目的网络地址转换)。
LVS-DR:操纵封装新的MAC地址。
LVS-TUN:在原请求IP报文之外新加一个IP首部
LVS-FULLNAT:修改请求报文的源和目标IP、

3.设备简称

> VS:Virtual Server 
> RS:Real Server 
> CIP:Client IP 
> VIP: Virtual serve IP
> VS外网的IP 
> DIP: Director IP 
> VS:内网的IP 
> RIP: Real server IP

4.访问流程

访问流程:CIP <–> VIP == DIP <–> RIP

二.ipvsadm用法

1.介绍

ipvsadm 是一个用于管理 Linux 内核中的 IPVS (IP Virtual Server) 模块的命令行工具。IPVS 是 Linux 虚拟服务器 (LVS) 的核心组件,它提供负载均衡功能

2.核心功能

1. 集群服务管理:增、删、改 
2. 集群服务的RS管理:增、删、改、查看

3.常用命令

  1. 查看所有虚拟服务器

    ipvsadm -Ln # -L 表示列出虚拟服务器,-n 表示以数字格式显示。

  2. 添加虚拟服务器

    ipvsadm -A -t <虚拟IP地址>:<端口> -s <调度算法> # -A 表示添加,-t 指定虚拟服务器的 IP 地址和端口,-s 指定调度算法(如 rr, wrr, lc, wlc 等)。

     			a) 轮询 (Round Robin, RR):
     				◊ 这是最基本的调度算法,按照顺序将请求轮流分配给每个可用的真实服务器。
     				◊ 它不考虑服务器的性能或当前负载,只按照配置的顺序进行分配。
     			b) 加权轮询 (Weighted Round Robin, WRR):
     				◊ 与轮询算法类似,但每个服务器可以分配不同的权重。
     				◊ 权重高的服务器会接收更多的请求,权重低的服务器接收较少的请求。
     				◊ 权重可以手动设置,以反映服务器的处理能力或期望的负载分配。
     			c) 最少连接 (Least Connection, LC):
     				◊ 这种算法会将请求分配给当前活跃连接数最少的服务器。
     				◊ 它考虑了服务器的当前负载,尝试将新请求分配给较不繁忙的服务器。
     			d) 加权最少连接 (Weighted Least Connection, WLC):
     				◊ 这是最少连接算法的加权版本,考虑了服务器的权重和当前的连接数。
     				◊ 权重高的服务器即使当前连接数较多,也可能接收更多的新请求,而权重低的服务器则相反。
    
  3. 添加真实服务器

    ipvsadm -a -t <虚拟IP地址>:<端口> -r <真实服务器IP>:<端口> -g # -a 表示添加真实服务器,-r 指定真实服务器的 IP 地址和端口,-g 表示使用 masquerade 模式。

  4. 删除虚拟服务器

    ipvsadm -D -t <虚拟IP地址>:<端口> # -D 表示删除虚拟服务器。

  5. 删除真实服务器

    ipvsadm -d -t <虚拟IP地址>:<端口> -r <真实服务器IP>:<端口> # -d 表示删除真实服务器。

  6. 查看特定虚拟服务器的详细信息

    ipvsadm -L -t <虚拟IP地址>:<端口> # 使用 -t 指定要查看的虚拟服务器的 IP 地址和端口。

  7. 查看真实服务器的状态

    ipvsadm -l -t <虚拟IP地址>:<端口> # -l 表示显示虚拟服务器下所有真实服务器的状态。

  8. 设置虚拟服务器的权重

    ipvsadm -e -t <虚拟IP地址>:<端口> -r <真实服务器IP>:<端口> -w <权重> # -e 表示编辑,-w 指定真实服务器的权重。

  9. 清除所有虚拟服务器和真实服务器的配置

    ipvsadm -C # -C 表示清除所有配置。

10.清空 IPVS 模块中的所有虚拟服务器和真实服务器的配置 :
ipvsadm -Z

  1. 保存当前的 IPVS 配置

    ipvsadm -S # -S 表示保存当前配置到文件。

请注意,在使用 ipvsadm 命令之前,确保您的系统已经启用了 IPVS 模块,并且您有足够的权限来执行这些命令。通常,您需要以 root 用户身份或使用 sudo 来执行这些命令。

三.NAT模式

1.运行原理

在这里插入图片描述

2.NAT模式工作逻辑图

在这里插入图片描述
在这里插入图片描述

3.LVS-NAT实战部署

在这里插入图片描述

1.LVS:修改eth1和eth2的网络配置
```matlab
[root@apache ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.48.100/24,192.168.48.2
method=manual
dns=114.114.114.114
[root@apache ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection 
[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
address1=192.168.93.100/24
method=manual
```
2.因为LVS上的VIP和DIP不在同一网段要实现通讯就要开启LVS内核路由功能
```matlab
[root@apache ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0
[root@apache ~]# vim /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1
[root@apache ~]# sysctl -p 
net.ipv4.ip_forward = 1
```
3.Service1修改网络配置:
```matlab
[root@server1 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.93.10/24,192.168.48.2
method=manual
dns=114.114.114.114
[root@server1 ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection 
[root@server1 ~]# nmcli connection reload 
[root@server1 ~]# nmcli connection up eth0 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@server1 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.93.10/24,192.168.93.100
method=manual
```
4.Service2修改网络配置:
```matlab
[root@server2 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.93.20/24,192.168.48.2
method=manual
dns=114.114.114.114
[root@server2 ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection 
[root@server2 ~]# nmcli connection reload 
[root@server2 ~]# nmcli connection up eth0 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@server2 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.93.20/24,192.168.93.100
method=manual
```
5.Service1和service2安装http
[root@server1 ~]# echo 192.168.93.10--server1 > /var/www/html/index.html
[root@server1 ~]# systemctl --now enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

[root@server2 ~]# echo 192.168.93.20--server2 > /var/www/html/index.html
[root@server2 ~]# systemctl --now enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
6.测试LVS是否可以调度:
[root@LVS ~]# curl 192.168.93.10
192.168.93.10--server1
[root@LVS ~]# curl 192.168.93.20
192.168.93.20--server2
7.LVS上安装ipvsadm软件,它提供负载均衡功能:
[root@LVS ~]# dnf install ipvsadm-1.31-6.el9.x86_64 -y
[root@LVS ~]# ipvsadm -A -t 192.168.48.100:80 -s rr
[root@LVS ~]# 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.48.100:80 rr
[root@LVS ~]# ipvsadm -a -t 192.168.48.100:80 -r 192.168.93.10 -m
[root@LVS ~]# 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.48.100:80 rr
  -> 192.168.93.10:80             Masq    1      0          0         
[root@LVS ~]# ipvsadm -a -t 192.168.48.100:80 -r 192.168.93.20 -m
[root@LVS ~]# 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.48.100:80 rr
  -> 192.168.93.10:80             Masq    1      0          0         
  -> 192.168.93.20:80             Masq    1      0          0    
8.在Client上做测试:
[root@client ~]# curl 192.168.93.10
192.168.93.10--server1

[root@client ~]# curl 192.168.93.20
192.168.93.20--server2

[root@client ~]# for i in {1..10}; do curl 192.168.48.100; done
192.168.93.20--server2
192.168.93.10--server1
192.168.93.20--server2
192.168.93.10--server1
192.168.93.20--server2
192.168.93.10--server1
192.168.93.20--server2
192.168.93.10--server1
192.168.93.20--server2
192.168.93.10--server1
9.保存当前的 IPVS 配置,以便在系统重启后能够恢复这些设置:
[root@LVS ~]# ipvsadm-save > /etc/sysconfig/ipvsadm       # /etc/sysconfig/ipvsadm-config 配置文件里面指定的保存路径
-A -t LVS.heihei.com:http -s rr
-a -t LVS.heihei.com:http -r 192.168.93.10:http -m -w 1
-a -t LVS.heihei.com:http -r 192.168.93.20:http -m -w 1
10.如果没有 /etc/sysconfig/ipvsadm 这个文件,在启动ipvsadm服务的时候会报错,显示内容就是缺少/etc/sysconfig/ipvsadm这个文件

四.DR模式

1.运行原理

DR:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行转发,
源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变

2.DR模式工作逻辑图

在这里插入图片描述

3. LVS-DR实战部署

在这里插入图片描述

1.LVS修改网络配置:
[root@LVS ~]# ip a a 192.168.93.90/32 dev lo
[root@LVS ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.93.90/32 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:09:fe:77 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname ens160
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:09:fe:81 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    altname ens224
    inet 192.168.93.100/24 brd 192.168.93.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::e82e:9a8b:17ff:1578/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

[root@LVS ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.93.90   0.0.0.0         UG    100    0        0 eth1
192.168.93.0    0.0.0.0         255.255.255.0   U     100    0        0 eth1
[root@LVS ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection 
[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
address1=192.168.93.100/24,192.168.93.90
method=manual
2.route:
[root@apache ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:39:98:0a brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname ens160
    inet 192.168.48.60/24 brd 192.168.48.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::f5df:7a12:422a:9777/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:39:98:14 brd ff:ff:ff:ff:ff:ff
    altname enp19s0
    altname ens224
    inet 192.168.93.70/24 brd 192.168.93.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::5cac:743:cd02:646/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@apache ~]# vim /etc/NetworkManager/system-connections/eth1.nmconnection 
[root@apache ~]# nmcli connection reload 
[root@apache ~]# nmcli connection up eth1 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6)

[root@apache ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection 

[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
address1=192.168.93.70/24
method=manual

[root@route ~]# vim /etc/sysctl.conf 
[root@route ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@route ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0
3.client:
[root@client ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:c5:68:ca brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname ens160
    inet 192.168.48.50/24 brd 192.168.48.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::e560:684e:6b9f:60ad/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@client ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection 
[root@client ~]# nmcli connection reload 
[root@client ~]# nmcli connection up eth0 

连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)

[root@client ~]# cat  /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.48.50/24,192.168.48.60
method=manual
dns=114.114.114.114
4.Server1和Server2上面做ARP抑制:
[root@server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 

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


[root@server1 ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection 
[root@server1 ~]# nmcli connection reload 
[root@server1 ~]# nmcli connection up eth0 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
[root@server1 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.93.10/24,192.168.93.70
method=manual


[root@server2 ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection 
[root@server2 ~]# nmcli connection reload 
[root@server2 ~]# nmcli connection up eth0 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6)
[root@server2 ~]# cat  /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
address1=192.168.93.20/24,192.168.93.70
method=manual

五.LVS调度算法

1.类型

ipvs scheduler:根据其调度时是否考虑各RS当前的负载状态被分为两种:静态方法和动态方法

静态方法:仅根据算法本身进行调度,不考虑RS的负载情况

动态方法:主要根据每RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度

2.lvs静态调度算法

1、RR:roundrobin 轮询 RS分别被调度,当RS配置有差别时不推荐
2、WRR:Weighted RR,加权轮询根据RS的配置进行加权调度,性能差的RS被调度的次数少
3、SH:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往
第一次挑中的RS,从而实现会话绑定
4、DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请
求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商

3…lvs动态调度算法

1、LC:least connections(最少链接发)
适用于长连接应用Overhead(负载值)=activeconns(活动链接数) x 256+inactiveconns(非活
动链接数)
2、WLC:Weighted LC(权重最少链接)
默认调度方法Overhead=(activeconns x 256+inactiveconns)/weight
3、SED:Shortest Expection Delay,
初始连接高权重优先Overhead=(activeconns+1+inactiveconns) x 256/weight
 但是,当node1的权重为1,node2的权重为10,经过运算前几次的调度都会被node2承接
4、NQ:Never Queue,第一轮均匀分配,后续SED
5、LBLC:Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理
6、LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制
到负载轻的RS

六.防火墙标签解决轮询错误

以http和https为例,当我们在RS中同时开放80和443端口,那么默认控制是分开轮询的,这样我们就出 现了一个轮询错乱的问题
当我第一次访问80被轮询到RS1后下次访问443仍然可能会被轮询到RS1上

问题呈现
在RS1和RS2中安装mod_ssl并重启apache
]# yum install mod_ssl -y
]# systemctl restart httpd
在lvs中设置调度,因为我们要调度80和443两个端口所以我们需要设定两组策略
]# ipvsadm -C
[root@lvs ~]# ipvsadm -A -t 192.168.0.100:80 -s rr
[root@lvs ~]# ipvsadm -A -t 192.168.0.100:443 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.101:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.102:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.100:443 -r 192.168.0.102:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.100:443 -r 192.168.0.101:80 -g
[root@lvs ~]# 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.0.100:80 rr
-> 192.168.0.101:80 Route 1 0 0
-> 192.168.0.102:80 Route 1 0 0
TCP 192.168.0.100:443 rr
-> 192.168.0.101:443 Route 1 0 0
-> 192.168.0.102:443 Route 1 0 0
测试问题
[root@node10 ~]# curl http://192.168.0.100;curl -k https://192.168.0.100
RS1 server - 192.168.0.101
RS1 server - 192.168.0.101
当访问vip时两次调度都到了
解决问题
在vs调度器中设定端口标签,人为80和443是一个整体
[root@lvs ~]# iptables -t mangle -A PREROUTING -d 192.168.0.100 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 6666
设定调度规则
[root@lvs ~]# ipvsadm -A -f 6666 -s rr
[root@lvs ~]# ipvsadm -a -f 6666 -r 192.168.0.101 -g
[root@lvs ~]# ipvsadm -a -f 6666 -r 192.168.0.102 -g
测试结果
[root@node10 ~]# curl -k https://192.168.0.100
RS2 server - 192.168.0.102
[root@node10 ~]# curl -k https://192.168.0.100;curl 192.168.0.100
RS1 server - 192.168.0.101
RS2 server - 192.168.0.102
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值