arm3399主板-使用ubuntu20.04搭建LVS-DR(netplan)

2023-10-31 23:59

本文主要是介绍arm3399主板-使用ubuntu20.04搭建LVS-DR(netplan),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、规划

1、网络拓扑

 2、检查 

二、配置设备

1、配置LVS

1.配置IP转发

2.清除防火墙

3.安装ipvsadm工具

4.配置VIP

5.netplan与NetworkManager介绍

6.添加LVS规则

1.清除防火墙

 2.添加伪装IP

3.安装web服务

4. 修改内核参数,防止IP冲突

3、配置web2

1.清除防火墙

 2.添加伪装IP

3.安装web服务

4.修改内核参数,参见上边2、4 

4、测试

 错误整理

1.故障现象


一、规划

1、网络拓扑

 2、检查 

        确认网段中例如192.168.5.200的IP确保没有被占用

二、配置设备

1、配置LVS

1.配置IP转发

vim /etc/sysctl.conf    #将#net.ipv4.ip_forward=1中的#号去掉
net.ipv4.ip_forward=1sysctl -p
net.ipv4.ip_forward = 1

2.清除防火墙

iptables -F    #清除所有规则systemctl enable --now firewalld    #关闭firewalld防火墙

3.安装ipvsadm工具

sudo apt-get update
sudo apt-get install ipvsadm

4.配置VIP

vim /etc/netplan/99-lvs.yaml
network:version: 2ethernets:eth0:        #需要根据真实网卡名填写addresses:- 192.168.5.116/24    #物理IP- 192.168.5.200/24    #VIProutes:    #添加默认路由- to: 0.0.0.0/0via: 192.168.5.1    #网关-下一跳地址metric: 100#使用多个 IP 地址绑定到同一个物理接口上,没有使用虚拟接口netplan generate
netplan apply    #应用网络配置ip route     #查看默认路由是否生效
default via 192.168.5.1 dev eth0 proto static metric 100

5.netplan与NetworkManager介绍

        Netplan 允许您在配置文件中定义网络接口、IP 地址、网关、DNS 设置等,并在应用配置时将这些设置传递给 NetworkManager。NetworkManager 负责根据配置来启用、禁用和管理网络连接,并确保网络配置在系统重新启动后仍然有效。

        Netplan 使用 YAML 格式的配置文件来定义网络接口和相关参数。

        Netplan 是配置网络的工具,而 NetworkManager 是实际管理和处理网络连接的服务。Netplan 生成的配置文件会由 NetworkManager 读取和应用。

        注意:若在/etc/NetworkManager/system-connections/中配置网络参数,这里可能会覆盖netplan中的配置

6.添加LVS规则

ipvsadm -A -t 192.168.5.200:80 -s rr
ipvsadm -a -t 192.168.5.200:80 -r 192.168.5.117:80 -g
ipvsadm -a -t 192.168.5.200:80 -r 192.168.5.118:80 -g
ipvsadm-save > /etc/ipvsadm.rules    #保存规则在VIP 192.168.5.200的端口80上配置LVS规则。
"-s rr"表示使用轮询调度算法(Round Robin)。
"-a"表示添加一条真实服务器规则,
"-r"指定真实服务器的IP和端口,
"-g"表示使用直接路由模式ipvsadm -Ln    #查看配置后的规则
子选项含义
-A添加虚拟服务器
-t设置集群地址(VIP, Virtual IP)
-s指定负载调度算法
-a添加真实服务器
-d删除真实服务器
-r指定真实服务器(Real Server)的地址
-m使用NAT模式;-g、-i分别对应DR、TUN模式
-w为节点服务器设置权重,默认为1

2、配置web1

1.清除防火墙

iptables -F    #清除所有规则systemctl enable --now firewalld    #关闭firewalld防火墙

 2.添加伪装IP

vim /etc/netplan/99-backend.yaml
network:version: 2ethernets:eth0:addresses:- 192.168.5.117/24  # 后端服务器117的真实IP地址- 192.168.5.200/32  # 添加伪装IP地址,与VIP地址相同routes:- to: 0.0.0.0/0via: 192.168.5.1  # 确保网关地址正确netplan apply    #应用网络配置更改

3.安装web服务

apt-get update
apt install apache2 -y
echo web1 > /var/www/html/index.html

4. 修改内核参数,防止IP冲突

vim /etc/sysctl.conf
net.ipv4.conf.eth0.arp_ignore = 1     
net.ipv4.conf.eth0.arp_announce = 2   释义:
net.ipv4.conf.eth0.arp_ignore 
参数确定是否忽略接收到的 ARP 请求。具体取值如下:
0:不忽略任何接收到的 ARP 请求。
1:忽略来自非本地子网的 ARP 请求。
2:完全忽略所有 ARP 请求。net.ipv4.conf.eth0.arp_announce 
参数确定发送 ARP 响应时所使用的源 IP 地址。具体取值如下:0:使用接收到的 ARP 请求中的源 IP 地址作为响应的源 IP 地址。
1:始终使用网络接口 eth0 上配置的 IP 地址作为响应的源 IP 地址。
2:始终使用主机默认路由接口上的 IP 地址作为响应的源 IP 地址。这些设置将确保后端服务器正确处理 ARP 请求和响应,
以便与负载均衡器协同工作,实现正确的负载均衡和请求分发

3、配置web2

1.清除防火墙

iptables -F    #清除所有规则systemctl enable --now firewalld    #关闭firewalld防火墙

 2.添加伪装IP

vim /etc/netplan/99-backend.yaml
network:version: 2ethernets:eth0:addresses:- 192.168.5.118/24  # 后端服务器117的真实IP地址- 192.168.5.200/32  # 添加伪装IP地址,与VIP地址相同routes:- to: 0.0.0.0/0via: 192.168.5.1  # 确保网关地址正确netplan apply    #应用网络配置更改

3.安装web服务

apt-get update
apt install apache2 -y
echo web2 > /var/www/html/index.html

4.修改内核参数,参见上边2、4 

4、测试

通过客户端访问:192.168.5.200

注意:由于浏览器缓存机制不能可能看不出轮询效果,可以通过curl 192.168.5.200访问测试

 错误整理

1.故障现象

lvs主机可以实现轮询,其它设备无法实现轮询,当关闭其它设备也可轮询

解决办法:web服务器没有配置arp相关参数导致,修改内核参数,防止IP冲突

这篇关于arm3399主板-使用ubuntu20.04搭建LVS-DR(netplan)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/319033

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完