LVS-DR

一、对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。

LVS(Linux Virtual Server)负载均衡群集的 NAT 模式和 DR 模式是两种常用的工作模式,它们各自具有独特的优势,以下是详细对比:

NAT 模式(网络地址转换模式)

  • 部署简单
    • NAT 模式只需要在负载均衡器上进行配置,无需对后端服务器进行特殊设置。所有后端服务器可以使用私有 IP 地址,通过负载均衡器进行网络地址转换,对外呈现为一个公网 IP 地址,易于部署和管理。
  • 安全性较高
    • 后端服务器的真实 IP 地址被隐藏在负载均衡器之后,外部网络只能看到负载均衡器的公网 IP 地址,这为后端服务器提供了一定的安全保护,降低了后端服务器直接暴露在外部网络所面临的安全风险,如网络攻击等。
  • 支持端口映射
    • 可以方便地实现端口映射功能,将外部请求的不同端口映射到后端服务器的不同端口或服务上,从而灵活地支持多种应用服务的负载均衡,满足不同业务需求。
  • 对网络环境要求低
    • NAT 模式对网络环境的要求相对较低,不需要特殊的网络设备支持,只需要负载均衡器具备 NAT 功能即可,适用于各种规模和复杂程度的网络环境,尤其是在一些小型网络或对网络改造难度较大的场景中具有优势。

DR 模式(直接路由模式)

  • 高性能和低延迟
    • DR 模式中,请求数据包直接从负载均衡器发送到后端服务器,响应数据包则直接从后端服务器返回给客户端,无需经过负载均衡器再次转发,大大减少了数据传输的中间环节,提高了系统的性能和响应速度,降低了延迟,适用于对性能要求极高的场景,如大型电商网站、高并发的在线游戏平台等。
  • 支持大量并发连接
    • 由于数据传输的效率高,DR 模式能够支持大量的并发连接,后端服务器可以独立地处理客户端请求,不会因为负载均衡器的性能瓶颈而限制整个系统的并发处理能力,可扩展性强,能够轻松应对高并发流量的冲击。
  • 服务器配置灵活
    • 后端服务器可以使用公网 IP 地址,也可以使用私有 IP 地址,还可以根据实际需求灵活配置服务器的网络参数,如网关、子网掩码等,不受负载均衡器的严格限制,提高了服务器配置的灵活性和自主性。
  • 网络流量效率高
    • 避免了 NAT 模式中可能出现的网络地址转换开销,减少了数据包的处理时间和网络带宽占用,提高了网络流量的传输效率,尤其在处理大流量数据传输时,DR 模式的优势更加明显,能够充分利用网络带宽资源,提升整个系统的网络性能。

二、基于 openEuler 构建 LVS-DR 群集。

1. 环境搭建

名称 IP配置 服务角色 备注

open_Euler 172.25.254.103 Director Server 负载均衡服务器

open_Euler1 172.25.254.101 Real Server1(RS1) web服务器1

open_Euler2 172.225.254.102 Real Server2(RS2) web服务器2

Rocky8 172.25.254.104 Client 客户端

2.RS配置

RS1和RS2配置一样

bash 复制代码
#  安装配置web服务器
[root@openEuler1 ~]# dnf install nginx -y

[root@openEuler1 ~]# systemctl  start nginx
[root@openEuler1 ~]# cd /usr/share/nginx/html/
[root@openEuler1 html]# ls
404.html  50x.html  index.html  nginx-logo.png
[root@openEuler1 html]# echo "this is test page, `hostname -I `" > index.html
[root@openEuler1 html]# curl localhost   # 测试
this is test page, 172.25.254.102
[root@openEuler1 html]#

# 新建dummy连接并设置VIP
[root@openEuler1 html]# nmcli con add type dummy ifname dummy1 ipv4.method manua          l ipv4.addresses 172.25.254.100/32
连接 "dummy-dummy1" (d93912f0-64d1-49f5-bb75-54a21a59c3a3) 已成功添加。
[root@openEuler1 html]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defau          lt 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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group d          efault qlen 1000
    link/ether 00:0c:29:ba:99:2c brd ff:ff:ff:ff:ff:ff
    inet 172.25.254.102/24 brd 172.25.254.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feba:992c/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN g          roup default qlen 1000
    link/ether 32:89:77:ec:40:2d brd ff:ff:ff:ff:ff:ff
    inet 172.25.254.100/32 scope global noprefixroute dummy1
       valid_lft forever preferred_lft forever
    inet6 fe80::98e6:4085:1c80:ab40/64 scope link noprefixroute
       valid_lft forever preferred_lft forever


# ARP抑制
[root@openEuler1w html]# vim /etc/sysctl.conf  +



net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.dummy1.arp_ignore=1
net.ipv4.conf.dummy1.arp_announce=2

3.LVS负载均衡配置

bash 复制代码
#  新建dummy连接并设置VIP
[root@openEuler ~]# nmcli con add type dummy ifname dummy1 ipv4.method manual i          pv4.addresses 172.25.254.100/32
连接 "dummy-dummy1" (73294a04-5598-472e-aae5-f9b22251b1c6) 已成功添加。
[root@openEuler ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defau          lt 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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group d          efault qlen 1000
    link/ether 00:0c:29:63:5c:e1 brd ff:ff:ff:ff:ff:ff
    inet 172.25.254.103/24 brd 172.25.254.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe63:5ce1/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN g          roup default qlen 1000
    link/ether 12:32:de:42:35:60 brd ff:ff:ff:ff:ff:ff
    inet 172.25.254.100/32 scope global noprefixroute dummy1
       valid_lft forever preferred_lft forever
    inet6 fe80::977e:6d41:e800:1b67/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
# 安装ip虚拟服务器 ipvs
[root@openEuler ~]# yum install ipvsadm -y

[root@openEuler /]# cd
#  手工配置添加LVS服务
[root@openEuler ~]# ipvsadm -A -t 172.25.254.100:80 -s rr  # -A  添加虚拟服务器
[root@openEuler ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.101:80 -g
[root@openEuler ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.102:80 -g  
# -s 算法  -a  添加真实服务器    -t  设置群地址
[root@openEuler ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.254.100:80 rr
  -> 172.25.254.101:80            Route   1      0          0
  -> 172.25.254.102:80            Route   1      0          0

4.结果测验

bash 复制代码
[root@Rocky8 ~]# for ((i=1;i<=4;i++));
> do
> curl 172.25.254.100
> done
web test page,ip is  172.25.254.101 
web test page,ip is  172.25.254.102 
web test page,ip is  172.25.254.101 
web test page,ip is  172.25.254.102
 
相关推荐
千金裘换酒7 小时前
LeetCode 移动零元素 快慢指针
算法·leetcode·职场和发展
wm10438 小时前
机器学习第二讲 KNN算法
人工智能·算法·机器学习
NAGNIP8 小时前
一文搞懂机器学习线性代数基础知识!
算法
NAGNIP8 小时前
机器学习入门概述一览
算法
iuu_star8 小时前
C语言数据结构-顺序查找、折半查找
c语言·数据结构·算法
Yzzz-F9 小时前
P1558 色板游戏 [线段树 + 二进制状态压缩 + 懒标记区间重置]
算法
漫随流水9 小时前
leetcode算法(515.在每个树行中找最大值)
数据结构·算法·leetcode·二叉树
mit6.8249 小时前
dfs|前后缀分解
算法
扫地的小何尚10 小时前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
千金裘换酒11 小时前
LeetCode反转链表
算法·leetcode·链表