lvs的NAT模式实践

2024-06-09 19:48
文章标签 模式 实践 nat lvs

本文主要是介绍lvs的NAT模式实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、环境规划

二、集群结构图

三、实验过程

1、网络环境搭建

2、lvs配置

3、验证


一、环境规划

打算配置四台虚拟机,其中一台作为客户端,一台作为lvs服务器,两台作为RS。

网络环境规划如下:

客户端:IP:192.168.44.6 GW:无 模式:仅主机
lvs:IP:192.168.44.44 模式:仅主机IP:10.10.0.2 模式:NAT
RS1:IP:10.10.0.3 GW:10.10.0.2 模式:NAT
RS2:IP:10.10.0.13 GW:10.10.0.2 模式:NAT

NAT模式配置要点:1.lvs需要配置两个网络,一个负责与客户端通信,一个负责与RS通信。2.RS网关需要指向DIP,才能保证RS与lvs通信。

二、集群结构图

集群结构图如下,为了方便理解,加上了防火墙和交换机。本次配置是在虚拟机上进行,用不到。

三、实验过程

1、网络环境搭建

下面按照规划和架构图进行配置。

由于我使用的无线网,默认的网络设置在ens33里。

(1)客户端网络设置

设置客户端的网络为仅主机模式。

需要设置主机模式的子网IP:

 开启虚拟机,并编辑客户端网络配置:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

重启网络服务,使之生效。

service network restart

 

或者使用如下命令使配置生效:

nmcli connection reload
nmcli connection up ens33

(2)lvs网络设置

lvs虚拟机上需要先下载好ipvsadm,用于配置和管理lvs。

为lvs设置两个网络适配器,一个为NAT负责与RS通信,一个为仅主机,负责与客户端通信。

 设置NAT模式的子网IP和网关IP

无线网连接时,第二个网络适配器对应ens37。分别编辑ens33和ens37(如果没有该配置,需要创建一个配置文件)。

vim /etc/sysconfig/network-scripts/ifcfg-ens33

 配置DIP:

vim /etc/sysconfig/network-scripts/ifcfg-ens37

配置VIP: 

编辑完成后,需要重启网络服务,同上。 

另外,lvs上需要配置ip_forward参数开启路由转发。出于安全考虑,linux中该参数默认禁用,也就是不能进行路由转发,即默认情况下无法将本机一块网卡的数据发往另一块网卡。通过编辑/etc/sysctl.conf可以开启。

vim /etc/sysctl.conf

 使之生效:

sysctl -p

 

(3)RS配置

RS需要提供http服务,先在两个RS上下载好http支持服务。分别安装好,并在各自首页写入不同内容,用以区分调用的那台服务器。

yum -y install httpd;echo `hostname -I` RS1 >/var/www/html/index.html
yum -y install httpd;echo `hostname -I` RS2 >/var/www/html/index.html

开启http服务:

systemctl enable --now httpd
或者
systemctl restart httpd

 

 RS都是使用NAT模式,配置其IP并将网关指向DIP10.10.0.2,然后重启网络服务,使之生效。相关命令同上。

RS的网络配置如下:

RS2的网络配置如下:

2、lvs配置

使用ipvsadm工具配置服务器负载均衡:

#lvs的VIP为192.168.44.44,使用wrr负载均衡算法
ipvsadm -A -t 192.168.44.44:80 -s wrr
#添加RS1到lvs管理列表中,-m表示nat模式
ipvsadm -a -t 192.168.44.44:80 -r 10.10.0.3:80 -m
#添加RS2到lvs管理列表中
ipvsadm -a -t 192.168.44.44:80 -r 10.10.0.13:80 -m

 在这里有几点需要注意:(1).lvs和各RS上seLinux和防火墙都要关闭。否则有可能访问不到。(2).-t参数后跟的是VIP,不要配成DIP了。

3、验证

在客户端访问VIP,发现可以正确地负载到不同的RS上。

当然,在网页上输入VIP进行访问也是可以的。

   

NAT模式支持端口映射,这里将10.10.0.3的端口改为8088进行验证。

(1)修改ipvs调用RS1的端口,此处不能用-e参数直接修改。需要先删除再重新加进来。

#先删除
ipvsadm -d -t 192.168.44.44:80 -r 10.10.0.3:80
#之后重新添加
ipvsadm -a -t 192.168.44.44:80 -r 10.10.0.3:8088

此时,由于RS1上还没有换成8088的端口,客户端调用到RS1时会失败。

  

 (2)编辑RS1上的httpd配置文件/etc/httpd/conf/httpd.conf,将监听端口换成8088。

 

(3)重启RS1上的http服务

使用systemctl restart httpd或者service httpd restart都可以。

重启后,客户端可以正常访问RS1,端口映射正常。 

这篇关于lvs的NAT模式实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1046137

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3