深入解析LVS命令參數及DR模式下的ARP抑制原理

深入解析LVS命令參數及DR模式下的ARP抑制原理


一、LVS簡介

Linux Virtual Server (LVS) 是基于Linux內核的高性能負載均衡解決方案,支持NAT、DR(Direct Routing)和TUN(IP Tunneling)三種模式。其中,ipvsadm 是管理LVS配置的核心命令行工具。本文將詳解 ipvsadm 的常用參數,并探討DR模式下ARP抑制的必要性。


二、ipvsadm命令參數詳解
1. 虛擬服務管理
  • 添加虛擬服務
    -A:添加虛擬服務(VIP),-t 指定TCP協議,-s 指定調度算法(如輪詢rr、加權輪詢wrr)。
    示例

    ipvsadm -A -t 192.168.1.100:80 -s rr
    
  • 修改/刪除虛擬服務
    -E 修改,-D 刪除。
    示例

    ipvsadm -E -t 192.168.1.100:80 -s wrr  # 修改調度算法
    ipvsadm -D -t 192.168.1.100:80         # 刪除虛擬服務
    
2. 真實服務器管理
  • 添加真實服務器(RS)
    -a:添加RS,-r 指定RS地址,-g|i|m 指定模式(DR/NAT/TUN),-w 設置權重。
    示例

    ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g -w 1
    
  • 修改/刪除真實服務器
    -e 修改,-d 刪除。
    示例

    ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.2:80 -w 5  # 修改權重為5
    ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.2:80       # 刪除RS
    
3. 查看與清空配置
  • 查看當前規則
    -ln 以數字格式顯示,--stats 顯示統計信息。
    示例

    ipvsadm -ln          # 查看所有規則
    ipvsadm -ln --stats  # 查看流量統計
    
  • 清空所有配置

    ipvsadm -C
    
4. 持久化配置
  • 保存配置
    ipvsadm-save > /etc/sysconfig/ipvsadm
    
  • 恢復配置
    ipvsadm-restore < /etc/sysconfig/ipvsadm
    

三、DR模式下的ARP抑制
1. 為什么需要ARP抑制?

在DR模式下,負載均衡器(Director)和真實服務器(RS)共享同一個VIP。客戶端請求首先到達Director,但響應數據由RS直接返回客戶端(不經過Director)。此時若RS的網卡響應了VIP的ARP請求,會導致以下問題:

  • ARP沖突:客戶端可能直接與RS通信,繞過負載均衡器。
  • 流量混亂:多臺RS同時響應ARP,導致MAC地址漂移。
2. 如何配置ARP抑制?

通過修改Linux內核參數,禁止RS響應VIP的ARP請求。

  • 配置步驟
    a. 在RS上設置VIP到lo接口
    ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up
    
    b. 修改ARP參數
    echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    
    參數解釋
    • arp_ignore=1:僅響應目標IP為本機接口的ARP請求(忽略lo接口的VIP)。
    • arp_announce=2:始終使用接口的本地IP作為ARP源地址(避免VIP暴露)。

四、完整DR模式配置示例
1. Director配置(負載均衡器)
# 添加虛擬服務
ipvsadm -A -t 192.168.1.100:80 -s rr# 添加真實服務器
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.3:80 -g
2. 真實服務器配置
# 配置VIP到lo接口
ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up# 啟用ARP抑制
sysctl -w net.ipv4.conf.lo.arp_ignore=1
sysctl -w net.ipv4.conf.lo.arp_announce=2
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2

五、總結
  • ipvsadm命令:是LVS的核心管理工具,需熟練掌握虛擬服務和真實服務器的增刪改查。
  • DR模式ARP抑制:通過限制RS的ARP響應,確保流量經過負載均衡器,避免數據鏈路層混亂。

通過合理配置LVS,可構建高性能、高可用的負載均衡集群,而理解底層原理(如ARP抑制)是避免“坑”的關鍵。

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

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

相關文章

阿里云一鍵部署DeepSeek-V3、DeepSeek-R1模型

目錄 支持的模型列表 模型部署 模型調用 WebUI使用 在線調試 API調用 關于成本 FAQ 點擊部署后服務長時間等待 服務部署成功后&#xff0c;調用API返回404 請求太長導致EAS網關超時 部署完成后&#xff0c;如何在EAS的在線調試頁面調試 模型部署之后沒有“聯網搜索…

