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
 
相关推荐
uhakadotcom1 小时前
Apache Airflow入门指南:数据管道的强大工具
算法·面试·github
跳跳糖炒酸奶1 小时前
第四章、Isaacsim在GUI中构建机器人(2):组装一个简单的机器人
人工智能·python·算法·ubuntu·机器人
绵绵细雨中的乡音2 小时前
动态规划-第六篇
算法·动态规划
程序员黄同学2 小时前
动态规划,如何应用动态规划解决实际问题?
算法·动态规划
march_birds2 小时前
FreeRTOS 与 RT-Thread 事件组对比分析
c语言·单片机·算法·系统架构
斯汤雷3 小时前
Matlab绘图案例,设置图片大小,坐标轴比例为黄金比
数据库·人工智能·算法·matlab·信息可视化
云 无 心 以 出 岫3 小时前
贪心算法QwQ
数据结构·c++·算法·贪心算法
俏布斯3 小时前
算法日常记录
java·算法·leetcode
独好紫罗兰3 小时前
洛谷题单3-P5719 【深基4.例3】分类平均-python-流程图重构
开发语言·python·算法
SheepMeMe4 小时前
蓝桥杯2024省赛PythonB组——日期问题
python·算法·蓝桥杯