LVS-NAT模式实验配置以及详解

一、实验环境及主机架构

1.1 实验环境

  • 系统:RHEL9.3
  • NAT网卡网段:192.168.56.0/24
  • host-only网卡网段:172.25.254.0/24

1.2 主机架构

架构图如下:

主机配置清单如下:

  • VServer
    • NAT网卡
      • VIP:192.168.56.150
      • GW:192.168.56.2
      • DNS:114.114.114.114
    • host-only网卡:
      • DIP:172.25.254.10
  • RServer1
    • host-only网卡:
      • RIP:172.25.254.30
      • GW:172.25.254.10
  • RServer2
    • host-only网卡:
      • RIP:172.25.254.20
      • GW:172.25.254.10

二、VS主机配置LVS

2.1 VS主机部署ipvsadm

安装ipvsadm

bash 复制代码
[root@Vserver ~]# dnf search ipvsadm
[root@Vserver ~]# dnf install ipvsadm.x86_64 -y

2.2 开启Linux的内核路由功能

bash 复制代码
[root@Vserver ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0
[root@Vserver ~]# echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf 
[root@Vserver ~]# sysctl -p
net.ipv4.ip_forward = 1

2.3 配置LVS

bash 复制代码
[root@Vserver ~]# ipvsadm -C
[root@Vserver ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@Vserver ~]# ipvsadm -A -t 192.168.56.150:80 -s wrr
[root@Vserver ~]# ipvsadm -a -t 192.168.56.150:80 -r 172.25.254.30 -m -w 2
[root@Vserver ~]# ipvsadm -a -t 192.168.56.150:80 -r 172.25.254.20 -m -w 1
[root@Vserver ~]# 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.56.150:80 wrr
  -> 172.25.254.20:80             Masq    1      0          0         
  -> 172.25.254.30:80             Masq    2      0          0    

2.4 测试

bash 复制代码
[root@Vserver ~]# for i in {1..10};do curl 192.168.56.150;done
RS1-172.25.254.30
RS1-172.25.254.30
RS2-172.25.254.20
RS1-172.25.254.30
RS1-172.25.254.30
RS2-172.25.254.20
RS1-172.25.254.30
RS1-172.25.254.30
RS2-172.25.254.20
RS1-172.25.254.30

可见可以实现访问请求按照规则转发,没有问题

2.5 ipvs策略持久化

bash 复制代码
[root@Vserver ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
[root@Vserver ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.56.150:80 -s wrr
-a -t 192.168.56.150:80 -r 172.25.254.20:80 -m -w 1
-a -t 192.168.56.150:80 -r 172.25.254.30:80 -m -w 2
[root@Vserver ~]# systemctl enable --now ipvsadm.service 
Created symlink /etc/systemd/system/multi-user.target.wants/ipvsadm.service → /usr/lib/systemd/system/ipvsadm.service.

2.6 测试持久化

bash 复制代码
[root@Vserver ~]# ipvsadm -C
[root@Vserver ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@Vserver ~]# ipvsadm-restore < /etc/sysconfig/ipvsadm
[root@Vserver ~]# 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.56.150:80 wrr
  -> 172.25.254.20:80             Masq    1      0          0         
  -> 172.25.254.30:80             Masq    2      0          0  

可见持久化没有问题,并且由于已经设置ipvsadm的开机自启动,所以如果主机重启也可以实现策略持久化

综上,我们已经实现了LVS中NAT模式的配置,实现了调度器按照权重轮询分发请求,完成了该实验。

相关推荐
xiaoye-duck9 分钟前
《Linux 网络编程》深入理解数据链路层:从MAC帧到ARP协议的底层原理详解
linux·网络
2601_9620632324 分钟前
从使用场景覆盖到品牌长期建设的内容解读
运维
此冬歌咏34 分钟前
K8s etcd 备份与恢复实战:误删命名空间后 37 秒恢复,5 个对象 UID 完全一致
运维
j7~43 分钟前
【Linux 网络】四十.《网络基础(传输层协议:UDP、TCP)》--中篇
linux·tcp·tcp协议·确认应答机制·连接管理机制·tcp流量控制
牢姐与蒯1 小时前
Linux进程间通信(三).基于匿名管道的进程池的实现
linux·运维·服务器·ubuntu
景煜拾年1 小时前
RHCA-Docker知识点整理
运维·笔记
凤年徐1 小时前
C++ 仿 muduo 高并发服务器:用户态缓冲区 Buffer 模块实现
linux·c++
Java红桃峰峰日拱一卒3 小时前
在jdk8的centos上安装jdk17
linux·jdk17·jdk8
M78佐菲9 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
骇客野人9 小时前
Redis 完整安装部署方案(Linux,分【源码编译】+【Docker】两种,推荐生产用源码,测试快速用 Docker)
运维