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

【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服务器上配置内核转发参数

相关文章:

  • 那些正常的动态规划
  • Tekton系列之实践篇-从触发到完成的完整执行过程
  • 流影---开源网络流量分析平台(一)(小白超详细)
  • SAP-ABAP:SAP报错全链路排查指南:从界面告警到代码级诊断
  • 于纷扰中寻静谧:正念观照的智慧之旅
  • XSS复现漏洞简单前八关靶场
  • G口服务器和普通服务器之间的区别
  • LeetCode热题100JS(/100)第十三天|34
  • C语言:扫雷
  • 为什么不同的损失函数可以提升模型性能?
  • 使用QRencode生成二维码
  • selenium基本使用(一)
  • 【微前端-致命隐患】主子应用异步加载
  • C++11QT复习 (三)
  • 【嵌入式学习2】c语言重点整理
  • Shiro漏洞攻略
  • c#处理算数溢出的情况
  • 【Android】我们是如何优化安卓应用大小至10MB以下的
  • 如何进行文件操作
  • 【QT】Qt creator快捷键
  • 十四届全国人大常委会第十五次会议在京闭幕
  • 新华保险一季度净赚58.82亿增19%,保费收入增28%
  • 美国通过《删除法案》:打击未经同意发布他人私密图像,包括“深度伪造”
  • 监狱法修订草案提请全国人大常委会会议审议
  • 李勇已任内蒙古乌兰察布市委副书记,曾在中央编办任职
  • 影子调查|23岁男子驾照拟注销背后的“被精神病”疑云