Win10環境借助DockerDesktop部署大數據時序數據庫Apache Druid

Win10環境借助DockerDesktop部署最新版大數據時序數據庫Apache Druid32.0.0 前言 大數據分析中&#xff0c;有一種常見的場景&#xff0c;那就是時序數據&#xff0c;簡言之&#xff0c;數據一旦產生絕對不會修改&#xff0c;隨著時間流逝&#xff0c;每個時間點都會有個新的…

【第13章:自監督學習與少樣本學習—13.1 自監督學習最新進展與實現方法】

凌晨三點的實驗室,博士生小王盯著屏幕里正在"自娛自樂"的神經網絡——這個沒有吃過一張標注圖片的模型,正在通過旋轉、拼圖、填色等游戲任務,悄悄掌握著理解世界的秘訣。這種魔法般的修煉方式,正是當今AI領域最炙手可熱的技術:自監督學習。 一、打破數據枷鎖:自…

數據庫報錯1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES)解決方式

MySQL 報錯 1045 表示用戶root從localhost連接時被拒絕訪問&#xff0c;通常是因為密碼錯誤、權限問題或配置問題。以下是解決該問題的常見方法&#xff1a; 方法一&#xff1a;檢查用戶名和密碼 ? 確認用戶名和密碼是否正確&#xff1a; 確保輸入的用戶名和密碼完全正確&am…

八大排序——簡單選擇排序

目錄 1.1基本操作&#xff1a; 1.2動態圖&#xff1a; 1.3代碼&#xff1a; 代碼解釋 1. main 方法 2. selectSort 方法 示例運行過程 初始數組 每輪排序后的數組 最終排序結果 代碼總結 1.1基本操作&#xff1a; 選擇排序&#xff08;select sorting&#xff09;也…

與傳統光伏相比 城電科技的光伏太陽花有什么優勢?

相比于傳統光伏&#xff0c;城電科技的光伏太陽花有以下優勢&#xff1a; 一、發電效率方面 智能追蹤技術&#xff1a;光伏太陽花通過內置的智能追蹤系統&#xff0c;采用全球定位跟蹤算法&#xff0c;能夠實時調整花瓣&#xff08;即光伏板&#xff09;的角度&#xff0c;確…

FPGA的星辰大海

編者按 時下風頭正盛的DeepSeek,正值喜好宏大敘事的米國大統領二次上崗就業,OpenAI、軟銀、甲骨文等宣布投資高達5000億美元“星際之門”之際,對比尤為強烈。 某種程度上,,是低成本創新理念的直接落地。 包括來自開源社區的諸多贊譽是,并非體現技術有多“超越”,而是…

Elasticsearch:15 年來致力于索引一切,找到重要內容

作者&#xff1a;來自 Elastic Shay Banon 及 Philipp Krenn Elasticsearch 剛剛 15 歲了&#xff01;回顧過去 15 年的索引和搜索&#xff0c;并展望未來 15 年的相關內容。 Elasticsearch 剛剛成立 15 周年。一切始于 2010 年 2 月的一篇公告博客文章&#xff08;帶有標志性的…

嵌入式軟件、系統、RTOS(高軟23)

系列文章目錄 4.2嵌入式軟件、系統、RTOS 文章目錄 系列文章目錄前言一、嵌入式軟件二、嵌入式系統三、嵌入式系統分類四、真題總結 前言 本節講明嵌入式相關知識&#xff0c;包括軟件、系統。 一、嵌入式軟件 二、嵌入式系統 三、嵌入式系統分類 四、真題 總結 就是高軟筆記…

數據結構 day02

3. 線性表 3.1. 順序表 3.1.3. 順序表編程實現 操作&#xff1a;增刪改查 .h 文件 #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #define N 10 typedef struct seqlist {int data[N];int last; //代表數組中最后一個有效元素的下標 } seqlist_t;//1.創建一個空的順序表 seq…

數據恢復-01-機械硬盤的物理與邏輯結構

