当前位置: 首页 > article >正文

【RHCE】LVS-NAT模式负载均衡实验

目录

题目

IP规划

配置IP

RS1

RS2

RS3

LVS

client

配置RS

配置LVS

安装lvs软件

启动ipvsadm服务

lvs规则匹配

ipvsadm部分选项

客户端测试 

总结


题目

使用LVS的 NAT 模式实现 3 台RS的轮询访问,IP地址和主机自己规划。

IP规划

主机IP地址
RS1-nat模式192.168.239.11/24
RS2-nat模式192.168.239.12/24
RS3-nat模式192.168.239.13/24
LVS-仅主机模式192.168.10.100/24
LVS-nat模式192.168.239.8/24
client-仅主机模式192.168.10.200/24
LVS服务器需要有两块网卡,一块用于虚拟IP,便于用户访问;另一块作为后端真实主机的网关。

配置IP

RS1

[root@localhost ~]# hostnamectl hostname RS1

[root@localhost ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.239.11/24 ipv4.gateway 192.168.239.8 connection.autoconnect yes

[root@localhost ~]# nmcli connection up ens160

RS2

[root@localhost ~]# hostnamectl hostname RS2

[root@localhost ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.239.12/24 ipv4.gateway 192.168.239.8 connection.autoconnect yes

[root@localhost ~]# nmcli connection up ens160

RS3

[root@localhost ~]# hostnamectl hostname RS3

[root@localhost ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.239.13/24 ipv4.gateway 192.168.239.8 connection.autoconnect yes

[root@localhost ~]# nmcli connection up ens160

LVS

[root@localhost ~]# hostnamectl hostname LVS

[root@localhost ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.239.8/24 ipv4.gateway 192.168.239.2 connection.autoconnect yes

[root@localhost ~]# nmcli connection up ens160

//修改网卡名称
[root@localhost ~]# nmcli connection modify 'Wired connection 1' connection.id ens224
[root@LVS ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
ens224  389e5c71-ccd0-3095-8fcc-9fbdf9afd8b9  ethernet  ens224 
ens160  19f573ea-ea7b-3615-841c-ddab4be8eced  ethernet  ens160 
lo      e51ecc39-bd6f-4ffd-8918-61dc2c967574  loopback  lo    

[root@localhost ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.10.100/24 ipv4.gateway 192.168.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes

[root@localhost ~]# nmcli connection up ens224

client

[root@localhost ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.10.200/24 ipv4.gateway 192.168.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes

[root@localhost ~]# nmcli connection up ens160

[root@localhost ~]# hostnamectl hostname client

配置RS

安装并配置nginx服务(每台RS配置均一致)

//挂载
[root@RS1 ~]# mount /dev/sr0 /mnt

[root@RS1 ~]# dnf install -y nginx

[root@RS1 ~]# echo $(hostname;hostname -I) > /usr/share/nginx/html/index.html 

[root@RS1 ~]# systemctl start nginx

[root@RS1 ~]# systemctl stop firewalld

在LVS上测试nginx服务

配置LVS

安装lvs软件

[root@LVS ~]# mount /dev/sr0 /mnt

[root@LVS ~]# dnf install -y ipvsadm

启动ipvsadm服务

[root@LVS ~]# ipvsadm-save > /etc/sysconfig/ipvsadm

[root@LVS ~]# systemctl start ipvsadm

lvs规则匹配

[root@LVS ~]# ipvsadm -A -t 192.168.10.100:80 -s rr

[root@LVS ~]# ipvsadm -a -t 192.168.10.100:80 -r 192.168.239.11:80 -m -w 1
[root@LVS ~]# ipvsadm -a -t 192.168.10.100:80 -r 192.168.239.12:80 -m -w 1
[root@LVS ~]# ipvsadm -a -t 192.168.10.100:80 -r 192.168.239.13:80 -m -w 1

[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.10.100:80 rr
  -> 192.168.239.11:80            Masq    1      0          3         
  -> 192.168.239.12:80            Masq    1      0          2         
  -> 192.168.239.13:80            Masq    1      0          2        

[root@LVS ~]# systemctl stop firewalld
[root@LVS ~]# systemctl restart ipvsadm

ipvsadm部分选项

选项含义
-A添加虚拟服务
-E修改已有虚拟服务
-D删除虚拟服务
-a向虚拟服务添加真实服务器(Real Server)
-e修改真实服务器配置
-d从虚拟服务中删除真实服务器
-L查看当前规则列表(-Ln :数字格式显示)
-t/-u/-f指定协议类型
-t:TCP服务(例如:-t 192.168.10.100:80)
-u: UDP服务
-f: 防火墙标记(FWM)
-s指定标度算法(rr轮询、wrr加权轮询、lc最好连接)
-r指定真实服务器地址
-m/-g/-i指定转发方式

-m: NAT模式

-g: DR模式(直接路由)
-i: TUN模式
-w设置权重
-p启用持久化连接
-C清空所有规则

配置完成后重启,此时客户端测试发现,不报错了,但却没有响应

[root@client ~]# curl 192.168.10.100
^C

 原因是还需要配置内核转发参数 net.ipv4.ip_forward=1

root@LVS ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

//使修改生效
[root@LVS ~]# sysctl -p
net.ipv4.ip_forward = 1

客户端测试 

总结

1.防火墙firewalld和selinux最好都关了,不然实验会比较麻烦

2.在配置规则时,通过-m参数指定lvs为nat模式

3.需要在LVS服务器上配置内核转发参数


http://www.kler.cn/a/612335.html

相关文章:

  • Flask接口开发--POST接口
  • 数据仓库 - 转转 - 一面凉经
  • 算力盒子VS边缘计算盒子
  • 脉冲编码器:精准定位与高效控制的科技先锋
  • 创建login.api.js步骤和方法
  • 【蓝桥杯】重点冲刺
  • ubuntu24.04.2 NVIDIA GeForce RTX 4060笔记本安装驱动
  • Milvus 与 Spring Boot 集成
  • SpringMVC 拦截器详解与实战
  • GAUSSDB 分布式存储机制深度解析
  • sortablejs el-table 树结构拖拽
  • PHP中yield关键字的使用
  • RestTemplate远程调用接口方式
  • 什么是视图,数据库的视图本质上就是个提前写好的sql语句,创建的一个虚拟表
  • C语言中把函数声明为inline是什么意思?
  • Nginx RTMP 处理模块 (ngx_rtmp_handler.c) 详细分析
  • Go语言分布式锁实战:dlock助力构建高并发稳定系统
  • 工作流引擎Flowable介绍及SpringBoot整合使用实例
  • ubuntu服务器server版安装,ssh远程连接xmanager管理,改ip网络连接。图文教程
  • 什么是 Promise?