LVS的DR模式部署實(shí)例
一、部署前提
1.準(zhǔn)備至少 3 臺(tái) Linux 服務(wù)器(1 臺(tái) Director,2 臺(tái)及以上 Real Server),均為 CentOS/RHEL 或 Ubuntu 系統(tǒng)。
2.所有服務(wù)器處于同一局域網(wǎng),關(guān)閉防火墻和 SELinux(或配置對(duì)應(yīng)規(guī)則)。
3.規(guī)劃 IP 地址
- Director:公網(wǎng) / 內(nèi)網(wǎng) IP(如
192.168.1.100) + VIP(如192.168.1.200) - Real Server 1:內(nèi)網(wǎng) IP(如
192.168.1.101) + VIP(回環(huán)地址) - Real Server 2:內(nèi)網(wǎng) IP(如
192.168.1.102) + VIP(回環(huán)地址)
二、所有節(jié)點(diǎn)基礎(chǔ)配置
1.關(guān)閉防火墻和 SELinux
# CentOS/RHEL 7+ systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config # Ubuntu ufw disable
2.安裝 ipvsadm 工具(LVS 管理工具)
# CentOS/RHEL yum install -y ipvsadm # Ubuntu apt update && apt install -y ipvsadm
三、 Director 節(jié)點(diǎn)配置
1.配置 VIP
給 Director 的網(wǎng)卡(如 eth0)綁定 VIP:
# 臨時(shí)配置(重啟失效) ip addr add 192.168.1.200/32 dev eth0 # 永久配置(CentOS/RHEL,寫入網(wǎng)卡配置文件) cat >> /etc/sysconfig/network-scripts/ifcfg-eth0:0 << EOF TYPE=Ethernet BOOTPROTO=static NAME=eth0:0 DEVICE=eth0:0 IPADDR=192.168.1.200 NETMASK=255.255.255.255 ONBOOT=yes EOF # 重啟網(wǎng)卡 ifup eth0:0
2.配置 LVS 規(guī)則
使用 ipvsadm 創(chuàng)建虛擬服務(wù),指定調(diào)度算法(如 rr 輪詢),并添加 Real Server:
# 清除原有規(guī)則 ipvsadm -C # 添加虛擬服務(wù)(VIP:80,TCP協(xié)議,rr調(diào)度算法) ipvsadm -A -t 192.168.1.200:80 -s wrr # 添加 Real Server,指定 DR 模式(-g) ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.101 -g -w 1 ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.102 -g -w 1 # 保存規(guī)則(重啟后生效) ipvsadm -S > /etc/sysconfig/ipvsadm systemctl enable --now ipvsadm
- 調(diào)度算法可選:
rr(輪詢)、wrr(加權(quán)輪詢)、lc(最小連接數(shù))等。 -g表示 DR 模式,這是 DR 部署的關(guān)鍵參數(shù)。
3.開啟 IP 轉(zhuǎn)發(fā)(可選)
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p
四、 Real Server 節(jié)點(diǎn)配置(所有 RS 執(zhí)行相同操作)
1.配置 VIP 回環(huán)地址
避免 VIP 沖突,需在回環(huán)網(wǎng)卡 lo 上綁定 VIP,并設(shè)置子網(wǎng)掩碼為 255.255.255.255:
# 臨時(shí)配置 ip addr add 192.168.1.200/32 dev lo ip link set lo up # 永久配置(CentOS/RHEL) cat >> /etc/sysconfig/network-scripts/ifcfg-lo:0 << EOF TYPE=Ethernet BOOTPROTO=static NAME=lo:0 DEVICE=lo:0 IPADDR=192.168.1.200 NETMASK=255.255.255.255 ONBOOT=yes EOF # 重啟網(wǎng)卡 ifup lo:0
2.禁止 ARP 廣播 VIP
這是 DR 模式的核心配置,目的是讓 Real Server 不對(duì)外響應(yīng) VIP 的 ARP 請(qǐng)求,僅 Director 響應(yīng) ARP:
# 臨時(shí)生效 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 # 永久生效(寫入 sysctl.conf) cat >> /etc/sysctl.conf << EOF net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 EOF sysctl -p
arp_ignore=1:只響應(yīng)目標(biāo) IP 是本地網(wǎng)卡 IP 的 ARP 請(qǐng)求。arp_announce=2:發(fā)送 ARP 時(shí),使用網(wǎng)卡的真實(shí) IP 作為源 IP,而非 VIP。
3.部署后端服務(wù)
在 Real Server 上部署 Web 服務(wù)(如 Nginx、Apache),用于測(cè)試:
# 安裝 Nginx yum install -y nginx systemctl enable --now nginx # 編寫測(cè)試頁(yè)面(區(qū)分不同 RS) # RS1 echo "Real Server 1 - 192.168.1.101" > /usr/share/nginx/html/index.html # RS2 echo "Real Server 2 - 192.168.1.102" > /usr/share/nginx/html/index.html
五、測(cè)試驗(yàn)證
1.在客戶端(同一網(wǎng)段或能訪問 VIP 的機(jī)器)訪問 http://192.168.1.200。
2.多次刷新頁(yè)面,會(huì)交替顯示 Real Server 1 和 Real Server 2 的內(nèi)容,說(shuō)明 LVS DR 模式生效。
3.在 Director 節(jié)點(diǎn)查看 LVS 狀態(tài):
ipvsadm -ln
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Kali Linux安裝實(shí)現(xiàn)教程(親測(cè)有效)
這篇文章主要介紹了Kali Linux安裝實(shí)現(xiàn)教程(親測(cè)有效),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05
詳解Linux系統(tǒng)三種模式下的簡(jiǎn)單命令
這篇文章主要介紹了Linux系統(tǒng)三種模式下的簡(jiǎn)單命令,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
Linux+Nginx+Php架設(shè)高性能WEB服務(wù)器
來(lái)自wiki.nginx.org的關(guān)于Nginx的介紹2009-05-05
CentOS 7安裝Mysql并設(shè)置開機(jī)自啟動(dòng)的方法
本篇文章主要介紹了CentOS 7安裝Mysql并設(shè)置開機(jī)自啟動(dòng)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
Linux之進(jìn)程的虛擬地址空間,邏輯地址和物理地址,進(jìn)程管理命令
這篇文章主要介紹了Linux之進(jìn)程的虛擬地址空間,邏輯地址和物理地址,進(jìn)程管理命令,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
在linux (centos)上使用puppeteer實(shí)現(xiàn)網(wǎng)頁(yè)截圖功能
這篇文章主要介紹了在linux (centos)上使用puppeteer實(shí)現(xiàn)網(wǎng)頁(yè)截圖功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
Ubuntu和CentOS中配置靜態(tài)IP的方法詳解
在 Ubuntu 和 CentOS 中配置靜態(tài) IP 的方法有所不同,主要因?yàn)閮烧呤褂玫木W(wǎng)絡(luò)管理工具不同,下面小編就來(lái)和大家介紹一下詳細(xì)步驟吧2025-06-06