磁盤存儲原理 磁盤存儲數據的原理&#xff1a; 磁盤存儲數據的原理是利用磁性材料在磁場作用下的磁化性質&#xff0c;通過在磁盤表面上劃分成許多小區域&#xff0c;根據不同的磁化方向來表示0和1的二進制數據&#xff0c;通過讀寫磁頭在磁盤上的移動&#xff0c;可以實現數據…

wordpress get_footer();與wp_footer();的區別的關系

在WordPress中&#xff0c;get_footer() 和 wp_footer() 是兩個不同的函數&#xff0c;它們在主題開發中扮演著不同的角色&#xff0c;但都與頁面的“頁腳”部分有關。以下是它們的區別和關系&#xff1a; 1. get_footer() get_footer() 是一個用于加載頁腳模板的函數。它的主…

DeepSeek 通過 API 對接第三方客戶端 告別“服務器繁忙”

本文首發于只抄博客&#xff0c;歡迎點擊原文鏈接了解更多內容。 前言 上一期分享了如何在本地部署 DeepSeek R1 模型&#xff0c;但通過命令行運行的本地模型&#xff0c;問答的交互也要使用命令行&#xff0c;體驗并不是很好。這期分享幾個第三方客戶端&#xff0c;涵蓋了桌…

跟著李沐老師學習深度學習(十一)

經典的卷積神經網絡 在本次筆記中主要介紹一些經典的卷積神經網絡模型&#xff0c;主要包含以下&#xff1a; LeNet&#xff1a;最早發布的卷積神經網絡之一&#xff0c;目的是識別圖像中的手寫數字&#xff1b;AlexNet&#xff1a; 是第一個在大規模視覺競賽中擊敗傳統計算機…

使用JavaScript實現深淺拷貝

1. 拷貝的基本概念和必要性 在 JavaScript 中&#xff0c;數據類型分為基本數據類型&#xff08;如 Number、String、Boolean、Null、Undefined、Symbol&#xff09;和引用數據類型&#xff08;如 Object、Array&#xff09;。基本數據類型存儲的是值本身&#xff0c;而引用數…

解析瀏覽器中JavaScript與Native交互原理:以WebGPU為例

引言 隨著Web應用復雜度的提升&#xff0c;開發者對瀏覽器訪問本地硬件能力的需求日益增長。然而&#xff0c;瀏覽器必須在開放性與安全性之間找到平衡——既不能放任JavaScript&#xff08;JS&#xff09;隨意操作系統資源&#xff0c;又要為高性能計算、圖形渲染等場景提供支…

T-Sql 打印所有用戶表的建表腳本

-- 聲明一個變量用于存儲表名 DECLARE TableName NVARCHAR(128); -- 聲明一個游標&#xff0c;用于遍歷所有用戶表 DECLARE TableCursor CURSOR FOR SELECT name FROM sys.tables WHERE type U; -- 打開游標 OPEN TableCursor; -- 從游標中獲取第一行數據 FETCH NEXT FROM Ta…

25/2/16 <算法筆記> MiDas原理

MiDaS&#xff08;Monocular Depth Sensing&#xff09;是一種基于單目深度估計的技術&#xff0c;它通過深度學習方法使用單張RGB圖像&#xff08;普通2D圖像&#xff09;來估算場景的深度圖&#xff08;Depth Map&#xff09;。相比于傳統的依賴專用深度傳感器&#xff08;如…

python+halcon 解讀labelme標注生成marksimage

這一段代碼封裝了一個類&#xff0c;需要傳統一個圖片和標注后json文件所在的地址&#xff0c;標注的選項是polygon&#xff0c;主要是用于unet深度學習網絡 在初始化時需要輸入文件&#xff08;imagejeson&#xff09;路徑&#xff0c;多分類任務的label_list。會在項目目錄下…

從技術債務到架構升級,滴滴國際化外賣的變革

背 景 商家營銷簡述 在外賣平臺的運營中&#xff0c;我們致力于通過靈活的補貼策略激勵商家&#xff0c;與商家共同打造良好的合作關系&#xff0c;也會提供多樣化的營銷活動&#xff0c;幫助商家吸引更多用戶下單。通過這些活動&#xff0c;不僅能夠提高商家的銷量&#xff0c…