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

news2024/11/25 10:44:50

目录

一、规划

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=1

sysctl -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: 2
  ethernets:
    eth0:        #需要根据真实网卡名填写
      addresses:
        - 192.168.5.116/24    #物理IP
        - 192.168.5.200/24    #VIP
      routes:    #添加默认路由
        - to: 0.0.0.0/0
          via: 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: 2
  ethernets:
    eth0:
      addresses:
        - 192.168.5.117/24  # 后端服务器117的真实IP地址
        - 192.168.5.200/32  # 添加伪装IP地址,与VIP地址相同
      routes:
        - to: 0.0.0.0/0
          via: 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: 2
  ethernets:
    eth0:
      addresses:
        - 192.168.5.118/24  # 后端服务器117的真实IP地址
        - 192.168.5.200/32  # 添加伪装IP地址,与VIP地址相同
      routes:
        - to: 0.0.0.0/0
          via: 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冲突

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang每日一练(leetDay0079) 最大正方形、完全二叉树节点数

目录 221. 最大正方形 Maximal Square 🌟🌟 222. 完全二叉树的节点个数 Count Complete Tree Nodes 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/…

ThingsBoard教程(五五):规则节点解析 REST接口调用 REST API Call Node,发送邮件Send Email Node

REST接口调用 REST API Call Nod Since TB Version 2.0 调用外部 REST 服务器的 REST API。 配置: 端点 URL 模式 - 可以是静态字符串,也可以是使用消息元数据属性解析的模式。例如 ${deviceType}。请求方法 - GET、POST、PUT、DELETE头 - 请求头,头或值可以是静态字符串…

chatgpt赋能python:Python转换为日期:完整解析

Python 转换为日期:完整解析 日期和时间是计算机编程中非常重要的一部分,可以用来记录和管理各种信息,例如日程安排、用户活动、数据更新等等。在 Python 中,我们可以使用 datetime 模块来轻松地进行日期和时间的操作和转换。 什…

JavaScript之DOM案例练习

1. 循环精灵图 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible" …

SpringCloud Alibaba Sentinel

SpringCloud Alibaba Sentinel Sentinel 基础 官网 1 Github: https://github.com/alibaba/Sentinel 2 快速开始: https://sentinelguard.io/zh-cn/docs/quick-start.html 3 中文: https://github.com/alibaba/Sentinel/wiki/介绍 4 使用手册: https://spring-cloud-alib…

chatgpt赋能python:Python除数为0处理详解

Python除数为0处理详解 在Python编程中&#xff0c;最常见的问题之一是除数为0的错误。当我们尝试将一个数除以0时&#xff0c;Python会抛出ZeroDivisionError错误&#xff0c;这是一个常见的运行时错误。 为什么会发生除数为0的错误&#xff1f; 当我们尝试将一个数除以0时…

如何在华为OD机试中获得满分?Java实现【MVP争夺战】一文详解!

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1、题目描述2、输入描述3、输出描述…

1、Ovirt 开源虚拟化平台安装

ovirt官网 一、资源规划介绍 1.1、服务规划 ovirt版本 ovirt engine 4.3.10 ovirt node 4.3.10 ovirt.node01.opsvv.com 负责托管引擎服务 1.2、资源划分 1.2.1、节点划分 密码均为&#xff1a;12345678 Node02无法开启虚拟化&#xff0c;只演示加入集群节点使用 节点…

软考A计划-试题模拟含答案解析-卷四

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

Netty概述及Hello word入门

目录 概述 Netty是什么 Netty的地位 Netty的优势 HelloWord入门程序 目标 pom依赖 服务器端 客户端 运行结果 入门把握理解 概述 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable hi…

VITS语音生成模型详解及中文语音生成训练

1 VITS模型介绍 VITS&#xff08;Variational Inference with adversarial learning for end-to-end Text-to-Speech&#xff09;是一种结合变分推理&#xff08;variational inference&#xff09;、标准化流&#xff08;normalizing flows&#xff09;和对抗训练的高表现力语…

基于技能的工程方法及其在I4.0 中的应用

工业4.0 组件描述了两种架构&#xff0c;一种是面向服务的紧耦合分层系统架构&#xff0c;另一种基于协议的同层架构&#xff08;peer-to-peer&#xff09;。传统的工业自动化系统几乎都是分层架构。例如现场设备&#xff08;PLC&#xff09;将数据传送到控制中心&#xff0c;S…

如何在华为OD机试中获得满分?Java实现【不爱施肥的小布】一文详解!

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1、题目描述2、输入描述3、输出描述…

第6章 Constant, Static and Name Space

Const • declares a variable to have a constant value const int x 123; x 27; // illegal! x; // illegal! int y x; // Ok, copy const to non-const y x; // Ok, same thing const int z y; // ok, const is safer 变量variable 常量 constant &#x…

chatgpt赋能python:Python词性标注:一个重要的NLP应用

Python 词性标注&#xff1a;一个重要的 NLP 应用 自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;是 AI 领域中的重要分支之一&#xff0c;其可以帮助机器理解和处理人类语言。在 NLP 任务中&#xff0c;词性标注&#xff08;Part-of-Speec…

k8s+负载均衡+防火墙

目录 实验拓扑 实验要求 实验部署 一、kubeadm部署k8s集群 1、环境准备&#xff08;所有节点&#xff09; 2、所有节点安装docker 3、所有节点安装Kubeadm、Kubelet和Kuberctl 4、部署k8s集群 初始化kubeadm 设置kubectl 5、部署网络插件flannel&#xff08;所有节点…

[CSS案例二]—实现一个响应式网页,兼容PC移动端,ScrollReveal 增加动画

大家好&#xff0c;我是小张 本期案例&#xff0c;用前端三件套实现一个简约的响应式布局网页&#xff0c;当屏幕分辨率自适应改变时网页布局会自动发生切换&#xff0c;网页布局同时兼容PC端和移动端&#xff0c; 在普通PC屏幕下网页布局效果 移动端网页布局&#xff1a; 除…

工作需要,JAVAer自学python

人生苦短&#xff0c;我用Python。 是如何学习/自学 Python 的&#xff1f; 我学习python的方式其实很简单很暴力&#xff1a;网上直接搜视频教程&#xff1b; 我之前一直做java的&#xff0c;学习python其实也是一个机缘巧合&#xff1a;当时入职一个朋友刚好有python岗位&a…

初识Unity——基本模型、场景操作、世界坐标系和局部坐标系

目录 基本模型 创建基本模型 基本模型的复制 复杂模型 场景操作 聚焦 旋转 移动 场景视野 世界坐标系 基本介绍 原点 局部坐标系 基本模型 创建基本模型 基本模型的复制 创建基本模型之后&#xff0c;会在我们视野中心生成这个模型&#xff1b;当我们需要复…

SpringAOP简介及实现(包含切面、切点、连接点和通知)

目录 1.什么是AOP、SpringAOP&#xff1f; 2.AOP的组成 3.SpringAOP的实现 4.切点的表达式 1.什么是AOP、SpringAOP&#xff1f; 在学习SpringAOP之前&#xff0c;我们得先了解一下什么是AOP。AOP是一种面向切面编程的思想。那什么是切面呢&#xff1f;它其实是对某一类事情…