lvs負載均衡實操模擬

目錄

一、配置準備

二、NET模式

修改LVS端

開啟路由

修改對內網卡 ens160

修改對外網卡 ens224

加載網卡配置文件

修改web1端

修改網卡信息

重啟網絡

檢測

配置web2

檢測

驗證配置是否正常

啟動nginx服務

驗證以上配置

添加lvs規則

驗證

三、DR模式 ?

修改lvs端

調整ARP參數

使用ens160承載

更改lvs規則

重啟ipvsadm服務

修改web1端

內核配置

配置虛擬IP

添加回環路由

?編輯

修改web2端

內核配置

配置虛擬IP

添加回環路由

驗證

?編輯四、tun模式

修改lvs端

添加并加載模塊

還原配置

添加lvs規則

修改web2端

還原設置

加載隧道模塊

配置隧道

ARP抑制

配置web1

還原配置

加載隧道模塊

配置隧道接口

ARP抑制


一、配置準備

對每臺主機都進行關閉防火墻、上下文等,減少阻礙

[root@everyone ~]# systemctl stop firewalld
[root@everyone ~]# setenforce 0

安裝服務

[root@everyone ~]# yum install -y ipvsadm ##安裝服務
[root@everyone ~]# yum install -y nginx   ##檢測是否成功

向 web1 與 web2 中的nginx網頁添加內容,用來驗證是否成功

二、NET模式

將3臺主機網絡均改為VMnet1模式(模擬在同一內網中)

向lvs端添加一塊對外的網卡

修改LVS端

[root@lvs ~]# cd /etc/sysconfig/network-scripts/
[root@lvs network-scripts]# cp ifcfg-ens160 ifcfg-ens224

開啟路由

[root@lvs network-scripts]#  sed -i 's/^net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/' /etc/sysctl.conf
[root@lvs network-scripts]#  sysctl -p

修改對內網卡 ens160

[root@lvs network-scripts]# vim ifcfg-ens160

修改對外網卡 ens224

[root@lvs network-scripts]# vim ifgcf-ens224

加載網卡配置文件

[root@lvs network-scripts]# ifdown ens160 ; ifup ens160 
[root@lvs network-scripts]# ifdown ens224 ; ifup ens224
[root@lvs network-scripts]# ip a

修改web1端

修改網卡信息

[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160

重啟網絡

[root@web1 ~]# ifdown ens160 ; ifup ens160

檢測

配置web2

[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
[root@web2 ~]# ifdown ens160 ; ifup ens160

檢測

驗證配置是否正常

啟動nginx服務

驗證以上配置

添加lvs規則

[root@lvs network-scripts]# ipvsadm -C 
[root@lvs network-scripts]# ipvsadm -Ln
[root@lvs network-scripts]# ipvsadm -A -t 192.168.11.35:80 -s rr
[root@lvs network-scripts]# ipvsadm -a -t 192.168.11.35:80 -r 192.168.100.1:80 -m
[root@lvs network-scripts]# ipvsadm -a -t 192.168.11.35:80 -r 192.168.100.2:80 -m
[root@lvs network-scripts]# ipvsadm -Ln

驗證

三、DR模式 ?

在nat基礎上進行配置

修改lvs端

刪除多余網卡

調整ARP參數

[root@lvs ~]# vim /etc/sysctl.conf
[root@lvs ~]# sysctl -p

使用ens160承載

也可寫入配置文件,永久保存

更改lvs規則

[root@lvs ~]# ipvsadm -C 
[root@lvs ~]# ipvsadm -Ln
[root@lvs ~]# ipvsadm -A -t 192.168.100.101:80 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.100.101 -r 192.168.100.1:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.100.101 -r 192.168.100.2:80 -g
[root@lvs ~]# ipvsadm -Ln

重啟ipvsadm服務

[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl restart ipvsadm

修改web1端

內核配置

[root@web1 ~]# vim /etc/sysctl.conf  ##插入以下net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=2 
net.ipv4.conf.default.arp_ignore=1 
net.ipv4.conf.default.arp_announce = 2 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.lo.arp_announce=2[root@web1 ~]# sysctl  -p1. net.ipv4.conf.all.arp_ignore:將其設置為1,表示Web節點將忽略針對本地IP地址的ARP請求。這樣可以防止Web節點響應其他節點的ARP請求,避免網絡混亂。
2. net.ipv4.conf.all.arp_announce:將其設置為2,表示Web節點將使用自己的IP地址作為發送ARP請求時的源地址。這樣可以確保響應的ARP請求返回到負載均衡器,而不是被路由丟棄。
3. net.ipv4.conf.default.arp_ignore和net.ipv4.conf.default.arp_announce:類似于前兩個參數,但僅適用于默認網絡接口。
4. net.ipv4.conf.lo.arp_ignore和net.ipv4.conf.lo.arp_announce:類似于前兩個參數,但僅適用于環回接口(lo)。在DR模式下,為了實現返回流量的負載均衡,環回接口也需要進行相應的配置。

配置虛擬IP

可配置文件,永久生效

[root@web1 ~]#ifconfig lo:0 192.168.100.101/32

添加回環路由

[root@web1 ~]# route add -host 192.168.100.101/32 dev lo:0

修改web2端

內核配置

[root@web2 ~]# vim /etc/sysctl.conf  ##插入以下net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=2 
net.ipv4.conf.default.arp_ignore=1 
net.ipv4.conf.default.arp_announce = 2 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.lo.arp_announce=2[root@web2 ~]# sysctl.conf -p

配置虛擬IP

添加回環路由

[root@web2 ~]# route add -host 192.168.100.101/32 dev lo:0

驗證

四、tun模式

修改lvs端

添加并加載模塊

[root@lvs ~]# vim /etc/modules-load.d/ipvs.conf
[root@lvs ~]# modprobe -a $(cat /etc/modules-load.d/ipvs.conf)

還原配置

添加虛擬ip

添加lvs規則

root@lvs ~]# ipvsadm -C 
[root@lvs ~]# ipvsadm -Ln
[root@lvs ~]# ipvsadm -A -t 192.168.11.1:80 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.11.1:80 -r 192.168.100.1:80 -i
[root@lvs ~]# ipvsadm -a -t 192.168.11.1:80 -r 192.168.100.2:80 -i
[root@lvs ~]# ipvsadm -Ln
[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl restart ipvsadm

修改web2端

還原設置

加載隧道模塊

[root@web2 ~]# echo "ipip" > /etc/modules-load.d/ipip.conf
[root@web2 ~]# modprobe ipip

配置隧道

[root@web2 ~]# ip tunnel add tunl0 mode ipip remote 192.168.100.100 local $(hostname -I | awk '{print $1}')
[root@web2 ~]# ip link set tunl0 up
[root@web2 ~]# ip addr add 192.168.11.1/32 dev tunl0
[root@web2 ~]# ip a

ARP抑制

[root@web2 ~]# echo "1" > /etc/sysctl.d/arp_ignore.conf
[root@web2 ~]# echo "2" > /etc/sysctl.d/arp_announce.conf
[root@web2 ~]# sysctl -p /etc/sysctl.d/arp_announce.conf
[root@web2 ~]# sysctl -p /etc/sysctl.d/arp_ignore.conf

配置web1

還原配置

加載隧道模塊

[root@web1 ~]# echo "ipip" > /etc/modules-load.d/ipip.conf
[root@web1 ~]# modprobe ipip

配置隧道接口

[root@web1 ~]# ip tunnel add tunl0 mode ipip remote 192.168.100.100 local $(hostname -I | awk '{print $1}')
[root@web1 ~]# ip link set tunl0 up
[root@web1 ~]# ip addr add 192.168.11.1/32 dev tunl0

ARP抑制

[root@web1 ~]# echo "1" > /etc/sysctl.d/arp_ignore.conf
[root@web1 ~]# echo "2" > /etc/sysctl.d/arp_announce.conf
[root@web1 ~]# sysctl -p /etc/sysctl.d/arp_announce.conf
[root@web1 ~]# sysctl -p /etc/sysctl.d/arp_ignore.conf

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88879.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88879.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88879.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring Boot 是如何簡化 IoC 的配置的?

首先Spring Boot 并沒有發明新的 IoC 理論,它做的也不是替換掉 Spring IoC 容器。相反,Spring Boot 是 Spring IoC 思想的實踐者和簡化者。它通過**“約定優于配置”(Convention over Configuration)**的理念,將原本繁…

Go語言中的組合式接口設計模式

文章目錄Go語言中的組合式接口設計模式背景和需求組合式接口設計Go語言中的組合式接口設計模式 背景和需求 在微服務架構和復雜業務系統中,我們經常需要調用多個外部服務或內部模塊。傳統的做法是將所有方法都放在一個大接口中,但這種設計會導致接口臃…

React - createPortal

什么是createPortal&#xff1f;注意這是一個API&#xff0c;不是組件&#xff0c;他的作用是&#xff1a;將一個組件渲染到DOM的任意位置&#xff0c;跟Vue的Teleport組件類似。用法 import { createPortal } from react-dom;const App () > {return createPortal(<div…

Cursor的使用

Cursor的使用 Ctrl L 打開歷史對話記錄 Tab智能助手 1.單行/多行補全 已有代碼片段&#xff1a; //需求&#xff1a;寫一個工具類計算數組平均值 public class ArrayUtils {//按tab會完成補全 }按tab鍵- Cursor 自動生成代碼: //需求&#xff1a;寫一個工具類計算數組平均值 p…

17.使用DenseNet網絡進行Fashion-Mnist分類

17.1 DenseNet網絡結構設計import torch from torch import nn from torchsummary import summary #卷積層 def conv_block(input_channels,num_channels):netnn.Sequential(nn.BatchNorm2d(input_channels),nn.ReLU(),nn.Conv2d(input_channels,num_channels,kernel_size3,pad…

網安系列【16】之Weblogic和jboss漏洞

文章目錄一 Weblogic1.1 Weblogic相關漏洞1.2 Weblogic漏洞發現1.3 Weblogic漏洞利用二 Jboss2.1 Jboss漏洞2.2 Jboss識別與漏洞利用一 Weblogic WebLogic 是由 Oracle公司 開發的一款基于Java EE&#xff08;現稱Jakarta EE&#xff09;的企業級應用服務器&#xff0c;主要用…

Unity URP + XR 自定義 Skybox 在真機變黑問題全解析與解決方案(支持 Pico、Quest 等一體機)

在使用 Unity 的 URP 渲染管線開發 XR 應用&#xff08;如 Pico Neo、Pico 4、Quest 2/3 等一體機&#xff09;時&#xff0c;很多開發者遇到一個奇怪的問題&#xff1a;打包后&#xff0c;Skybox&#xff08;天空盒&#xff09;在某些角度下突然變黑&#xff0c;只在轉動頭部后…

Cursor、飛算JavaAI、GitHub Copilot、Gemini CLI 等熱門 AI 開發工具合集

Cursor&#xff1a;代碼編寫的智能伙伴?Cursor 是 Anysphere 公司推出的一款 AI 編程工具&#xff0c;它基于微軟開源代碼編輯器 VS Code 開發&#xff0c;將 AI 技術深度整合到開發人員的工作流程中。Cursor 的功能十分強大&#xff0c;不僅能夠自動用純英文編寫代碼&#xf…

如何安裝歷史版本或指定版本的 git

背景 有的時候&#xff0c;我們需要安裝指定版本的git&#xff0c;或者希望舊一點的&#xff0c;畢竟我就遇到最新的2.50.1在win10安裝后打開就一閃而過&#xff0c;而安裝2.49.1就不會 下載 官網可能比較難找&#xff0c;但是這個github倉庫&#xff1a;https://github.com/gi…

LaCo: Large Language Model Pruning via Layer Collapse

發表&#xff1a;EMNLP_FINDING_2024 機構&#xff1a;Shanghai Jiao Tong University 連接&#xff1a;LaCo: Large Language Model Pruning via Layer Collapse - ACL Anthology 代碼&#xff1a;https://github.com/yangyifei729/LaCo Abstract 基于 Transformer 的大語…

服務器內核級故障排查

目錄 **檢查內核級故障(Oops/Panic)的具體操作步驟****1. 查看完整 `dmesg` 日志(含時間戳)****2. 過濾關鍵錯誤信息****3. 檢查系統日志中的內核消息****4. 分析最近一次啟動的日志****5. 檢查是否有 `vmcore` 轉儲文件****常見內核錯誤示例及含義**補充說明:檢查內核級故…

Flink學習筆記:整體架構

開一個新坑&#xff0c;系統性的學習下 Flink&#xff0c;計劃從整體架構到核心概念再到調優方法&#xff0c;最后是相關源碼的閱讀。 今天就來學習 Flink 整體架構&#xff0c;我們先看官網的架構圖圖中包含三部分&#xff0c;分別是 Client、JobManager 和 TaskManager。其中…

【LeetCode 熱題 100】105. 從前序與中序遍歷序列構造二叉樹——(解法二)O(n)

Problem: 105. 從前序與中序遍歷序列構造二叉樹 給定兩個整數數組 preorder 和 inorder &#xff0c;其中 preorder 是二叉樹的先序遍歷&#xff0c; inorder 是同一棵樹的中序遍歷&#xff0c;請構造二叉樹并返回其根節點。 【LeetCode 熱題 100】105. 從前序與中序遍歷序列構…

完美卸載 Ubuntu 雙系統:從規劃到實施的完整指南

&#x1f4d6; 前言 最近成功完成了一次 Ubuntu 雙系統的完整卸載&#xff0c;從最初的分區刪除到最終解決 GRUB 引導問題&#xff0c;整個過程雖然有些曲折&#xff0c;但最終完美解決。本文將詳細分享整個卸載過程&#xff0c;希望能幫助到有類似需求的朋友。 &#x1f3af…

深入理解oracle ADG和RAC

1. 引言 本節詳細介紹oracle ADG和RAC。當然這里講得的詳細是相對理論的深入&#xff0c;不涉及到實驗&#xff0c;比如ADG和RAC的搭建及調優等。 RAC (Real Application Clusters) 和 ADG (Active Data Guard)是Oracle 的兩大核心高可用和災備技術。它們是 Oracle 數據庫高可用…

網絡安全實踐:從環境搭建到漏洞復現

要求&#xff1a;1.搭建docker2.使用小皮面板搭建pikachu靶場3.使用BP的爆破模塊破解pikachu的登陸密碼步驟4.Kail的msf復現永恒之藍一.搭建docker1. Docker介紹Docker 是容器&#xff0c;可以部分完全封閉。封閉意味&#xff1a;一個物質&#xff08;放到容器&#xff09;&…

車載診斷架構 --- 診斷功能開發流程

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

mysql數據庫知識

MySQL數據庫詳解MySQL是目前全球最流行的關系型數據庫管理系統之一&#xff0c;以其開源免費、高效穩定、易于擴展等特點&#xff0c;被廣泛應用于Web開發、企業級應用等場景。本文將從基礎概念、核心特性到實際應用&#xff0c;對MySQL進行全面解析。一、MySQL的基本概念1. 關…

基于springboot的美食文化和旅游推廣系統

博主介紹&#xff1a;java高級開發&#xff0c;從事互聯網行業多年&#xff0c;熟悉各種主流語言&#xff0c;精通java、python、php、爬蟲、web開發&#xff0c;已經做了多年的畢業設計程序開發&#xff0c;開發過上千套畢業設計程序&#xff0c;沒有什么華麗的語言&#xff0…

Rust賦能文心大模型4.5智能開發

文心大模型4.5版本概論 文心大模型4.5是百度推出的最新一代大規模預訓練語言模型,屬于文心大模型(ERNIE)系列。該模型在自然語言處理(NLP)、多模態理解與生成等領域表現出色,廣泛應用于智能搜索、內容創作、對話交互等場景。 核心能力 語言理解與生成 支持復雜語義理解…